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 다운로드
설치 및 컴파일
자신의 리눅스 버젼이 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 이라는 패킷이 되돌아 올수 있음 많은 패킷이 필요할 경우 테스팅하기 위해 여러대의 패킷 발생 서버가 필요할수도 있다
|
철컹철컹 실제 운영중인 상용서비스나 다른 아이피에 공격하는 경우 경찰 조사를 받을수도 있다 |