SickOS靶机渗透
1.主机发现
netdiscover -i eth0 -r 192.168.249.0/24
扫描存活主机时忽略1.2.254这种边缘IP
2.扫描端口
发现开启了22,80端口
3.扫描端口服务
上了一下网站,发现并没有什么可用信息
dirb查找网站目录
4.查找网站目录
发现test路径下有一些文件,考虑是否可以上传文件脚本
尝试看看此网页有没有PUT方法
PUT,DELETE这些方法最初是用来进行文件管理的。然而一些web服务器保留了最初的配置,依然支持这些方法。如此一来,你就可以任意修改或删除服务器文件系统中的文件了。显然,如果启用了这些方法,你就容易遭到文件上传漏洞的攻击。另外,如果你有业务需求必须启用这些方法,那么应该严格限制文件访问权限。OPTIONS方法,这是一个判断方法,返回消息主要用于调试或者检查服务器其他方法是否启用。TRACE方法,这个方法比较出乎意料,它是响应体中返回的判断方法,即整个HTTP请求。这包括请求体,也包括请求头,比如cookies和认证头等
Burp抓包修改GET为OPTIONS
发现有PUT
在请求头中输入PUT /test/hahaha.php HTTP/1.1,这将会通过PUT请求上传hahaha.php文件到test目录下,然后在请求体中粘贴一个调用系统函数执行命令的脚本:
<?php
system($_GET[‘cmd’]);
?>
注意:代码存放的文件的名字是必须的参数——hahaha.php
修改GET为PUT
回包可以看到响应状态码是201,这就意味着包含恶意代码的hahaha.php文件已经成功上传
在网页上查看上传是否成功
在网址上输入cmd命令
成功执行
5.开始攻击
现在上传一下反弹shell的脚本
Kali开启1234端口监听,点击此文件或者用刚才的url cmd执行,
没监听到
更换一个php脚本
Kali开启监听,访问oneshell.php
没有监听到
原因可能是没有连接上4444端口,iptables防火墙可能拦下了,
上传一句话木马用菜刀尝试连接
连接成功
cd 到 /tmp/
使用wget远程获取反弹shell的脚本
不成功,执行失败
试试在burp上上传那个可长的getshell.php
执行失败,很明显是端口的问题了,
换端口,尝试常用端口443,4444,139……
点击改了端口的getshell.php文件,kali监听到了,获取到shell
python -c 'import pty;pty.spawn("/bin/bash")'编译一下
6.提权
先考虑用脏牛提权
wget远程获取执行失败
直接用PUT方法上传dirty.c
cd 到网站目录下找到dirty.c编译,执行
…靶机崩了,重启,换方法
查找靶机系统版本漏洞
lsb_release -a
chkrootkit 0.49(注意版本) 小于等于0.49版的chrootkit有本地提权漏洞,漏洞原理是/tmp/update文件会定期以root权限执行操作
kali上找到此漏洞
如图可以看到漏洞内容
用普通用户权限创建一个update文件,将www-data添加到 /etc/sudoers 列表(成为sudo组成员)
给他最高权限 777
chmod 777 update
再su root
提权成功,此时用管理员权限反弹的shell,拿到的就是最高权限。