一、洞网资源搜索为何会成为目标的软肋?

在攻防对抗中,攻击者总能找到那些被忽视的地方作为突破口,其中互联网暴露资源便是一个重要的攻击入口。许多组织和企业在悬挂各种服务时,由于缺乏安全意识或者配置漏洞,往往会将敏感信息暴露在公开访问的网络中。这些资源可能包括但不限于:

  • 错误暴露的API接口:未授权访问的API可导致敏感数据泄漏。
  • 未保护的文件存储:S3桶或开放的FTP服务器可能包含内部文档。
  • 暴露的版本信息和配置文件:用于推断技术栈和攻击面。
  • 测试环境:开发者常将测试系统放在公网,而这些环境常常缺乏安全配置。

从攻击者视角来看,这些资源是一座未加锁的宝库,能够为后续渗透提供丰富的情报支持。接下来,我们将从一个红队的角度,分享如何通过各种技巧快速搜索目标在互联网上暴露的资源。

---

二、信息收集:从公开资源开始挖掘

任何攻击行动都始于信息收集,而搜索洞网资源的第一步就是利用公开工具与服务。以下示例将展示如何使用工具和脚本挖掘目标的暴露资源。

利用Shodan搜索暴露服务

Shodan是红队的首选工具之一,它能快速定位目标暴露的服务。下面是一段使用Python进行Shodan查询的代码:

<pre><code class="language-python">import shodan

Shodan API Key

API_KEY = &#039;你的API密钥&#039; shodan_api = shodan.Shodan(API_KEY)

查询目标域名的暴露资源

