2/11/2016

[SYSTEM HACKING] RPC Port Map Dump를 이용한 서비스 Port 확인


System에 오픈되어 있는 Port 를 확인하는 방법에는 여러가지가 있습니다.
대표적으로 port 에 대해 직접 요청하여 확인하는 방법(Syn Scan, XMAS 등등)이 있지요.
nmap을 통해 서비스에 있는 포트들에 대해 확인하게 되는데 이 중 rpc 관련 포트가 있다면 좀 더 세심하게 스캔이 가능합니다.

바로 RPC Port Map Dump라는 기법을 이용해서 서비스에서 사용중인 포트에 대해 점검할 수 있지요.
rpcbind(111) 이 포트가 있고 rpc가 공격자의 요청에 원하는 응답을 주어야 스캔이 가능합니다.
물론 종종 스캔이 가능한 서버들이 있지요. 간단하게 원리랑 Metasploit / Nmap을 이용해서 스캔하는 방법에 대해 알아볼까 합니다.

공격원리

원래 portmap은 NFS사용 시 꼭 사용되는 데몬이며 RPC 서비스에 Port 를 매핑시켜줍니다.
이 친구에게 공격자가 Port를 확인하는 질의를 날려서 서비스에 동작하는 Port를 확인하는 방법이죠.

Local시스템에서는 rpcinfo라는 명령을 통해 쉽게 확인할 수 있습니다.
#> rpcinfo
   program version netid     address                service    owner
    100000    4    tcp6      ::.0.111               portmapper superuser
    100000    3    tcp6      ::.0.111               portmapper superuser
    100000    4    udp6      ::.0.111               portmapper superuser
    100000    3    udp6      ::.0.111               portmapper superuser
    100000    4    tcp       0.0.0.0.0.111          portmapper superuser
..snip..

그러나 원격지에서 확인할 수 없도록 설정이 필요하지만 원격에서 조회가 가능한 서비스라면 공격자가  rpcbind 포트(111) 즉 PortMapper로 TCP Packet을 보내 RPC가 가지고 있는 서비스 리스트를 받아올 수 있습니다. 아래에서 Metasploit을 통해 확인하는 방법에 대해 보겠습니다.

Metasploit을 이용한 RPC Port Map Dump


auxiliary의 scanner 중 portmap 관련 스캐너가 있습니다.
해당 모듈을 이용하여 RPC Port Mamp Dump가 가능합니다.

hahwul auxiliary(portmap_amp) #> use auxiliary/scanner/portmap/portmap_amp
hahwul auxiliary(portmap_amp) #> hosts -R


Hosts
=====

address          mac  name             os_name  os_flavor  os_sp  purpose  info  comments
-------          ---  ----             -------  ---------  -----  -------  ----  --------
127.0.0.1       127.0.0.1  Linux               3.X    server        

RHOSTS => 127.0.0.1

hahwul auxiliary(portmap_amp) #> run

[*] Sending Portmap RPC probes to 127.0.0.1->127.0.0.1 (1 hosts)
[+] 127.0.0.1:111 - Vulnerable to Portmap RPC DUMP (Program version: 2) amplification: No packet amplification and a 15x, 588-byte bandwidth amplification
[+] 127.0.0.1:111 - Vulnerable to Portmap RPC GETSTAT amplification: No packet amplification and a 7x, 272-byte bandwidth amplification

[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
hahwul auxiliary(portmap_amp) #>

Reference

https://en.wikipedia.org/wiki/Portmap
http://qdata.co.kr/bo/bbs/board.php?bo_table=lqa&wr_id=49&page=9


HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment