본문 바로가기

등등/보안 위협 탐지

보안 위협 탐지 - 3일차


* 오늘의 주요 내용
- 웹 서버, 게시판 소스 + 웹 방화벽 설치  ----> 공격 및 차단 실습
- CSRF, Dictionary/Bruteforce (Medusa, Burp Suite등)

* 방화벽
- L3 방어 : IP주소, 포트번호 등
- L7 방어 : Proxy 기능
- 요청 개수, 들어오는 트래픽의 양을 기반으로 허용/차단 결정
- 패턴을 탐지해서 차단하는 기능

* IDS 
- 패턴(지식)  ----> Snort의 패턴은 Suricata 등 다른 IDS에서도 호환 가능

* IPS
- IDS의 기능에 차단하는 기능 추가

* Web Firewall
- L7의 데이터부분을 비교(Pattern Matching)해서 악성코드 등을 차단  (IPS와 비슷)
- 요청 개수 등을 파악해서 허용/차단 결정
- HTTP헤더의 내용을 파악 (공격 시도, 비정상적인 요청 등을 차단)

* 방화벽은 속도가 가장 중요 ----> 네트워크 맨 앞에 배치하므로 네트워크 속도가 방화벽에 따라 좌지우지 됨 ----> SPI(L3/L4)위주 발전
  웹방화벽은 웹서버에 설치 ----> 속도와 관계가 없음 ----> 7계층에서의 패턴, 개수, 행위 등을 모두 탐지할 수 있음
  
* 대부분의 웹방화벽은 대부분 웹서버에 설치하는 방식 (SW, Host based)
  몇몇 업체가 HW일체형(Appliance)으로 판매 -----> WAPPLES, 파이오링크는 HW일체형, 나머지는 대부분 SW방식

실습) code02.zip 파일, WebWASDB_VMware.pdf 파일 다운로드 하세요~

Quiz) Git를 만든 사람은?   Linus Torbals (리눅스 커널을 x86에서 동작하도록 만든 사람)

* 인젝션 코드 입력
' or 1=1 #                                 // 공백을 하나만 사용하라고 함
'%20or%201=1%20#                    // 공백대신 %20을 넣었더니,  20or201120 -----> 특수문자가 모두 제거되고 있음(Secure Coding영향)

* 각자 공격해보기 (50분까지)
  ex) 웹쉘 업로드, XSS 업로드 등등

* 공격 차단 원리
- 업로드 한 파일의 이름과 확장자를 바꿈
- 자유게시판 디렉토리
$ cd  /var/www/html/gnuboard5/data/file/free
   ------> 업로드한 파일들의 이름이 모두 다르게 저장되어 있음, 웹쉘은 확장자가 php-x 로 변형되어 있어서 실행안됨

* 직접객체참조(DOR)
http://192.168.5.133/gnuboard5/data/file/free/1b0967ecb930a98b476428430554865c_jYiH75SW_9d4381ef26cbc0dd0daf90a998445ee5bbc66c51.jpg

