目录
简介
这是一台Windows IoT靶机,对于第一次接触这个系统的我来说还是有点困难的。通过Google搜索nmap的结果确定该主机的操作系统类型,进而找到Windows IoT的新漏洞,利用该漏洞直接获得SYSTEM权限,但是解密user.txt和root.txt需要找到用户app和administrator的密码。
信息收集
使用nmap快速扫描目标主机端口及服务,发现开启135,5985和8080端口,操作系统为Windows,如图:
访问8080端口发现需要认证,尝试常用弱口令发现无法登录。然后使用Google搜索Microsoft-HTTPAPI/2.0 exploit发现MS15-034和权限提升漏洞,搜索Basic realm=Windows Device Portal exploit时发现8080端口为Windows设备门户页面,目标主机可能为Windows IoT设备,在Windows 设备门户官方文档发现默认凭据,如图:
但是无法使用该用户名密码登录。继续查看搜索结果发现Windows IoT Core新漏洞,该漏洞可以使攻击者可以在Windows IoT核心版设备上以SYSTEM特权运行命令。在文章链接中发现漏洞利用代码,将GitHub项目克隆到本地,使用Kali 2020.2执行漏洞利用代码报错,使用Kali 2019.4执行成功。
漏洞发现
然后利用该脚本执行命令测试漏洞是否存在,whoami被限制或不存在,但net命令可以执行,如图:
说明存在漏洞。
漏洞利用
继续测试发现wget,curl和certutil都无法执行,但powershell可以执行。使用python在本地开启80端口监听,使用常用powershell命令上传文件,如图:
执行成功,查看本地80端口监听未发现http请求,说明powershell命令执行失败,然后使用Invoke-WebRequest命令成功上传文件,如图:
但执行木马程序失败,提示与当前Windows版本不兼容,如图:
重新生成64位的木马依旧无法获得Shell,上传nc.exe也无法获得Shell,但使用64位的nc成功获得shell,如图:
使用get-childitem -path c:\ -filter user.txt -recurse -erroraction silentlycontinue -force搜索user.txt文件,如图:
查看内容发现是加密的字符串,如图:
使用Google搜索发现PSCredential为PowerShell凭据,需要在加密的设备上进行解密,文章Powershell密码加密和解密中有解密方法,如图:
使用上面的方法发现报错,如图:
在当前目录下发现hardening.txt和iot-admin.xml,
但是仍然无法破解,尝试修改app用户密码,如图:
然后尝试使用该密码登录8080端口Web服务,如图:
但是过一会就不能使用刚刚修改的密码登录了。然后使用powershell执行while(1){net user app 123456;net user administrator 123456},然后继续登录,在Processes下找到Run command,将c:\windows\temp\nc64.exe复制到c:\windows\system32下然后执行反弹Shell的命令(app用户没有权限访问C:\windows\temp目录),如图:
成功得到用户app的Shell,如图:
但是依旧无法导入凭据文件,如图:
继续使用Google搜索Powershell凭据解密的方法未找到其它不同的方法,回想起之前使用net命令修改用户密码后一段时间就不可用了,应该是存在计划任务或循环执行的程序。使用schtasks.exe查看计划任务未发现有用信息,如图:
查找Windows进程分析工具未找到命令行版本的,在GitHub找到ProcessMonitor,自行编译64位程序后上传到目标主机,运行发现隔一段时间就会运行一次ping。使用get-childitem查找Windows常见的的脚本文件,如vbs,cmd,bat,ps1,如图:
在r.bat文件中发现循环修改用户app和administrator用户密码的代码,如图:
使用该用户名和密码登录8080端口Web服务后执行解密命令即可成功获得user.txt和root.txt文件内容。
总结
如果没确定该靶机的操作系统类型就不知道会存在什么漏洞,就会一直卡在那里,在获得SYSTEM权限后还是需要花些时间研究怎么破解flag。