Reptile使用记录

前言

最近拿到了一点shell,考虑怎么发挥最大价值,看别人的权限维持方法中有提到rootkit这个东西,以前也听说过但没有仔细了解,这次找到了 Reptile,使用过程中遇到了好一些坑。

安装

分为被控端和控制端,简单来说,被控端需要配置、编译,控制端只需要编译就可以。

被控端

首先安装被控端,我使用了centos7 x64版本、ubuntu 22.04版本和ubuntu 16.04版本,前者 make install 的时候直接崩重启了。第二个编译都不成功,报错如下。

image-20230225012419807

第三个成功了,我会试这个版本也是因为看了老外在youtube的视频,这里记录一下需要注意的地方。

  1. 安装相关依赖。

    1
    apt install build-essential libncurses-dev linux-headers-$(uname -r)
  2. 然后是 make menuconfig,需要提前安装 readling-dev ,然后就进入了配置界面。
    image-20230225012931536
    image-20230225013418501

    这个界面需要配置的有 Backdoor configuration

    • password 是连接密码。
    • source port of magic packets 是控制端主动连被控端时,发送的交流包中的源端口。
    • magic value 暂时不懂是干什么的。
  3. 然后就是最下面的 **Would you Like to Launch the reverse shell daemon on start?**,就是是否反弹shell,不开的话就只能正向连shell了,勾选后就可以进行配置
    image-20230225013602224

    • 第一个 Host 是控制端的ip。
    • 第二个是控制端与被控端的通信端口。
    • 第三个是反弹shell的请求间隔时间。

    其他内容根据翻译就能看懂,没有特殊的地方。

  4. 然后选 save,会生成 .config 文件在根目录中,然后 makemake install,如果没有报错,那么就ok了

控制端

反向连接

这边很简单,首先 make client ,然后没有报错的话就万事大吉(waring不算报错),进到 output 目录,里面有三个可执行文件其中的 listener 就是监听反向连接的工具,用法如下。

1
2
3
4
5
❯ ./listener
Usage: ./listener [ -p port ] [ -s secret ]

# -p是本地监听端口
# -s是被控端配置的password

正向连接

正向连接需要用到 client 文件,执行后会进入像 msfconsole 的配置界面,show 命令可以看配置参数。

image-20230225014359831

介绍下这些配置的意思

  • LHOST、LPORT是控制端(也就是本地)的ip、port。
  • SRCHOST、SRCPORT是控制端连接被控端时,首个tcp会话的请求数据包的源地址、源端口,也就是说我配置成SRCHOST=1.1.1.1、SRCPORT=666,那么就会像这里显示这个样子(我被控端和控制端都在一台ubuntu上,所以都显示localhost)
    image-20230225014754400
  • RHOST、RPORT是被控端的ip、port。
  • PROT是通信流量的协议。
  • PASS是被控端配置的password。
  • TOKEN是前面那个 magic value。

配置完成后,执行 run,就可以拿到正向shell,个人感觉其实也是反向shell,从我截的流量图中,从第三个包开始才是 session 建立开始,这个包也是被控端反弹给控制端的。

使用

正常用就行了,这个版本的是可以隐藏本身文件、隐藏进程、隐藏端口之类的,可以看下github的介绍。主要还是要能装得上,要是像centos 7 x64测试的时候那样, make install 就崩重启,那还真不敢在实战用了。

修改

等我学习一下相关知识,看能不能读懂代码,然后修改。