* 오늘의 주요 내용
- 웹 서버, 게시판 소스 + 웹 방화벽 설치 ----> 공격 및 차단 실습
- 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 |