天天看點

2. Information Gather

參考:

https://book.hacktricks.xyz/external-recon-methodology

https://book.hacktricks.xyz/pentesting/pentesting-web#web-tech-tricks web 資訊收集

https://github.com/redhuntlabs/Awesome-Asset-Discovery 資訊收集工具箱

主要是個人總結積累,結合網絡上多篇優秀文章。

持續改進中 ~~

難免有不當之處,懇請指正。

簡介

什麼是資訊收集? 為什麼?

收集目标一系列相關資訊。

資訊收集主要目标是為了詳細了解目标。一個複雜的系統,了解越多,就能發現更多攻擊面,攻擊面多了,存在缺陷的可能性也就大了。就跟和阿喀琉斯之踵一樣。

要收集哪些資訊?

從全局來講。分為外網資訊收集和内網資訊收集,此處暫時僅關注外網。關于内網資訊收集,後期會更新。

一般滲透測試,客戶會指定 域名或 ip。是以就從這些給定的範圍入手。

像一些 其它資訊收集方法,asn 号、favicon 同類站點、注冊人查詢 等等,在指定特定範圍時,就沒必要收集這些資訊。

開始之前,我們要了解:

  • 一個機構可以有多台伺服器,一個伺服器上一般有一個公網 ip,一個 ip 上可以有多個 web 端口 ( 多個中間件同時開啟,80 8080 443 等),一個端口可以有多個網站 ( 虛拟主機,host 頭部不同),一個網站不同目錄可以使用不同的 cms。
  • Web 滲透測試,主要就是測試網站安全性,每個網站都是可能的入侵點。是以資訊收集主要目标之一是收集到所有網站入口。

收集方法、步驟

假設一台伺服器上隻有一個公網 IP,一台伺服器上可能開放多個網站端口,一個端口可能有多個網站(虛拟主機)。可能一個伺服器上搭建多個網站,暴露一個 80 端口,根據 host 頭部區分請求轉達的目标。這個時候的不同的域名就對應不同的網站。這也是一個入口點。

通常來講,web 伺服器若未設定 cdn,則web 端口通常時 固定的 80 、443 而當設定 cdn,則可以指定其它端口。因為 域名解析隻能解析到域名所對應的 ip 資訊,無法擷取任何跟端口相關的資訊。而 cdn 回源可以指定端口。

大綱
  1. 對客戶所給的所有域名找到所有子域。

    原因:因為有可能不同子域對應不同的伺服器。

    工具:oneforall

  2. 對擷取到的所有域名,嘗試擷取 ip 。對擷取到的 ip 整合去重

    目的:擷取到目标範圍内所有暴露在公網上的 web 伺服器 ip。

    工具:腳本去重。域名解析獲得 ip,若碰到 cdn ,嘗試繞過。

  3. 對每個獲得到的 ip ,掃描其端口,探測服務。

    工具:nmap + exploit-db 或者 nessus

    更多技巧見下文。

  4. 定位到每個 web 端口,以及其上的網站域名。

    web 資訊收集,見下文。

識别服務

也可以用 shodan fofa 之類,收集端口

對每個 ip 進行端口掃描,識别第三方軟體,可以利用 nessus 。或 nmap + searchsploit

如果找到指令執行的漏洞,那就不用進行下一步了。

# ICMP 請求
nmap -PEPM -sP -n 199.66.11.0/24

# 常見的 http 端口
nmap -p80,443,8000-8100,8443 199.66.11.0/24

#udp scanner
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24

# sctp 
nmap -T4 -sY -n --open -Pn <IP/range>
           
Web 資訊收集

綜合工具:WhatWeb 、nikto

對于 web 站點,則進行進一步資訊收集。

  1. web server。

    由于前面通過端口服務探測,可以得到 web server 版本資訊,以及是否存在漏洞。

    此處進一步可以嘗試掃描其預設的敏感檔案,例如 tomcat 的manage 界面。

    例如已知 exp、或預設路徑敏感檔案。

    配置缺陷,例如支援額外 http 方法 webdav put

  2. 檢測是否存在 WAF 等相關資訊。

    可以通過 wafw00f 或惡意payload 探測。

    若有 WAF ,使用代理池、爬蟲白名單、時延等技術繞過 WAF 對探測的攔截。否則可能會影響後面的探測。

    # 代理池
    https://www.kuaidaili.com/
    https://github.com/jhao104/proxy_pool
               
  3. 收集 cms 相關資訊。

    如果目标使用的是 cms,可以嘗試 代碼審計。途徑:網絡公開的源碼,或跑網站備份檔案。

    此外 cms 的敏感檔案、預設憑證等資訊。

    # 線上識别 cms 網站
    http://whatweb.bugscaner.com/  
    https://whatcms.org/ 
               
  4. 收集 腳本語言、資料庫等資訊。可以通過 url 探測,或者常見的搭建組合猜想。
    aspx mssql windows iis
    php mysql windows/linux apache
    jsp mssql/oracle windows/linux tomcat
    javaee mysql/oracle/ windows/linux weblogic/jboos/tomcat
               
    某些腳本語言可能也存在漏洞。可以和其它網站功能結合利用。
  5. 對于網站功能,則進行相應漏洞檢測。

    重點關注:sql 注入,檔案上傳、下載下傳,代碼、指令執行,越權,登入界面跑密碼等等。

    主要關注能進行指令執行的漏洞。而像某些漏洞,例如 用戶端 xss,一般而言利用條件苛刻,不需要投入太多精力。
  6. 可以檢測的其它資訊。

    如果目标未使用 cms ,則可以嘗試 跑/爬取 目錄檔案 ,或者嘗試 使用 burp param minier 發現隐藏參數。

    工具: burp 的 scanner 功能可以爬取。dirsearch 主要用來爆破目錄、檔案。

其它

不同站點的組建方式
# 域名類站點:
	www.xiaodi8.com -> zblog
	test.xiaodi8.com -> zbzcms
	port.xiaodi8.com -> tongdaOA
	bbs.xiaodi8.com -> discuz
	
# 端口站點:
	http://101.32.62.213 -> null
	http://101.32.62.213:81 -> tongdaOA
	port.xiaodi8.com -> null
	port.xiaodi8.com:88 -> zblog

# 目錄站點:
	test.xiaodi8.com -> zbzcms
	test.xiaodi8.com/blog -> zblog
           
常見 http 40x 錯誤及繞過方法

https://book.hacktricks.xyz/pentesting/pentesting-web#403-forbidden-basic-authentication-401-unauthorized-bypass