[21.10.19] (실습)웹 서버 해킹에 대한 과정들
http://www.yes24.com/Product/Goods/14529551
해당 서적과 블로그를 참조하여 작성하였습니다.
서적과 다른 분들의 블로그를 기반으로 DVWA(Damn Vulnerable Web Application) 환경을 구현하였다.
●kali-linux-2021.3-vmware-amd64
●Apache httpd 2.4.48 ((Debian))
●MySQL 5.5.5-10.5.12-MariaDB-1
●dvwa v1.10
웹 서버 해킹 과정은 4단계로 나뉘어진다.
사전조사 -> 포트스캐닝 -> 취약점 찾기 -> 공격
사전조사
host와 robots.txt로 사전조사를 개시한다.
kalilinux 명령어 host 도메인
host localhost
localhost.localdomain has address 127.0.0.1
robots.txt 파일은 브라우저에서 간단히 URL을 입력하여 얻어질 수 있다. URL/robots.txt 입력하면 되지만 막혀있음.
포트스캐닝
1. 열린 포트는 어떤 것인가?
2. 그 포트에서 동작하는 서비스는 무엇인가?
3. 어느 버전의 서비스가 돌고 있는가?
이 세가지에 대한 질문을 염두해야된다.
Nmap을 통해 포트 스캔을 할 수 있다.
nmap -sV -O -p- 127.0.0.1
-sV 옵션을 추가하면 서비스 버전 정보를 얻는다.
-O 옵션을 추가하면 운영체제의 종류와 버전 정보를 얻는다.
-p- 옵션으로 모든 포트를 스캔한다.
다음과 같이 80/tcp open http Apache httpd 2.4.48, 3306/tcp open mysql MySQL 5.5.5-10.5.12-MariaDB-1 이 결과에서 포트, 상태, 서비스, 버전의 네 가지 항목을 찾을 수 있다. 해당 웹 서버가 두 개의 서비스를 운영함을 뜻한다.
Apache 2.4.48 웹 서버는 tcp 통신이며 80번 포트에서 동작한다.
MySQL 5.5.5 DB는 3306 포트에서 동작한다.
취약점 스캐닝
취약점 스캐닝은 운영 중인 서비스의 약점을 찾아내는 과정이다. 목표로 하는 웹 서버의 IP 주소나 열린 포트나 동작하는 서비스와 서비스 버전 같이 구체적인 정보를 연다면 이러한 서비스의 취약점을 확인할 수 있다.
Nikto를 통해 웹 서버의 취약점을 검토할 수도 있다. Nikto는 보통 /usr/bin/ 아래에 존재한다. path가 걸려있다면 터미널에서 바로 실행을 할 수 있다.
/usr/bin/nikto -h 127.0.0.1 -p 1-500 //-h 옵션을 통해 목적지 주소 127.0.0.1을, -p를 통해 조사할 포트 1-500을 명시한다.
스캔 포트를 특정하지 않으면 Nikto는 기본적으로 80 포트를 검사한다. Nikto는 위와 같이 DVWA 웹 서버를 스캔해서 요약하여 보여준다.
공격하기
공격하기는 모든 정보를 수집하고, 포트를 스캔하고, 취약점까지 검토를 완료한 다음 비로소 허가 없이 목표 서버에 접근하거나 원격으로 코드를 실행하는 것을 말한다. 최종적으로 웹 서버에 관리자 수준의 권한을 얻어 프로그램을 실행시키는 것이다.
공격을 들어가기 전 기본 용어를 살펴본다.
취약점(vulnerability) : 목표 시스템의 잠재적인 약점을 뜻한다. 패치를 하지 않았거나 알려진 약한 함수를 사용한 경우 구현이 충실하지 않았거나 또는 컴파일된 언어를 잘못 사용할 경우 혹은 해커가 노릴만한 다른 잠재적인 문제점을 의미한다.
익스플로잇(exploit) : 목표 시스템에 페이로드를 올릴 수 있는 코드의 집합체
페이로드(payload) : 익스플로잇 최후의 목표로서 목표 시스템에 실행되는 악성코드
메타스플로잇의 기초
일곱 개의 MSF 명령을 사용해서 익스플로잇을 완수한다.
1. 탐색 : Nessus 결과에 보고된 CVE 식별자를 근거로 MSF 데이터베이스에서 관련된 침투 방법을 찾는다.
2. 사용 : CVE 식별자와 가장 잘 일치하는 공격 방법을 선택
3. 페이로드 보기 : 선택된 방법에 가능한 페이로드를 검토
4. 페이로드 설정 : 선택된 공격을 위해 희망하는 페이로드를 선정
5. 옵션 보기 : 선택된 페이로드의 일부로서 반드시 정해야만 하는 옵션 검토
6. 옵션 설정 : 성공하려면 페이로드에 꼭 있어야만 하는 옵션값 할당
7. 익스플로잇 : 목표 시스템에 잘 만들어진 익스플로잇 전송
'보안' 카테고리의 다른 글
[21.10.16] snort 룰에 대한 고찰 (Rule Options)- 2 (0) | 2021.10.16 |
---|---|
[21.10.12] snort 룰에 대한 고찰 - 1 (0) | 2021.10.13 |
[21.10.9] IDS / IPS에 대한 고찰(실습에 대한 내용 정리) (0) | 2021.10.09 |
[21.10.5] 자원 고갈 공격과 대역폭 공격 SYN Flooding (0) | 2021.10.05 |
[21.10.1] 대역폭 공격 중 Fragmentation Flooding에 대한 고찰 (0) | 2021.10.01 |
댓글
이 글 공유하기
다른 글
-
[21.10.16] snort 룰에 대한 고찰 (Rule Options)- 2
[21.10.16] snort 룰에 대한 고찰 (Rule Options)- 2
2021.10.16 -
[21.10.12] snort 룰에 대한 고찰 - 1
[21.10.12] snort 룰에 대한 고찰 - 1
2021.10.13 -
[21.10.9] IDS / IPS에 대한 고찰(실습에 대한 내용 정리)
[21.10.9] IDS / IPS에 대한 고찰(실습에 대한 내용 정리)
2021.10.09 -
[21.10.5] 자원 고갈 공격과 대역폭 공격 SYN Flooding
[21.10.5] 자원 고갈 공격과 대역폭 공격 SYN Flooding
2021.10.05