본문 바로가기
I T/Network

HPING (hping3)설치 및 사용

by 루솨 2015. 8. 29.

hping3 설치 및 사용

 

hping 은 패킷발생 프로그램으로 주로 공격테스트나 장비 네트워크 부하테스트에

 

주로 사용된다.

 

설치전 필요 패키지

yum -y install libpcap-devel*

yum -y install tcl*

yum -y install tcl-devel*

 

hping3 다운로드

wget http://www.hping.org/hping3-20051105.tar.gz

 

 

설치 및 컴파일

mkdir /usr/local/include/net/
ln -sf /usr/include/pcap-bpf.h /usr/local/include/net/bpf.h

tar xvfz hping3-20051105.tar.gz

cd hping3-20051105

./configure

make
make install

 

자신의 리눅스 버젼이 64비트의 경우 에러나는 경우

vim bytesex.h

#if defined(__i386__) \ 
|| defined(__x86_64__) \ <-- 요 라인 추가하고 컴파일 다시 해볼것~~
|| defined(__alpha__) \ 
|| (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__))) 
#define BYTE_ORDER_LITTLE_ENDIAN

 

/usr/bin/ld: cannot find -lpcap
collect2: ld returned 1 exit status
make: *** [hping3] Error 1

위와 같은 에러는 아래 패키지를 설치해본다

yum install libcap-devel

yum install libpcap-dev*

 

설치가 완료되면 쉘창에 hping3 라고 입력한후 아래 옵션들을 입력해주면 된다

 

자주 사용하는 옵션

-c, --count : 패킷카운트 (지정한 패킷만 전송하고 중지)
-i, --interval : 간격, 일정 ; 
--fast : -i u10000 (초당10개) 
--faster : -i u1000 (초당100개) 
--flood : -i u10 (초당 1000개) ; Don't show replies

mode)
-0 --rawip : Raw IP mode (포트없이 아이피 ↔ 아이피 끼리 패킷 보내는듯함)
-1 --icmp : icmp 패킷
-2 --udp : udp 패킷
-8 --scan : ex) hping3 --scan 53-80 -S 1x6.1x5.3x.2x9 (포트스캔 할수 있는 기능 같음)
-9 --listen :

IP)
-a --spoof : 소스아피변조
--rand-source : 랜덤소스아피
-t --ttl : TTL (디폴트 64)
-m --mtu : mtu 크기 조절 1500보다 작게 설정

 

실제 사용 예제)

hping --flood --rand-source : 
hping3 -a 18.18.18.218 -p 80 -S -i u10000 : 
hping3 -p 50005 -S -i u10 xx1.1xx.2x3.37 --rand-source : 랜덤소스아이피로 좀 세게 

열려있는 포트 탐지
hping3 XXX.XXX.28.81 -S -c 1 -p 80
- len=46 ip=XXX.xxx.28.81 ttl=63 DF id=0 sport=80 flags=SA seq=0 win=5840 rtt=0.1 ms : flags 가 SYN + ACK 이므로 80번포트는 열려 있음

hping3 XXX.XXX.28.81 -S -c 1 -p 80
- len=46 ip=XXX.XXX.28.81 ttl=63 DF id=0 sport=100 flags=RA seq=0 win=0 rtt=0.1 ms : flags 가 RST + ACK 이므로 80번 포트는 닫혀있음
※ 응답 패킷은 len=46으로 시작하는 필드이다

hping3 192.168.50.252 -A -c 1 -p 8
- 1 packets tramitted, 0 packets received, 100% packet loss : IP주소가 없거나 DROP 이 되는경우 응답을 받지 못하게 됨

hping3 XXX.XXX.28.81 -SA -c 1 -p 80
- len=46 ip=XXX.XXX.28.81 ttl=63 DF id=0 sport=80 flags=R seq=0 win=0 rtt=0.1 ms : SYN + ACK 을 보내는경우 R 거부라고 응답을 받음 (응답받음으로 해당 포트 활성화 되어 있다고 확인가능)

 

참고 및 주의 사항

HPING3 명령어를 백그라운드 (&)로 여러개 돌릴수 있다.

패킷을 발생시키는 경우 시스템과 랜카드 퍼포먼스에 따라 패킷보내는양이 틀려질수 있다

패킷을 발생시키는 경우 부하로 인해 Ctrl + C 취소가 안되거나 시스템이 다운되는 경우 발생

SYN 패킷을 보내면 ACK 패킷이 응답하므로 보내면 응답패킷을 받게 된다

TCP 는 ACK 패킷 UDP의 경우는 Unreachable 이라는 패킷이 되돌아 올수 있음

많은 패킷이 필요할 경우 테스팅하기 위해 여러대의 패킷 발생 서버가 필요할수도 있다

 

 

철컹철컹

실제 운영중인 상용서비스나 다른 아이피에 공격하는 경우 경찰 조사를 받을수도 있다