보안vs해킹2011. 11. 23. 06:57

Metasploit를 이용한 스캔

앞에서 여러번 언급했던 nmap을 이용한 방법이 가장 보편적인 능동적 정보수집의 방법이라 할 수 있다. 하지만 여기서는 metasploit를 이용한 좀 더 공격적인 스캔법에 대해 알아 보겠다.

우선 데이타베이스를 사용해야 하는데 여기서는 postgresql을 이용하겠다. 아래와 같이 postgresql을 실행해보겠다.

root@bt~# /etc/init.d/postgresql-8.3 start

실행후 metasploit의 Framework을 데이타베이스에 연결한다. metasploit가 설치될때 postgresql이 postgres/toor의 계정으로 설치되어 있다.

msf > db_connect postgres:toor@127.0.0.1/msfbook

postgres를 아이디로, toor를 패스워드로, 그리고 msfbook를 데이타베이스로 하여 연결하였다. 현재의 연결을 확인하려면 db_status를 타입해보면 알 수 있다.

Nmap의 데이타를 Metasploit로 입력

nmap이나 기타 다른 스캐닝툴을 이용한 결과물들을 metasploit를 통해 입력가능한데 nmap에서는 -oX라는 명령어로 결과값을 xml로 출력 가능하다.

nmap -Pn -sS -A -oX Subnet1 192.168.1.0/24

이렇게 출력된 값을 이용해서 metasploit로 입력해보겠다.

msf > db_connect postgres:toor@127.0.0.1/msf3
msf > db_import Subnet1.xml
msf > db_hosts -c address
Hosts
=====
address
-------
192.168.1.1
192.168.1.10
192.168.1.101
192.168.1.102
192.168.1.109
192.168.1.116
192.168.1.142
192.168.1.152
192.168.1.154
192.168.1.171
192.168.1.155
192.168.1.174
192.168.1.180
192.168.1.181
192.168.1.2
192.168.1.99
msf >

Nmap을 이용한 다양한 스캔방법: TCP Idle Scan

TCP Idle scan은 비활성화된 타겟 호스트의 IPID를 알아내는 방법으로 연속되는 통신에서 다음의 IPID값을 알아냄으로 차후에 추가적인 활동을 가능하게 해준다.



msf > use auxiliary/scanner/ip/ipidseq
msf auxiliary(ipidseq) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
GWHOST no The gateway IP address
INTERFACE no The name of the interface
LHOST no The local IP address
1. RHOSTS yes The target address range or CIDR identifier
RPORT 80 yes The target port
SNAPLEN 65535 yes The number of bytes to capture
2. THREADS 1 yes The number of concurrent threads
TIMEOUT 500 yes The reply read timeout in milliseconds

위의 나열된 스캐너들은 ipid값을 알아내는 옵션들이다. 1번의 RHOSTS는 CIDR의 스캔등 타겟호스트의 네트워크의 범위를 정해줄때 사용되는 옵션이고 2에서의 THREADS값은 수치를 높일수록 PCU점유율이 높아진다. 디폴트는 1이고 여기서는 50을 줘 보겠다.

msf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf auxiliary(ipidseq) > set THREADS 50
THREADS => 50
msf auxiliary(ipidseq) > run
[*] 192.168.1.1's IPID sequence class: All zeros
[*] 192.168.1.10's IPID sequence class: Incremental!
[*] Scanned 030 of 256 hosts (011% complete)
[*] 192.168.1.116's IPID sequence class: All zeros
1. [*] 192.168.1.109's IPID sequence class: Incremental!
[*] Scanned 128 of 256 hosts (050% complete)
[*] 192.168.1.154's IPID sequence class: Incremental!
[*] 192.168.1.155's IPID sequence class: Incremental!
[*] Scanned 155 of 256 hosts (060% complete)
[*] 192.168.1.180's IPID sequence class: All zeros
[*] 192.168.1.181's IPID sequence class: Incremental!
[*] 192.168.1.185's IPID sequence class: All zeros
[*] 192.168.1.184's IPID sequence class: Randomized
[*] Scanned 232 of 256 hosts (090% complete)
[*] Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(ipidseq) >

Incremental을 보이는 호스트는 우리가 보낸 스캔값에 1을 추가한 값을 응답으로 보내온 호스트들이다. 다음에는 1번의 192.168.1.109를 통해 192.168.1.155를 좀 더 자세히 스캔해보겠다.

msf auxiliary(ipidseq) > nmap -PN -sI 192.168.1.109 192.168.1.155
[*] exec: nmap -PN -sI 192.168.1.109 192.168.1.155
Idle scan using zombie 192.168.1.109 (192.168.1.109:80); Class: Incremental
Interesting ports on 192.168.1.155:
Not shown: 996 closed|filtered ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 00:0C:29:E4:59:7C (VMware)
Nmap done: 1 IP address (1 host up) scanned in 7.12 seconds
msf auxiliary(ipidseq) >

다음과 같이 능동적 정보 수집이지만 192.168.1.109라는 좀비피씨를 이용해서 타겟 호스트를 스캔하여 보았다.

내일은 이 192.168.1.109를 좀더 후벼보도록 하겠다.

Posted by 구텐모르겐