ddddddO/packemon

GitHub: ddddddO/packemon

跨平台终端界面网络工具,支持任意数据包构造发送与实时流量监控,覆盖从以太网到应用层的完整协议栈。

Stars: 295 | Forks: 4

# Packémon [![Awesome](https://awesome.re/badge-flat2.svg)](https://github.com/caesar0301/awesome-pcaptools?tab=readme-ov-file#traffic-analysisinspection) [![version](https://img.shields.io/github/v/release/ddddddO/packemon?style=flat-square&logo=git&logoColor=3BAF75&labelColor=EEE&color=3BAF75")](https://github.com/ddddddO/packemon/releases) [![DeepWiki](https://img.shields.io/badge/DeepWiki-ddddddO%2Fpackemon-blue.svg?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/ddddddO/packemon) 数据包怪兽,简称 `Packémon`!(っ‘-’)╮=͟͟͞͞◒ ヽ( '-'ヽ)
https://github.com/user-attachments/assets/08f96575-7aca-47e7-bdeb-6705ce2bbaba 用于生成任意输入数据包并监控任意网络接口(默认:`eth0`)上数据包的 TUI 工具。运行 `packemon interfaces` 时会输出可指定的接口列表。
**此工具可在 Windows、macOS 和 Linux 上运行。**
由于 **[cluster2600](https://github.com/cluster2600)** 的支持,这款 TUI 工具现已在 macOS 上可用。感谢🎉! 我打算耐心地开发它🌴 README 中 Packemon 的图片仅供参考,可能与实际 Packemon 有所不同。 ## 功能 - 概述 这款 TUI 工具有两大主要功能:数据包生成和数据包监控。 |生成的 DNS 查询
及收到的响应| 显示的 DNS 响应详情|过滤后的数据包| |--|--|--| |![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/92f79fa2cf214724.png)|![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e0dd7bc3d5214726.png)|![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/80b6a56e36214727.png)| 此图展示了以生成器 / 监控器模式运行的 packemon。
左侧生成器生成的 DNS 查询数据包显示在监控器的第 **56** 行。DNS 查询响应数据包显示为第 **57** 行,中间图片展示了其更详细的视图。
详细说明请参阅 **[此处](https://github.com/ddddddO/packemon#sending-dns-query-and-monitoring-dns-response)**。 Packemon 的监控器允许用户通过按 `Enter` 键选择每个数据包。然后,选择任意行并按 `Enter` 键即可查看所需数据包的详情。在数据包详情界面按 `Esc` 键将返回原始数据包列表界面。 最右侧的图片展示了数据包列表是如何被过滤的。 ## 功能 - *生成器* ### 将生成的数据包发送到任意网络接口。 - 您可以使用 `--interface` 标志指定网络接口。默认为 `eth0`。 ### 支持多种协议的数据包。
详情 - [x] Ethernet - [x] IEEE802.1Q(VLAN tag) - [x] ARP - [x] IPv4 - [x] IPv6 - [x] ICMPv4 - [ ] ICMPv6 - [x] TCP - [x] UDP - [x] TLSv1.2 - **使用 Go 标准包实现**(以下为有效字段;) - IPv4: `Source IP Addr`, `Destination IP Addr` - IPv6: `Source IP Addr`, `Destination IP Addr` - TCP: `Source Port`, `Destination Port`, `Do TCP 3way handshake ?`(需勾选) - HTTP: 所有字段 - **实验性实现(完全自研)** - 由于支持的密码套件数量仍然较少,此工具实用性有限,但您可以在[此处](./cmd/debugging/https-server/README.md)找到尝试环境。 - TCP 三次握手 ~ TLS 握手 ~ TLS 应用数据(加密 HTTP) - 支持的密码套件包括 - `TLS_RSA_WITH_AES_128_GCM_SHA256` - 您可以使用以下命令检查服务器可用的密码套件 - `nmap --script ssl-enum-ciphers -p 443 ` - [x] TLSv1.3 - **使用 Go 标准包实现**(以下为有效字段;) - IPv4: `Source IP Addr`, `Destination IP Addr` - IPv6: (不可用...即将支持!) - TCP: `Source Port`, `Destination Port`, `Do TCP 3way handshake ?`(需勾选) - HTTP: 所有字段 - **实验性实现(完全自研)** - 由于支持的密码套件数量仍然较少,此工具实用性有限,但您可以在[此处](./cmd/debugging/https-server/README.md)找到尝试环境。 - TCP 三次握手 ~ TLS 握手 ~ TLS 应用数据(加密 HTTP) - 支持的密码套件包括 - `TLS_CHACHA20_POLY1305_SHA256` - [x] QUIC (**使用 [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go)**。以下为有效字段;) - IPv4: `Source IP Addr`, `Destination IP Addr` - IPv6: `Source IP Addr`, `Destination IP Addr` - UDP: `Source Port`, `Destination Port` (需选择 UDP) - QUIC: 所有字段 - HTTP: 所有字段 - 🥳< HTTP/3! - [x] DNS (开发中) - [x] HTTP (开发中) - [ ] xxxxx.... - [ ] 路由协议 - IGP (内部网关协议) - [ ] OSPF (开放最短路径优先) - [ ] EIGRP (增强型内部网关路由协议) - [ ] RIP (路由信息协议) - EGP (外部网关协议) - [ ] BGP (边界网关协议) - [目前仅有调试模式](./cmd/debugging/bgp/README.md) - TCP 三次握手 ~ Open ~ Keepalive ~ Update ~ Notification
## 功能 - *监控器* ### 监控任意网络接口。 - 您可以使用 `--interface` 标志指定网络接口。默认为 `eth0`。 ### 可过滤要显示的数据包。 - 您可以过滤列表数据包中显示的每一项的值(例如 `Dst`、`Proto`、`SrcIP`...等)。 ### 指定的数据包可保存为 pcapng 文件。 ### 支持多种协议的数据包。
详情 - [x] Ethernet - [x] IEEE802.1Q(VLAN tag) - [x] ARP - [x] IPv4 (开发中) - [x] IPv6 (开发中) - [x] ICMPv4 (开发中) - [ ] ICMPv6 - [x] TCP (开发中) - [x] UDP - [x] TLSv1.2 (开发中) - [ ] TLSv1.3 - [ ] DNS (开发中) - [x] DNS 查询 - [x] DNS 查询响应 - [ ] xxxxx.... - [ ] HTTP (开发中) - [x] HTTP GET 请求 - [x] HTTP GET 响应 - [ ] xxxxx.... - [ ] xxxxx.... - [ ] 路由协议 - IGP (内部网关协议) - [ ] OSPF (开放最短路径优先) - [ ] EIGRP (增强型内部网关路由协议) - [ ] RIP (路由信息协议) - EGP (外部网关协议) - [ ] BGP (边界网关协议)
## 安装 ### 源码构建

$ git clone git@github.com:ddddddO/packemon.git

$ cd packemon

(针对 Linux)

$ cd tc_program/ && go generate && cd -

(针对 Linux 或 macOS)

$ go build -o packemon cmd/packemon/*.go

$ ls | grep packemon

$ mv packemon /usr/local/bin/

(针对 Windows)

$ go build -o packemon.exe .\cmd\packemon\

### 包管理器



对于 arm64,请将以下命令中的 “amd64” 替换为 “arm64” 并执行。


deb

$ export PACKEMON_VERSION=X.X.X

$ curl -o packemon.deb -L https://github.com/ddddddO/packemon/releases/download/v$PACKEMON_VERSION/packemon_$PACKEMON_VERSION-1_amd64.deb

$ dpkg -i packemon.deb



rpm

$ export PACKEMON_VERSION=X.X.X

$ (Ubuntu) yum install https://github.com/ddddddO/packemon/releases/download/v$PACKEMON_VERSION/packemon_$PACKEMON_VERSION-1_amd64.rpm

或

$ (Fedora) dnf install https://github.com/ddddddO/packemon/releases/download/v$PACKEMON_VERSION/packemon_$PACKEMON_VERSION-1_amd64.rpm



apk

$ export PACKEMON_VERSION=X.X.X

$ curl -o packemon.apk -L https://github.com/ddddddO/packemon/releases/download/v$PACKEMON_VERSION/packemon_$PACKEMON_VERSION-1_amd64.apk

$ apk add --allow-untrusted packemon.apk



Homebrew

$ brew install ddddddO/tap/packemon



AUR

https://aur.archlinux.org/packages?K=packemon

已在以下环境中确认可运行 - OS: Debian GNU/Linux 12 (bookworm) on WSL2 - Kernel: 5.15.167.4-microsoft-standard-WSL2 - Architecture: x86_64 - OS: Ubuntu 22.04.3 LTS on WSL2 - Kernel: 5.15.167.4-microsoft-standard-WSL2 - Architecture: x86_64 - OS: Fedora Linux 42 on WSL2 - Kernel: 5.15.167.4-microsoft-standard-WSL2 - Architecture: x86_64 - OS: Debian GNU/Linux 12 (bookworm) on Google Pixel 7a - Kernel: 6.1.0-34-arm64 - Architecture: aarch64 - OS: macOS - OS: Windows 11 Pro - 确认默认网关的 MAC 地址(通过 PowerShell) PS > $defaultGateway = (Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Sort-Object -Property InterfaceMetric | Select-Object -First 1).NextHop PS > echo $defaultGateway 192.168.10.1 PS > Get-NetNeighbor -IPAddress $defaultGateway | Select-Object -ExpandProperty LinkLayerAddress
命令 - OS: `cat /etc/os-release` - Kernel: `uname -r` - Architecture: `uname -m`
### 前往安装 对于 macOS,除了 Homebrew,这种方式也很简单。

$ go install github.com/ddddddO/packemon/cmd/packemon@latest

## 用法 - 概述


```
$ packemon --help

NAME:

   packemon - Packet monster (っ‘-’)╮=͟͟͞͞◒ ヽ( '-'ヽ) TUI tool for sending packets of arbitrary input and monitoring packets on any network interfaces (default: eth0). Windows/macOS/Linux



              ⌒丶、_ノ⌒丶、_ノ⌒丶、_ノ⌒丶、_ノ⌒丶、_ノ⌒丶、_ノ

                                    ○

                                   о

                                  。



                                 ,、-、_  __

                   ,、-―、_,、'´    ̄  `ヽ,

                  /       ・    .   l、

                  l,       ヾニニつ    `ヽ、

                   |                  `ヽ,

                   ノ                  ノ

                  /::::                 /

                /:::::::                ..::l、

               /::::::::::::::::::......:::::::.       ............::::::::::`l,

               l::::::::::::::::::::::::::::::::::::......   ....:::::::::::::::::::::::::::::`l,

               ヽ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノ

                  ̄ ̄``ヽ、_:::::::::::::::::::::::,、-―´ ̄`ヽ、,、-'

                        `ヽ―-―'´



USAGE:

   packemon [global options] [command [command options]]



VERSION:

   1.8.0 / revision cb61da2



COMMANDS:

   monitor, m, mon       Monitor mode. You can monitor packets received and sent on the specified interface. Default is 'eth0' interface.

   generator, g, gen     Generator mode. Arbitrary packets can be generated and sent.

   interfaces, i, intfs  Check the list of interfaces.

   debugging, d, debug   Debugging mode.

   version, v            Prints the version.

   help, h               Shows a list of commands or help for one command



GLOBAL OPTIONS:

   --help, -h     show help

   --version, -v  print the version

$
```


## 用法 - *生成器*


```
$ sudo setcap cap_net_raw,cap_bpf,cap_sys_admin,cap_net_admin+ep /path/to/packemon

$ packemon generator
```


或


```
$ sudo packemon generator
```


## 用法 - *监控器*


```
$ sudo setcap cap_net_raw+ep /path/to/packemon

$ packemon monitor
```


或


```
$ sudo packemon monitor
```


## 用例 - 概述

### 网络学习与教育

Packemon 作为一种教育工具,通过允许动手实验来帮助理解网络协议。您可以在不同的 OSI 层生成自定义数据包并观察其行为,非常适合学习 TCP/IP 基础知识。

### 协议开发与测试

该工具支持跨多个层测试自定义协议实现,包括 Ethernet、ARP、IPv4/IPv6、ICMP、TCP/UDP、TLS、DNS 和 HTTP。这对于从事网络协议栈开发或测试协议合规性的开发者非常有价值。

### 网络故障排除与分析

Packemon 提供类似于 Wireshark 的数据包监控功能,允许您实时捕获和分析网络流量。您可以过滤数据包、检查协议详情,并将捕获的数据导出为 pcapng 格式以供进一步分析。

### 安全研究与渗透测试

该工具可用于安全研究,包括测试 DNS 反射攻击等漏洞。

### 自定义网络工具开发

Packemon 演示了如何从头构建网络工具,为开发创建自己的数据包操作实用程序的开发者提供了参考实现。

## 用例 - 发送 DNS 查询并监控 DNS 响应

过程 1. 设置 # 生成器 $ sudo packemon generator # 监控器 $ sudo packemon monitor ← 生成器 | 监控器 → ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/92f79fa2cf214724.png) 2. 生成器 - `Lα` > `Ethernet` > `Ether Type` > **IPv4** - `Lβ` > `IPv4` > `Protocol` > **UDP** - `Lβ` > `IPv4` > `Destination IP Addr` > **1.1.1.1** - 在此处输入 DNS 解析器的地址。上面是 Cloudflare 解析器的地址。 - `Lγ` > `UDP` > `Destination Port` > **53** - `Lγ` > `UDP` > `Automatically calculate length ?` > **(勾选!)** - `Lε` > `DNS` > `Queries Domain` > **go.dev** - 在此处输入您想要进行域名解析的域名。 - `ε` > `DNS` > 点击 **Send!** - 此时,会发送包含目前设置内容的 DNS 查询。 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f3d9aff94d214728.png) 3. 监控器 - 查找 `Proto`: **DNS** 且 `DstIP` 或 `SrcIP` 为 **1.1.1.1** 的记录。选择每条记录以查看 DNS 查询的数据包结构和 DNS 响应的数据包结构。 - 列表 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5a83dc84fb214729.png) - DNS 查询 (`DstIP: 1.1.1.1`) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/52794cf0f2214730.png) - DNS 响应 (`SrcIP: 1.1.1.1`) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6b03c7a18b214731.png)
## 用例 - 网络扫描 ### 主机扫描 这是一种识别网络上哪些主机(设备)处于运行状态的方法。
详情 ||描述|如何在 Pakemon (生成器) 中操作| |--|--|--| |ARP 扫描|在本地网络上,广播 ARP 请求以识别响应的主机。验证 IP 地址与 MAC 地址的关联关系。|目前,Packemon 不支持指定请求的 IP 地址范围,因此您必须单独指定每一个...

- `Lα` > `Ethernet` > `Destination Mac Addr` > `0xffffffffffff`
- `Lα` > `Ethernet` > `Ether Type` > `ARP`
- `Lβ` > `ARP` > `Hardware Type` > `0x0001`
- `Lβ` > `ARP` > `Protocol Type` > `0x0800`
- `Lβ` > `ARP` > `Hardware Size` > `0x06`
- `Lβ` > `ARP` > `Protocol Size` > `0x04`
- `Lβ` > `ARP` > `Operation Code` > `0x0001`
- `Lβ` > `ARP` > `Target Mac Addr` > `0x000000000000`
- `Lβ` > `ARP` > `Target IP Addr` > (目标 IP 地址)
- `Lβ` > `ARP` > 点击 `Send!`| |Ping 扫描|向网络上的多个 IP 地址发送 ICMP 回显请求,以识别返回回显应答的主机。这是一种简单且广泛使用的技术。|目前,Packemon 不支持指定请求的 IP 地址范围,因此您必须单独指定每一个...

- `Lα` > `Ethernet` > `Ether Type` > `IPv4`
- `Lβ` > `IPv4` > `Protocol` > `ICMP`
- `Lβ` > `IPv4` > `Destination IP Addr` > (目标 IP 地址)
- `Lγ` > `ICMP` > `Type` > `0x08`
- `Lγ` > `ICMP` > 点击 `Send!`|
### 端口扫描 这是一种识别网络设备上哪些端口开放(哪些服务正在运行)的方法。攻击者利用它查找易受攻击的服务,管理员利用它验证安全设置。
详情 ||描述|如何在 Pakemon (生成器) 中操作| |--|--|--| |TCP 连接扫描|这是最基本的扫描方法,通过执行完整的 TCP 三次握手(SYN -> SYN/ACK -> ACK)来验证端口是否开放。|- `Lα` > `Ethernet` > `Ether Type` > `IPv4`
- `Lβ` > `IPv4` > `Protocol` > `TCP`
- `Lβ` > `IPv4` > `Destination IP Addr` > (目标 IP 地址)
- `Lγ` > `TCP` > `Do TCP 3way handshake ?` > (勾选!)
- `Lγ` > `TCP` > `Destination Port` > (目标端口)
- `Lγ` > `TCP` > 点击 `Send!`| |SYN 扫描 (半开扫描)|此技术在不完成 TCP 握手的情况下检查端口可用性。它发送一个 SYN 数据包;如果返回 SYN/ACK 数据包,则判定端口开放。然后发送 RST 数据包重置连接。由于它在日志中留下的痕迹最少,也被称为隐蔽扫描。|在 Linux 上使用 Packemon 时,由于它会丢弃 RST 数据包,我只写了发送 Syn 数据包的过程。

- `Lα` > `Ethernet` > `Ether Type` > `IPv4`
- `Lβ` > `IPv4` > `Protocol` > `TCP`
- `Lβ` > `IPv4` > `Destination IP Addr` > (目标 IP 地址)
- `Lγ` > `TCP` > `Do TCP 3way handshake ?` > (不勾选!)
- `Lγ` > `TCP` > `Flags` > `0x02`
- `Lγ` > `TCP` > `Destination Port` > (目标端口)
- `Lγ` > `TCP` > 点击 `Send!`| |UDP 扫描|由于使用无连接的 UDP 协议,它非常适合验证 UDP 端口是开放还是关闭。它发送一个 UDP 数据包,如果没有 ICMP 端口不可达(Type 3, Code 3)响应,则判定端口开放。|- `Lα` > `Ethernet` > `Ether Type` > `IPv4`
- `Lβ` > `IPv4` > `Protocol` > `UDP`
- `Lβ` > `IPv4` > `Destination IP Addr` > (目标 IP 地址)
- `Lγ` > `UDP` > `Destination Port` > (目标端口)
- `Lγ` > `UDP` > 点击 `Send!`|
### 漏洞扫描 这是一种检测已知漏洞(如操作系统、应用程序或配置错误中的漏洞)的方法。
详情 ||描述|如何在 Pakemon (生成器) 中操作| |--|--|--| |自动化扫描器|使用 Nessus 和 OpenVAS 等工具,基于已知漏洞数据库执行自动化扫描。|-| |Banner 抓取|连接到端口并检索服务返回的“Banner”(例如 Web 服务器版本信息)以检查已知漏洞。|-|
### 其他扫描
详情 ||描述|如何在 Pakemon (生成器) 中操作| |--|--|--| |操作系统指纹识别|此技术通过分析 TCP/IP 数据包特征(如 TTL 值和窗口大小)来识别目标主机的操作系统。|-| |端口重定向|此扫描验证将数据包转发到不同端口或主机的设置。|-|
## 相关工具 ### 监控器 - [Wireshark](https://www.wireshark.org/) - [tcpdump](https://www.tcpdump.org/) - netcat(nc) - [fujiapple852/trippy](https://github.com/fujiapple852/trippy) - [Chleba/netscanner](https://github.com/Chleba/netscanner) - [gcla/termshark](https://github.com/gcla/termshark) - [sachaos/tcpterm](https://github.com/sachaos/tcpterm) ### 生成器 - [Nmap](https://nmap.org/) - [Scapy](https://github.com/secdev/scapy) - [google/gopacket](https://github.com/google/gopacket) / [gopacket/gopacket](https://github.com/gopacket/gopacket) (维护中) - [cloverstd/tcping](https://github.com/cloverstd/tcping) - [akase244/synpack](https://github.com/akase244/synpack) ## 致谢 - [rivo/tview](https://github.com/rivo/tview) - Packemon 正在使用此 TUI 库。 - [Golangで作るソフトウェアルータ](https://booth.pm/ja/items/5290391) - Go 处理系统调用、数据包校验和逻辑等方式很有帮助。Packemon 受此书启发并开始开发。这是一本日文书籍。 ## 贡献者 感谢! ## 文档 - [ネットワークを知りたくて](https://zenn.dev/openlogi/articles/195d07bd9bc5b4) ## Stargazers 随时间变化 [![Stargazers over time](https://starchart.cc/ddddddO/packemon.svg?variant=adaptive)](https://starchart.cc/ddddddO/packemon) ## 日志 (日语)
xxx ## 链接 - 「Golangで作るソフトウェアルータ」 - 其实现代码: https://github.com/sat0ken/go-curo - https://terassyi.net/posts/2020/03/29/ethernet.html - 动作确认用命令参考 - https://zenn.dev/takai404/articles/76d47e944d8e18 - [Scrapbox备忘录](https://scrapbox.io/ddddddo/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E7%B3%BB%E8%AA%AD%E3%81%BF%E7%89%A9) - 在 WSL2 的 Debian 上运行。 - 可以轻松创建任意的 Ethernet 头 / IPv4 头 / ARP / ICMP 并发送帧 - 以下是在 tmux 分割的3个画面中显示各种头表单的画面。然后发送 ICMP echo request,并用 Wireshark 确认收到了 echo reply 的样子 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0c5ee07baf214732.png) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/51c1858c75214734.png) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a148ca218e214735.png) - 接收帧并详细显示(ARP 和 IPv4) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d2e0d2d0ca214737.png)
稍早前的UI(`5062561` 提交) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a140254d84214738.png) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/850c3f2eb7214740.png)
- 作为 TUI 库使用了 https://github.com/rivo/tview 🙇 ### 动作确认 #### 在 Raspberry Pi 上简易 http server ``` pi@raspberrypi:~ $ sudo go run main.go ``` #### 数据包捕获 ``` $ sudo tcpdump -U -i eth0 -w - | /mnt/c/Program\ Files/Wireshark/Wireshark.exe -k -i - ``` - 接收画面 $ sudo go run cmd/packemon/main.go monitor - 发送画面 $ sudo go run cmd/packemon/main.go generator - 单发帧发送命令(e.g. ARP request) $ sudo go run cmd/packemon/main.go debugging --send --proto arp #### 指定 TLS 版本请求 ``` # 使用 TLS v1.2 请求 $ curl -k -s -v --tls-max 1.2 https://192.168.10.112:10443 # 使用 TLS v1.3 请求 $ curl -k -s -v --tls-max 1.3 https://192.168.10.112:10443 # TLS v1.3 で cipher suites を指定してリクエスト(ただし、Client Hello の Cipher Suites のリストが、その指定のみになるわけではなく、一番上(最優先)にくるというもの(パケットキャプチャで確認)) $ curl -k -s -v --tls-max 1.3 --tls13-ciphers "TLS_CHACHA20_POLY1305_SHA256" https://192.168.10.112:10443 ``` #### 轻松广播 ``` $ arping -c 1 1.2.3.4 ARPING 1.2.3.4 from 172.23.242.78 eth0 Sent 1 probes (1 broadcast(s)) Received 0 response(s) ``` #### TCP DNS ``` $ nslookup -vc github.com ``` #### 在 WSL2 启用 IPv6 - [参考](https://github.com/ddddddO/packemon/issues/91#issue-2797391798) #### IPv6 Ping 怎么做 ``` $ ip -6 route $ ping -c 1 fe80::1 ``` #### 自行实现的 tcp 3way handshake ``` $ sudo go run cmd/packemon/main.go debugging --send --proto tcp-3way-http ``` ### 动作确认的样子
xxx - 仅创建并发送 Ethernet 帧(在 `77c9149` 提交的文件中) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/84e3ed1501214741.png) - 创建并发送 ARP 请求(在 `390f266` 提交的文件中。我认为内容很乱) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2765cda131214743.png) - 接收 ARP 请求并解析(`b6a025a` 提交) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/741d4f9d86214744.png) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c854f5f074214748.png)
标签:arbitrary input, EVTX分析, EVTX分析, Facebook API, IP 地址批量处理, Linux工具, Packémon, Packet Monster, PE 加载器, TUI, 协议分析, 密码管理, 抓包工具, 日志审计, 服务管理, 权限提升, 端口探测, 网络安全, 网络工具, 网络测试, 网络调试, 自动化, 防御绕过, 隐私保护