Reptile使用记录
前言
最近拿到了一点shell,考虑怎么发挥最大价值,看别人的权限维持方法中有提到rootkit这个东西,以前也听说过但没有仔细了解,这次找到了 Reptile,使用过程中遇到了好一些坑。
安装
分为被控端和控制端,简单来说,被控端需要配置、编译,控制端只需要编译就可以。
被控端
首先安装被控端,我使用了centos7 x64版本、ubuntu 22.04版本和ubuntu 16.04版本,前者 make install
的时候直接崩重启了。第二个编译都不成功,报错如下。
第三个成功了,我会试这个版本也是因为看了老外在youtube的视频,这里记录一下需要注意的地方。
安装相关依赖。
1
apt install build-essential libncurses-dev linux-headers-$(uname -r)
然后是
make menuconfig
,需要提前安装 readling-dev ,然后就进入了配置界面。这个界面需要配置的有 Backdoor configuration。
- password 是连接密码。
- source port of magic packets 是控制端主动连被控端时,发送的交流包中的源端口。
- magic value 暂时不懂是干什么的。
然后就是最下面的 **Would you Like to Launch the reverse shell daemon on start?**,就是是否反弹shell,不开的话就只能正向连shell了,勾选后就可以进行配置
- 第一个 Host 是控制端的ip。
- 第二个是控制端与被控端的通信端口。
- 第三个是反弹shell的请求间隔时间。
其他内容根据翻译就能看懂,没有特殊的地方。
然后选 save,会生成 .config 文件在根目录中,然后
make
、make install
,如果没有报错,那么就ok了
控制端
反向连接
这边很简单,首先 make client
,然后没有报错的话就万事大吉(waring不算报错),进到 output 目录,里面有三个可执行文件其中的 listener 就是监听反向连接的工具,用法如下。
1 | ❯ ./listener |
正向连接
正向连接需要用到 client 文件,执行后会进入像 msfconsole 的配置界面,show
命令可以看配置参数。
介绍下这些配置的意思
- LHOST、LPORT是控制端(也就是本地)的ip、port。
- SRCHOST、SRCPORT是控制端连接被控端时,首个tcp会话的请求数据包的源地址、源端口,也就是说我配置成SRCHOST=1.1.1.1、SRCPORT=666,那么就会像这里显示这个样子(我被控端和控制端都在一台ubuntu上,所以都显示localhost)。
- RHOST、RPORT是被控端的ip、port。
- PROT是通信流量的协议。
- PASS是被控端配置的password。
- TOKEN是前面那个 magic value。
配置完成后,执行 run
,就可以拿到正向shell,个人感觉其实也是反向shell,从我截的流量图中,从第三个包开始才是 session 建立开始,这个包也是被控端反弹给控制端的。
使用
正常用就行了,这个版本的是可以隐藏本身文件、隐藏进程、隐藏端口之类的,可以看下github的介绍。主要还是要能装得上,要是像centos 7 x64测试的时候那样, make install
就崩重启,那还真不敢在实战用了。
修改
等我学习一下相关知识,看能不能读懂代码,然后修改。