Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pig — Linux 패킷 조작 도구. | Kitploit
도구/GitHubGitHub/rafael-santiago/pig
IDS/IPS EvasionNetwork SecurityPenetration Testing
GitHubrafael-santiago/pig

pig

Linux 패킷 조작 도구.

저장소 보기
47941145년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Pig

Pig (Packet intruder generator로 이해될 수 있습니다)는 Linux 패킷 제작 도구입니다. Pig를 사용하여 IDS/IPS 등 다른 것들을 테스트할 수 있습니다.

Pig는 즉시 사용 가능한 잘 알려진 공격 시그니처 모음을 제공하며, 필요에 따라 이 컬렉션을 더 구체적인 항목으로 확장할 수 있습니다.

현재까지는 TCP, UDP, ICMP 기반의 전송 계층을 가진 IPv4 시그니처를 만들 수 있습니다. 또한 ARP 프로토콜 기반의 시그니처를 만들 수 있으며, Ethernet 프레임부터 패킷을 구성할 수도 있습니다.

여기에 2600 잡지의 SPRING 2016 호에 실린 제 기사로 오셨다면, 이 작은 Pig가 그 이후로 계속 진화해 왔으므로 다음 문서 섹션을 계속 읽어보시기 바랍니다.

이 저장소를 클론하는 방법은?

매우 간단합니다:

[email protected]:~/src# git clone https://github.com/rafael-santiago/pig pig
[email protected]:~/src# cd pig
[email protected]:~/src/pig# git submodule update --init

빌드하는 방법은?

pig를 빌드하려면 Hefesto를 사용해야 합니다. Hefesto를 시스템에서 작동시키는 단계를 따르십시오. 그런 다음 pig의 하위 디렉토리 src로 이동하여 다음 명령을 실행하십시오:

[email protected]:~/src/pig/src# hefesto

이 명령 후에 src/bin 경로에서 pig 바이너리를 찾을 수 있습니다. src/bin에서 상대 경로로 바이너리를 사용하거나 설치할 수 있습니다.

어떤 이유로 빌드 문제가 발생한다면 BUILD.md에 있는 몇 가지 설명을 읽어보시기 바랍니다.

설치하는 방법은?

설치하려면 src 하위 디렉토리 안에 있어야 하며 다음을 호출하십시오:

[email protected]:~/src/pig/src# hefesto --install

제거하려면 src 하위 디렉토리 안에서 다음을 호출하십시오:

[email protected]:~/src/pig/src# hefesto --uninstall

pigsty 파일

Pigsty 파일은 패킷 시그니처 집합을 정의할 수 있는 일반 텍스트 파일입니다. 따라야 할 특정 구문이 있습니다. pigsty 파일의 예를 살펴보십시오:

[ signature   =      "Hello",
  ip.version  =            4,
  ip.ihl      =            5,
  ip.tos      =            0,
  ip.src      = 192.30.70.10,
  ip.dst      =  192.30.70.3,
  ip.protocol =           17,
  udp.dst     =         1008,
  udp.src     =        32000,
  udp.payload =    "Hello!!" ]

기본적으로 모든 시그니처 데이터는 대괄호 [ ... ] 사이에 있어야 합니다.

이 영역 안에서는 field = data 형식으로 정보가 제공됩니다.

컴퓨터 네트워크에 대한 경험이 있다면 표 1에 나열된 대부분의 필드가 여러분에게 의미가 있을 것입니다. 이러한 필드를 사용하여 추가 시그니처를 만드십시오.

표 1: pig 시그니처 필드.

