匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0515 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0515
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
本次講座主要介紹了網路資訊收集與封包處理的工具與技術。前半部分介紹了Shodan和Fofa這類被動資訊收集網站,示範如何搜尋網路上暴露的伺服器、網路攝影機等設備資訊,並說明其搜尋語法與使用限制。後半部分深入探討了基於Python的強大封包處理工具Scapy,從其簡易性與基本操作開始,詳細闡述了Scapy的功能、優勢、運作邏輯及使用方法。課程涵蓋了如何定義與堆疊網路協定層(如IP、TCP、ICMP、ARP)、查看與修改封包內容、以及使用send、sendp、sr、sr1等指令發送封包並接收回應。此外,還介紹了多種實用的輔助函式,如獲取網路介面資訊、產生隨機MAC/IP位址等。最後,透過取得閘道器MAC位址的實際案例,展示了Scapy的彈性與多種操作方法,並預告下午課程將深入探討TCP服務偵測與防火牆偵測的理論與實作。 === 被動資訊收集工具 === * Shodan介紹 ** 被稱為「暗黑Google」,主要收集Google不收錄的主機相關資訊,如伺服器、Locker等。 ** 擁有自己的搜尋語法,但非免費服務,價格從每月69美元到1099美元不等。 ** 未註冊會員(依賴IP)使用次數有限(約兩三次),之後會被要求付費或登錄。 ** 註冊免費帳號後,每天有10次搜尋額度。 ** 搜尋結果會分類呈現(如國家、服務類型),並列出符合條件的機器列表。 * Fofa介紹 ** 由中國開發的網路空間資產搜尋工具,功能與Shodan類似。 ** 同樣使用特定語法進行搜尋,例如尋找開放FTP服務(Port 21或20)的設備。 * 工具使用與限制 ** 講師嘗試演示搜尋FTP、遠端桌面(Port 3389)和網路攝影機,但因現場使用次數耗盡而失敗。 ** 強調使用這些工具會被記錄IP,多次嘗試後會被限制。 === Scapy封包處理工具 === * Scapy基本介紹與入門 ** Scapy是一個用Python寫的封包處理程式,核心是讓使用者自訂、偽造、發送及解碼封包,達到「只有你想不到,沒有你做不到」的靈活性。 ** 可用於網路測試、掃描、追蹤分析及網路攻擊,能替代arpspoof、nmap、hping等多種資安工具。 ** 啟動與安裝: *** 啟動指令為 sudo scapy,建議使用 sudo 以確保權限。 *** 安裝方式包括使用Kali Linux內建版、在Ubuntu上用apt安裝,或直接從官方管道安裝最新版。 * Scapy的運作與優點 ** 運作邏輯:製作封包 -> 發送封包 -> 接收封包。 ** 高度靈活性:可直接用Scapy語法構建特定修改過的封包,無需尋找現成工具。 ** 邏輯簡單:操作流程直觀。 ** 速度快:一行指令即可完成封包的製作與發送。 ** 不主動解讀封包:與Wireshark不同,Scapy只會將封包的原始值解碼後顯示,不進行額外翻譯(如告知這是Echo Reply)。 * 建立與查看封包 ** 使用變數建立封包:透過Python語法建構封包並存入變數,如 p = IP(dst="github.com")/ICMP()。 ** 查看協定欄位與內容: *** [協定名稱]().display() 或 show():列出某協定所有可用的欄位。 *** ls([協定名稱]):列出協定的欄位及其預設值。 *** [變數].show2():查看封包的詳細堆疊結構與各欄位的值。 *** 直接輸入變數名:顯示封包摘要資訊。 * 修改與發送封包 ** 修改封包:可直接修改變數封包中的欄位,如 pkttest2['IP'].dst = "192.168.1.1"。 ** 發送指令: *** send():僅發送三層(Layer 3)以上封包,二層資訊由系統自動填寫,為「發後不理」指令。 *** sendp():發送二層(Layer 2)封包,允許使用者自訂二層標頭。 *** sr():發送封包並等待接收所有回應,直到手動中斷。 *** sr1():發送一個封包並只等待接收一個回應。 *** srp() 和 srp1():對應sr()和sr1(),但用於發送二層封包。 ** 發送參數:可使用 inter(間隔)、loop(循環)、count(數量)等參數。 * Scapy的預設行為與注意事項 ** 自動填入欄位:若未指定,Scapy會填入預設值,如本機IP/MAC、相近的來源埠號、以及自動計算的校驗和,可能洩漏自身資訊。 ** 自動路由判斷:若有多個網路介面,會自動判斷並選擇路由。 ** 效能問題:因Python效能限制,大量發送封包時可能出現延遲,建議搭配Wireshark等抓包工具確認。 * Scapy的實用輔助函式 ** 網路介面資訊:getiflist() (所有介面), getifaddr('eth0') (IP位址), getifhwaddr('eth0') (MAC位址)。 ** 快速獲取MAC位址:getmacbyip("192.168.10.2") 可直接透過IP取得MAC位址。 ** 產生隨機資料: *** RandomMAC(): 產生隨機MAC位址。 *** RandomIP(): 產生隨機IP位址,可用於洪水攻擊。 *** RandShort(): 產生亂數數字,適用於TCP的Sequence Number。 *** RandNum(min, max): 產生指定範圍的隨機數字。 *** RandString(size): 產生指定長度的隨機位元組字串。 * Scapy的應用實例 ** 取得Gateway的MAC位址: *** 方法一(單行指令): sr1(ARP(op=1, pdst="192.168.10.2")),直接在指令中建構ARP請求。 *** 方法二(變數封包): 先建立ARP封包變數 ansmac = ARP(op=1, pdst="192.168.10.2"),再用 sr1(ans_mac) 發送。 ** 其他應用:收集主機存活資訊、偵測TCP/UDP服務、偵測防火牆、利用殭屍主機進行Idle Scan等,皆需基於對TCP理論的深刻理解。 [[檔案:2026-0515-01.png|800px]] === 使用 Scapy 進行 ARP 掃描(區域網路) === * 封包構造:Ether 目的廣播 FF:FF:FF:FF:FF:FF;ARP op=1,pdst 為字串形式的目標 IP 範圍。ARP 僅適用 L2,無法跨網段。 * 目標範圍:以變數 target 使用 net 表示,如 192.168.10.1–100。 * 發送與等待:srp 批量發送;timeout(區網建議 1s)、inter(示範 100ms)、verbose 可關閉;回應容器 ans/unans,以 ans.summary() 快速列出存活主機。 * 回應解讀:有機器且開機會回 ARP 回覆(op=2);無機器/關機無回覆;示範辨識 192.168.10.2、192.168.10.138。 === 使用 Scapy 進行 ICMP Echo(Ping)掃描(外部網段) === * 封包構造:IP 目標為 CIDR 範圍(168.95.1.0/24),ICMP type=8, code=0,可攜帶自訂 data。 * 發送與等待:sr;timeout 建議 1s;inter 約 100ms,254 台約 20 多秒;可用 Wireshark觀察。 * 回應情境:回 Echo Reply(type=0)則確定目標可達;無回應可能是關機、IP錯或防火牆丟棄。示範回應主機含 .1、.20、.190、.192、.254。 === 以 TCP 三方交握原理進行服務探測 === * 判讀邏輯:送 SYN 至目標 dport,收 SYN-ACK 判定服務開啟;收 RST 判定未開(防火牆例外);無回應可能為防火牆靜默。 * 埠位範例:21/FTP、22/SSH、53/DNS(亦可 TCP)、80/HTTP、443/HTTPS、8080/管理後台、5901/VNC、33669(示例)。 * 封包設定:IP dst=target;TCP dport=清單,sport可自訂但不建議固定以免異常;觀察 SYN-ACK/RST。 * 逾時與間隔:timeout 約 2s;inter 100–200ms,避免 burst 引人注意;可先以已知開放埠(如80/443)校準。 === 防火牆偵測與 Nmap 判讀(TCP/UDP/ICMP) === * TCP ACK 探測:對目標埠送 ACK(未建立連線的異常 ACK)。常見回應: ** RST:多為無防火牆的堆疊反應(非絕對)。 ** ICMP Type 3 Code 1/2/3/9/10/13:可確定有防火牆(Code13為管制)。 ** 靜默:可能有防火牆或策略丟棄。 * UDP 探測與複雜性: ** 無服務、無防火牆:ICMP Type 3/Code 3(Port Unreachable)。 ** 有服務且資料正確:回應(如 DNS 回覆)。 ** 有服務但資料錯或有防火牆:常見不回應,與其他情境重疊,需多次、不同 payload 驗證。 * Nmap 標註邏輯:Open(正面回應/服務存在)、Closed(一致 RST 或 ICMP Port Unreachable)、Filtered(ICMP 管制或長時間靜默)。常以多機制綜合判斷。 === 殭屍掃描(Idle Scan)原理與操作 === * 核心概念:不控制殭屍,以其 IP ID 遞增作側信道判斷目標服務是否開啟。 * 時序封包: 1. PKTZ→殭屍:送 SA(SYN/ACK)取得殭屍 RST 與 IP ID 基準。 2. PKTK→目標:偽造來源為殭屍,送 SYN(或 SA)至目標服務(例 22/SSH),誘使目標回應殭屍。 3. PKTZ→殭屍:再次送 SA 讀取殭屍回應 IP ID。 * 判斷規則:加1=服務未開;加2=服務開啟(殭屍多一次回應);加3以上=背景流量或節奏失衡需重試。 * 環境與限制:殭屍防火牆須關閉、背景流量低;Windows 常較適合作殭屍;部分 Linux 的 IP ID 策略使加1/加2難分,需更換殭屍或改法。 * 節奏控制:程式化 sleep 約 0.1s;人工鍵入易導致加3,建議自動化。 === 掃描節奏、時間估算與風險禮節 === * 時間估算: ** ARP:inter=100ms、100 目標,理論排隊約 10s,加最後 timeout 1s,總約 11s。 ** ICMP:inter=100ms、254 目標,理論約 25.4s,實測約 20 多秒。 * 參數取捨:inter 越小越快但引人注意;timeout 過大線性增長。 * 禮節與風險:外網掃描速率保守、避免敏感結果外傳;固定 sport、burst 行為易被 IDS/IPS 偵測。 === 觀察與驗證、雲端與 Web 安全補充 === * 回應容器與輸出:Scapy ans/unans,ans.summary() 快速檢視;搭配 Wireshark 擷取驗證。 * 雲端安全群組:外層存取控制決定對外開放埠,主機防火牆常預設關閉,需審慎配置。 * Web 目錄列出風險:未關閉 index of 造成檔案裸露;以「index of + 關鍵字」可發現大量暴露資源。 * 監視器與遠端桌面暴露:公開搜尋平台可見畫面或登入介面,弱密碼風險高;建議更改埠、強密碼與多因子。
返回到「
緯育 2026-0515
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