hping3는 네트워크 패킷 생성 및 분석 도구로, 다양한 옵션을 제공하여 네트워크 테스트와 보안 검사를 수행할 수 있습니다. 주요 옵션들은 다음과 같습니다:
기본 옵션
- -h: 도움말을 출력합니다.
- --version: hping3의 버전을 출력합니다.
패킷 전송 관련 옵션
- -c <count>: 전송할 패킷의 개수를 지정합니다.
- -i <interval>: 패킷 전송 간격을 설정합니다. 기본 단위는 초이며, u1000과 같이 지정하면 마이크로초 단위도 가능합니다.
- -d <size>: 패킷의 데이터 부분 크기를 바이트 단위로 설정합니다.
- -E <file>: 지정한 파일의 내용을 패킷의 데이터 부분에 포함시킵니다.
- -e <data>: 직접 입력한 데이터를 패킷의 데이터 부분에 포함시킵니다.
- -0: RAW IP 모드로 설정합니다.
- -1: ICMP 에코 요청 모드로 설정합니다 (ping과 유사).
- -2: UDP 모드로 설정합니다.
- -8 <min>-<max>: 스캔 모드로 설정하여 포트 스캔을 수행합니다.
- -9: 익명 스캔 모드로 설정합니다.
TCP 플래그 관련 옵션
- -S: SYN 플래그를 설정합니다.
- -A: ACK 플래그를 설정합니다.
- -P: PUSH 플래그를 설정합니다.
- -F: FIN 플래그를 설정합니다.
- -R: RST 플래그를 설정합니다.
- -U: URG 플래그를 설정합니다.
- -X: XMAS 플래그를 설정합니다.
- -Y: YMAS 플래그를 설정합니다.
기타 옵션
- -p <port>: 대상 포트를 지정합니다.
- -s <source port>: 출발 포트를 지정합니다.
- -a <hostname>: 출발지 IP 주소를 스푸핑합니다.
- -t <ttl>: TTL(Time To Live) 값을 설정합니다.
- -N: 패킷 번호를 출력합니다.
- -Q: 시퀀스 번호를 출력합니다.
- --traceroute: traceroute 모드로 설정하여 경로 추적을 수행합니다.
- --rand-source: 랜덤 출발지 IP를 사용합니다.
- --sign: ICMP 패킷에 서명을 추가합니다.
- --flood: 가능한 빠르게 패킷을 전송합니다 (flooding).
- --file <filename>: 파일을 읽어와서 패킷을 생성합니다.
- --interface <interface name>: 특정 네트워크 인터페이스를 사용합니다.
예제 명령어
- SYN 패킷을 특정 포트로 전송:
hping3 -S -p 80 example.com
- 특정 인터벌로 ICMP 패킷 전송:
hping3 -1 -i u1000 example.com
- UDP 포트 스캔:
hping3 -2 -p 1-1000 -S example.com
이 외에도 다양한 옵션을 조합하여 네트워크 패킷을 생성하고 분석할 수 있습니다. 각 옵션의 세부 사항은 man hping3 명령어를 통해 확인할 수 있습니다.