'idle scan'에 해당되는 글 2건

  1. 2011.11.08 CEH Chap 2. hping - Idle scanning, ...
  2. 2011.11.07 CEH Chap 1. hping?
보안vs해킹2011. 11. 8. 07:26




Idle Scanning

요번에는 hping의 Idle scanning에 대해 적어보겠다. 우리말로 비활동중인 호스트의 스캔정도로 표현가능하겠지만 그냥 Idle scanning이라고 하겠다.

네트워크 패킷의 헤더에는 id값이란 것이 있는데 이것은 통신할때마다 기본적으로 1씩 증가하게 되어있다. (어떤 리눅스는 IP_ID값을 0으로 사용하기도 하고 방화벽에서 랜덤화된 값을 사용하기도 한다. 이럴때는 Idle scanning이 쓸모가 없다.) -r 옵션을 이용하여 호스트나 방화벽의 id값을 보고 타겟의 상태를 알 수 있다.

[root@localhost root]# hping -I eth0 -SA 192.168.10.1 HPING 192.168.10.1
(eth0 192.168.10.1): SA set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 flags=R seq=0 ttl=255 id=18106 win=0 rtt=0.4 ms
len=46 ip=192.168.10.1 flags=R seq=1 ttl=255 id=18107 win=0 rtt=0.4 ms
len=46 ip=192.168.10.1 flags=R seq=2 ttl=255 id=18108 win=0 rtt=0.4 ms
...
[root@localhost root]# hping -I eth0 -SA -r 192.168.10.1 HPING 192.168.10.1
(eth0 192.168.10.1): SA set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 flags=R seq=0 ttl=255 id=18109 win=0 rtt=0.4 ms
len=46 ip=192.168.10.1 flags=R seq=1 ttl=255 id=+1 win=0 rtt=0.4 ms
len=46 ip=192.168.10.1 flags=R seq=2 ttl=255 id=+1 win=0 rtt=0.4 ms
...

SYN 패킷을 보냈을때 해당 포트가 닫혀있을때에는 RST(reset) 패킷이 돌아오고 IP_ID값은 증가하지 않게 된다. 만약 포트가 열려있어서 IP_ID값이 증가했다면 이 포트는 열려있음을 알 수 있다. 즉 비활성화된 타겟에 대한 스캔중 id의 값이 +2가 된다면 해당 포트는 열려 있다고 보고 +1이라면 포트는 닫혀있다고 보면 된다.

Stealth Scan은 단순하게 SYN만을 타겟호스트에 보내고 ACK가 왔을때 이를 무시하는 것을 Stealth Scan이라고 한다.

Firewall Scanning 방화벽 스캔

다음은 방화벽을 스캔하는 방법에 대해 알아보겠다.

-t옵션은 IP헤더의 ttl값을 설정해줄수 있고 -z는 ctrl+z를 누를때마다 ttl값을 증가시킨다.

[root@localhost root]# hping -I eth0 -z -t 6 -S mail.test.com -p 143
HPING mail.test.com (eth0 10.5.5.3): S set, 40 headers + 0 data bytes
TTL 0 during transit from ip=10.1.5.3
7: TTL 0 during transit from ip=10.1.5.3
8: TTL 0 during transit from ip=10.2.5.3
9: TTL 0 during transit from ip=10.3.5.3
10: TTL 0 during transit from ip=10.4.5.3
11: TTL 0 during transit from ip=10.6.5.3
once you reach the server .
len=46 ip=10.5.5.3 flags=SA DF seq=33 ttl=47 id=0 win=5840 rtt=4341.3ms

위에서도 알 수 있듯이 mail.test.com은 47홉을 지나야지 타겟 네트워크에 도착하는 것을 알 수 있다. 이 방법은 기존의 UDP 뿐만 아니라 TCP에 대한 전반적인 스캔이 가능하므로 현재에도 많이 사용되는 방법이다.

hping이 물론 유용한 방법이긴 하지만 nmap이나 zenmap이 더 쉽고 유용하므로 둘의 사용법 또한 익혀놓는 것이 좋다. 이외에 backtrack에 있는 툳들을 하나씩 만져보는것도 필요하다. 언젠가는 하나씩 심도없이 다뤄보도록 할 예정이지만 언제 할지는 자신이 없다.

다음에는 hping을 이용한 SYN attack, Land attack등을 알아보도록 하겠다.

'보안vs해킹' 카테고리의 다른 글

CEH Chap 4. Zenmap  (0) 2011.11.10
CEH Chap 3. hping - Attach.  (0) 2011.11.09
CEH Chap 1. hping?  (0) 2011.11.07
BackTrack 5 백트랙 5 설치하기  (2) 2011.11.06
해킹의 5단계 from CEH  (2) 2011.11.05
Posted by 구텐모르겐
보안vs해킹2011. 11. 7. 09:46

hping
을 통해 사용자는 idle scan, land scan, stealth scan등 다양한 스캔을 통해 방화벽이 설치되어 있는 네트워크에서도 상대 호스트의 포트가 열려있는지 유무를 알 수 있다. 또한 패킷을 임의적으로 생성할 수 있으므로 활용범위가 상당히 넓다고 할 수 있다.

기존의 ping과 다른점은 ping은 UDP만을 사용하지만 hping은 TCP를 이용한다. 보통의 방화벽은 ping을 허용치 않기 위해 UDP를 블록해 놓지만 hping은 TCP를 이용하므로 이를 우회할 수 있다.

