← 返回信息流
AI 资讯Hacker News·2 小时前

戏弄IIS服务器取乐竟获刑

原标题:Humiliating IIS servers for fun and jail time

速览

有人通过戏弄IIS服务器获取乐趣,最终面临法律制裁。

AI 深度解读

羞辱 IIS 服务器:为了乐趣与牢狱之灾

背景

在网络安全领域,IIS(Internet Information Services)作为微软推出的 Web 服务器软件,长期因其配置不当和安全漏洞而成为渗透测试和漏洞赏金猎人(Bug Bounty Hunters)眼中的“肥肉”。尽管 IIS 在企业环境中广泛使用,但其历史遗留问题、复杂的配置选项以及对旧版协议的支持,使其往往成为攻击者的首选目标。

本文源自 Hacker News 社区的一篇技术分享,作者以幽默且略带挑衅的口吻(标题译为“羞辱 IIS 服务器:为了乐趣与牢狱之灾”),详细阐述了在漏洞赏金活动中如何系统性地发现、侦察并利用 IIS 服务器。文章不仅涵盖了从 Shodan 搜索到 Google Dorking 的被动侦察手段,还深入探讨了 HTTPAPI 2.0 404 错误的利用、IIS 8.3 短文件名枚举(Tilde Enumeration)的高级技巧,以及如何利用 LLM、GitHub 搜索和 Google BigQuery 等现代工具来破解短文件名对应的真实文件名。

核心内容

1. 寻找 IIS 服务器:从被动侦察开始

在接触目标之前,利用现有的互联网索引数据是最高效的方法。

  • Shodan 搜索引擎技巧: 利用 Shodan 的高级查询语法,可以精准定位与目标组织相关的 IIS 服务器。例如:

    • ssl:"target.com" http.title:"IIS":查找 SSL 证书或页面标题包含 "IIS" 的服务器。
    • ssl.cert.subject.CN:"target.com" http.title:"IIS":通过证书通用名称匹配。
    • org:"target" http.title:"IIS":通过组织名称匹配。 这些查询有助于发现被遗忘的测试服务器、管理面板或内部工具。此外,还可以结合 Fofa、Censys、Netlas 等平台进行交叉验证。
  • Google Dorking(Google 黑客语法): 利用 Google 的索引能力,通过特定的搜索指令定位 IIS 痕迹:

    • site:target.com intitle:"IIS Windows Server":查找标题中包含 IIS 字样的页面。
    • site:target.com inurl:aspnet_clientaspnet_client 文件夹是 IIS 运行 ASP.NET 应用的典型特征。
    • site:target.com ext:aspx | ext:ashx | ext:asmx:查找 ASP.NET 相关扩展名的页面。
    • site:target.com intext:"Microsoft-IIS" | intext:"X-Powered-By: ASP.NET":通过响应内容或头部特征匹配。
    • site:target.com inurl:_vti_bin:这是 FrontPage 扩展的典型路径,强烈暗示 IIS 的存在。
    • 通配符技巧:使用 site:*.target.comsite:*.*.target.com 可以挖掘出深层嵌套的子域名,这些子域名往往包含开发或测试环境,容易被常规枚举遗漏。
  • 主动技术指纹识别: 通过发送原始 HTTP 请求检查响应头是最直接的确认方式:

    • 使用 ncopenssl s_client 发送请求,观察响应头中是否包含 Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET
    • 对于大规模扫描,推荐使用 httpxNuclei 等工具批量检测并过滤 IIS 目标。

2. 发现 IIS 后的初步侦察

一旦确认目标为 IIS 服务器,首要任务是收集尽可能多的信息,尤其是那些服务器“免费”泄露的信息。

  • 内部 IP 地址泄露: 在某些 IIS 配置(特别是 Exchange 或 OWA 前端)中,发送 HTTP/1.0 请求可能会触发服务器返回内部 IP 地址。
    • 示例:curl -v --http1.0 http://example.com
    • 响应中可能出现 Location: https://192.168.5.237/owa/ 以及 X-FEServer: NHEXCHANGE2016 头部。
    • 这不仅泄露了内部网络结构,还揭示了后端 Exchange 服务器的内部主机名,为后续攻击提供线索。

3. 利用阶段(Pwn Time)

Nuclei 模板自动化

在手动侦察的同时,可以使用 Nuclei 工具批量扫描已知的 IIS 漏洞和配置错误。

  • 命令示例:nuclei -l iis-targets.txt -tags microsoft,windows,asp,aspx,iis,azure,config,exposure -silent
  • 这能自动化处理繁琐的已知漏洞检测,让攻击者专注于更复杂的逻辑漏洞。

破解 HTTPAPI 2.0 404 错误

许多 IIS 服务器在收到非绑定域名的请求时,会返回通用的 HTTPAPI 2.0 404 错误。这并不意味着服务器为空,而是表明请求的 Host 头与服务器绑定的虚拟主机不匹配。

  • 解决方案 1:检查 SSL 证书。通过浏览器访问或查看证书详情,获取 SubjectSAN 字段中的主机名。
  • 解决方案 2:暴力破解虚拟主机。使用 ffuf 等工具,结合 Host 头字典进行暴力破解。
    • 命令示例:ffuf -u https://TARGET_IP/ -H "Host: FUZZ.target.com" -w vhosts.txt -fs 0
    • 一旦命中正确的主机名,服务器将返回真实的应用程序界面。

IIS 波浪号(Tilde)枚举:被低估的利器

IIS 继承自 DOS 的 8.3 文件名格式,允许通过短文件名(Short Name)枚举文件和目录,即使目录列表功能已禁用。

  • 工具shortscan 或 Burp Suite 的 IIS Tilde Enumeration Scanner。
  • 输出示例WEB~1.CON (对应 web.config),SITEBA~1.ZIP (对应某个以 siteba 开头的 zip 文件)。
  • 核心挑战:如何将短文件名(如 SITEBA~1.ZIP)还原为完整的真实文件名?

4. 还原短文件名的现代技巧

这是文章的核心亮点,展示了如何利用现代数据源解决传统枚举难题。

  • 使用 LLM(大语言模型): 通过提示词让 LLM 根据短文件名片段生成可能的完整文件名列表。

    • 提示词示例:“基于片段 SITEBA,生成可能的完整文件名,仅包含字母数字字符,确保片段是完整文件名的子串。”
    • 优点:速度快,能生成创意性猜测。
  • GitHub Dorking(代码搜索): GitHub 是一个巨大的真实文件名数据库。通过搜索以短文件名前缀开头且扩展名匹配的文件,可以找到现实世界中存在的文件名。

    • 手动搜索:在 GitHub 代码搜索中使用 path:/siteba*.zip 等语法。
    • 自动化工具
      • GSNW (GitHub Short Name Wordlist):通过脚本抓取 GitHub 搜索结果生成词表。
      • GitHub-IIS-Shortname-Generator:专门用于生成短文件名对应的真实文件名列表。
      • shortnameguesser:结合多种数据源生成针对性词表。
  • 使用 Google BigQuery: 这是一种更高级、更彻底的方法,灵感来自 Assetnote 的研究。

    • 原理:利用 Google BigQuery 公开的 GitHub 数据集,在整个 GitHub 代码库中搜索匹配短文件名模式的文件路径。
    • 查询示例
      SELECT DISTINCT path
      FROM `bigquery-public-data.github_repos.files`
      WHERE REGEXP_CONTAINS(path, r'(?
      
查看原文 →mll.sh