vxfemboy/ghostport

GitHub: vxfemboy/ghostport

Ghostport 是一款基于 Rust 和 Tokio 构建的高性能端口伪装工具,通过在所有端口上动态模拟真实服务特征来迷惑端口扫描器。

Stars: 484 | Forks: 29

[![Rust](https://virus.ad/vxfemboy/ghostport/badges/workflows/rust.yml/badge.svg)](https://virus.ad/vxfemboy/ghostport/actions) # Ghostport Ghostport 是一款复杂的端口伪装工具,旨在迷惑和误导端口扫描器。它是受 portspoof 概念启发而用 Rust 实现的版本,提供了更高的性能和灵活性。 ![Ghostport 演示](/contrib/ghostport_demo.gif) ## 功能 - **动态端口模拟**:通过返回各种逼真的服务特征来响应端口扫描。 - **可自定义特征**:通过简单的文本文件即可轻松添加或修改服务特征。 - **高性能**:使用 Rust 和 Tokio 构建,可高效、异步地处理连接。 - **灵活的日志记录**:提供 debug、verbose 和 quiet 日志模式,以适应不同的使用场景。 - **易于使用**:具有简单的命令行界面和合理的默认设置。 ## 安装 ``` git clone https://github.com/vxfemboy/ghostport.git cd ghostport cargo build --release ``` ## 用法 基本用法: ``` ./target/release/ghostport -s signatures.txt ``` 或者你可以使用 cargo 运行 ``` git clone https://github.com/vxfemboy/ghostport.git cd ghostport cargo run -- -s signatures.txt ``` 这将使用 `signatures.txt` 中的特征,在默认地址 (127.0.0.1:8888) 上启动 Ghostport。 ### 命令行选项 - `-s, --signatures `:特征文件的路径(默认:"signatures") - `-l, --listen
`:监听地址(默认:"127.0.0.1:8888") - `-d, --debug`:启用 debug 日志 - `-v, --verbose`:启用 verbose 日志 - `-q, --quiet`:启用 quiet 日志 - `-V, --version`:打印版本信息 ### 示例 使用自定义地址和 verbose 日志运行: ``` ./target/release/ghostport -s signatures.txt -l 0.0.0.0:8888 -v ``` 使用 debug 日志运行: ``` ./target/release/ghostport -s signatures.txt -l 0.0.0.0:8888 -d ``` ## 特征文件格式 特征文件应该每行包含一个特征。特征可以是纯文本或正则表达式。例如: ``` HTTP/1.1 200 OK\r\nServer: Apache/2.4.41 (Unix)\r\n SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.1 220 (vsFTPd 3.0.3) ``` 有关更多示例,请参阅 [signatures](signatures.txt) 文件。 ## 将流量路由到 Ghostport 要将所有传入的 TCP 流量重定向到 Ghostport,你可以使用 iptables。这将允许 Ghostport 响应任何端口上的连接,从而有效地伪装所有服务: ``` INTERFACE="eth0" # change to your network interface iptables -t nat -A PREROUTING -i $INTERFACE -p tcp -m tcp -m multiport --dports 1:65535 -j REDIRECT --to-ports 8888 ``` 此命令会将端口 1-65535 上的所有 TCP 流量重定向到 Ghostport 正在监听的端口 8888。请确保将 "eth0" 替换为你实际的网络接口。 要移除此规则: ``` iptables -t nat -D PREROUTING -i $INTERFACE -p tcp -m tcp -m multiport --dports 1:65535 -j REDIRECT --to-ports 8888 ``` ## 许可证 该项目基于 GNU 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - 灵感来源于原始的 [portspoof 项目](https://github.com/drk1wi/portspoof) - 使用 Rust 和 Tokio 构建
标签:Rust, 可视化界面, 异步网络, 插件系统, 端口伪造, 网络流量审计, 通知系统