지금의 강좌는 Philippe Bogaerts의HPING Tutorial을 기준으로 작성하였으므로 내용이 모호한 점은 원문을 참조하기 바란다.

hping은 TCP를 이용하므로 여러가지 패킷을 전송하면서 네트워크의 스캔이 가능하다.
  • -F --fin set FIN flag
  • -S --syn set SYN flag
  • -R --rst set RST flag
  • -P --push set PUSH flag
  • -A --ack set ACK flag
  • -U --urg set URG flag
  • -X --xmas set X unused flag (0x40)
  • -Y --ymas set Y unused flag (0x80)
아시다시피(?) TCP는 SYN-ACK/SYN-ACK을 통해서 통신자간 신원확인(?)후 데이타 전송이 시작된다. 데이타 전송이 모두 끝나면 FIN을 통해 데이터전송을 종료하고, RST를 통해 전송을 재요청하게 된다. PUSH는 전송대기중인 패킷의 강제전송을 요청하게 된다. URG는 급할때 XMAS는 이 여러가지의 명령어들을 한꺼번에 요청하게 되서 송신자의 네트워크는 크리스마스트리처럼 반짝거린다고 해서 XMAS스캔이라고 한다.

[root@localhost root]# hping -I eth0 -S 192.168.10.1 -p 80
HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 flags=SA DF seq=0 ttl=64 id=11101 win=16080 rtt=2.7 ms
len=46 ip=192.168.10.1 flags=SA DF seq=1 ttl=64 id=11102 win=16080 rtt=2.4 ms
len=46 ip=192.168.10.1 flags=SA DF seq=2 ttl=64 id=11103 win=16080 rtt=2.4 ms

-I는 인터페이스를 나타내므로 그냥 eth0을 사용하면 되고 -S는 SYN스캔을 요청한 것이고, -p는 포트번호를 나타낸다. SA는 SYN/ACK를 나타내므로 192.168.10.1의 포트80은 열려있다고 보면 된다.

또한 ++기능을 통하여 포트번호를 하나씩 증가해가면서 스캔하게 된다.

[root@localhost root]# hping -I eth0 -S 192.168.10.1 -p ++79
HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 sport=79 flags=RA seq=0 ttl=255 id=17491 win=0 rtt=2.4 ms
len=46 ip=192.168.10.1 sport=80 flags=SA DF seq=1 ttl=64 id=17492 win=16080 rtt=3.1 ms len=46 ip=192.168.10.1 sport=81 flags=RA seq=2 ttl=255 id=17493 win=0 rtt=1.7 ms
len=46 ip=192.168.10.1 sport=82 flags=RA seq=3 ttl=255 id=17494 win=0 rtt=1.8 ms
len=46 ip=192.168.10.1 sport=83 flags=RA seq=4 ttl=255 id=17495 win=0 rtt=1.4 ms
len=46 ip=192.168.10.1 sport=84 flags=RA seq=5 ttl=255 id=17496 win=0 rtt=3.6 ms

또한 아래와 같이 모든 nmap의 기능들을 모두 사용 가능하다.

  • -s --baseport base source port (default random)
  • -p --destport [+][+] destination port(default 0) or ctrl+z inc/dec
  • -k --keep keep still source port -w --win winsize (default 64)
  • -O --tcpoff set fake tcp data offset (instead of tcphdrlen / 4)
  • -Q --seqnum shows only tcp sequence number
  • -b --badcksum (try to) send packets with a bad IP checksum many systems will fix the IP checksum sending the packet you'll get bad UDP/TCP checksum instead.
  • -M --setseq set TCP sequence number -L --setack set TCP ack

nmap의 기능을 추가하여 네트워크의 스캔을 좀 더 효율적으로 수행할 수 있다.

[root@localhost root]# hping -I eth0 -M 3000 -SA 192.168.10.1 -p 80
HPING 192.168.10.1 (eth0 192.168.10.1): SA set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 flags=R seq=3000 ttl=255 id=11118 win=0 rtt=1.8 ms
len=46 ip=192.168.10.1 flags=R seq=3001 ttl=255 id=11119 win=0 rtt=1.9 ms
len=46 ip=192.168.10.1 flags=R seq=3002 ttl=255 id=11120 win=0 rtt=1.9 ms.

보시다시피 nmaphping을 효울적으로 사용하는데 있어 필수적인 지식이다. nmap이 command 스타일이라 적응하기 힘든 분들은 zenmap이라도 깔아서 간단한 스캔기능을 익히는게 많은 도움이 될 것이다.

본인이 네트워크에 대한 지식이 없다면 Elite Nabukadnezar의 becoming a hacker를 꼭 읽어보기 바란다.

내일은 hping을 통한 IDLE SCAN, LAND SCAN등 다양한 스캔의 방법을 알아보도록 하겠다.

'보안vs해킹' 카테고리의 다른 글

CEH Chap 4. Zenmap  (0) 2011.11.10
CEH Chap 3. hping - Attach.  (0) 2011.11.09
CEH Chap 2. hping - Idle scanning, ...  (0) 2011.11.08
BackTrack 5 백트랙 5 설치하기  (2) 2011.11.06
해킹의 5단계 from CEH  (2) 2011.11.05
Posted by 구텐모르겐