글 작성자: nouu

http://www.yes24.com/Product/Goods/14529551

 

이제 시작이야! 웹 해킹 입문 - YES24

『이제 시작이야! 웹 해킹 입문: THE BASICS』은 도구를 사용하는 간단한 프로세스를 통해 널리 만연한 웹 취약점이 무엇이고, 어디서·왜·어떻게 발생하는지, 그리고 어떻게 공격하는지 완전하게

www.yes24.com

https://luckyking.tistory.com/entry/Kali-Linux-2020-root-%EA%B3%84%EC%A0%95-%EC%A0%91%EC%86%8D%EB%B2%95

 

Kali Linux 2020 root 계정 접속법

kali 2020부터는 사용자계정으로 진입을 우선하게되어 root로는 따로 진입을 해주셔야 합니다. 1. 사용자계정의 터미널에서 sudo su를 입력하여 접근합니다. sudo su 그리고 사용자계정의 비밀번호를

luckyking.tistory.com

https://blog.dalso.org/article/%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%EC%9D%84-%EC%9C%84%ED%95%9C-dvwa-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

모의해킹환경 구축을 위한 DVWA 설치하기. - 달소씨의 하루

앞서 bee-box에 대해서 소개해드렸는데요. 이번에는 DVWA에 대한 소개입니다.  DVWA란? Damn Vulnerable Web Application (DVWA) 의 약자로 마찬가지로 모의해킹 테스트를 위한 환경입니다.bee-box와 마찬가지로 P

blog.dalso.org

 

해당 서적과 블로그를 참조하여 작성하였습니다. 

 

 

서적과 다른 분들의 블로그를 기반으로 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 주소나 열린 포트나 동작하는 서비스와 서비스 버전 같이 구체적인 정보를 연다면 이러한 서비스의 취약점을 확인할 수 있다. 

 

Nessus 실행 후 localhost를 체크하여 취약점을 스캔하는 모습

 

 

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. 익스플로잇 : 목표 시스템에 잘 만들어진 익스플로잇 전송

 

 

msfconsole 명령어로 메타스플로잇 실행