* 웹쉘의 이름을 바꾸려는 시도(이것만 되면... )
$ rename  /var/www/html/gnuboard5/data/file/free/*.php-x   /var/www/html/gnuboard5/data/file/free/r5.php

* vi (vim) 사용 방법   (원래 vi는 사용하기 어려워서 vim을 사용하면 매우 편리)
$ sudo  vi  [파일명]
:set  nu                                 // 왼쪽에 노란색으로 번호가 표시
/문자                                // 매칭되는 문자를 찾아줌 ----> 엔터하면 해당 줄로 이동
i                                     // 편집모드 시작
ESC                                 // 명령모드로 돌아옴
:wq                                 // 저장하고 종료


* 웹방화벽 설치후, 주소창 또는 검색창에 인젝션 코드를 넣으면
htttp://192.168.5.133/gnuboard5/bbs/board.php?bo_table=qa&wr_id=1 or 1=1

------> Forbidden 에러가 발생 

오후 수업은 1시부터 시작합니다.

* VMware에서 GuestOS의 이름 바꾸기
- Edit Virtual Machine Settings
- Options클릭
- 이름을 변경하시고, OK 클릭

실습) 백업해두었던 ubuntu backup.zip 파일을 압축을 풉니다.
- VMware를 켜고 Player > File > Open을 선택하고 새로 압축푼 폴더에서 ubuntu 64-bit.vmx 파일을 선택하고 OK클릭
- Play Virtual Machine, I copied it 클릭
- 자동 잠금 해제
   전원 아이콘 > Settings > Power > 5분 ---> Never로 변경
                                    Privacy > Screen Lock > Automatic Screen Lock 해제

* 웹서버 만들기
$ sudo  apt  update
$ sudo  apt  install  vim
$ sudo  apt  install  apache2
$ sudo  apt  install  mysql-server
$ sudo  apt  install  php  php-mysql  php-common  php-gd  php-fpm   php-xml  php-json  php-curl  git
   (설치 중간에 Waiting Lock이 나오면 Ubuntu를 Rebooting 하면 해결 됩니다)
$ sudo  mysql  -u root -p
    (비밀번호 없음)
mysql> create  user  bts@'%'  identified by  'dynamite';                            //   %는 어디서든 접속 가능하다는 의미, '  '을 사용해야 함.
mysql> grant  all  privileges  on  *.*  to  bts@'%';                                    // 모든 권한을 bts에게 부여함
mysql> exit

* Firefox에서 code01.zip 파일을 다운로드 하고 아래와 같이 설정 cafe.naver.com/ciscocafe/408  
$ cd ~
$ cd  Downloads                           //  대소문자 구별, D는 대문자로 입력 
$ sudo  unzip  code01.zip                 // 압축해제  (PW : kt12#$)
$ sudo  mv  *.php   /var/www/html         // 웹서버 루트 디렉토리로 이동
$ cd  /var/www/html
$ sudo  vi  01.php                          // 나머지 02.php~05.php도 모두 수정합니다.
   (localhost는 그대로합니다,    root ---> bts,   1234 ---> dynamite 로 변경합니다)
$ ip addr                      // IP주소를 확인합니다.
     ( 내 우분투 IP는 192.168.5.134 )
http://192.168.5.134/01.php                          // MySQL 접속 확인
http://192.168.5.134/02.php                          // DB생성  (sqlDB 생성)
http://192.168.5.134/03.php                          //  userTbl이 성공적으로 생성됨
http://192.168.5.134/04.php                          // userTbl이 데이터가 성공적으로 입력됨
http://192.168.5.134/05.php                           //  10명이 출력됨


* code02.zip 파일을 Firefox를 통해 다운로드 하고
$ cd ~
$ cd  Downloads
$ ls
$ sudo  unzip  code02.zip            (PW : kt12#$ )
$ sudo  rm  0*.php                        // 아까 code01.zip 파일 압축푼것이 남아있으면 지웁니다
$ sudo  rm  code*.zip                    // code01.zip과 code02.zip 파일도 지웁니다.
$ sudo  mv  *.*  /var/www/html
$ cd  /var/www/html
$ sudo  vi  insert_result.php                      // 모든 파일들을 vi를 이용해서 root를 bts로, 1234를 dynamite로 수정합니다.

http://192.168.5.134/main.html 로 접속하면 '회원 관리 시스템'이 나옵니다.
ex) 쯔위의 키를 172로 수정합니다 (새로고침)

* 그누보드의 특징 : Secure Code로 되어 있음 (배포해서 사용 가능)
  회원 가입 시스템 : 보안이 안되는 상태임

* 웹방화벽(ModSecurity)를 설치하고 수정부분에 인젝션코드를 넣었을때 Forbidden이 나오면 성공입니다.
   ' or 1=1 # 등

* 웹방화벽 설정 끝나신 분들은 블로그 or 노트 작성하세요~
  ----> 작성이 끝나면 VM image는 삭제해도 됩니다.

* Ubuntu에 DVWA 설치하기
https://dvwa.co.uk/                 // 공식 홈페이지

$ cd /var/www/html
$ sudo  wget  https://github.com/digininja/DVWA/archive/master.zip             // 최신버전으로 다운로드
$ sudo  unzip  master.zip
$ cd  DVWA-master
$ cd  config
$ sudo  mv  config.inc.php.dist   config.inc.php                                          // 파일명 변경
$ sudo  vi /etc/php/7.4/apache2/php.ini                                                   // PHP설정 변경
   allow_url_include=On     (원래 off인데 on으로 변경)                                 // File Inclusion문제를 풀기 위해 일부러 취약하게 설정
$ sudo  chmod  777  /var/www/html/DVWA-master                                    // 파일업로드를 위한 설정
$ sudo  mysql  -u  root  -p
mysql> create  database  dvwa;
mysql> create user dvwa@localhost  identified  by  'p@ssw0rd';
mysql> grant all  privileges  on  dvwa.*  to  dvwa@localhost; 
mysql> exit
$ service  apache2  restart

* Ubuntu Server Version 다운로드
https://ubuntu.com  > Download > Ubuntu Server 아래의 Get Ubuntu Server 클릭
Option2 Manual Server Installation 클릭 > 아래쪽으로 내려가면 Get Ubuntu Server 20.04 LTS 클릭하면 다운로드 됨












'등등 > 보안 위협 탐지' 카테고리의 다른 글

보안 위협 탐지 - 4일차  (0) 2022.06.23
Metasploitable2 ( DVWA 실습)  (0) 2022.05.31
보안 위협 탐지 - 2일차  (0) 2022.05.23
보안 위협 탐지 -1일차  (0) 2022.05.12
vmware ( window7) - window 파일공유  (0) 2022.05.12