Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HostScanSharp

HostScanSharp 是一个跨平台的主机扫描、ARP 工具和数据包分析工具集,基于 .NET 10、SharpPcap 和 PacketDotNet 实现。

仓库包含两个可运行项目:

  • HostScanSharp:Avalonia 桌面 GUI 程序,适合交互式扫描、抓包、查看和发送数据包。
  • HostScanSharpCli:控制台 CLI 程序,适合在终端、脚本、远程 Shell 和自动化场景中使用。

两个项目复用同一套网络核心逻辑,支持 Windows、Linux 和 macOS。

功能

  • 主机扫描:扫描单个 IPv4 或 IPv4 地址段,显示 IP、MAC、主机名和 TTL。
  • 网卡枚举:列出 SharpPcap/libpcap 可用的抓包网卡、IPv4、网关和 MAC。
  • ARP 攻击:构造并发送 ARP 欺骗数据帧,支持发送到网关和靶机、仅网关、仅靶机三种模式。
  • 数据包监听:通过 ARP 欺骗监听靶机流量,支持转发靶机流量,尽量不影响靶机正常上网,并保存为 pcap。
  • 普通抓包:选择网卡在线抓包,支持 BPF 过滤规则,保存为 pcap。
  • Pcap 浏览:打开 pcap/pcapng 文件,分页浏览数据包摘要,支持显示过滤。
  • 数据包详情:查看 Ethernet、ARP、IP、TCP、UDP 等协议字段。
  • 十六进制查看:查看任意文件或数据包字节内容,支持文本解码。
  • UDP 发送:把文本、十六进制或文件内容作为 UDP 数据发送到指定地址和端口。

平台依赖

Windows

  • 安装 .NET 10 SDK。
  • 安装 Npcap。
  • 抓包、发包、ARP 攻击和 ARP 监听通常需要管理员权限。

Linux

  • 安装 .NET 10 SDK。
  • 安装 libpcap,例如 Debian/Ubuntu:
sudo apt install libpcap0.8
  • 抓包、发包、ARP 攻击和 ARP 监听通常需要 root 权限,或给可执行文件配置对应网络能力。

macOS

  • 安装 .NET 10 SDK。
  • 使用系统 libpcap。
  • 抓包、发包、ARP 攻击和 ARP 监听通常需要管理员权限。

构建

构建整个解决方案:

dotnet build .\HostScanSharp.slnx

也可以分别构建:

dotnet build .\HostScanSharp\HostScanSharp.csproj
dotnet build .\HostScanSharpCli\HostScanSharpCli.csproj

运行 GUI 程序

dotnet run --project .\HostScanSharp\HostScanSharp.csproj

GUI 程序包含以下主要窗口:

  • 主机扫描器:输入 IP 或 IP 段后扫描在线主机。
  • ARP 攻击:选择网卡、网关、靶机和发送目标模式后发送 ARP 欺骗包。
  • 数据包监听:选择靶机后通过 ARP 欺骗监听流量,转发数据并保存 pcap。
  • 抓包工具:普通网卡抓包、打开 pcap、分页查看、显示过滤、查看包详情。
  • 十六进制查看器:打开任意文件或数据包内容,查看 hex 和文本。
  • UDP 发送:把当前字节内容发送为 UDP 数据包。

运行 CLI 程序

查看帮助:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- help

列出网卡:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- adapters

扫描主机:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- scan --range 192.168.1.1-192.168.1.254

普通抓包:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- capture -a 0 --out traffic.pcap --filter "tcp" --seconds 30

浏览 pcap:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- pcap --file traffic.pcap --page-size 50

使用显示过滤浏览 pcap:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- pcap --file traffic.pcap --display-filter "proto:tcp ip:192.168.1.144 port:443"

查看单个数据包详情和十六进制内容:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- packet --file traffic.pcap -n 12 --hex --encoding UTF-8

查看文件十六进制:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- hex --file traffic.pcap

发送 UDP:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- udp --dst 192.168.1.20 --port 8000 --text hello --count 3

ARP 攻击:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- arp-attack -a 0 --target 192.168.1.144 --mode both

ARP 欺骗监听并保存 pcap:

dotnet run --project .\HostScanSharpCli\HostScanSharpCli.csproj -- arp-monitor -a 0 --target 192.168.1.144 --out victim.pcap --mode both

CLI 命令概览

HostScanSharpCli <command> [options]

commands:
  adapters                         列出抓包网卡
  scan --range <ip[-ip]>           扫描 IPv4 主机
  capture --out <pcap>             在线抓包并保存 pcap
  pcap --file <pcap>               浏览 pcap/pcapng
  packet --file <pcap> -n <id>     查看单个包详情
  hex --file <path>                查看文件十六进制内容
  udp --dst <ip> --port <port>     发送 UDP 数据
  arp-attack --target <ip>         发送 ARP 欺骗包
  arp-monitor --target <ip> --out <pcap>
                                   ARP 欺骗监听靶机流量并保存 pcap

常用参数:

-a, --adapter <index|text>         指定网卡,可使用 adapters 命令看到的索引
-f, --filter <bpf>                 BPF 抓包过滤规则
-s, --seconds <n>                  运行 n 秒后停止
-n, --count <n>                    抓包数量、UDP 发送次数或 ARP 发送轮数
--display-filter <expr>            pcap 显示过滤,例如 proto:tcp ip:192.168.1.1 port:443
--gateway-ip <ip>                  指定网关 IP
--gateway-mac <mac>                指定网关 MAC
--spoof-mac <mac>                  指定伪装 MAC,默认使用当前网卡 MAC
--mode <both|gateway|target>       ARP 发送目标模式,默认 both
--delay <ms>                       ARP 发送间隔,默认 10ms

ARP 发送目标模式

ARP 攻击和 ARP 监听都支持 --mode

  • both:同时向网关和靶机发送,适合完整双向欺骗和双向监听。
  • gateway:仅向网关发送,减少直接触发靶机安全软件的概率,但监听完整性取决于网络环境。
  • target:仅向靶机发送,适合只需要影响靶机侧 ARP 缓存的场景。

GUI 中对应为“发送目标”下拉框。

PCAP 显示过滤

GUI 和 CLI 的离线显示过滤支持多个空格分隔的条件,所有条件同时满足才显示。

示例:

proto:tcp
ip:192.168.1.144
src:192.168.1.144
dst:43.133.215.197
port:443
sport:49669
dport:8787
len:1478

也可以输入普通关键字,程序会在协议、IP、端口、长度、序号和时间字段中匹配。

项目结构

HostScanSharp/
  HostScanSharp/          Avalonia GUI 程序
  HostScanSharpCli/       控制台 CLI 程序
  HostScanSharp.sln       Visual Studio 解决方案
  HostScanSharp.slnx      .NET 解决方案文件

核心网络能力位于 GUI 项目的 ModelsServicesUtilities 目录。CLI 项目通过编译链接复用这些源码,因此两端行为保持一致。

安全说明

抓包、ARP 攻击、ARP 欺骗监听和数据包发送功能只应在你拥有授权的网络中使用。

这些功能可能导致网络中断、触发安全软件告警或违反网络使用规范。使用前请确认你有明确授权,并优先在隔离测试网络中验证。

About

HostScanSharp 是一个跨平台的主机扫描、ARP 工具和数据包分析工具集,基于 .NET 10、SharpPcap 和 PacketDotNet 实现。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages