Leadrogue/Lanflux
GitHub: Leadrogue/Lanflux
局域网侦察与利用自动化框架,在无线网络接入后提供主机发现、深度侦察、攻击与 MITM 一体化的引导式渗透测试流程。
Stars: 40 | Forks: 2
# Lanflux
**在获取无线网络立足点后的局域网侦察与利用** — [Wiflux](https://github.com/Leadrogue/Wiflux)的兄弟项目。
```
██╗ █████╗ ███╗ ██╗███████╗██╗ ██╗ ██╗██╗ ██╗
██║ ██╔══██╗████╗ ██║██╔════╝██║ ██║ ██║╚██╗██╔╝
██║ ███████║██╔██╗ ██║█████╗ ██║ ██║ ██║ ╚███╔╝
██║ ██╔══██║██║╚██╗██║██╔══╝ ██║ ██║ ██║ ██╔██╗
███████╗██║ ██║██║ ╚████║██║ ███████╗╚██████╔╝██╔╝ ██╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
```
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://github.com/Leadrogue/Lanflux/releases/latest)
[](#requirements)
| 工具 | 阶段 |
|------|--------|
| **[Wiflux](https://github.com/Leadrogue/Wiflux)** | 无线接入 — 扫描、捕获、破解 |
| **Lanflux** | 关联后 — 局域网发现、侦察、对接、MITM |
*从空中到局域网。* · **v1.0.0**
## 功能
### 引导式工作流
- **映射 → 侦察 → 攻击 / MITM** — 主菜单按安全顺序引导操作(在进行高噪操作前先进行侦察)
- **实时 Rich UI** — 发现表、ETA进度条、活动提要、身份卡片
- **键盘控制** — **Enter** 提前结束发现/剖析 → 返回菜单;**Space** 暂停(复制)或跳过模块
- **交战配置** — `home` | `office` | `lab` 设置超时、智能对接、MITM默认值、扫描(CLI参数仅在指定时覆盖)
- **会话恢复** — `--resume` 从 SQLite 重新加载主机;身份和流量提示持久化保存
### 发现与身份识别
- **ARP + neighbor + 可选 ping 扫描** — 快速构建带有真实 ETA 的局域网映射
- **渐进式端口/OS剖析** — 映射时执行轻量级 nmap;可按 Enter 跳过收尾
- **这是什么设备?** — 身份融合(OUI厂商 + 主机名 + mDNS + 端口 → 例如“Tommy的iPhone(推测)”)
- **流量提示** — 预扫描 `ip neigh` 状态以进行 MITM 客户端排名(`live` / `recent` / `quiet`)
- **主机评分与角色** — 网关、DC、文件服务器、IoT、工作站……
### 软性侦察与智能对接
- **软性侦察链** — `dns-enum → port-scan → smb-enum → http-enum`
- **智能对接** — 软性侦察后,根据*真实*开放端口规划深度工具(whatweb、http-paths、http-defaults、smb-deep、ssh-check、snmp-check、iot-pack、ad-enum、pivot-map、gain-access 等)
- **自动模式** — `--auto` 非交互式映射并执行软性+深度对接;lab/spray 也会运行带星标的攻击工具
- **主机感知工具包** — 根据角色/端口/风险对建议进行排名;缺少二进制文件时显示安装提示
### 模块(亮点)
| 类别 | 示例 |
|----------|----------|
| 侦察 | dns-enum, port-scan, smb-enum/deep, http-enum/paths, whatweb, tls-inspect, nikto, nuclei, ffuf-short, mdns-upnp, udp-probe, ad-enum |
| 攻击 | http-defaults, ssh-check, snmp-check, gain-access, cred-spray, iot-pack, responder |
| MITM | arp / sniff / forms / keylog / dns(工具箱限时或实时任务会话) |
### MITM(真实能力)
| 模式 | 带宽 | 获取内容 |
|------|-----------|--------------|
| **Sites** | 最佳 | DNS/SNI 主机名;半双工 ARP |
| **Forms** | 良好 | 明文 HTTP 登录 POST 请求 |
| **Keylog** | 较重 | HTTP 上的 JS 注入 + KEY 行 + 表单 |
| **DNS** | 不定 | 域名污染路径(高噪) |
- **若不使用 SSL-bump 则无法读取 HTTPS 应用密码**(未实现 — 属设计考量)
- **半双工 Wi‑Fi 友好型**调优(正向路径、rp_filter、退出时恢复)
- **生命周期清理** — 孤儿进程终止、atexit / Ctrl+C 紧急停止
- **关注流** — 会话结束时提供实时的站点/表单动态报告
### 结果、凭据库与报告
- **SQLite 存储** — 主机、发现(去重)、凭据,位于 `~/lanflux-data`(目录权限 `0700` / 文件权限 `0600`)
- **凭据库** — `--vault` 浏览器;可通过 `LANFLUX_VAULT_PASSWORD` 进行可选的静态加密
- **导出** — JSON/CSV;除非使用 `--include-secrets`,否则对密钥进行脱敏处理
- **PDF 报告** — 真实严重程度(不产生虚假的“默认登录”警报)
- **运行对比** — `--snapshot` / `--compare` 用于对比主机/端口差异
- **Webhooks** — `--webhook URL` 用于发送关键发现通知(兼容 Discord/Slack)
- **范围锁定** — `scope.lock.json` 限制高噪 MITM 操作
- **Wiflux 移交** — `--from-wiflux` 显示已破解的 PSK / 匹配的 SSID
## 快速开始
### 从源码安装(推荐)
```
git clone https://github.com/Leadrogue/Lanflux.git
cd Lanflux
pip install -e . --break-system-packages
# 核心系统工具
sudo apt update
sudo apt install -y arp-scan nmap smbclient curl iproute2 iputils-ping
# 可选包(或使用内置安装程序)
sudo apt install -y bettercap dsniff tcpdump tshark # MITM
# 或:
sudo lanflux --install-deps mitm,web,smb --install-deps-run
```
完整指南:**[INSTALL.md](INSTALL.md)** · 逐步操作说明:**[docs/TUTORIAL.md](docs/TUTORIAL.md)**
### 运行
在 Kali/Debian 上,`sudo` 可能会将 `/usr/local/bin` 从 `PATH` 中忽略:
```
sudo env PATH="/usr/local/bin:$PATH" lanflux --no-splash
# 自动映射 + 介入(实验配置:smart deep + spray-oriented)
sudo env PATH="/usr/local/bin:$PATH" lanflux --profile lab --auto -p 20 --no-splash
# 恢复之前的 hosts
sudo env PATH="/usr/local/bin:$PATH" lanflux --resume --no-splash
```
### 典型交互流程
1. **映射局域网**(菜单 ★ 1)— 按 Enter 提前结束 → 返回菜单
2. **深度侦察**(客户端或子网)— 先进行软性侦察,然后进入工具菜单
3. **攻击** — defaults、gain-access、spray(在侦察之后)
4. **MITM**(如有需要)— 选择客户端 / 模式;按 Enter 或 Space 停止实时会话
5. **报告与凭据库** — PDF、导出、对比
## 文档
| 文档 | 描述 |
|----------|-------------|
| **[INSTALL.md](INSTALL.md)** | 依赖要求、安装方式、依赖包、疑难排查 |
| **[docs/TUTORIAL.md](docs/TUTORIAL.md)** | 端到端授权测试演练 |
| **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** | 包结构与交战流程 |
| **[docs/MITM.md](docs/MITM.md)** | 捕获模式、卸载清理、范围锁定 |
| **[docs/LEGAL.md](docs/LEGAL.md)** | 授权与责任 |
| **[CHANGELOG.md](CHANGELOG.md)** | 版本历史 |
## 使用示例
```
lanflux --help
# 交互式引导菜单
sudo lanflux --no-splash
# 绑定到 subnet + office 配置(更安静的默认设置)
sudo lanflux --profile office --scope 192.168.1.0/24 --auto --no-splash
# 仅进行 Soft recon(无 deep chain)
sudo lanflux --no-smart-engage --recon-only --auto --no-splash
# Wiflux 关联之后
sudo lanflux --from-wiflux --no-splash
# 在嘈杂的 MITM 之前锁定 Scope
lanflux --scope-init 192.168.8.0/24 --scope-note "authorized pentest"
# Vault / 导出 / 比较(无需 root)
lanflux --vault
lanflux --export-creds ~/lanflux-data/creds.json --include-secrets
lanflux --findings
lanflux --hosts
lanflux --compare
# 对新增保存的 secrets 进行可选的 Vault 加密
export LANFLUX_VAULT_PASSWORD='choose-a-strong-passphrase'
sudo lanflux --vault-password "$LANFLUX_VAULT_PASSWORD" --no-splash
```
### 键盘操作
| 按键 | 发现 / 剖析 | MITM / 工具包模块 |
|-----|--------------------|------------------------|
| **Enter** | 提前结束 → 菜单 | 停止实时 MITM / 长耗时工具 |
| **Space** | 暂停表格(复制) / 恢复 | 跳过模块 |
| **Ctrl+C** | 紧急停止 MITM + 清理退出 | 同左 |
| **q**(发现模式) | 同 Enter(后备方案) | — |
## 交战配置
| 配置 | 发现 | 端口 | 智能深度 | Spray | MITM 默认 | 模块超时 |
|---------|----------|-------|------------|-------|--------------|----------------|
| **home** | 25秒 | quick | 是 | 否 | forms | 45秒 |
| **office** | 40秒 | top100 | 是 | 否 | sites | 60秒 |
| **lab** | 30秒 | quick | 是 | 是 | keylog | 90秒 |
仅在你想要覆盖配置时传入 `-p`、`--ports` 或 `--module-timeout`。
## 目录结构
```
lanflux/
cli.py entry + flags + utility commands
session.py guided / auto session loop
discover.py live host discovery
profiler.py mass port/OS profile
orchestrator.py soft recon + smart deep engage
registry.py module registry
recommend.py host-aware toolkit menu
toolkit.py interactive + starred batch runner
mission.py live MITM sessions
mitm_engine.py shared MITM surface
mitm_lifecycle.py process cleanup / emergency stop
report.py PDF reports
results.py SQLite (WAL)
vault.py credential vault
crypto_vault.py optional secret encryption
scope.py scope lock
modules/ engagement modules
tools/ network + nmap helpers
```
数据默认存储于 **`~/lanflux-data/`**(不在包目录树内)。
## 依赖要求
- **Linux**(推荐 Kali / Debian / Ubuntu)
- **Python 3.10+**
- **Root** 权限以进行完整发现 / MITM (`sudo`)
- 核心工具:`arp-scan`、`nmap`、`ip`、`ping`(详见 [INSTALL.md](INSTALL.md))
## 开发
```
git clone https://github.com/Leadrogue/Lanflux.git
cd Lanflux
pip install -e ".[dev]" --break-system-packages
pytest -q
```
## 法律声明
本工具仅供教育及**经授权的**渗透测试使用。未经授权访问计算机网络是违法行为。作者不对任何滥用行为负责。详见 [docs/LEGAL.md](docs/LEGAL.md)。
## 相关项目
- **[Wiflux](https://github.com/Leadrogue/Wiflux)** — 无线接入、捕获与破解
- Issues 与发布版:[github.com/Leadrogue/Lanflux](https://github.com/Leadrogue/Lanflux)
## 开源协议
[MIT](LICENSE) · © Leadrogue
标签:Python, 中间人攻击, 内网扫描, 局域网, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护