網絡嗅探與協議分析


kali視頻學習請看

http://www.cnblogs.com/lidong20179210/p/8909569.html

網絡嗅探與協議分析

  • 除了從遠程網絡發起踩點、掃描與查點來收集目標網絡訂單信息情報外,攻擊者若是已經在目標網絡局域網中找到了立足點,他們就能夠在局域網實現網絡嗅探,監聽網絡中正在傳輸的原始數據包,並經過協議分析技術來重構解析出網絡中傳輸的敏感信息(好比用戶的帳戶與密碼)。
  • 網絡嗅探與協議分析爲關攻擊者進行網絡協議攻擊、口令破解與系統入侵提供了重要的信息來源途徑,做爲被動攻擊技術,很難被察覺,對局域網安全構成了持久的安全威脅。
  • 而對於防護者來說,嗅探與協議分析能夠幫助網絡管理員對網絡的運行狀態、傳輸信息進行實時監控,也是網絡入侵檢測系統、網絡流監控與管理系統等安全管理設備的技術基石。

Tcpdump嗅探器

詳細請見我博文html

網絡協議分析工具wireshark

捕包分析以及口令破解,請看個人博文算法

實踐:取證分析實踐:解碼網絡掃描

案例分析挑戰內容:

此次案例分析挑戰是徹底爲剛入門的安全分析師準備的,目標是分析由南佛羅里達蜜網項目組成員人爲構造的從因特網到一臺蜜罐主機的 5 次不一樣類型端口掃描。 須要指出的是,此次案例分析中的端口掃描流量並非從「野外」捕獲的, 而是特地構造的, 此次入門級的案例分析挑戰的目的徹底是爲了提供學習和訓練的機會。網絡入侵檢測器-snort 捕獲了每次掃描的流量並存入了一個 tcpdump 格式二進制網絡日誌文件中。 此次挑戰的任務就是分析這個文件,並回答所列的問題。經過此次挑戰,你可以學習到數據包抓取技術的使用方法, 以及使用數據包解碼工具 tcpdump 或 ethereal(現已更名爲 Wireshark)分析網絡數據包的技能。

問題:數據庫

  • 1.什麼是二進制網絡日誌文件?這種文件是如何生成的?
  • 2.什麼是 MD5?它提供什麼做用?
  • 3.攻擊主機的 IP 地址是什麼?
  • 4.網絡掃描的目標 IP 地址是什麼?
  • 5.本次案例中是使用了哪一個掃描工具發起這些端口掃描?你是如何肯定的?
  • 6.什麼是端口掃描,端口掃描的目的是什麼?
  • 7.本次案例中使用了5種不一樣類型的掃描方式,請將這 5 種方法標識出來,並描述其工做原理。
  • 8.在蜜罐主機上哪些端口被發現是開放的?
  • 9.額外獎勵問題:攻擊主機的操做系統是什麼?
  • 分析文件包見個人碼雲 +

分析過程和問題解答:

0. 準備工做

- 使用"wget"指令下載待分析的二進制記錄文件壓縮包:
 #wget http://www.honeynet.org/scans/scan23/sotm23.tar.gz
- 使用"md5sum"指令驗證文件的完整性:
  #md5sum sotm23.tar.gz  9d28c5ee9ce7b77e3099a07ad303811f sotm23.tar.gz查看輸出結果中的MD5值與公佈的MD5值是否一致,如不一致,說明文件完整性遭破壞。使用"tar"指令解壓縮下載的壓縮文件包,並檢查解壓後的二進制記錄文件的完整性
-  #tar zxf sotm23.tar.gz
-  #ll -rw------- 1 root root 11998444 Aug 27 2002 0826@19-snort.log
-  -rw-r--r-- 1 root root 52 Aug 27 2002 0826@19-snort.log.md5
-  #md5sum 0826@19-snort.log 0ce142f18c23d9ab00f992a57ad097d4 0826@19-snort.log
-  #cat 0826@19-snort.log.md5  0ce142f18c23d9ab00f992a57ad097d4 0826@19-snort.log
  • 至此,咱們已經驗證了待分析文件的完整性,如今能夠開始面對挑戰。

