4 个版本 (破坏性更新)

使用旧的Rust 2015

0.4.0 2018年7月22日
0.3.0 2018年7月7日
0.2.0 2018年6月26日
0.1.0 2018年6月22日

#11 in #网络管理器

GPL-3.0 许可证

220KB
4K SLoC

snail 构建状态 Crates.io

免责声明: 该项目处于非常初期的状态,您很可能遇到错误。我正在将其作为我的日常驱动程序使用,但如果您考虑这样做,请预期将获得一个非常基础的使用体验。

寄生网络管理器。snail试图填补类似metasploit的网络管理器的空白。其核心功能是一个脚本引擎,可用于匹配已知的网络,并在发现网络捕获门户时与之交互。请查看scripts/ 文件夹中的示例。基本思想是您正在尝试获取连接,但您实际上并不关心它实际上来自哪里。请始终保持坐姿,并将您的手臂和腿保持在防火墙内。

logo

安装

如果可能,请使用snail-git 包为archlinux。对于基于debian的系统上的手动设置,安装依赖库 libseccomp-devlibdbus-1-devlibzmq3-dev

接下来,构建二进制文件

cargo build --release

然后安装它

install -Dm755 target/release/snail{d,ctl} /usr/bin
install -Dm644 scripts/* -t /usr/lib/snaild/scripts

install -d /etc/snail/scripts
install -Dm644 contrib/snail.conf -t /etc/snail
install -Dm644 contrib/[email protected] -t /usr/lib/systemd/system
install -Dm644 contrib/snail-tmpfiles.conf /usr/lib/tmpfiles.d/snail.conf
install -Dm644 contrib/snail-sysuser.conf /usr/lib/sysusers.d/snail.conf

systemd-tmpfiles --create
systemd-sysusers
systemctl daemon-reload
systemctl enable --now snail@wlp3s0

您可以使用snailctl监视您的网络状态。确保您的用户属于在 /etc/snail/snail.conf 中指定的正确组。

snailctl status

要将自己添加到正确的组,请运行

usermod -aG snail user

snailctl decap

网络捕获门户引擎应作为snaild的一部分自动运行,但也可以手动调用它。

要执行以详细模式运行的引擎,请运行

snailctl decap -v

某些门户也劫持了android网络捕获门户探测,在这种情况下,您可以绕过网络捕获门户测试,并通过运行以下命令直接执行脚本:

snailctl decap -vf

如果您正在开发新的脚本,您可以使用以下方式提供该脚本的路径:

snailctl decap -v ~/scripts/foo.lua

默认情况下,自定义脚本从 /etc/snail/scripts/*.lua 加载,但您也可以将其他文件夹添加到 /etc/snail/snail.conf

[scripts.paths."/home/user/snail/scripts"]
[scripts.paths."/opt/snail/scripts"]

为确保脚本被正确拾取,请在没有任何参数的情况下运行snailctl。

snailctl

如果您为 captive portal 编写了一个新脚本,请提交一个 pull request。

snaild dns

snaild 包含一个 DNS 服务器,该服务器在本地主机上监听 DNS 查询并将它们转发到 DNS-over-https 查询器。您还可以配置自己的区域,这些区域将转发到不同的 DNS 查询器,或者将静态 DNS 记录硬编码。

[dns]
bind = "127.0.0.1:53"

# cloudflare
servers = ["1.1.1.1",
           "1.0.0.1",
           "2606:4700:4700::1111",
           "2606:4700:4700::1001"]
port = 443
sni = "cloudflare-dns.com"

[dns.records]
"foo.example.com" = ["192.0.2.10", "2001:DB8::10"]
"bar.example.com" = ["192.0.2.20", "2001:DB8::20"]

[dns.zones]
"example.com" = ["192.0.2.2", "2001:DB8::2"]
"corp.example.com" = ["192.0.2.3", "2001:DB8::3"]

趣闻

snailctl 的名字灵感来源于Leucochloridium,一种生活在蜗牛体内的寄生虫,能够控制其宿主。从长远来看,snaild 是与蜗牛大脑接口的过程,而 snailctl 是通过 snaild 控制蜗牛的实用程序。

标志由 Baudon 在 1879 年创作。

许可

GPLv3+

依赖项

~74MB
~1.5M SLoC