我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
Cron Jobs,顾名思义,是定时/计划任务的意思。root用户通过/etc/crontab文件,可以设定系统定期执行一些预设的任务。特别需要注意的是:crontab 文件只能是在root权限下进行编辑。
当我们得到一个非root权限的远程登录用户的时候,并且可以查看/etc/crontab文件的内容,与此同时/etc/crontab文件中的某个定时任务,存在短期内执行的且是当前非root用户可编辑执行的脚本。假设,我们此时在该脚本文件中给某个shell命令(使用命令cat /etc/shells可以查看当前系统的可用shell命令)赋予suid权限,由于这些shell命令的所有者都默认是root的,所以我们可以直接等待定时任务的自动执行后,即可直接键入shell命令,从而弹出root权限的shell。
1.靶机环境:
(1)虚拟机Ubuntu15.04【www.webtester.com】【192.168.97.135】
(2)脚本语言环境:perl/python/php均存在
2.攻击机:
(1)虚拟机Win7【192.168.97.130】
(2)Firefox+Burpsuite+蚁剑+msfconsole
3.网络环境:
(1)VMware搭建的NAT网络
URL:http://www.moontester.com/upload.php
前提: 假设此时已经获得靶机的一个webshell,同时通过msf获得了一个meterpreter的shell。



第一步:cat /etc/crontab #查看计划任务,发现每一分钟以root身份执行一次cleanup.py脚本文件,功能是删除cleanup目录下全部文件。

附: Crontab文件的格式说明,特别需要注意的是如果没有username字段,则任务不会执行。

第二步:ls -l /tmp/cleanup.py #查看该脚本文件的权限,发现当前用户可读可写可执行。

第三步:cat /tmp/cleanup.py #查看该脚本文件内容。

第四步:cat /etc/shells #查看当前系统可用的shell命令,发现有4个命令可以调出shell

第五步:ls -l /bin/sh #发现sh其实是dash的链接,同样rbash是bash的链接,一般的shell默认使用的bash。

第六步: 使用蚁剑编辑/tmp/cleanup.py文件 #与suid漏洞联动,给/bin/dash赋予suid文件属性

第七步:ls -l /bin/dash #检查是否拥有了suid属性

第八步: cat /var/log/cron.log #查看计划任务的日志,发现确实执行了该任务(由于这个日志功能是实验完成后加的,所以时间对不上。)

第九步: dash #直接键入dash命令,从而以root身份调出shell。


第一步:su root #切换到root用户
第二步:vim /etc/cron/ #编辑/etc/cron文件,添加定时任务

第三步:vim /tmp/cleanup.py #编辑文件并保存

第四步:chmod 777 /tmp/cleanup.py #给cleanup.py脚本文件赋予777权限
图略
第五步:mkdir /home/moonteam/cleanup #创建cleanup目录
图略
第六步:echo this_is_test > /home/moonteam/cleanup/test.txt #创建待删除的测试文件

第一步:su root #切换到root用户
第二步:vim /etc/rsyslog.d/50-default.conf #编辑rsyslog文件

第三步:sudo service rsyslog restart #重启rsyslog
第四步:tail /var/log/cron.log #查看Cron日志

第五步:chmod o+r /var/log/cron.log #给其他人赋予读权限