def shodan_search(domain): try: results = shodan_api.search(f&#039;hostname:{domain}&#039;) print(f&quot;发现 {len(results[&#039;matches&#039;])} 个暴露资源!&quot;)

for result in results[&#039;matches&#039;]: print(f&quot;[IP地址]: {result[&#039;ip_str&#039;]}&quot;) print(f&quot;[端口]: {result[&#039;port&#039;]}&quot;) print(f&quot;[服务信息]: {result[&#039;product&#039;]}&quot;) print(&#039;-&#039; * 50) except Exception as e: print(f&quot;Shodan查询失败:{e}&quot;)

if __name__ == &quot;__main__&quot;: target_domain = input(&quot;输入目标域名:&quot;) shodan_search(target_domain)</code></pre>

运行脚本后,通过目标域名即可定位暴露的IP地址和服务。

使用Censys挖掘证书与子域

Censys是另一个强大的资源搜索引擎,尤其适用于挖掘SSL证书及相关子域。以下是一段访问Censys API的Python代码:

<pre><code class="language-python">import requests

Censys API Credentials

UID = &#039;你的Censys UID&#039; SECRET = &#039;你的Censys SECRET&#039; BASE_URL = &#039;https://search.censys.io/api/v2&#039;

def censys_search(domain): headers = { &#039;Authorization&#039;: f&#039;Basic {UID}:{SECRET}&#039;, &#039;Content-Type&#039;: &#039;application/json&#039; }

query = f&#039;parsed.names: &quot;{domain}&quot;&#039; url = f&#039;{BASE_URL}/search/certificates&#039;

try: response = requests.post(url, json={&#039;query&#039;: query}, headers=headers) result_json = response.json()

certificates = result_json[&#039;results&#039;] print(f&quot;发现 {len(certificates)} 个证书!&quot;)

for cert in certificates: print(f&quot;[证书编号]: {cert[&#039;parsed.fingerprint_sha256&#039;]}&quot;) print(f&quot;[域名]: {cert[&#039;parsed.names&#039;]}&quot;) print(&#039;-&#039; * 50) except Exception as e: print(f&quot;Censys查询失败:{e}&quot;)

if __name__ == &quot;__main__&quot;: target_domain = input(&quot;输入目标域名:&quot;) censys_search(target_domain)</code></pre>

这段代码能帮助你快速定位目标使用的SSL证书及关联域名。

Bash脚本快速搜索公共存储桶

除了上述工具,公共存储桶(如AWS S3)的暴露也是情报收集的重要目标。以下是一个通过Bash扫描S3桶的示例:

<pre><code class="language-bash">#!/bin/bash

检查域名是否有暴露的存储桶

function check_s3_buckets { domain=$1 echo &quot;正在扫描目标域:$domain 的存储桶...&quot; aws s3 ls &quot;s3://$domain&quot; &gt; /dev/null 2&gt;&amp;1

if [ $? -eq 0 ]; then echo &quot;[发现存储桶]: s3://$domain&quot; else echo &quot;未发现暴露的存储桶。&quot; fi }

read -p &quot;输入目标域名:&quot; target check_s3_buckets $target</code></pre>

黑客示意图

运行此脚本后,能快速判断目标域名是否存在暴露的S3存储桶。

---

三、从OSINT到深度扫描:挖掘潜在资源

当公开工具无法满足需求时,攻击者往往会借助深度扫描技术挖掘更多信息。以下是一些提升扫描效果的技巧与方法。

扫描子域

Subdomain枚举是洞网资源搜索的关键步骤。推荐使用工具SubfinderAmass,二者配合可以快速发现大量子域。

Subfinder扫描示例

<pre><code class="language-bash">subfinder -d example.com -o subdomains.txt cat subdomains.txt</code></pre>

Amass扫描示例

<pre><code class="language-bash">amass enum -d example.com -o amass_subdomains.txt cat amass_subdomains.txt</code></pre>

两个工具的结果合并后,将为后续扫描提供更广泛的目标范围。

暴力破解文件目录

使用GobusterDirsearch可以快速定位目标域名的暴露目录。以下是Gobuster的使用示例:

黑客示意图

<pre><code class="language-bash">gobuster dir -u https://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o gobuster_results.txt cat gobuster_results.txt</code></pre>

---

四、绕过检测:规避安全策略的技巧

在实际操作中,攻击者需要对抗各种安全防御机制。以下是常见的规避策略:

流量伪装

绕过目标的WAF(Web应用防火墙)时,伪装流量是一个有效方法。可以通过调整User-Agent或Referer来实现:

<pre><code class="language-python">import requests

url = &quot;https://target.com&quot; headers = { &quot;User-Agent&quot;: &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64)&quot;, &quot;Referer&quot;: &quot;https://google.com&quot; }

response = requests.get(url, headers=headers) print(response.text)</code></pre>

分块扫描

如果目标有频率限制,可以通过分块扫描来避免触发防御机制。例如,将字典分为若干小文件逐个测试目录。

<pre><code class="language-bash">split -l 1000 /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt chunk_ gobuster dir -u https://example.com -w chunk_aa -o results_aa.txt</code></pre>

---

五、如何防御洞网资源暴露?

虽然本文重点是攻击者视角,但作为安全研究人员,我们也需要了解如何预防这些攻击行为。以下是几点建议:

  1. 定期扫描暴露资源:使用Shodan与Censys监控自身域名和IP。
  2. 严格配置存储桶权限:确保所有存储桶设置为私有。
  3. 加强目录安全:避免暴露敏感文件,使用防火墙限制访问。
  4. 启用日志审计:通过访问日志识别异常行为。

---

黑客示意图

六、经验分享:红队实战中的常见坑

在洞网资源搜索过程中,红队研究员常会遇到不少实际问题:

  • 数据过载:扫描出的信息量过大,推荐用jq工具过滤JSON数据。
  • 误报:部分暴露资源并不真实可用,需结合漏洞验证工具进一步确认。
  • 时间限制:公开服务通常对扫描频率有限制,建议分散任务到多个IP。

解决这些问题需要结合工具优化流程,同时保持持续学习的态度。希望本文能为你的红队行动提供新的思路与方法。

黑客示意图