필드의미프로토콜데이터 타입샘플 정의
signature시그니처 이름-문자열signature = "Udp flood"
eth.hwdst이더넷 대상 MACEthernetMACeth.hwdst = "00:de:ad:be:ef:00"
eth.hwsrc이더넷 소스 MACEthernetMACeth.hwsrc = "00:de:ad:be:ef:00"
eth.type이더타입Ethernet숫자eth.type = 0x0800
eth.payload이더넷 페이로드Ethernet문자열eth.payload = "f\x00ob\x04r"
ip.versionIP 버전IP숫자ip.version = 4
ip.ihl인터넷 헤더 길이IP숫자ip.ihl = 5
ip.tos서비스 유형IP숫자ip.tos = 0
ip.tlen전체 길이IP숫자ip.tlen = 20
ip.id패킷 IDIP숫자ip.id = 0xbeef
ip.flagsIP 플래그IP숫자ip.flags = 4
ip.offset프래그먼트 오프셋IP숫자ip.offset = 0
ip.ttlTTLIP숫자ip.ttl = 64
ip.protocol프로토콜IP숫자ip.protocol = 6
ip.checksum체크섬IP숫자ip.checksum = 0
ip.src소스 주소IPIP 주소ip.src = 192.30.70.3
ip.dst대상 주소IPIP 주소ip.dst = 192.30.70.3
ip.payloadIP 원시 페이로드IP문자열ip.payload = "\x01\x02"
tcp.src소스 포트TCP숫자tcp.src = 80
tcp.dst대상 포트TCP숫자tcp.dst = 21
tcp.seqno시퀀스 번호TCP숫자tcp.seqno = 10202
tcp.ackno확인 응답 번호TCP숫자tcp.ackno = 10200
tcp.sizeTCP 길이TCP숫자tcp.size = 4
tcp.reservTCP 예약 필드TCP숫자tcp.reserv = 0
tcp.urgTCP urg 플래그TCP비트tcp.urg = 0
tcp.ackTCP ack 플래그TCP비트tcp.ack = 1
tcp.pshTCP psh 플래그TCP비트tcp.psh = 0
tcp.rstTCP rst 플래그TCP비트tcp.rst = 0
tcp.synTCP syn 플래그TCP비트tcp.syn = 0
tcp.finTCP fin 플래그TCP비트tcp.fin = 0
tcp.wsizeTCP 윈도우 크기TCP숫자tcp.wsize = 0
tcp.checksum체크섬TCP숫자tcp.checksum = 0
tcp.urgp긴급 포인터TCP숫자tcp.urgp = 0
tcp.payload페이로드TCP문자열tcp.payload = "\x01abc"
udp.src소스 포트UDP숫자udp.src = 53
udp.dst대상 포트UDP숫자udp.dst = 7
udp.sizeUDP 길이UDP숫자udp.size = 8
udp.checksum체크섬UDP숫자udp.checksum = 0
udp.payload페이로드UDP숫자udp.payload = "boo!"
icmp.typeICMP 유형ICMP숫자icmp.type = 0
icmp.codeICMP 코드ICMP숫자icmp.code = 0
icmp.checksum체크섬ICMP숫자icmp.checksum = 0
icmp.payload페이로드ICMP문자열icmp.payload = "ping!"
arp.hwtypeARP 하드웨어 유형ARP숫자arp.hwtype = 0x1
arp.ptypeARP 프로토콜 유형ARP숫자arp.ptype = 0x0800
arp.hwlenARP 하드웨어 길이ARP숫자arp.hwlen = 6
arp.opcodeARP 연산 코드ARP숫자arp.opcode = 2
arp.hwsrcARP 소스 하드웨어 주소ARPMACarp.hwsrc = "de:ad:be:ef:0:0"
arp.psrcARP 소스 프로토콜 주소ARPIP 주소arp.psrc = 192.30.70.3
arp.hwdstARP 대상 하드웨어 주소ARPMACarp.hwdst = "de:ad:be:ef:0:0"
arp.pdstARP 대상 프로토콜 주소ARPIP 주소arp.pdst = 192.30.70.3

시그니처를 생성할 때 모든 데이터를 지정할 필요는 없습니다. 가장 관련성 높은 패킷 부분만 지정하면 나머지 부분은 기본값으로 채워집니다. 체크섬은 항상 다시 계산됩니다.

팁: pigsty 하위 디렉토리를 살펴보십시오. 많은 시그니처 파일을 찾을 수 있으며 새 파일을 정의하는 것이 매우 간단하다는 것을 알게 될 것입니다.

IP 주소를 지리적으로 지정하기

네, 가능합니다. 이 기능을 사용하려면 표 2에 나열된 값을 ip 주소 유형 필드에 지정하기만 하면 됩니다.

표 2: 지리적 영역별 IP.

도구 다운로드