防護策略:

在下載軟件或其餘文件後,對其進行完整性驗證,即覈對下載文件的 MD5 值和該文件在權威發佈站點上的 MD5 值是否一致,能夠避免遭受特洛伊木馬的威脅,建議可以培養並保持這樣的好習慣。安全

1. 什麼是二進制網絡日誌文件?這種文件是如何生成的?

二進制網絡日誌文件是對’0’和’1’組成的網絡二進制數據進行捕獲和記錄的文件格式,二進制網絡日誌一般被稱爲原始流量捕獲,由於咱們以流量的最原始存在形式(’0’和’1’)捕獲和記錄數據包內容。網絡流量能夠在混雜模式的網絡接口、共享式集線器、TAP分路器、路由器或者交換機的SPAN鏡像端口進行二進制捕獲。
    在類 Unix平臺上,從網絡上捕獲流量的底層功能模塊是Libpcap網絡數據包捕獲庫,做爲一個標準庫,Libpcap被tcpdump、snort、wireshark(ethereal)等衆多工具所使用。Libpcap庫的 Windows 平臺版本稱爲 Winpcap, winpcap使得咱們能夠在 Windows 環境下運行 snort、 wireshark(ethereal)等工具。

- 使用 snort 工具生成二進制記錄文件的指令格式以下:
- #snort -l /var/log/snort -b
- 讀取二進制記錄文件的指令格式爲:
- #snort -vde -r snort.log
- 使用 tcpdump工具生成和讀取二進制記錄文件的指令格式分別爲:
- #tcpdump -w log
- #tcpdump -r log
- 使用 wireshark(ethereal)工具生成和讀取二進制記錄文件的指令格式分別爲:
- #tshark(tethereal) -w log
- #tshark(tethereal) -r log
- 你也可使用wireshark(ethereal)工具的圖形界面生成和讀取二進制記錄文件。

