윈도우즈 기반의 패킷 생성기입니다. GUI 기반으로 되어 있어서 직관적이네요.
Posts tagged with: 패킷 생성기
네트워크 패킷 생성기 (NPG: Network Packet Generator)
요즘은 제가 필요한 것을 인터넷에서 찾으면 다 있네요. 누군가는 같은 고민을하고 고맙게도 만들었다는 사실… ^^
NPG는 Winpcap을 사용하여 패킷을 보낼수 있는 윈도우즈 기반의 네트워크 패킷 생성기입니다. 즉 따로 프로그래밍을 하지 않고 원하는 패킷을 만들어서 보낼 수 있는 툴입니다. 사용법도 간단하고 옵션도 많지 않기 때문에 바로 사용이 가능합니다. GPL 라이센스이므로 자유롭게 사용이 가능하네요.
http://www.wikistc.org/wiki/Network_packet_generator 에 자세한 설명이 나와있고, 설치 파일은 이 페이지의 제일 아래보시면 다운받으실 수 있습니다.
사용법
- npg
- npg [-?hlw]
- npg [-vvvw] -fF <packet file name> -d <device interface>
- npg [-rtvvv] -p <packet byte stream> -d <device interface>
NPG 프로그램을 다운받고 커맨드 창에서 아무런 옵션 없이 실행을 하면, 옵션을 물어보는데 대부분의 경우 옵션을 정하고, 보낼 패킷도 저장을해서 배치파일을 만들어서 테스트를 하는 것이 가장 손쉬운 방법입니다.
옵션
-h 도움말 표시
-d 패킷을 보낼 네트워크 디바이스를 선택
-f 패킷파일의 이름 지정
-F Libpcap 호환 패킷파일 이름 지정
-l 사용 가능한 네트워크 디바이스 나열
-p <packet byte stream> 인젝트할 패킷 바이트를 HEX 값으로 나열해주면 됨
-r <repeat count> 패킷을 몇번 반복할지 카운트를 지정
-t <interval> 패킷을 인젝트 하기 전 시간 간격을 지정 (시간 기준은 밀리세컨드)
-v, -vv, -vvv 동작 상태를 표시함 v 가 많을 수록 세부정보를 표시함
실제로 보낼 데이터 파일을 가지고 설명을 하겠습니다.
아래 패킷 샘플은 ARP request를 하는 샘플입니다.
# Generic example packets to demonstrate npg.exe
# Current documentation an examples located @ http://www.wikistc.org/wiki/Network_packet_generator
# TCP/IP ARP Request
[3, 1000] # 1000 밀리, 3 번 반복
<ARP Request>
{
# Ethernet2 Header ———
FF FF FF FF FF FF # Destination MAC
00 08 DC 01 01 12 # Source MAC
08 06 # Protocol ; ARP
# ARP Header —————
00 01 # Hardware type
08 00 # Protocol type
06 # Hardware size
04 # Protocol size
00 01 # Opcode : Request
00 08 DC 01 01 12 # Sender MAC address
c0 a8 0b c8 # Send IP
00 00 00 00 00 00 # Target MAC address
c0 a8 0b 64 # Target IP
# Ethernet2 (Trailer) ——
00 00 00 00 00 00 # Trailer data
00 00 00 00 00 00
00 00 00 00 00 00
}
# : 주석
[] : 패킷을 보낼 횟수 및 주기를 설정
<> : 어떤 패킷인지 나타내는 태크. 큰 의미는 없다.
{} : 실제로 보낼 패킷을 HEX값으로 적는다. 위 예에서와 같이 각각의 의미를 주석으로 표시하면 알아보기 쉽다.
위와 같이 파일을 만들고
npg -vv -f arp_request2.txt를 입력하면 NPG 프로그램은 만든 패킷을 분석을 하고 이상이 없을 시 어떤 네트워크 디바이스를 써서 보낼지 물어봅니다. 선택을 숫자로 하면 패킷이 나갑니다.
위 예에서는 패킷을 3번 1000밀리 주기로 보내는 옵션이므로 실제 패킷은 최초에 한번 나가고 추가적으로 1초 간격으로 패킷이 3개 더 나갑니다.