工具簡介:

  • [x] tcpdump (http://www.tcpdump.org/)是類 UNIX 平臺下經典的網絡數據包抓取和分析工具。
  • [x] snort (http://www.snort.org/)是最著名的開源網絡入侵檢測系統,由MartinRoesch從1998年開始開發,目前已發展到2.6版本,成爲入侵檢測領域的事實標準。 >Snort 工具也具備基本的網絡數據包抓取功能。
  • [x] wireshark(最流行的開源網絡數據包分析工具):原名ethereal(http://www.ethereal.com/),由 Gerald Combs等人開發,後因爲 2006年8月Gerald Combs離開 NIS公司加入CaceTech公司,沒有與NIS公司(ethereal商標的全部者)達成協議,所以將ethereal更名爲wiresharkhttp://www.wireshark.org/。

2. 什麼是 MD5?它提供什麼做用?

從 RFC1321 引用:MD5算法以任意長度的消息做爲輸入,產生輸入消息的一個128bit的"指紋"或稱"消息摘要"。根據猜測,產生擁有一樣摘要的兩個不一樣消息在計算上是不可行的,一樣產生一個具備預先給出摘要的消息在計算上也是不可行的,MD5算法主要應用於數字簽名。 MD5 算法的做用是爲保證消息、數據、文件的完整性提供了一個安全的單向哈希函數。在類Unix平臺下提供 MD5 算法計算的指令是"md5sum"。

3. 攻擊主機的 IP 地址是什麼?

4. 網絡掃描的目標 IP 地址是什麼?

- 使用 wireshark打開待分析的二進制記錄文件。

- 圖 1 使用 wireshark 

- 軟件打開待分析二進制記錄文件
- 使用 Statistics(統計)菜單項中的 Conversation List(會話列表),選擇 IPv4,獲得以下的分析結果:

- 圖 2 待分析二進制記錄文件進行IPv4會話列表的統計結果從圖中咱們能夠看出,只有192.168.0.9和192.168.0.99之間有大量的雙向的網絡數據包,所以可初步肯定二者爲攻擊主機IP和目標主機IP。從數據包內容看,全部的響應數據包(如TCP /RST 包、 SYN/ACK 包、 ICMP Echo Reply 包等)均是從 192.168.0.99 發出, 能夠肯定192.168.0.99是被掃描的目標主機。而請求數據包(如 TCP SYN包、ICMP Echo包等)則是從192.168.0.{1, 9, 199,254}發起。而且從圖中的統計看出沒有從192.168.0.99到 192.168.0.{1,199,254}的響應包,所以能夠肯定 192.168.0.9是攻擊主機的IP地址。而從192.168.0.{1, 199, 254}只有發往192.168.0.99的請求包,而沒有響應包,能夠初步推測從192.168.0.{1,199,254}發出的請求包是僞造源IP數據包,這一推測將在問題5解答中進行證明。

5. 本次案例中是使用了哪一個掃描工具發起這些端口掃描?你是如何肯定的?

咱們使用 Snort工具對二進制記錄文件進行入侵檢測,肯定攻擊者使用的掃描工具。Snort工具的安裝下載得到snort 最新的源碼發行包,在Snort網站上註冊並獲取最新的規則文件包
# tar -zxf snort-2.6.1.4.tar.gz
# cd snort-2.6.1.4
# ./configure
# make
# cp ../ snortrules-snapshot-CURRENT.tar.gz .
# tar -zxf snortrules-snapshot-CURRENT.tar.gz
# snort -r ../0826@19-snort.log -c ./etc/snort.conf

報警結果顯示以下報警信息,從這些報警信息中能夠確認本案例中使用了由 Fyodor 所開發的著名開源網絡掃描器 nmap(http://insecure.org/nmap/)。網絡

[**][1:469:4] ICMP PING NMAP [**]ssh

6. 什麼是端口掃描,端口掃描的目的是什麼?

端口掃描就是鏈接目標主機的TCP和UDP端口,肯定哪些服務正在運行即處於監聽狀態的過程。端口掃描的目的是肯定一個目標主機上所開放的網絡端口和網絡服務端口掃描目前被防護者和攻擊者都普遍使用。

 對於防護者,使用端口掃描可讓他們更加了解所管理的網絡情況,找出沒有必要開放的端口並關閉,這是保證業務網絡安全的第一步。

  對於攻擊者而言,使用端口掃描的目的是找出可供進一步攻擊的網絡服務,同時結合操做系統探測技術也能夠肯定目標主機所安裝的操做系統版本。開放網絡服務和操做系統版本信息爲攻擊者提供了破解攻擊的目標,使其更容易找出進入目標主機的漏洞路徑。

7. 本次案例中使用了5種不一樣類型的掃描方式,請將這 5 種方法標識出來,並描述其工做原理。

- [1] 關鍵步驟-肯定各次掃描的邊界第一次掃描產生了大量的 TCP SYN包和關閉端口反饋的RST包,咱們須要找出各次掃描的範圍才能進行對後續掃描過程的分析,在 wireshark中人工地找出各次掃描的起始和終結位置是比較累眼神的,咱們仍是想些辦法出來,以避免折磨咱們本來就視疲勞的「心靈窗口」.

- [2] 因爲咱們已經肯定了這些掃描是由 nmap 所發起的,而 nmap 在發起端口掃描以前老是先經過 Ping掃描和針對 80端口的探測肯定目標主機是否活躍,所以咱們能夠經過找出 ICMP Echo包的序號快速地劃分出各次掃描的範圍。

- [3] 在wireshark中篩選條件icmp.type == 8
1 0.000000 192.168.0.9 -> 192.168.0.99 ICMP Echo (ping) request
148007 1274.602300 192.168.0.9 -> 192.168.0.99 ICMP Echo (ping) request
150753 1407.256096 192.168.0.9 -> 192.168.0.99 ICMP Echo (ping) request
155987 1602.084879 192.168.0.1 -> 192.168.0.99 ICMP Echo (ping) request
155988 1602.084912 192.168.0.254 -> 192.168.0.99 ICMP Echo (ping) request
155989 1602.084941 192.168.0.199 -> 192.168.0.99 ICMP Echo (ping) request
155990 1602.084976 192.168.0.199 -> 192.168.0.99 ICMP Echo (ping) request

從 ICMP Echo 包結果看,咱們已經肯定出4次掃描的起始點(注:後四個ICMPEcho包的序號和時間連續,顯然是屬於同一次掃描),與案例分析給出的5次掃描事件還缺乏一個,顯然某次掃描屏蔽了端口掃描前的主機活躍探測。tcp

- 結合人爲在wireshark工具上對各次掃描範圍的確認,咱們能夠肯定出這5次掃描的各自範圍、包數量和持續時間:
掃描事件 起始序號 結束序號 包數量 開始時間 結束時間 持續時間(秒)
第一次掃描 1 148006 48006 0 1245.35 1245.35
第二次掃描 148007 150752 2746 1274.6 1406.67 132.07
第三次掃描 150753 153250   2498 1407.26 1491.47 84.21
第四次掃描 153237 155986   2749 1489.56 1597.67 108.11
第五次掃描 155987 163832   7846 1602.08 1661.98  59.9

注:第三次掃描和第四次掃描的數據包範圍有交叉。函數

Scan #1: TCP SYN 掃描工具

  • 使用 wireshark查看待分析二進制記錄文件,首先咱們能夠看到從攻擊主機到目標主機的一對 ICMP Echo 和 ICMP Echo Reply 數據包,顯然是在端口掃描前進行 >Ping 掃描肯定目標主機是否活躍,另外第 3 個發往 80 端口的 ACK 包也是另外一種經過查看目標端口 80 端口是否開放肯定其是否活躍的方法。而後從第 5 個數據包開始的就是從攻擊主機192.168.0.9到目標主機 192.168.0.99的SYN包掃描。經過設置過濾規則"frame.number < 148007 andtcp.flags != 0x2 and tcp.flags != 0x14"能夠查看除了SYN包和非開發端口響應的 RST/ACK包外的其餘數據包,在結果中能夠發現攻擊主機對目標端口上開放的端口進一步發送 RST 包斷開鏈接,所以咱們能夠肯定第一次掃描屬於 TCP SYN 掃描。
  • 對照 nmap 的使用手冊,咱們能夠發現 nmap 的-sS 選項表明了選擇 TCP SYN 掃描方式,而第一次掃描過程當中涉及的目標端口包括了從 1 到 65535 的所有端口號,所以能夠推斷髮起第一次掃描的指令是"# nmap -sS -p 1-65535 192.168.0.99"。

攻擊技術內幕:

Ping 掃描:
  • 目的爲檢查目標主機是否活躍(active), 傳統的 ping 掃描是經過向指定的目標主機發送 ICMP 回射請求報文(ICMP echo, icmp.type=8),並期待活躍主機反饋的 ICMP 回射應答報文(ICMP echo reply, icmp.type=0),根據是否收到應答報文肯定目標主機是否活躍。同時掃描大量的 IP 地址段,以發現某個 IP 地址是否綁定活躍主機的網絡掃描稱爲 Ping 掃射。學習

  • 因爲在某些實際環境中,防火牆一般配置爲阻斷外部進入的 ICMP 報文,所以攻擊者也常使用向目標主機的 80 等經常使用應用協議端口(防火牆一般會放行) 發送 ACK 等報文,活躍主機將返回 SYN/ACK 或 RST 包,非活躍主機則無應答,從而可繞過防火牆探測目標主機是否活躍,這種 Ping 掃描方式稱爲 ACK Ping 掃描。

  • 其餘的 Ping 掃描方式還包括 SYN Ping 掃描, UDP Ping 掃描等。 Nmap 工具-sP 選項爲選擇 Ping 掃描功能,缺省在每次掃描前都會執行,並行使用 ICMP Ping 掃描和 ACK Ping 掃描兩種方式。

端口掃描:
  • 端口掃描是鏈接到目標主機的 TCP 和 UDP 端口上,肯定哪些服務正在運行即處於監聽狀態的過程,標識監聽狀態端口對於肯定目標主機操做系統和應用程序類型相當重要,攻擊者經過攻擊監聽活動服務上的已知安全漏洞或配置不當可遠程取得目標主機的訪問權。
TCP 鏈接掃描:
  • 這是最基本的 TCP 掃描方式,經過操做系統提供的 connect()系統調用向目標主機上的端口發起網絡鏈接,若是目標端口開放, connect()調用將成功,不然調用失敗。

  • 這種掃描方式最大的優點在於發起者並不須要任何特殊權限,在類 Unix 平臺下的任意用戶均可以使用。

  • 可是這種掃描方式是很容易檢測的,由於目標主機的日誌中會留下一大堆的鏈接和錯誤信息。

  • TCP 鏈接掃描是非特權用戶的缺省掃描方式。

TCP SYN 掃描:
  • 一般也被稱爲半開掃描,由於掃描主機不會完成完整的 TCP 三次握手鍊接:

  • 首先像打開一個真正的網絡鏈接同樣發送 SYN 請求包;

  • 當目標主機反饋一個 SYN|ACK包,就代表目標端口是開放的,而當目標端口關閉時,則將反饋一個 RST 包;

  • 當掃描主機接收到 SYN|ACK 包後,將會當即發送一個 RST 包關閉這個鏈接(其實是由掃描主機操做系統內核自動完成的)。

  • 半開掃描方式的主要優勢在於極少數站點會記錄未創建的網絡鏈接,所以也就不會發現被掃描。

  • 但不幸的是,發起半開掃描須要根用戶權限構建定製的 SYN 包。TCP SYN 掃描是特權用戶缺省的掃描方式。

Scan #2: NULL 掃描+操做系統探測

  • 從第二次掃描開始的數據包中能夠發現,攻擊主機發出的是沒有設置任何標誌位的 TCP包,即 Null 包,對照 nmap 用戶手冊,能夠確認是由-sN 選項所指定的 Null 掃描方式;

  • 進一步經過設置過濾器

"frame.number > 148006 and frame.number < 150753 and tcp and ip.src !=192.168.0.99"
  • 過濾出第二次掃描中發往目標主機的 TCP 包,從中能夠發現該次掃描的目標端口列表與/etc/services 中列出的基本一致,而 nmap 工具的-F 選項指定使用快速掃描模式,即只掃描 services 文件中所列出的端口,所以能夠確認第二次掃描使用了-F 快速掃描模式;

  • 最後咱們能夠在第二次掃描的最後階段(數據包序號 150639 至 150752)發現以下表所示的一系列網絡探測,主要針對 ssh、 TCP 和 UDP 的 1 端口,並使用了大量構造的標誌位,以觸發不一樣的響應包,並嘗試從響應包中識別目標主機的操做系統信息。

nmap 的-O 選項是用於經過 TCP/IP 協議棧"指紋"識別進行遠程主機的操做系統探測,具體實現機制是經過構造一些特殊的數據包發送給目標主機,而後收集反饋包中存在的一些微妙"指紋"(不一樣操做系統網絡協議棧實現上的差別),並與一個已知操做系統"指紋"數據庫(nmap-os-fingerprints 文件)進行比較,從而識別目標主機的操做系統版本。
  • 對照 nmap 對操做系統版本探測的實現機制,不難確認這些流量是由其-O 選項所觸發的。綜合以上分析,發起第二次掃描的指令是"# nmap -sN -F -O 192.168.0.99"
協議     端口  標誌位
TCP    ssh 22  SYN, ECN
TCP    ssh 22  Null
TCP    ssh 22  FIN, SYN, PSH, URG
TCP    ssh 22  ACK
TCP    ssh 22  RST
TCP    1   SYN
TCP    1   ACK
TCP    1   FIN, PSH, URG
UDP    1   
TCP    ssh 22  ……

Scan #3: Xmas 掃描+操做系統探測

利用一樣的分析方法,能夠肯定第三次掃描的發起指令

"# nmap -sX -p 1-1024 -O192.168.0.99"。

攻擊技術內幕:

隱蔽 FIN、 Null、 Xmas 掃描方式:

- 在某些場景下 SYN 掃描也並不是足夠隱蔽,某些防火牆和數據包過濾器會監控發往受限端口的 SYN 包,一些軟件如 Synlogger 和Courtney 能夠檢測出 SYN 掃描。而這些更加隱蔽的掃描方式,則可能躲避檢測,從而完成掃描的目的。 
- FIN掃描方式使用只帶 FIN 標誌位的 TCP 包, Null 掃描方式使用全部 TCP 標誌位都設置爲 0 的的 TCP 包, 
- Xmas 掃描方式則使用帶 FIN、 PSH、 URG 標誌位的 TCP 包,
- 這三種標誌位組合方式在標準的 TCP 協議規範中並無定義,而開放的端口接收到僞造的 TCP 包,按照規範應直接丟棄,而不向發送方進行任何反饋,而對於關閉的端口則反饋一個 RST 包,
     所以根據這兩種不一樣的反饋方式,就能夠肯定目標端口是否開放。因爲 Windows、 Cisco、 BSDI、HP/UX、 MVS 和 IRIX 系統在協議棧實現上並無聽從規範,開放端口對這些僞造的 TCP 包,也會發送 RST 包,所以這三種掃描方式沒法適用於這些系統。

操做系統辨識技術:

操做系統辨識是經過各類不一樣操做系統類型和版本實現機制上的差別, 經過特定方法以肯定目標主機所安裝的操做系統類型和版本的技術手段,明確操做系統類型和版本是進一步進行安全漏洞發現和滲透攻擊的必要前提。各類不一樣操做系統類型和版本在網絡角度上的差別體如今: 開放端口的不一樣、運行的應用服務類型的不一樣以及協議棧實現細節上的差別。 所以對操做系統辨識的方法包括端口掃描、 應用服務旗標攫取和協議棧指紋鑑別, 而按照獲取這些信息方式的不一樣又分爲操做系統主動探測技術和被動操做系統識別技術。

操做系統主動探測技術:

操做系統主動探測技術包括端口掃描、應用服務旗標攫取和主動協議棧指紋鑑別。其中主動協議棧指紋鑑別是目前最有效和最經常使用的探測方式,其經典表明論文爲 Fyodor 於 1998年在 Pharck 雜誌上發表的 Remote OS detection via TCP/IP Stack Finger-Printing。 在論文中提出的可用來探測不一樣操做系統類型和版本的技巧包括: FIN 探測報文、假標誌位探測報文、ISN 採樣、 DF 位監視、初始窗口大小, ACK 值, ICMP 出錯消息抑制, ICMP 消息引用, ICMP出錯消息回射完整性, TOS,重疊分片處理, TCP 選項等。 實現主動協議棧指紋鑑別的經典工具爲 Fyodor 的 queso 和 nmap 工具-O 選項。

Scan #4: TCP 鏈接掃描+操做系統探測

咱們繼續在 wireshark 中查看第四次掃描,與以前三次不一樣的是,第四次掃描並無出現 ICMP Echo 數據包,而是僅僅使用了 TCP 80 端口的 ACK 包探測目標端口是否活躍;此外與第一次掃描不一樣的是,經過設置過濾規則"frame.number > 153237 and frame.number <155986 and ip.src != 192.168.0.99 and tcp.flags.syn != 1"可發現攻擊主機對開放的端口發送了ACK 包創建三次握手後,又發送了 RST|ACK 包關閉鏈接,而這種模式是典型的 TCP 鏈接掃描;經過前面給出的方法分析目標端口列表可進一步肯定這次掃描採起快速掃描模式;而最後階段也進行了操做系統的探測,所以,能夠確認第四次掃描的指令是"# nmap -sT -PA -F-O 192.168.0.99"。

Scan #5: 僞造源 IP 地址的 Xmas 掃描

最後,對第五次掃描數據包的觀察可發現掃描方式與第三次相同,爲 Xmas 掃描方式,不一樣的是此次掃描中的源 IP 地址出現了 192.168.0.{1, 9, 199, 254}這四個 IP 地址,除了攻擊主機 192.168.0.9 以外,從捕獲流量看還有其餘三個 IP 地址在進行掃描,所以能夠確認此次掃描是使用了 nmap 工具的-D 選項,使用了源 IP 地址欺騙技術,通過進一步分析能夠得出掃描指令是"# nmap -sX -F -D 192.168.0.1, 192.168.0.254, 192.168.0.199 192.168.0.99"。
注:本案例中因爲攻擊主機、假裝的 IP 地址和目標主機在同一子網內,所以目標主機在發送響應包前會經過 ARP 查詢尋找 192.168.0.{1, 199, 254}這些假裝的 IP,能夠肯定在本案例部署場景中這些 IP 並不活躍,所以目標主機不會向假裝 IP 地址作出響應。在假裝 IP與目標主機不在同一子網的通常場景下,目標主機將會向假裝 IP 地址發送響應包。

攻擊技術內幕:

IP 地址欺騙技術(IP Spoofing): 經過僞造數據包中的源 IP 地址以達到躲避檢測和追溯,或者假裝成受信主機進行中間人攻擊的技術手段。 IP 地址欺騙技術的根源在於 IP 和路由協議設計中只按照目標 IP 地址對數據包進行路由和轉發,而沒有對源 IP 地址的合法性進行有效驗證。經過源 IP 地址欺騙技術進行掃描或拒絕服務攻擊較爲簡單,也很是常見,經過特定工具修改發送數據包的源 IP 地址便可。而經過源 IP 地址欺騙技術進行中間人攻擊則須要可以監聽目標主機向假裝 IP 地址發送的響應包,並經過分析進行會話劫持,以達成中間人攻擊效果。
>Nmap 工具的-D 選項將發起一次源 IP 欺騙掃描,即看起來像掃描是從你所指定的源 IP地址所發起的同樣。這樣若是目標網絡中的 IDS 發現此次掃描事件並進行了報警,那麼報警信息將顯示從僞造的源 IP地址所發起的掃描,而沒法知道真正發起掃描的 IP地址是什麼。儘管源 IP 地址欺騙可能會被路由器路徑追蹤、響應丟棄和其餘的一些"主動"機制解決,但在通常狀況下還是一種隱藏自身位置的有效技巧。
>

8. 在蜜罐主機上哪些端口被發現是開放的?

由於第一次掃描(半開 TCP 掃描)對從 1 到 63335 的所有 TCP 端口進行了探測,所以咱們能夠以此次掃描的結果肯定蜜罐主機上哪些端口是開放的。
根據 TCP 協議規範,開放服務將響應 SYN 請求包,反饋 SYN|ACK 包,所以咱們經過設置

tcpdump filter "ip.src ==192.168.0.99 and tcp.flags == 0x0012 and frame.number <= 148006"
就能夠找出開放的端口。
# tshark -r 0826\@19-snort.log -nn ip.src == 192.168.0.99 and "tcp.flags == 0x0012 and frame.number < 148007"

從輸出結果能夠得出,蜜罐主機上開放的端口和對應的網絡服務以下:
 22 SSH
 111 SUNRPC
 32768 rpc.statd/NFS file locking
 80 HTTP
 443 HTTPS
 53 DNS

9. 額外獎勵問題:攻擊主機的操做系統是什麼?

要肯定一臺主機的操做系統存在兩種經常使用的方法:

  • 一種是主動的操做系統版本探測,經常使用的工具包括 queso 和 nmap,但在這個離線的案例分析中,咱們沒法對攻擊主機進行探測,即便防護者處於在線分析的場景下,爲了避免讓攻擊者警覺對他的調查,通常狀況下也不該執行對攻擊者的主動探測;
  • 另外一種是被動的操做系統版本辨識,因爲不一樣的操做系統平臺和版本在實現網絡協議棧時存在差別,從而致使在網絡數據包上存有各類操做系統的"指紋",根據從抓取的數據包中識別這些"指紋",咱們就能夠辨識出數據包發送者的操做系統平臺和版本。經常使用的被動操做系統版本辨識工具爲 p0f,它是由 Michael Zalewski 和 Bill Stearns 所開發和維護的開源項目。

  • 使用 p0f 的-s 參數可讀取待分析的二進制記錄文件,從中識別發送方的操做系統信息,因爲 p0f 中也包含了針對 nmap 掃描的"指紋",因此在輸出中也顯示了大量

"192.168.0.9 [xxhops]: NMAP scan (distance inaccurate) "
  • 結果,這也驗證了問題 6 中確認的攻擊主機確實使用了 nmap 做爲端口掃描工具。
  • 經過 grep -v 排除掉 nmap 的識別結果後,咱們獲得
"192.168.0.9:xxxxx - Linux 2.4-2.6 (up: 46 hrs) -> 192.168.0.99:xxxxx (distance 0, link:ethernet/modem) "
  • 的辨識信息,從中咱們能夠確認攻擊主機安裝的是 Linux 操做系統,內核版本爲 2.4 系列或 2.6 系列,
  • 此外 p0f 還給出了攻擊主機的在線時間(46 小時),與目標主機的距離(TTL 遞減值爲 0,即攻擊主機與目標主機在同一子網)等其餘信息。
# p0f -s 0826\@19-snort.log | grep -v NMAP | more
192.168.0.9:xxxxx - Linux 2.4-2.6 (up: 46 hrs) -> >192.168.0.99:xxxxx (distance 0, link:ethernet/modem)

攻擊技術內幕:

被動操做系統識別技術:

被動操做系統識別技術包括網絡監聽、被動應用服務識別和被動協議棧指紋鑑別。其中被動協議棧指紋鑑別是目前最有效和最經常使用的被動操做系統識別技術。
     Lance Spitzner 在 此 領域 作 了很 多研 究 工做 ,並 寫 了 一篇 技術 白 皮書 」PassiveFingerprinting」來說解他的發(http://packetstormsecurity.org/papers/unix/finger.htm),可用來被動識別操做系統類型的四個主要特徵爲:

TTL: 不一樣的操做系統類型設置數據包的 Time to Live 缺省值有一些差別;

窗口大小: 不一樣的操做系統類型設置 TCP 數據包的窗口大小字段存在差別;

DF 位: 不一樣的操做系統類型是否設置 DF 位存在差別;

TOS: 不一樣的操做系統類型是否設置 TOS 位,設置的值存在差別.

     經過對不一樣操做系統類型和版本的這些特徵變量取值構建指紋數據文件,便可做爲被動操做系統識別的依據。 

     實現被動協議棧指紋鑑別的經典工具爲 siphon(已過期)和 p0f v2,其使用的指紋數據文件位 p0f.fp,使用了」 wwww:ttt:D:ss:OOO...:QQ:OS:Details」的指紋格式,使用特徵包括 Window size (WSS)、 Initial TTL、 Don't fragment flag、 overall SYN packet size、option value and order specification、quirks list 等,最後給出識別的 OS genre 和 OS description。
相關文章
相關標籤/搜索