โปรแกรมสำหรับสกัดกั้นและถอดรหัสแพ็กเก็ตข้อมูล Wireshark (ตัวดักจับแพ็กเก็ตเครือข่าย) คำขอปลอม ARP

เครือข่าย Wi-Fi สาธารณะยังได้รับความนิยมอย่างมากในปัจจุบัน พบได้ในร้านอาหาร โรงยิม ห้างสรรพสินค้า รถไฟใต้ดิน โรงแรม โรงพยาบาลและคลินิกเอกชน อพาร์ตเมนต์ และคอนโดมิเนียม - สามารถพบได้เกือบทุกที่ที่มีผู้คนจำนวนมากมารวมตัวกัน

เครือข่ายเหล่านี้มีลักษณะเฉพาะ - มักจะเป็นเครือข่าย Wi-Fi แบบเปิดที่ไม่ต้องใช้รหัสผ่านในการเชื่อมต่อ มีกฎความปลอดภัยเพิ่มเติมสำหรับการทำงานกับเครือข่ายดังกล่าวหรือไม่?

ใช่ เมื่อใช้เครือข่าย Wi-Fi แบบเปิด คุณต้องเข้าใจให้ดีว่า:

  • ข้อมูลทั้งหมดถูกส่งผ่านคลื่นวิทยุซึ่งแตกต่างจากลวดซึ่งทุกคนไม่สามารถเข้าถึงได้ คลื่นวิทยุสามารถดักจับโดยใครก็ตามที่อยู่ในขอบเขต
  • ในเครือข่ายแบบเปิด ข้อมูลจะไม่ถูกเข้ารหัส

ในประเด็นแรก ฉันคิดว่าทุกอย่างชัดเจน: ถ้าใครที่มีคอมพิวเตอร์และการ์ด Wi-Fi อยู่ใกล้พอ เขาก็สามารถบันทึกและบันทึกการรับส่งข้อมูลทั้งหมดที่ส่งระหว่างจุดเชื่อมต่อไร้สายกับไคลเอนต์ทั้งหมดได้

สำหรับประเด็นที่สอง มีความจำเป็นต้องชี้แจงเกี่ยวกับการเข้ารหัสข้อมูลที่ส่ง ตัวอย่างเช่น หากคุณเปิดไซต์ใดๆ ที่ใช้โปรโตคอล HTTPS (นั่นคือ โปรโตคอลที่ปลอดภัย) เช่น ไซต์ ข้อมูลที่ส่งไปและมาจากไซต์นี้ถึงคุณจะถูกเข้ารหัส หากคุณเปิดเว็บไซต์โดยใช้โปรโตคอล HTTP ข้อมูลที่ส่งทั้งหมด: หน้าที่คุณเยี่ยมชมซึ่งความคิดเห็นที่คุณทิ้งซึ่งคุกกี้ที่เว็บเบราว์เซอร์ของคุณได้รับ - ข้อมูลนี้จะถูกส่งในรูปแบบที่ไม่ได้เข้ารหัส ดังนั้น หากคุณเชื่อมต่อกับจุดเข้าใช้งาน Wi-Fi ที่ต้องใช้รหัสผ่าน การรับส่งข้อมูลที่ส่งจะถูกเข้ารหัสอีกครั้ง นั่นคือแม้ว่าคุณจะเปิดเว็บไซต์บนโปรโตคอล HTTPS การรับส่งข้อมูลที่ส่งจะถูกเข้ารหัสสองครั้ง (ครั้งแรกเมื่อถ่ายโอนจากเว็บเบราว์เซอร์ไปยังเว็บเซิร์ฟเวอร์และในทิศทางตรงกันข้ามครั้งที่สองเมื่อถ่ายโอนจากอุปกรณ์ของคุณไปยัง Access Point เช่นเดียวกับทิศทางย้อนกลับ) และหากคุณเปิดเว็บไซต์บนโปรโตคอล HTTP ปริมาณการรับส่งข้อมูลที่ส่งจะถูกเข้ารหัสเพียงครั้งเดียว (เฉพาะในระหว่างการส่งจากอุปกรณ์ของคุณไปยังจุดเข้าใช้งานและในทางกลับกัน)

แต่ฮอตสปอตแบบเปิดไม่ได้เข้ารหัสการรับส่งข้อมูล จากนี้ไป: หากคุณใช้จุดเชื่อมต่อแบบเปิดและเปิดเว็บไซต์ที่ทำงานบนโปรโตคอล HTTP ข้อมูลของคุณจะถูกส่งเป็นข้อความที่ชัดเจน และทุกคนที่อยู่ใกล้คุณสามารถจับภาพและบันทึกได้ หากคุณเปิดไซต์โดยใช้โปรโตคอล HTTPS ข้อมูลนี้จะถูกเข้ารหัส อย่างไรก็ตาม คุณยังสามารถดูไซต์ที่คุณเปิดได้ (แม้ว่าคุณจะมองไม่เห็นว่าหน้าใดและสิ่งที่คุณป้อน ตัวอย่างเช่น ความคิดเห็นที่คุณแสดงความคิดเห็นไว้)

ดังนั้น: คุณต้องจำไว้ว่าเครือข่ายไร้สายแบบเปิดมีแนวโน้มที่จะดักฟัง

การสกัดกั้นการรับส่งข้อมูลในเครือข่าย Wi-Fi แบบเปิด

สำหรับการโจมตีที่ประสบความสำเร็จ คุณต้องมีคอมพิวเตอร์ Linux (เช่น กับ Kali Linux หรือ BlackArch) รวมถึงการ์ด Wi-Fi จาก

เริ่มต้นด้วยการดูชื่อของอินเทอร์เฟซไร้สาย:

อย่างที่คุณเห็น ฉันมีอินเทอร์เฟสไร้สายหลายอัน ฉันจะใช้ wlp0s20f0u2.

เราถ่ายโอนอินเทอร์เฟซไร้สายไปยังโหมดมอนิเตอร์:

Sudo ip link set INTERFACE down sudo iw INTERFACE ตั้งค่าการควบคุมมอนิเตอร์ sudo ip link set INTERFACE up

ในคำสั่งก่อนหน้านี้ แทน อินเตอร์เฟซคุณต้องป้อนชื่อที่อินเทอร์เฟซไร้สายมีในระบบของคุณ ตัวอย่างเช่น สำหรับ wlp0s20f0u2 คำสั่งจะมีลักษณะดังนี้:

Sudo ip link set wlp0s20f0u2 ลง sudo iw wlp0s20f0u2 ตั้งค่าการควบคุมจอภาพ sudo ip link set wlp0s20f0u2 ขึ้น

เปิดไฟล์ข้อมูลที่บันทึกไว้ใน Wireshark

เพื่อเน้นข้อมูลที่แตกต่างกัน เราจำเป็นต้องมีตัวกรอง Wireshark ฉันจะแสดงตัวอย่างการใช้ตัวกรองบางตัวเท่านั้น ขอแนะนำให้คุณสำรวจตัวกรอง Wireshark ที่มีประโยชน์จำนวนมาก

ในการประเมินคุณภาพของการดักจับ คุณสามารถเริ่มต้นด้วยตัวกรองที่แสดงผลลัพธ์ของการวิเคราะห์โปรโตคอล TCP

ตัวอย่างเช่น:

Tcp.analysis.duplicate_ack_num == 1

ตัวกรองนี้ส่งออกข้อมูลเกี่ยวกับเฟรมด้วยแฟล็ก ACK ที่ซ้ำกัน เฟรมดังกล่าวจำนวนมากสามารถบ่งบอกถึงปัญหาการสื่อสารระหว่างไคลเอนต์และจุดเข้าใช้งาน

ตัวกรองสำหรับแสดงเฟรมที่ไม่ได้บันทึกส่วนก่อนหน้า:

Tcp.analysis.ack_lost_segment

นี่เป็นเรื่องปกติในช่วงเริ่มต้นของการเก็บข้อมูล - เนื่องจากข้อมูลจะไม่ถูกสกัดกั้นตั้งแต่เริ่มต้น แต่ถ้าข้อผิดพลาดนี้มักเกิดขึ้นอีกในอนาคต แสดงว่าคุณอยู่ไกลจากจุดเข้าใช้งานหรือไคลเอนต์ และคุณไม่ได้จับส่วนหนึ่งของข้อมูลที่พวกเขาถ่ายโอน

ในการแสดงเฟรมที่ส่งซ้ำ (ส่งซ้ำ):

Tcp.analysis.retransmission

เฟรมจำนวนมากดังกล่าวอาจบ่งชี้ว่าการเชื่อมต่อระหว่างไคลเอนต์และ AP นั้นไม่ดีและพวกเขามักจะต้องส่งข้อมูลเดียวกันซ้ำแล้วซ้ำอีก

การใช้ตัวกรอง

คุณสามารถดูทราฟฟิก ARP ได้ - ด้วยความช่วยเหลือจากมัน สะดวกในการวิเคราะห์จำนวนอุปกรณ์ที่เชื่อมต่อกับเครือข่ายท้องถิ่นในปัจจุบัน มีที่อยู่ IP ใดบ้าง และที่อยู่ MAC ใด ...

การใช้ตัวกรอง

คุณสามารถดูคำขอ DNS ที่ส่งทั้งหมดได้

ด้วยคำขอเหล่านี้ คุณสามารถค้นหาว่าผู้ใช้เข้าชมไซต์ใด (แม้ว่าไซต์เหล่านี้ใช้ HTTPS!) ตลอดจนบริการออนไลน์ที่ร้องขอ

ตัวอย่างเช่น ในภาพหน้าจอ คุณสามารถดูที่อยู่ของโรงภาพยนตร์ออนไลน์ Netflix, Facebook, บริการต่างๆ ของ Google ได้

ในการกรองการรับส่งข้อมูล HTTP ตัวกรอง:

คุณสามารถหาข้อมูลที่น่าสนใจมากมายได้ที่นี่ ตัวอย่างเช่น คุณสามารถดูคำขอไปยังบริการและข้อมูลที่ส่ง รวมถึงคีย์ API ตัวระบุอุปกรณ์ ฯลฯ

คุณสามารถดู URL ที่เข้าชมพร้อมพารามิเตอร์ที่ส่งผ่านทั้งหมด:

ไฟล์ที่ดาวน์โหลดและเปิดบนอินเทอร์เน็ตสามารถมองเห็นได้:

คุณสามารถบันทึกไฟล์ที่ถ่ายโอนได้ ในการดำเนินการนี้ ให้เลือกด้วยเมาส์เพื่อเลือกแพ็คเกจที่มี (1) จากนั้นในบานหน้าต่างตรงกลางซึ่งมีข้อมูลโดยละเอียด เลื่อนไปที่ด้านล่างสุดเพื่อค้นหาช่องข้อมูลและคลิกขวาเพื่อเปิดเมนูบริบท (2) ในเมนูบริบท เลือก ส่งออกไบต์แพ็คเก็ตที่เลือก(3) - ส่งออกไบต์ของแพ็กเก็ตที่เลือก:

ป้อนชื่อไฟล์ เลือกตำแหน่งและบันทึก

มีคนกำลังอัปเดต Windows:

คุกกี้ที่ตั้งค่าให้กับผู้ใช้หรือคุกกี้ที่ส่งถึงพวกเขานั้นยังสามารถมองเห็นได้:

การใช้ตัวกรอง

Http.cookie

คุณสามารถดูคำขอ HTTP ที่ส่งคุกกี้ได้

และด้วยฟิลเตอร์

Http.set_cookie

คุณสามารถดูคำขอที่เซิร์ฟเวอร์ตั้งค่าคุกกี้ให้กับเบราว์เซอร์ของผู้ใช้

เพื่อนบ้านกำลังดาวน์โหลด Torrent แปลก ๆ :

ข้อมูลที่ถ่ายโอนโดยวิธี POST ยังสามารถมองเห็นได้:

หากต้องการค้นหาภาพที่อัปโหลด:

Http.content_type มี "รูปภาพ"

ในการค้นหารูปภาพบางประเภท:

Http.content_type มี "gif" http.content_type มี "jpeg" http.content_type มี "png"

ในการค้นหาไฟล์บางประเภท:

Http.content_type มี "text" http.content_type มี "xml" http.content_type มี "html" http.content_type มี "json" http.content_type มี "javascript" http.content_type มี "x-www-form-urlencode" http content_type มี "บีบอัด" http.content_type มี "แอปพลิเคชัน"

ค้นหา Wireshark เพื่อขอไฟล์บางประเภท ตัวอย่างเช่น ในการค้นหาไฟล์ ZIP ที่ถ่ายโอน:

Http.request.uri มี "zip"

แทน http.request.uriสามารถใช้ฟิลเตอร์เพื่อความแม่นยำที่มากขึ้น http.request.uri.pathหรือ http.request.uri.queryตัวอย่างเช่น การค้นหาคำขอดาวน์โหลดไฟล์ JPG (ลิงก์ไปยังรูปภาพ):

Http.request.uri.path มี "jpg"

ตัวกรองที่แสดงเฉพาะข้อมูลที่ส่งโดยวิธี POST:

Http.request.method == "โพสต์"

ตัวกรองที่แสดงเฉพาะข้อมูลที่ส่งโดยวิธี GET:

Http.request.method == "GET"

ค้นหาคำขอไปยังไซต์เฉพาะ (โฮสต์):

Http.host == " "

ค้นหาคำขอไปยังไซต์ใดไซต์หนึ่งโดยใช้ชื่อบางส่วน:

Http.host มี "here.partial.name"

บทสรุป

ขณะนี้จำนวนแอปพลิเคชันและไซต์ที่ไม่ใช้การเข้ารหัสลดลงอย่างรวดเร็ว ดังนั้นอันตรายจากการสกัดกั้นดังกล่าวจึงลดลงทุกปี อย่างไรก็ตามมันอยู่ที่นั่น

แม้แต่ไซต์ที่ใช้ HTTPS ก็สามารถเปิดเผยข้อมูลได้เองตามธรรมชาติ ตัวอย่างเช่น:

จะเห็นได้ว่าข้อมูลบน booking.com ถูกส่งมาจากผู้ใช้ในรูปแบบที่ไม่เข้ารหัส จึงสามารถดักจับลิงค์นี้ได้

แอปพลิเคชั่น iPhone ดาวน์โหลดไฟล์ (เสียง) อย่างต่อเนื่องโดยไม่ต้องใช้การเชื่อมต่อที่ปลอดภัย:

qq.com ที่ได้รับความนิยม (ในบางภูมิภาค) ไม่ได้ใช้การเข้ารหัส หรือใช้อัลกอริทึมของตัวเอง:

การป้องกันการสกัดกั้นที่รับประกันได้คือการใช้บริการ VPN ที่เชื่อถือได้ บริการ VPN ที่เชื่อถือได้ถือได้ว่าเป็นบริการที่คุณตั้งค่าเองหรือ VPN ของเครือข่ายองค์กรของคุณ

เครื่องสกัดกั้นเป็นเครื่องมือเครือข่ายมัลติฟังก์ชั่นที่ช่วยให้คุณได้รับข้อมูลจากการรับส่งข้อมูล (รหัสผ่าน ข้อความในโปรแกรมส่งข้อความโต้ตอบแบบทันที การโต้ตอบ ฯลฯ) และใช้การโจมตี MiTM ต่างๆ


อินเตอร์เฟสอินเตอร์เซปเตอร์
ฟังก์ชั่นหลัก

  • การสกัดกั้นข้อความผู้ส่งสาร
  • การสกัดกั้นคุกกี้และรหัสผ่าน
  • การสกัดกั้นกิจกรรม (เพจ ไฟล์ ข้อมูล)
  • ความสามารถในการแทนที่การดาวน์โหลดไฟล์โดยการเพิ่มไฟล์ที่เป็นอันตราย ใช้ร่วมกับยูทิลิตี้อื่น ๆ ได้
  • การปลอมแปลงใบรับรอง Https สำหรับ Http
โหมดการทำงาน
โหมดผู้ส่งสาร- ให้คุณตรวจสอบการติดต่อที่ส่งในรูปแบบที่ไม่ได้เข้ารหัส มันถูกใช้เพื่อสกัดกั้นข้อความในข้อความ ICQ, AIM, JABBER ของผู้ส่งสารดังกล่าว

โหมดฟื้นคืนชีพ- การกู้คืนข้อมูลเพย์โหลดจากทราฟฟิก จากโปรโตคอลที่ส่งทราฟฟิกเป็นข้อความที่ชัดเจน เมื่อเหยื่อดูไฟล์ เพจ ข้อมูล พวกเขาอาจถูกสกัดกั้นบางส่วนหรือทั้งหมด นอกจากนี้ คุณสามารถระบุขนาดของไฟล์เพื่อไม่ให้ดาวน์โหลดโปรแกรมเป็นส่วนเล็กๆ ข้อมูลนี้สามารถใช้ในการวิเคราะห์ได้

โหมดรหัสผ่าน- โหมดการทำงานกับคุกกี้ ดังนั้นจึงสามารถเข้าถึงไฟล์ที่เยี่ยมชมของเหยื่อได้

โหมดสแกน- โหมดหลักสำหรับการทดสอบ คลิกขวาที่ Smart Scan เพื่อเริ่มการสแกน หลังจากสแกน หน้าต่างจะแสดงผู้เข้าร่วมเครือข่าย ระบบปฏิบัติการ และพารามิเตอร์อื่นๆ ทั้งหมด

นอกจากนี้ พอร์ตสามารถสแกนได้ในโหมดนี้ คุณต้องใช้ฟังก์ชันสแกนพอร์ต แน่นอนว่ามียูทิลิตี้ที่ใช้งานได้มากกว่านี้ แต่การมีฟังก์ชั่นนี้เป็นจุดสำคัญ

หากเราสนใจที่จะโจมตีเป้าหมายบนเครือข่าย หลังจากสแกนแล้ว จำเป็นต้องเพิ่ม IP เป้าหมายไปที่ Nat โดยใช้คำสั่ง (Add to Nat) ในหน้าต่างอื่น คุณสามารถทำการโจมตีอื่นๆ ได้

โหมดแนทโหมดหลักที่อนุญาตให้มีการโจมตี ARP หลายชุด นี่คือหน้าต่างหลักที่อนุญาตให้โจมตีแบบกำหนดเป้าหมาย

โหมด DHCPนี่คือโหมดที่ให้คุณเพิ่มเซิร์ฟเวอร์ DHCP เพื่อใช้การโจมตี DHCP ตรงกลาง

การโจมตีบางประเภทที่สามารถทำได้
การทดแทนไซต์

หากต้องการเปลี่ยนไซต์ของเหยื่อ คุณต้องไปที่ Target หลังจากนั้นคุณต้องระบุไซต์และการแทนที่ ดังนั้น คุณสามารถแทนที่ไซต์จำนวนมากได้ ทุกอย่างขึ้นอยู่กับคุณภาพของของปลอม

การทดแทนไซต์

ตัวอย่าง VK.com

การเลือกการโจมตี MiTM

เปลี่ยนกฎการฉีด
เป็นผลให้เหยื่อเปิดเว็บไซต์ปลอมเมื่อถามหา vk.com และในโหมดรหัสผ่าน ข้อมูลเข้าสู่ระบบและรหัสผ่านของเหยื่อควรเป็น:


ในการโจมตีแบบกำหนดเป้าหมาย คุณต้องเลือกเหยื่อจากรายการและเพิ่มไปยังเป้าหมาย สามารถทำได้ด้วยปุ่มเมาส์ขวา


การเพิ่มของ MiTm Attack
ตอนนี้คุณสามารถกู้คืนข้อมูลต่าง ๆ จากการรับส่งข้อมูลในโหมดการกู้คืน


ไฟล์และข้อมูลเหยื่อผ่านการโจมตี MiTm
การทดแทนการจราจร



การระบุการตั้งค่า
หลังจากนั้นผู้เสียหายจะเปลี่ยนคำขอ "เชื่อถือ" เป็น "ผู้แพ้"

นอกจากนี้ คุณสามารถฆ่าคุกกี้เพื่อให้เหยื่อออกจากระบบบัญชีทั้งหมดและให้สิทธิ์อีกครั้ง การดำเนินการนี้จะสกัดกั้นชื่อผู้ใช้และรหัสผ่าน


ทำลายคุกกี้

จะดูผู้ดมกลิ่นที่อาจเกิดขึ้นบนเครือข่ายโดยใช้ Intercepter ได้อย่างไร

ด้วยตัวเลือก Promisc Detection คุณสามารถตรวจจับอุปกรณ์ที่กำลังสแกนบนเครือข่ายท้องถิ่นได้ หลังจากสแกนแล้ว คอลัมน์สถานะจะแสดง "Sniffer" นี่เป็นวิธีแรกที่ให้คุณกำหนดการสแกนบนเครือข่ายท้องถิ่น


การตรวจจับดมกลิ่น
อุปกรณ์ SDR HackRF


HackRF
SDR เป็นเครื่องรับวิทยุชนิดหนึ่งที่ให้คุณทำงานกับพารามิเตอร์ความถี่วิทยุที่แตกต่างกันได้ ดังนั้นจึงสามารถดักจับสัญญาณของ Wi-Fi, GSM, LTE เป็นต้น

HackRF เป็นอุปกรณ์ SDR เต็มรูปแบบมูลค่า $300 ผู้เขียนโครงการ Michael Ossman พัฒนาอุปกรณ์ที่ประสบความสำเร็จในทิศทางนี้ Ubertooth Bluetooth sniffer ได้รับการพัฒนาและใช้งานสำเร็จก่อนหน้านี้ HackRF เป็นโครงการที่ประสบความสำเร็จซึ่งระดมทุนได้มากกว่า 600K บน Kickstarter มีอุปกรณ์ดังกล่าวแล้ว 500 เครื่องสำหรับการทดสอบเบต้า

HackRF ทำงานในช่วงความถี่ 30 MHz ถึง 6 GHz อัตราการสุ่มตัวอย่างคือ 20 MHz ซึ่งช่วยให้คุณสามารถสกัดกั้นสัญญาณจากเครือข่าย Wi-Fi และ LTE

วิธีการป้องกันตัวเองในพื้นที่?

ขั้นแรก ให้ใช้ซอฟต์แวร์ SoftPerfect WiFi Guard กันก่อน มีรุ่นพกพาที่ใช้ไม่เกิน 4 MB ช่วยให้คุณสแกนเครือข่ายและแสดงอุปกรณ์ที่แสดงบนเครือข่ายได้ มีการตั้งค่าที่ให้คุณเลือกการ์ดเครือข่ายและจำนวนอุปกรณ์ที่สแกนสูงสุด นอกจากนี้ คุณสามารถกำหนดช่วงเวลาการสแกนได้


ความสามารถในการเพิ่มความคิดเห็นสำหรับผู้ใช้


หน้าต่างการแจ้งเตือนสำหรับอุปกรณ์ที่ไม่คุ้นเคยหลังจากแต่ละช่วงการสแกนที่ระบุ

บทสรุป
ดังนั้นเราจึงตรวจสอบการใช้งานซอฟต์แวร์เพื่อสกัดกั้นข้อมูลภายในเครือข่ายในทางปฏิบัติ เราได้พิจารณาการโจมตีเฉพาะหลายอย่างที่ทำให้เราได้รับข้อมูลรับรองการเข้าสู่ระบบตลอดจนข้อมูลอื่นๆ นอกจากนี้ เราพิจารณา SoftPerfect WiFi Guard ซึ่งช่วยให้คุณปกป้องเครือข่ายท้องถิ่นจากการดักฟังการรับส่งข้อมูลในระดับดั้งเดิม

ต้นฉบับ: เครือข่ายดมกลิ่น
ผู้เขียน: Paul Cobbaut
วันที่เผยแพร่: มีนาคม 12, 2015
แปล: A. Panin
วันที่โอน: 1 เมษายน 2015

บทที่ 23. การรับส่งข้อมูลเครือข่าย

ผู้ดูแลระบบเครือข่ายควรใช้ดมกลิ่น เช่น wireshark หรือ tcpdump เพื่อวินิจฉัยปัญหาเครือข่าย

นักเรียนมักจะต้องใช้เครื่องดมกลิ่นเพื่อทำความเข้าใจหลักการทำงานของเครือข่าย บทนี้อธิบายเทคนิคที่เหมาะสมสำหรับการบันทึกการรับส่งข้อมูลเครือข่าย

23.1. แอพ Wireshark

23.1.1. การติดตั้ง wireshark

ตัวอย่างนี้มีคำสั่งให้ติดตั้ง wireshark บนดิสทริบิวชันที่ใช้แพ็คเกจซอฟต์แวร์ที่มีนามสกุล .deb (รวมถึง Debian, Mint, Xubuntu และดิสทริบิวชันอื่นๆ)

[ป้องกันอีเมล]: ~ # รายการแพ็คเกจการอ่าน เสร็จสิ้น การสร้างแผนผังการพึ่งพา กำลังอ่านข้อมูลสถานะ เสร็จสิ้น ... (เอาต์พุตสั้นลง)

ในการแจกจ่ายที่ใช้แพ็คเกจซอฟต์แวร์ .rpm เช่น CentOS, RHEL และ Fedora คุณสามารถใช้ yum เพื่อติดตั้ง wireshark ได้

# yum ติดตั้งปลั๊กอิน Wireshark ที่โหลดแล้ว: fastmirror กำลังโหลดความเร็วมิเรอร์จากไฟล์โฮสต์ที่แคช ... (เอาต์พุตถูกตัดทอน)

23.1.2. การเลือกอินเทอร์เฟซเครือข่าย

เมื่อคุณเริ่มใช้ wireshark เป็นครั้งแรก คุณจะต้องเลือกอินเทอร์เฟซเครือข่าย คุณจะเห็นกล่องโต้ตอบที่คล้ายกับที่แสดงในภาพประกอบด้านล่าง

มีแนวโน้มว่าจะไม่มีอินเทอร์เฟซเครือข่ายที่ใช้งานได้ เนื่องจากในการกระจายบางส่วน การรับส่งข้อมูลเครือข่ายสามารถดักจับโดยผู้ใช้รูทเท่านั้น ในกรณีนี้ คุณจะต้องเริ่ม wireshark เป็น root โดยใช้คำสั่ง sudo wireshark

หรือคุณสามารถปฏิบัติตามหลักเกณฑ์ทั่วไปและใช้ยูทิลิตี้ tcpdump หรือเครื่องมืออื่นๆ เพื่อสกัดกั้นการรับส่งข้อมูลและเขียนข้อมูลลงในไฟล์ ข้อมูลใดๆ ที่ถูกสกัดกั้นสามารถวิเคราะห์ได้ในภายหลังโดยใช้ wireshark

23.1.3. ลดการจราจร

ในกระบวนการสกัดกั้นทราฟฟิกเครือข่าย สามารถสร้างแพ็กเก็ตได้หลายพันแพ็กเก็ตในระยะเวลาอันสั้น เห็นได้ชัดว่าข้อมูลจำนวนนี้จะทำให้วิเคราะห์การเข้าชมได้ยาก พยายามออกจากสถานการณ์นี้โดยแยกผู้ดมกลิ่นของคุณออกจากเครือข่าย ตัวเลือกที่ต้องการคือการสกัดกั้นการรับส่งข้อมูลผ่านอินเทอร์เฟซเครือข่ายของเครือข่ายเสมือนที่แยกออกมาภายใต้การควบคุมทั้งหมดของคุณ

หากคุณกำลังเรียนรู้เครื่องมือสำหรับการจับภาพการรับส่งข้อมูลเครือข่ายที่บ้าน การปิดแอปพลิเคชันเครือข่ายทั้งหมดที่ทำงานบนคอมพิวเตอร์ของคุณและตัดการเชื่อมต่อคอมพิวเตอร์ของคุณจากคอมพิวเตอร์เครื่องอื่นและจากอุปกรณ์ต่างๆ เช่น สมาร์ทโฟนและแท็บเล็ต เป็นความคิดที่ดีที่จะลดการรับส่งข้อมูล

อย่างไรก็ตาม เครื่องมือที่สำคัญกว่าสำหรับการลดทราฟฟิกคือตัวกรอง ซึ่งจะกล่าวถึงในหัวข้อถัดไป

23.1.4. การสกัดกั้นการรับส่งข้อมูลที่สร้างโดยยูทิลิตี้ ping

ฉันเรียกใช้ดมกลิ่นและจับแพ็กเก็ตทั้งหมดที่ส่งผ่านเครือข่ายอันเป็นผลมาจากการรันคำสั่ง ping สามคำสั่ง (มันไม่สมเหตุสมผลเลยที่จะรันคำสั่งเหล่านี้เป็นรูท):

[ป้องกันอีเมล]:~# ping -c2 ns1.paul.local PING ns1.paul.local (10.104.33.30) 56 (84) ไบต์ของข้อมูล 64 ไบต์จาก 10.104.33.30: icmp_req = 1 ttl = 64 เวลา = 0.010 ms 64 ไบต์จาก 10.104.33.30: icmp_req = 2 ttl = 64 เวลา = 0.023 ms --- ns1.paul.local สถิติ ping --- 2 แพ็กเก็ตที่ส่ง , 2 ได้รับ, การสูญเสียแพ็กเก็ต 0%, เวลา 1001ms rtt ขั้นต่ำ / เฉลี่ย / สูงสุด / mdev = 0.010 / 0.016 / 0.023 / 0.007 ms [ป้องกันอีเมล]:~# ping -c3 linux-training.be PING linux-training.be (188.93.155.87) 56 (84) ไบต์ของข้อมูล 64 ไบต์จาก antares.ginsys.net (188.93.155.87): icmp_req = 1 ttl = 56 เวลา = 15.6 ms 64 ไบต์จาก antares.ginsys.net (188.93.155.87): icmp_req = 2 ttl = 56 เวลา = 17.8 ms 64 ไบต์ จาก antares.ginsys.net (188.93.155.87): icmp_req = 3 ttl = 56 เวลา = 14.7 ms --- linux-training.be สถิติ ping --- ส่ง 3 แพ็กเก็ต, รับ 3 ครั้ง, แพ็กเก็ตสูญหาย 0%, เวลา 2003ms rtt ต่ำสุด / เฉลี่ย / สูงสุด / mdev = 14.756 / 16.110 / 17.881 / 1.309 มิลลิวินาที [ป้องกันอีเมล]:~# ping -c1 centos7.paul.local PING centos7.paul.local (10.104.33.31) 56 (84) ไบต์ของข้อมูล 64 ไบต์จาก 10.104.33.31: icmp_req = 1 ttl = 64 เวลา = 0.590 ms --- centos7.paul.local สถิติ ping --- 1 แพ็กเก็ตที่ส่ง 1 ได้รับ 0% แพ็กเก็ตสูญหาย เวลา 0ms rtt ต่ำสุด / เฉลี่ย / สูงสุด / mdev = 0.590 / 0.590 / 0.590 / 0.000 ms

โดยรวมแล้ว มากกว่า 200 แพ็กเก็ตถูกจับจากเครือข่าย ทุกอย่างจะชัดเจนขึ้นมากหากคุณป้อนบรรทัด icmp ในช่องตัวกรองแล้วคลิกปุ่ม "นำไปใช้"

23.1.5. การสกัดกั้นการรับส่งข้อมูลที่สร้างโดยยูทิลิตี้ ping และไคลเอนต์ DNS

การทำงานกับเซสชันการเก็บข้อมูลเดียวกัน มาลองใช้ตัวกรองที่ยอดเยี่ยมกัน เราต้องการตรวจสอบการรับส่งข้อมูลที่เกี่ยวข้องกับทั้งโปรโตคอล DNS และโปรโตคอล icmp ดังนั้น เราจะต้องป้อนชื่อของโปรโตคอลทั้งสองที่กล่าวถึงในช่องตัวกรอง

ในการบันทึกข้อมูลที่เกี่ยวข้องกับโปรโตคอลทั้งสองที่เป็นปัญหา ต้องป้อนสตริง "dns หรือ icmp" ในช่องตัวกรอง หากคุณป้อนบรรทัด "dns และ icmp" จะไม่มีการแสดงข้อมูลเกี่ยวกับแพ็กเก็ตใดๆ เนื่องจากไม่มีแพ็กเก็ตที่เกี่ยวข้องกับโปรโตคอลทั้งสองที่กล่าวถึง

เมื่อดูจากภาพประกอบด้านบน คุณจะเห็นว่าแพ็กเก็ต 25 และ 26 มีที่อยู่ IP ต้นทางและปลายทางเป็น 10.104.33.30 เนื่องจากไคลเอ็นต์ DNS ทำงานบนคอมพิวเตอร์เครื่องเดียวกับเซิร์ฟเวอร์ DNS

สถานการณ์ที่คล้ายกันจะสังเกตได้ในกรณีของแพ็กเก็ต 31 และ 32 เนื่องจากการใช้ยูทิลิตี้ ping แพ็กเก็ตจะถูกส่งไปยังระบบการทำงานที่ยูทิลิตี้นี้ทำงานอยู่

23.1.6. ที่อยู่ IP เฉพาะ

ในกรณีนี้ การกรองแพ็กเก็ตที่เกี่ยวข้องกับโปรโตคอล DNS และประกอบด้วยที่อยู่ IP เฉพาะ สตริง "ip.addr == 10.104.33.30 และ DNS" ใช้เป็นตัวกรอง และคำสั่งบอกให้แอปพลิเคชันแสดงข้อมูลเกี่ยวกับแต่ละแพ็คเกจที่ตรงตามเงื่อนไขสองประการ

แพ็คเกจ 93 ประกอบด้วยการสืบค้น DNS เพื่อดึงข้อมูลประเภท A ของโดเมน linux-training.be แพ็คเก็ต 98 มีการตอบสนองจากเซิร์ฟเวอร์ DNS คุณคิดว่าเกิดอะไรขึ้นหลังจากส่งแพ็กเก็ต 93 และก่อนได้รับแพ็กเก็ต 98 พยายามตอบคำถามนี้ก่อนที่จะอ่านหัวข้อถัดไป (เมื่อทำงานกับระบบต่างๆ พยายามคาดเดาว่าจะเกิดอะไรขึ้นและตรวจสอบความถูกต้องของการคาดคะเนจะเป็นประโยชน์เสมอ)

23.1.7. การกรองตามเฟรม

คำที่ถูกต้องสำหรับแพ็กเก็ตที่ถูกดักจับคือ frame (เนื่องจากการที่เราดักจับแพ็กเก็ตที่เลเยอร์ 2 ของโมเดลเครือข่าย OSI) ดังนั้น ในการแสดงข้อมูลเกี่ยวกับแพ็กเก็ตที่มีตัวเลขเฉพาะ ให้ใช้คำสั่ง frame.number ในฟิลด์ตัวกรอง

23.1.8. การตรวจสอบเนื้อหาของแพ็คเกจ

สามารถขยายบานหน้าต่างตรงกลางของหน้าต่างดมกลิ่นได้ เมื่อคุณเลือกแถวภายในแผงนี้ คุณจะเห็นค่าไบต์ที่สอดคล้องกันในช่องของแผงด้านล่าง

ภาพประกอบด้านล่างแสดงบานหน้าต่างตรงกลางของหน้าต่างดมกลิ่นพร้อมที่อยู่ที่เลือกของแล็ปท็อปของฉัน

โปรดทราบว่าเทคนิคข้างต้นใช้งานได้ดีสำหรับการรับส่งข้อมูลบนอินเทอร์เฟซเครือข่ายเดียว หากคุณสกัดกั้นการรับส่งข้อมูล เช่น ใช้คำสั่ง tcpdump -i คุณจะพบกับวิธีการดักจับแพ็กเก็ต "Linux ปรุงแคป"

23.1.9. ตัวอย่างตัวกรองเพิ่มเติม

คุณสามารถรวมคำอธิบายโปรโตคอลทั้งสองได้โดยใช้คำสั่งตรรกะหรือ ("OR") ระหว่างกัน ภาพประกอบด้านล่างแสดงวิธีการบันทึกเฉพาะแพ็กเก็ต ARP และ BOOTP (หรือ DHCP)

และภาพประกอบต่อไปนี้แสดงวิธีการจับแพ็กเก็ตเฉพาะ DNS ที่มีที่อยู่ IP เฉพาะ

23.2. ยูทิลิตี้ Tcpdump

เมื่อทำงานกับอินเทอร์เฟซบรรทัดคำสั่งของระบบ การจับแพ็คเก็ตสามารถทำได้โดยใช้ยูทิลิตี้ tcpdump ด้านล่างนี้คือตัวอย่างการใช้งานบางส่วน

การใช้คำสั่ง tcpdump host $ ip จะแสดงข้อมูลเกี่ยวกับการรับส่งข้อมูลทั้งหมดที่เกี่ยวข้องกับโฮสต์เฉพาะ (ในกรณีนี้ ด้วยที่อยู่ IP 192.168.1.38)

[ป้องกันอีเมล]: ~ # โฮสต์ tcpdump 192.168.1.38 tcpdump: เอาต์พุตแบบละเอียดถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็มในการฟังบน eth0, ประเภทลิงก์ EN10MB (อีเธอร์เน็ต) ขนาดการจับภาพ 96 ไบต์

การรับส่งข้อมูลที่เกี่ยวข้องกับโปรโตคอล ssh โดยเฉพาะ (โปรโตคอล TCP, พอร์ต 22) สามารถสกัดกั้นได้โดยใช้คำสั่งพอร์ต tcpdump tcp port $ บรรทัดเอาต์พุตถูกตัดให้เหลือ 76 อักขระเพื่อให้อ่านง่ายขึ้น

[ป้องกันอีเมล]: ~ # tcpdump พอร์ต TCP tcp 22 tcpdump: เอาต์พุตแบบละเอียดถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลเต็มรูปแบบการฟังบน eth1 ประเภทลิงก์ EN10MB (Ethernet) ขนาดการจับภาพ 96 ไบต์ 14: 22: 20.716313 IP deb503.local.37973 > rhel53.local.ssh: P 666050963: 66605 14: 22: 20.719936 IP rhel53.local.ssh> deb503.local.37973: P 1:49 (48) ack 48 14: 22: 20.720922 IP rhel53.local.ssh> deb503.local.37973: P 49: 113 (64) แอ๊ค 14: 22: 20.721321 IP rhel53.local.ssh> deb503.local.37973: P 113: 161 (48) แอ๊ค 14: 22: 20.721820 IP deb503.local 37973> rhel53.local.ssh:. ack 161 ชนะ 200 14: 22: 20.722492 IP rhel53.local.ssh> deb503.local.37973: P 161: 225 (64) ack 14: 22: 20.760602 IP deb503.local.37973> rhel53.local.ssh: ack 225 ชนะ 200 14: 22: 23.108106 IP deb503.local.54424> ubuntu910.local.ssh: P 467252637: 46 14: 22: 23.116804 IP ubuntu910.local.ssh> deb503.local.54424: P 1:81 (80 ) แอ๊ค 14: 22: 23.116844 IP deb503.local.54424> ubuntu910.local.ssh:. ack 81 ชนะ 2 ^ C 10 แพ็กเก็ตที่จับได้ 10 แพ็กเก็ตที่ได้รับโดยตัวกรอง 0 แพ็กเก็ตที่ทิ้งโดยเคอร์เนล

การดำเนินการเดียวกัน แต่ด้วยการเขียนข้อมูลที่บันทึกลงในไฟล์ สามารถทำได้โดยใช้คำสั่ง tcpdump -w $ filename

[ป้องกันอีเมล]: ~ # tcpdump -w sshdump.tcpdump พอร์ต tcp 22 tcpdump: ฟังบน eth0, ประเภทลิงก์ EN10MB (อีเธอร์เน็ต) ขนาดการจับภาพ 96 ไบต์ ^ C 17 แพ็กเก็ตที่ดักจับ 17 แพ็กเก็ตที่ได้รับจากตัวกรอง 0 แพ็กเก็ตที่ทิ้งโดยเคอร์เนล

คำสั่ง tcpdump -r $ filename สามารถแสดงเนื้อหาของไฟล์ที่สร้างขึ้นในตัวอย่างก่อนหน้านี้

[ป้องกันอีเมล]: ~ # tcpdump -r sshdump.tcpdump

ตัวอย่างอื่นๆ มากมายของการใช้ยูทิลิตี้นี้สามารถพบได้ใน tcpdump man page

23.3. กิจกรรมเชิงปฏิบัติ: การสกัดกั้นการรับส่งข้อมูลเครือข่าย

23.4. ขั้นตอนการปฏิบัติที่ถูกต้อง: การสกัดกั้นการรับส่งข้อมูลเครือข่าย

1. ติดตั้ง wireshark บนระบบของคุณ (ไม่ทำงานในเครื่องเสมือน)

ในการแจกแจง Debain / Ubuntu: aptitude install wireshark

บน Red Hat / Mandriva / Fedora distributions: yum install wireshark

2. ใช้ยูทิลิตี้ ping เพื่อสร้างทราฟฟิกระหว่างคุณกับคอมพิวเตอร์เครื่องอื่น

Ping $ ip_address

3. เริ่มจับการรับส่งข้อมูลเครือข่าย

(sudo) ไวร์ชาร์ค

เลือกอินเทอร์เฟซเครือข่ายของคุณ (อาจเป็น eth0)

4. ใช้ตัวกรองเพื่อแสดงข้อมูลเกี่ยวกับแพ็กเก็ตที่มีการตอบสนองต่อคำขอจากยูทิลิตี้ ping เท่านั้น

ป้อน "icmp" (ไม่มีเครื่องหมายคำพูด) ในช่องตัวกรองแล้วคลิกปุ่ม "นำไปใช้"

5. ส่งต่อชื่อโดเมน (เช่น www.linux-training.be) ไปที่ ping แล้วพยายามดักจับคำขอ DNS และตอบกลับแพ็กเก็ต ใช้เซิร์ฟเวอร์ DNS ใด มีการใช้โปรโตคอล TCP หรือ UDP เพื่อส่งคำขอและการตอบสนองหรือไม่

เริ่มดมกลิ่นก่อน

ป้อน "dns" ในช่องตัวกรองแล้วคลิกปุ่ม "นำไปใช้"

[ป้องกันอีเมล]: ~ # ping www.linux-training.be PING www.linux-training.be (88.151.243.8) 56 (84) ไบต์ของข้อมูล 64 ไบต์จาก fosfor.openminds.be (88.151.243.8): icmp_seq = 1 ttl = 58 เวลา = 14.9 ms 64 ไบต์จาก fosfor.openminds.be (88.151.243.8): icmp_seq = 2 ttl = 58 เวลา = 16.0 ms ^ C --- www.linux-training.be สถิติการ ping --- 2 แพ็กเก็ตที่ส่ง, 2 ได้รับ, 0% การสูญเสียแพ็กเก็ต, เวลา 1002ms rtt min / avg / max / mdev = 14.984 / 15.539 / 16.095 / 0.569 ms

หน้าต่าง wireshark ควรมีลักษณะคล้ายกัน

จากข้อมูลจากหน้าต่างแอปพลิเคชัน wireshark เราสามารถสรุปได้ว่าคำขอ DNS ถูกส่งโดยใช้แพ็กเก็ต UDP หลังจากนั้นจึงตอบคำถามได้ง่าย

6. ค้นหาเว็บไซต์ปิดที่มีแบบฟอร์มขอรหัสผ่าน ลองเข้าสู่ระบบโดยใช้ชื่อผู้ใช้ "paul" และรหัสผ่าน "hunter2" ในขณะที่ผู้ดมกลิ่นกำลังทำงานอยู่ ตอนนี้พยายามค้นหาชื่อผู้ใช้และรหัสผ่านที่ป้อนในข้อมูลที่ผู้ดมกลิ่นจับ

ผู้ใช้หลายคนไม่รู้ด้วยซ้ำว่าการกรอกข้อมูลเข้าสู่ระบบและรหัสผ่านเมื่อลงทะเบียนหรืออนุญาตบนทรัพยากรอินเทอร์เน็ตที่ปิดแล้วกด ENTER ข้อมูลนี้จะถูกดักจับได้ง่าย บ่อยครั้งที่พวกเขาถูกส่งผ่านเครือข่ายในรูปแบบที่ไม่มีการป้องกัน ดังนั้น หากไซต์ที่คุณพยายามเข้าสู่ระบบใช้โปรโตคอล HTTP การจับภาพการรับส่งข้อมูลนี้ทำได้ง่ายมาก วิเคราะห์โดยใช้ Wireshark จากนั้นใช้ตัวกรองและโปรแกรมพิเศษเพื่อค้นหาและถอดรหัสรหัสผ่าน

ตำแหน่งที่ดีที่สุดในการสกัดกั้นรหัสผ่านอยู่ในแกนหลักของเครือข่าย ซึ่งการรับส่งข้อมูลของผู้ใช้ทั้งหมดไปที่ทรัพยากรที่ปิดอยู่ (เช่น เมล) หรือหน้าเราเตอร์เพื่อเข้าถึงอินเทอร์เน็ต เมื่อลงทะเบียนกับทรัพยากรภายนอก เราตั้งกระจกและเราพร้อมที่จะรู้สึกเหมือนเป็นแฮ็กเกอร์

ขั้นตอนที่ 1 ติดตั้งและเรียกใช้ Wireshark เพื่อบันทึกการรับส่งข้อมูล

บางครั้งก็เพียงพอแล้วที่จะเลือกเฉพาะอินเทอร์เฟซที่เราวางแผนที่จะจับปริมาณการใช้ข้อมูลและคลิกปุ่มเริ่ม ในกรณีของเรา เรากำลังทำการจับภาพผ่านเครือข่ายไร้สาย

เริ่มจับการจราจรแล้ว

ขั้นตอนที่ 2 การกรองการรับส่งข้อมูล POST ที่บันทึกไว้

เราเปิดเบราว์เซอร์และพยายามลงชื่อเข้าใช้ทรัพยากรใด ๆ โดยใช้ชื่อผู้ใช้และรหัสผ่าน เมื่อเสร็จสิ้นขั้นตอนการอนุญาตและเปิดไซต์ เราจะหยุดรับส่งข้อมูลใน Wireshark ถัดไป เปิดตัววิเคราะห์โปรโตคอลและดูแพ็กเก็ตจำนวนมาก อยู่ในขั้นตอนนี้ที่ผู้เชี่ยวชาญด้านไอทีส่วนใหญ่ยอมแพ้เพราะพวกเขาไม่รู้ว่าจะทำอย่างไรต่อไป แต่เรารู้และเราสนใจแพ็คเกจเฉพาะที่มีข้อมูล POST ที่สร้างขึ้นบนเครื่องท้องถิ่นของเราเมื่อกรอกแบบฟอร์มบนหน้าจอและจะถูกส่งไปยังเซิร์ฟเวอร์ระยะไกลเมื่อคุณคลิกปุ่ม "เข้าสู่ระบบ" หรือ "การอนุญาต" ใน เบราว์เซอร์

แนะนำตัวกรองพิเศษในหน้าต่างเพื่อแสดงแพ็กเก็ตที่ดักจับ: http.ขอ.วิธี == “โพสต์ "

และแทนที่จะเป็นพันแพ็คเกจ เราเห็นเพียงแพ็คเกจเดียวที่มีข้อมูลที่เรากำลังมองหา

ขั้นตอนที่ 3 ค้นหาชื่อผู้ใช้และรหัสผ่าน

คลิกขวาอย่างรวดเร็วของเมาส์และเลือกรายการจากเมนู ติดตาม TCP Steam


หลังจากนั้นข้อความจะปรากฏในหน้าต่างใหม่ซึ่งในรหัสจะกู้คืนเนื้อหาของหน้า มาหาช่อง "รหัสผ่าน" และ "ผู้ใช้" ซึ่งตรงกับรหัสผ่านและชื่อผู้ใช้กัน ในบางกรณี ทั้งสองฟิลด์จะง่ายต่อการอ่านและไม่ได้เข้ารหัสเลย แต่ถ้าเราพยายามจับทราฟฟิกเมื่อเข้าถึงแหล่งข้อมูลที่เป็นที่รู้จักมาก เช่น Mail.ru, Facebook, Vkontakte เป็นต้น รหัสผ่านก็จะถูกเข้ารหัส :

พบ HTTP / 1.1 302

เซิร์ฟเวอร์: Apache / 2.2.15 (CentOS)

X-ขับเคลื่อนโดย: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV OTRo STP IND DEM ของเรา"

ชุดคุกกี้: รหัสผ่าน = ; หมดอายุ = พฤ 07-พ.ย.-2567 23:52:21 GMT; เส้นทาง = /

ตำแหน่ง: login.php

เนื้อหาความยาว: 0

การเชื่อมต่อ: ปิด

ประเภทเนื้อหา: ข้อความ / html; ชุดอักขระ = UTF-8

ดังนั้น ในกรณีของเรา:

ชื่อผู้ใช้: networkguru

รหัสผ่าน:

ขั้นตอนที่ 4. กำหนดประเภทของการเข้ารหัสเพื่อถอดรหัสรหัสผ่าน

ตัวอย่างเช่นเราไปที่เว็บไซต์ http://www.onlinehashcrack.com/hash-identification.php#res และป้อนรหัสผ่านของเราในหน้าต่างระบุ ฉันได้รับรายการโปรโตคอลการเข้ารหัสตามลำดับความสำคัญ:

ขั้นตอนที่ 5. การถอดรหัสรหัสผ่านผู้ใช้

ในขั้นตอนนี้ เราสามารถใช้โปรแกรมอรรถประโยชน์ hashcat:

~ # hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

ที่ทางออกเราได้รับรหัสผ่านที่ถอดรหัสแล้ว: simplepassword

ดังนั้น เมื่อใช้ Wireshark เราไม่เพียงแต่สามารถแก้ปัญหาในการทำงานของแอปพลิเคชันและบริการเท่านั้น แต่ยังลองใช้ตัวเองเป็นแฮ็กเกอร์ ซึ่งสกัดกั้นรหัสผ่านที่ผู้ใช้ป้อนในเว็บฟอร์ม คุณยังสามารถค้นหารหัสผ่านสำหรับกล่องจดหมายของผู้ใช้โดยใช้ตัวกรองง่ายๆ เพื่อแสดง:

  • โปรโตคอล POP และตัวกรองมีลักษณะดังนี้: pop.request.command == "USER" || pop.request.command == "ผ่าน"
  • IMAP และตัวกรองจะเป็น: imap.request มี "เข้าสู่ระบบ"
  • โปรโตคอล SMTP และคุณจะต้องป้อนตัวกรองต่อไปนี้: smtp.req.command == "AUTH"

และยูทิลิตี้ที่ร้ายแรงกว่าสำหรับการถอดรหัสโปรโตคอลการเข้ารหัส

ขั้นตอนที่ 6 จะเกิดอะไรขึ้นหากการรับส่งข้อมูลถูกเข้ารหัสและใช้ HTTPS

มีหลายทางเลือกในการตอบคำถามนี้

ตัวเลือกที่ 1 เชื่อมต่อเพื่อยกเลิกการเชื่อมต่อระหว่างผู้ใช้และเซิร์ฟเวอร์ และบันทึกการรับส่งข้อมูลในขณะที่สร้างการเชื่อมต่อ (SSL Handshake) ในขณะที่สร้างการเชื่อมต่อ คุณสามารถสกัดกั้นคีย์เซสชันได้

ตัวเลือกที่ 2 คุณสามารถถอดรหัสการรับส่งข้อมูล HTTPS โดยใช้ไฟล์บันทึกของคีย์เซสชันที่ Firefox หรือ Chrome บันทึกไว้ ในการดำเนินการนี้ เบราว์เซอร์ต้องได้รับการกำหนดค่าให้เขียนคีย์การเข้ารหัสเหล่านี้ลงในล็อกไฟล์ (ตัวอย่างที่ใช้ FireFox) และคุณควรได้รับไฟล์บันทึกนี้ โดยพื้นฐานแล้ว คุณต้องขโมยไฟล์คีย์เซสชันจากฮาร์ดไดรฟ์ของผู้ใช้รายอื่น (ซึ่งผิดกฎหมาย) จากนั้นจับทราฟฟิกและใช้คีย์ผลลัพธ์เพื่อถอดรหัส

ชี้แจงเรากำลังพูดถึงเว็บเบราว์เซอร์ของบุคคลที่พยายามขโมยรหัสผ่าน หากเราหมายถึงการถอดรหัสการรับส่งข้อมูล HTTPS ของเราเองและต้องการฝึกฝน กลยุทธ์นี้จะได้ผล หากคุณกำลังพยายามถอดรหัสการรับส่งข้อมูล HTTPS ของผู้ใช้รายอื่นโดยไม่ได้เข้าถึงคอมพิวเตอร์ของพวกเขา วิธีนี้จะไม่ทำงาน นั่นคือทั้งการเข้ารหัสและความเป็นส่วนตัว

หลังจากได้รับคีย์สำหรับตัวเลือก 1 หรือ 2 คุณต้องลงทะเบียนใน WireShark:

  1. ไปที่เมนูแก้ไข - ค่ากำหนด - โปรโตคอล - SSL
  2. ตั้งค่าสถานะ "ประกอบระเบียน SSL ใหม่ที่ครอบคลุมหลายส่วน TCP"
  3. "รายการคีย์ RSA" แล้วคลิกแก้ไข
  4. เราป้อนข้อมูลในทุกฟิลด์และเขียนเส้นทางในไฟล์ด้วยคีย์

WireShark สามารถถอดรหัสแพ็กเก็ตที่เข้ารหัสโดยใช้อัลกอริทึม RSA หากใช้อัลกอริธึม DHE / ECDHE, FS, ECC ผู้ดมกลิ่นไม่ใช่ผู้ช่วยของเรา

ตัวเลือก 3 เข้าถึงเว็บเซิร์ฟเวอร์ที่ผู้ใช้ใช้และรับคีย์ แต่นี่มันท้าทายยิ่งกว่า ในเครือข่ายองค์กร เพื่อวัตถุประสงค์ในการดีบักแอปพลิเคชันหรือการกรองเนื้อหา ตัวเลือกนี้ถูกนำไปใช้บนพื้นฐานทางกฎหมาย แต่ไม่ใช่เพื่อจุดประสงค์ในการสกัดกั้นรหัสผ่านของผู้ใช้

โบนัส

วิดีโอ: Wireshark Packet Sniffing ชื่อผู้ใช้ รหัสผ่าน และหน้าเว็บ

แนวคิดในการเขียนเนื้อหานี้ถือกำเนิดขึ้นอย่างที่เป็นอยู่ โดยส่วนใหญ่ต้องขอบคุณคำถามจากผู้อ่านและคนรู้จักอื่นๆ เกี่ยวกับเทคโนโลยีสำหรับการสกัดกั้นและวิเคราะห์ปริมาณการใช้ข้อมูลในเครือข่าย คำถามเหล่านี้แบ่งออกเป็น 3 หมวดหมู่ตามอัตภาพ: โดยหลักการแล้ว เป็นไปได้ไหมที่จะสกัดกั้นและถอดรหัสข้อมูลที่เคลื่อนที่ผ่านเครือข่าย สามารถทำได้อย่างไรและด้วยซอฟต์แวร์ใด คำถามกลุ่มที่สามสะท้อนความสับสนในคำศัพท์ โดยเฉพาะอย่างยิ่ง ตัวเลือกต่อไปนี้เป็นไปได้: บุคคลรู้สาระสำคัญของเทคโนโลยี แต่ไม่รู้ว่าเรียกว่าอะไร ฉะนั้น ให้ว่า คนดมกลิ่น เขาก้มหน้า ตอบว่า ไม่รู้ว่าคืออะไร. ถึงเวลาที่จะต้องชี้จุด i's ในคำถามที่สำคัญอย่างยิ่งนี้สำหรับทั้งมือใหม่และมือเครือข่ายขั้นสูงแล้วใช่หรือไม่ มาเริ่มกันเลย ...

ทฤษฎี

เริ่มต้นด้วยคำศัพท์เล็กน้อย

คำว่า sniffer (จากภาษาอังกฤษสามารถแปลได้ว่า "sniffer" หรือ "sniffer") ในความหมายทั่วไปที่สุดคืออุปกรณ์การฟังชนิดหนึ่งที่ฝังอยู่ในเครือข่ายเพื่อสกัดกั้นข้อมูลที่ส่งผ่าน ในความหมายที่แคบกว่า ดมกลิ่นคือซอฟต์แวร์ที่โต้ตอบด้วย (มักกล่าวว่า "นั่งลง" มาจากเป็นเครื่องหมายการค้าจดทะเบียนของ Network Associates ซึ่งหมายถึงผลิตภัณฑ์ "Sniffer (r) Network Analyzer" แต่ต่อมาคำนี้ได้รับความเดือดร้อน ชะตากรรมเดียวกันกับ PC , xerox, kleenex - sniffer กลายเป็นคำที่ใช้ในครัวเรือนซึ่งหมายถึงผลิตภัณฑ์ที่คล้ายคลึงกันทั้งกลุ่ม

ในบางวรรณกรรมและเอกสารประกอบ เช่นเดียวกับในพจนานุกรมอิเล็กทรอนิกส์ เช่น Lingvo คำว่า sniffer (ตัวดักจับเครือข่าย) ถูกระบุด้วยแนวคิด เช่น "ตัววิเคราะห์การรับส่งข้อมูลเครือข่าย" "ตัววิเคราะห์แพ็กเก็ต" "ตัววิเคราะห์โปรโตคอล" "ตัววิเคราะห์เครือข่าย" อย่างไรก็ตาม ขอไม่เห็นด้วยกับแนวทางนี้เล็กน้อย

ยังคงมีเหตุผลมากกว่าที่จะโต้แย้งว่าการดมกลิ่นเป็นชุดของมาตรการในการสกัดกั้นการจราจร ภายในกรอบงานของผลิตภัณฑ์เฉพาะ สิ่งต่อไปนี้สามารถนำไปใช้ได้: การรวบรวมแพ็กเก็ต ในขั้นตอนนี้ เราได้รับการถ่ายโอนข้อมูลดิบ (แมชชีนที่อ่านได้) ชนิดหนึ่ง ซึ่งมักจะแบ่งออกเป็นส่วนๆ ตามขอบเขตของเฟรม (แพ็กเก็ต) และสิ่งที่เราจะทำอย่างไรกับเขา - ปัญหาของเรา แต่โดยปกติ เนื่องจากเราเริ่มดมกลิ่นด้วยเหตุผลบางอย่าง เราจึงสนใจที่จะได้ผลลัพธ์ในรูปแบบที่มนุษย์อ่านได้ ซึ่งใช้ในการถอดรหัสแพ็กเก็ต (ถอดรหัส) หรือการวิเคราะห์โปรโตคอล

อันที่จริง นี่คือกระบวนการ "กวาด" ขยะของเรา ตัวอย่างเช่น เรามีวัตถุดิบดังกล่าว

ตามที่คุณอาจสังเกตเห็น กรณีนี้ประกอบด้วยสามคอลัมน์: ออฟเซ็ตของแต่ละบรรทัด ข้อมูลในรูปแบบเลขฐานสิบหก และ ASCII ที่เทียบเท่ากัน แพ็กเก็ตนี้ประกอบด้วยส่วนหัวอีเทอร์เน็ต 14 ไบต์ ส่วนหัว IP 20 ไบต์ ส่วนหัว TCP 20 ไบต์ ส่วนหัว HTTP ที่ลงท้ายด้วย CRLF สองตัว (0D 0A 0D 0A) และข้อมูลเลเยอร์แอปพลิเคชันจริง ในกรณีของเรา , การเข้าชมเว็บ

บางครั้งการแสดงข้อมูลนี้ก็เพียงพอที่จะรับข้อมูลที่จำเป็น แต่ก็ยังสะดวกกว่าสำหรับการถอดรหัสและวิเคราะห์แพ็กเก็ตในทุกระดับของโปรโตคอลสแต็ก มันน่ายินดีกว่านี้ไม่ใช่เหรอที่จะได้ภาพแบบนั้น?

ETHER: ที่อยู่ปลายทาง: 0000BA5EBA11 ETHER: ที่อยู่ต้นทาง: 00A0C9B05EBD ETHER: ความยาวเฟรม: 1514 (0x05EA) ETHER: ประเภทอีเทอร์เน็ต: 0x0800 (IP) IP: เวอร์ชัน = 4 (0x4) IP: ความยาวของส่วนหัว = 20 (0x14) IP: บริการ Type = 0 (0x0) IP: Precedence = Routine IP: ... 0 .... = Normal Delay IP: .... 0 ... = Normal throughput IP: ..... 0 .. = Normal Reliability IP: ความยาวทั้งหมด = 1500 (0x5DC) IP: การระบุ = 7652 (0x1DE4) IP: แฟล็กสรุป = 2 (0x2) IP: ....... 0 = ส่วนย่อยสุดท้ายในดาตาแกรม IP: ...... 1 ... = ไม่สามารถแฟรกเมนต์ datagram IP: Fragment Offset = 0 (0x0) ไบต์ IP: Time to Live = 127 (0x7F) IP: Protocol = TCP - Transmission Control IP: Checksum = 0xC26D IP: Source Address = 10.0.0.2 IP: ที่อยู่ปลายทาง = 10.0.1.201 TCP: พอร์ตต้นทาง = Hypertext Transfer Protocol TCP: พอร์ตปลายทาง = 0x0775 TCP: หมายเลขลำดับ = 97517760 (0x5D000C0) TCP: หมายเลขตอบรับ = 78544373 (0x4AE7DF5) TCP: Data Offset = 20 (0x14) TCP: สงวนไว้ = 0 ( 0x0000) TCP: แฟล็ก = 0x10: .A .... TCP: .. 0 ..... = ไม่มีข้อมูลเร่งด่วน TCP: ... 1 .... = ฟิลด์ตอบรับมีนัยสำคัญ TCP: .... 0 .. = ไม่มีฟังก์ชัน Push TCP: ..... 0 .. = ไม่มีการรีเซ็ต TCP: ...... 0 = ไม่ซิงโครไนซ์ TCP: ....... 0 = ไม่มี Fin TCP: หน้าต่าง = 28793 (0x7079) TCP: Checksum = 0x8F27 TCP: ตัวชี้ด่วน = 0 (0x0) HTTP: ตอบสนอง (ไปยังไคลเอนต์โดยใช้พอร์ต 1909) HTTP: เวอร์ชันโปรโตคอล = HTTP / 1.1 HTTP: รหัสสถานะ = ตกลง HTTP: เหตุผล = ตกลง ....

นอกเหนือจากข้างต้นแล้ว "คุณสมบัติ" อื่นๆ สามารถนำมาใช้ได้ เช่น การดูแพ็กเก็ตที่ส่งผ่านในแบบเรียลไทม์ การกรองตามสถานการณ์ที่กำหนด สถิติการรับส่งข้อมูลประเภทต่างๆ - จำนวนข้อผิดพลาด ความเข้มข้น ฯลฯ

ประเภทของดมกลิ่นและการดมกลิ่น

ทุกอย่างที่จะอธิบายในย่อหน้านี้โดยธรรมชาติแล้วมีแนวความคิดบางอย่างเนื่องจากยังไม่มีใครอธิบาย "ทฤษฎีการดมกลิ่น" อย่างเป็นทางการอย่างสมบูรณ์ เราจะต้องจัดหมวดหมู่ "ทันที";)

ดังนั้น ตาม "ที่ตั้ง" (หากใช้คำนี้ที่นี่) ผู้ดมกลิ่นสามารถทำงานได้:

บนเราเตอร์ (เกตเวย์)

ในสถานการณ์นี้ คุณสามารถสกัดกั้นการรับส่งข้อมูลผ่านอินเทอร์เฟซของเกตเวย์นี้ได้ ตัวอย่างเช่น จากเครือข่ายท้องถิ่นของคุณไปยังเครือข่ายอื่นและในทิศทางตรงกันข้าม ดังนั้น หากเราติดตั้งเครื่องดมกลิ่นบนเราเตอร์ของผู้ให้บริการอินเทอร์เน็ต เราสามารถตรวจสอบปริมาณการใช้ข้อมูลของผู้ใช้ได้ และอื่นๆ ...

ที่จุดสิ้นสุดของเครือข่าย

สำหรับอีเทอร์เน็ต เราจะมีสองตัวเลือกหลักที่เป็นไปได้สำหรับการดักฟังโทรศัพท์ อีเทอร์เน็ตแบบไม่มีสวิตช์แบบคลาสสิกถือว่าโดยหลักการแล้วแต่ละอินเทอร์เฟซเครือข่าย "ได้ยิน" การรับส่งข้อมูลของเซ็กเมนต์ อย่างไรก็ตาม ในการทำงานปกติของการ์ดเครือข่าย หลังจากอ่าน 48 บิตแรกของส่วนหัวของเฟรมแล้ว สถานีจะเปรียบเทียบที่อยู่ MAC กับที่อยู่ปลายทางที่ระบุไว้ในเฟรม หากที่อยู่เป็นของคนอื่น สถานี "ปิดหูอย่างอาย" นั่นคือจะหยุดอ่านกรอบของคนอื่น ดังนั้น ในโหมดปกติ คุณสามารถสกัดกั้นและวิเคราะห์การเข้าชมของคุณเองเท่านั้น ในการสกัดกั้นแพ็กเก็ตของสถานีทั้งหมดบนเซ็กเมนต์ คุณต้องใส่การ์ดเครือข่ายของคุณเข้าสู่โหมดที่เรียกว่าโหมดสำส่อน เพื่อให้ "ไร้ยางอาย" ยังคงอ่านแพ็กเก็ตที่ไม่ได้มีไว้สำหรับมัน การใช้งานดมกลิ่นเกือบทั้งหมดทำให้การ์ดเข้าสู่โหมดสำส่อนได้

หมายเหตุ: การใช้อีเทอร์เน็ตแบบสวิตช์จะสร้างสถานการณ์ที่แม้แต่การเปลี่ยนการ์ดเป็นโหมดสำส่อนทำให้แทบเป็นไปไม่ได้เลยที่จะฟังการจราจรที่ไม่ได้มีไว้สำหรับสถานีของคุณ อย่างไรก็ตาม มีเทคโนโลยีสำหรับจัดการดักฟังดังกล่าวผ่านการปลอมแปลง ARP ที่เรียกว่า บรรทัดล่างมีดังต่อไปนี้: สวิตช์สร้างสิ่งที่เรียกว่า "โดเมนออกอากาศ" และโฮสต์ที่ติดตั้ง sniffer สามารถแกล้งทำเป็นเราเตอร์ชายแดนโดยการปลอมข้อความ ARP (ส่งข้อความ ARP อย่างต่อเนื่องโดยที่เราเตอร์ของ ที่อยู่เครือข่ายสอดคล้องกับที่อยู่ MAC ของสถานีรับฟัง) ดังนั้นการจราจรของเพื่อนบ้านจะบังคับให้หันไปทาง "spien"

สำหรับส่วนที่เหลือ ดมกลิ่นอาจแตกต่างกันไปตามการใช้งานเป็นหลัก เช่น:

รองรับอินเทอร์เฟซทางกายภาพและโปรโตคอลเลเยอร์ลิงค์

ถอดรหัสคุณภาพและจำนวนของโปรโตคอล "ที่รู้จัก"

ส่วนต่อประสานกับผู้ใช้และความสะดวกในการแสดงผล

คุณสมบัติเพิ่มเติม: สถิติ การดูแบบเรียลไทม์ การสร้างหรือแก้ไขแพ็คเกจ และอื่นๆ ...

เมื่อเลือกดมกลิ่น (เช่นเดียวกับซอฟต์แวร์อื่นๆ) ควรพิจารณาตามข้อควรพิจารณาต่อไปนี้จากสิ่งที่มีอยู่สำหรับระบบปฏิบัติการของคุณ เราเลือกสิ่งที่ตรงกับงานของคุณทุกประการ (เป็นเรื่องที่สมเหตุสมผลหากคุณกำลังวางแผน เหตุการณ์ที่เกิดขึ้นครั้งเดียว ไม่ว่าจะเป็นการดำเนินการอย่างต่อเนื่องของการดำเนินการเดียวกัน) หรือวิธีแก้ปัญหาที่ซับซ้อนที่สุด ในกรณีที่คุณรู้สึกว่าการดมกลิ่นจะเป็นประโยชน์กับคุณ แต่คุณยังไม่รู้ว่าในสถานการณ์ใด :) และสถานการณ์ต่างกัน ..

ทำไมเราต้องดมกลิ่น?

ตามเนื้อผ้า ความคิดของการดมกลิ่นมีชีวิตอยู่ในสองรูปแบบ: การใช้ที่ถูกกฎหมายและผิดกฎหมาย คำว่า "ดมกลิ่น" มักถูกใช้ในขอบเขตที่ผิดกฎหมายและ "ตัววิเคราะห์เครือข่าย" - ในทางที่ถูกกฎหมาย เริ่มต้นด้วยการใช้ทางกฎหมาย;)

การแก้ไขปัญหา (การตรวจจับปัญหาและคอขวดในเครือข่าย) ในโหมดขยาย เมื่อผู้ดมกลิ่นทำงานในส่วนที่ไม่ได้สลับหรือบนเกตเวย์ เราสามารถได้ภาพเหตุการณ์เกือบทั้งหมดที่เกิดขึ้นในเครือข่ายของเรา: ความหนาแน่นของการรับส่งข้อมูลเมื่อเวลาผ่านไป โดยเวิร์กสเตชัน โดยโปรโตคอล จำนวนข้อผิดพลาดประเภทต่างๆ นอกจากนี้ ในทั้งสองโหมด เราสามารถ "เจาะจง" ปัญหาเฉพาะเจาะจงมากขึ้นได้ เมื่อกล่าวได้ว่า สถานีใดสถานีหนึ่งไม่สามารถจัดระเบียบการโต้ตอบบางอย่างบนเครือข่ายได้ และสิ่งนี้แม้ว่าเครือข่ายจะดูใช้งานได้จากภายนอกก็ตาม ดมกลิ่นมีประโยชน์อย่างยิ่งในกรณีที่ซอฟต์แวร์เครือข่ายได้รับการจัดทำเอกสารไม่ดีหรือใช้กรรมสิทธิ์ของตนเอง (ไม่มีเอกสาร) ซึ่งมักเป็นเทคโนโลยีที่น่าสงสัย (โปรโตคอล)

ตัวอย่างเช่น: ICQ, Europe Online เทคโนโลยี / ซอฟต์แวร์ที่น่าสงสัยควรเข้าใจเป็นสถานการณ์เมื่อคุณสงสัยว่ามีบุ๊กมาร์กหรือฟังก์ชันการทำงานอื่นที่ไม่มีเอกสารในโปรแกรม ตัวอย่างเช่น มีข่าวลือว่าฝั่งไคลเอ็นต์ของ cDc Back Orifice ที่มีชื่อเสียงก็เป็นม้าโทรจันและส่งข้อมูลบางอย่างไปยังเจ้าของ - ผู้เขียนซอฟต์แวร์ ติดตั้ง BO Client "เพื่อฟัง" แสดงว่าข่าวลือไม่เป็นความจริง

นักดมกลิ่นมีประโยชน์พอๆ กับการดีบั๊กซอฟต์แวร์ของคุณเอง ฉันจะไม่มีวันลืมช่วงเวลาที่พร็อกซีเซิร์ฟเวอร์ไม่ต้องการสร้างการเชื่อมต่อหากคำขอ GET ลงท้ายด้วย \ n \ n แทนที่จะเป็น \ r \ n \ r \ n ที่จำเป็น การตรวจสอบเฉพาะแพ็กเก็ตที่ส่งโดยเบราว์เซอร์ "ที่ปฏิบัติตามกฎหมาย" และเปรียบเทียบกับแพ็กเก็ตที่ส่งโดยสคริปต์พุ่งพรวดของฉันชี้ให้เห็นข้อผิดพลาดที่น่ารำคาญ บ่อยครั้งมากในการฝึกฝนผู้ดูแลระบบประจำวันของฉัน ฉันต้องจัดการกับการวิเคราะห์ที่ระดับ TCP / UDP

การศึกษา. คุณสามารถเป็นลมได้โดยการจดจำรูปแบบส่วนหัวของแพ็กเก็ตของโปรโตคอลและวิธีการสื่อสารต่างๆ (เช่น 3 ทาง TCP handshake, DNS, วิธีการสมัครแผนติดตามเส้นทาง) แต่ความรู้นี้จะตายไปจนกว่าคุณจะพยายาม "สัมผัสด้วยมือของคุณ" - ครั้งหนึ่งเคยเขียนโปรแกรมหรือ ... โดยมองเข้าไปในดมกลิ่น! หลังจากอ่านเอกสารสำหรับโปรโตคอลที่ไม่รู้จักหรือเข้าใจได้ไม่ดีแล้ว ให้พยายามจำลองการโต้ตอบ สกัดกั้นแพ็กเก็ตและวิเคราะห์ - ฉันรับรองกับคุณว่าทุกอย่างจะชัดเจนอย่างยิ่ง และยิ่งกว่านั้น ความรู้นี้เป็นจริงมากกว่าและจะยังอยู่ในหัวของคุณสำหรับ เวลานาน. ในกรณีของเทคโนโลยีปิด การดมกลิ่นอาจเป็นวิธีเดียวในการศึกษาพวกมัน

การบันทึกการรับส่งข้อมูลเครือข่าย เป็นไปได้ที่จะอภิปรายกันอย่างมากเกี่ยวกับความถูกต้องตามกฎหมายและจริยธรรมของผู้ดูแลระบบที่บันทึกการรับส่งข้อมูลของผู้ใช้เพื่อดูเพิ่มเติม แต่ความจริงก็คือหลายองค์กรรวมเทคโนโลยีนี้ไว้ในนโยบายความปลอดภัย ความคิดเห็นส่วนตัวของฉันคือเจ้าของเป็นผู้เชี่ยวชาญ นั่นคือหากบริษัทจัดหาอุปกรณ์ให้กับพนักงาน การเชื่อมต่อกับเครือข่ายท้องถิ่นและระดับโลก ก็มีสิทธิ์เรียกร้องการใช้ทรัพยากรเหล่านี้อย่างเหมาะสม เหตุผลสำคัญประการที่สองในการบันทึกการรับส่งข้อมูลคือการตรวจหาความพยายามในการเข้าถึงโดยไม่ได้รับอนุญาตและภัยคุกคามที่เป็นอันตรายอื่นๆ เช่น การโจมตี DoS ด้วยบันทึกดังกล่าว ผู้ดูแลระบบสามารถรู้ได้อย่างแม่นยำ 100% ว่าเกิดอะไรขึ้นในโดเมนเครือข่ายของเขา

ตอนนี้เรามาพูดถึงด้านที่ผิดกฎหมายของการดมกลิ่น อย่างแรกเลยมันเป็นเรื่องธรรมดา

กำลังดักฟัง เมื่อติดตั้งเครื่องดมกลิ่นอย่างถูกต้องแล้ว คุณสามารถสอดแนมเพื่อนบ้านและผู้ที่อยู่ห่างไกลได้ - ศัตรู เพื่อน คู่สมรส;) คุณอาจสนใจคำถามต่อไปนี้: เหตุใดบุคคลหนึ่งจึงใช้เครือข่าย เขาเข้าชมแหล่งข้อมูลทางเว็บใดบ้าง ข้อมูลทำอะไร เขาส่งกับใครและเขาสื่อสารกับอะไร? ใช่หน่วยงานความมั่นคงของรัฐจะยกโทษให้ฉัน แต่ SORM ฉาวโฉ่ซึ่งความชอบธรรมในรูปแบบของการบันทึกการจราจรทั้งหมดเป็นคำถาม baaaa ฉันอ้างถึงส่วนนี้แม้ว่าจะปรากฏในวรรคสุดท้ายของ "กฎหมาย" ดมกลิ่น";)

การดักฟังที่เป็นวัตถุมากขึ้น อย่างไรก็ตาม ส่วนสำคัญของชุมชน "แฮ็กเกอร์" ไม่ได้แลกเปลี่ยนความสามารถของพวกเขาในการสอดแนมคู่สมรสนอกใจและสิ่งอื่น ๆ ในชีวิตประจำวัน ส่วนใหญ่แล้ว ผู้โจมตีจะสนใจเนื้อหาบางอย่างที่สามารถเจาะเข้าไปในระบบและเครือข่ายของผู้อื่นได้ยาก อย่างที่คุณอาจเดาได้ ส่วนใหญ่เกี่ยวกับการสกัดกั้นชื่อผู้ใช้และรหัสผ่านที่ส่งผ่านเครือข่ายเป็นข้อความธรรมดา โดยเฉพาะสิ่งนี้ใช้กับรหัสผ่านสำหรับ telnet, POP, IMAP, NNTP, IRC สำหรับเว็บแอปพลิเคชันที่ไม่ใช้การเข้ารหัส SNMP v1 community-strings เป็นต้น

การดำเนินการ

เมื่อเราจัดการกับส่วนทฤษฎีมากหรือน้อยแล้ว กลับไปที่โลกที่บาป - มาพูดถึงการใช้งานเฉพาะของ sniffers สำหรับแพลตฟอร์มต่างๆ อันที่จริง มีซอฟต์แวร์ดังกล่าวอยู่มากมาย ช่องว่างในการทำงานและป้ายราคา (โดยเฉพาะในช่วงหลัง) นั้นมหาศาล คำถามที่พบบ่อยเกี่ยวกับ Sniffing (การดักฟังเครือข่าย, ดมกลิ่น) Robert Graham แนะนำให้ลองใช้ผลิตภัณฑ์ต่อไปนี้:

เซิร์ฟเวอร์ WinNT
WinNT Server ของ Microsoft มาพร้อมกับโปรแกรมในตัวที่เรียกว่า "Network Monitor" ไปที่แผงควบคุมเครือข่าย เลือก "บริการ" คลิก "เพิ่ม ... " และเลือก "Network Monitor Tools and Agent" หลังจากติดตั้งโปรแกรม จะมีอยู่ในเมนูเริ่มในส่วน "เครื่องมือการดูแลระบบ"

ในความเป็นจริง BlackICE เป็นระบบตรวจจับการบุกรุก (IDS) แต่หนึ่งในหน้าที่ของมันคือการเขียนการดัมพ์แพ็คเก็ตดิบในรูปแบบที่สามารถถอดรหัสได้โดยตัววิเคราะห์โปรโตคอล สิ่งหนึ่ง: โปรแกรมจะสแกนเฉพาะการรับส่งข้อมูลที่ผ่านอินเทอร์เฟซภายในของโฮสต์ที่กำลังทำงานอยู่ นั่นคือไม่สำส่อน สามารถดาวน์โหลดโปรแกรมได้ที่เว็บไซต์

ในทางกลับกัน โปรแกรมนี้สามารถวิเคราะห์เฉพาะแพ็กเก็ตที่บันทึกโดยผู้ดมกลิ่นเช่น BlackICE Pro เท่านั้น

ตัววิเคราะห์โปรโตคอลฟรี

โดยปกติ รายการนี้ยังไม่สมบูรณ์ คุณสามารถไปที่เสิร์ชเอ็นจิ้นหรือคอลเล็กชันซอฟต์แวร์ดาวน์โหลดและค้นหาสิ่งที่เหมาะสมบนเมนูด้านซ้าย นอกจากนี้ ในความเห็นของฉัน บทวิจารณ์ไม่ได้กล่าวถึงผลิตภัณฑ์ที่โดดเด่นประเภทนี้สำหรับ Win32 - NetXRay มากที่สุด ซึ่งตอนนี้เปลี่ยนชื่อเป็น Sniffer Basic เราจะพูดถึงเขาในภายหลัง

Snort
ดมกลิ่นตาม libpcap พร้อมความสามารถในการกรองขั้นสูง

อีกครั้งที่รายการยังไม่สมบูรณ์แบบ คุณสามารถดูที่อื่นได้ อีกสิ่งหนึ่งคือในชุมชน * NIX นั้นไม่ได้รับการยอมรับเป็นพิเศษให้ "กระจัดกระจาย" - มีการทดสอบตามเวลา ปรับปรุงผู้นำผลิตภัณฑ์อย่างต่อเนื่อง และส่วนใหญ่ชอบพวกเขาโดยไม่ต้องพยายามมองหาทางเลือกอื่น ผู้นำแบบสัมบูรณ์ที่นี่คือ tcpdump และ sniffit

Tcpdump & WinDump

(โดย Ghost // Necrosoft)

ดังที่กล่าวไว้ข้างต้น TcpDump เป็นตัวดมกลิ่นที่ใช้บ่อยที่สุดสำหรับระบบ * nix คุณสามารถค้นหาได้ในระบบปฏิบัติการรุ่นใหม่ล่าสุดที่คุณใช้อยู่ เป็นการดีที่สุดที่จะอธิบาย tcpdump โดยการแสดงรายการตัวเลือกบรรทัดคำสั่งทั้งหมด - วิธีนี้จะทำให้คุณได้รับรายการความสามารถของมันและคำแนะนำโดยตรงในการดำเนินการ - "ในขวดเดียว"

WinDump เป็นพอร์ตของ TcpDump จากระบบ * nix ทำหน้าที่เหมือนกันและมีไวยากรณ์เหมือนกับ TcpDump แต่มีตัวเลือกบรรทัดคำสั่งเพิ่มเติมสองสามตัว ซึ่งจะกล่าวถึงด้านล่าง

คำอธิบายประกอบเล็กน้อยเกี่ยวกับการใช้ TcpDump ภายใต้ระบบต่างๆ บน SunOS ที่ใช้อุปกรณ์ nit หรือ bpf: คุณต้องมีสิทธิ์อ่าน / dev / nit หรือ / dev / bpf * เพื่อรัน tcpdump บน Solaris ที่มี dlpi คุณต้องมีสิทธิ์เข้าถึงอะแดปเตอร์เครือข่ายหลอก เช่น / dev / le บน HP-UX ที่มี dlpi: คุณต้องเป็น root หรือ tcpdump ต้องมีการตั้งค่า uid เป็น root บน IRIX ที่มี snoop และ Linux: ข้อกำหนดคล้ายกับ HP-UX บน Ultrix และ Digital UNIX: เฉพาะหัวหน้างานเท่านั้นที่มีการดำเนินการในโหมดสำส่อนโดยใช้ pfconfig (8) คุณสามารถได้รับสิทธิ์ในการเรียกใช้ tcpdump ภายใต้ BSD: คุณต้องมีสิทธิ์เข้าถึง / dev / bpf * ภายใต้ Win32: คุณต้องติดตั้งไดรเวอร์การดักจับแพ็กเก็ต NDIS

ตอนนี้ มาดูตัวเลือกบรรทัดคำสั่งกันดีกว่า

TcpDump [-adeflnNOpqStvx] [-c count] [-F file] [-i interface] [-r file] [-s snaplen] [-T type] [-w file] [expression] ตัวเลือกเฉพาะ Windump [-D] [-ขนาด B]

-a ให้คุณแปลงที่อยู่เครือข่ายและออกอากาศเป็นชื่อได้

-c ออกหลังจากประมวลผลแพ็กเก็ตการนับ

-d ส่งออกเนื้อหาของแพ็คเกจในรูปแบบที่มนุษย์อ่านได้

-dd ส่งออกเนื้อหาของแพ็คเกจเป็นส่วนโปรแกรม C

-ddd แสดงเนื้อหาของแพ็คเกจในรูปแบบทศนิยม

-e พิมพ์ส่วนหัวระดับลิงก์ในแต่ละบรรทัดใหม่

-f พิมพ์ที่อยู่ของโฮสต์ระยะไกลและโลคัลโดยไม่ต้องแปลงเป็นชื่อ

-F ใช้ไฟล์พร้อมคำอธิบายของพารามิเตอร์การกรอง (ละเว้นนิพจน์เพิ่มเติมในบรรทัดคำสั่ง)

-i ใช้อินเทอร์เฟซสำหรับการติดตาม หากไม่ได้ระบุไว้ tcpdump จะค้นหาอินเทอร์เฟซเครือข่ายที่มีหมายเลขต่ำสุด (ไม่รวมลูปแบ็ค) ในอินเทอร์เฟซ Windows ชื่อของอะแดปเตอร์เครือข่ายหรือหมายเลข (คุณสามารถค้นหาได้โดยใช้ WinDump -D)

-l ใช้เอาต์พุตบัฟเฟอร์ไปยัง stdout โครงสร้างเช่น "tcpdump -l | tee dat" "หรือ" tcpdump -l> dat & tail -f dat "" มีประโยชน์

-n ไม่แปลที่อยู่ (เช่น ที่อยู่โฮสต์ หมายเลขพอร์ต ฯลฯ) เป็นชื่อ

-N ไม่พิมพ์ชื่อโดเมนในชื่อโฮสต์ เหล่านั้น. หากใช้แฟล็กนี้ tcpdump จะพิมพ์ "nic" "แทน" nic.ddn.mil ""

-O อย่าเรียกใช้ตัวเพิ่มประสิทธิภาพแพ็คเกจ ตัวเลือกนี้มีประโยชน์หากคุณกำลังค้นหาแพ็กเก็ตด้วยตัวเอง

-p อย่าวางอินเทอร์เฟซเครือข่ายใน "โหมดสำส่อน"

เอาต์พุตย่อ -q แสดงข้อมูลในรูปแบบย่อ

-r อ่านแพ็คเกจจากไฟล์ (ซึ่งสร้างด้วยตัวเลือก -w) หากคุณต้องการใช้คอนโซลเป็นอินพุต ไฟล์จะเป็น "-" "

-s พิมพ์ snaplen ไบต์ของแต่ละแพ็กเก็ต (บน SunOS "NIT ขั้นต่ำ 96.) 68 ไบต์เพียงพอสำหรับโปรโตคอล IP, ICMP, TCP และ UDP แต่ตัดทอนข้อมูลจากเลเยอร์ที่สูงกว่า เช่น แพ็กเก็ต DNS และ NFS

-T บังคับให้ตีความแพ็กเก็ตประเภทที่ตรงกับมาสก์ "นิพจน์" ปัจจุบันรู้จักประเภทต่อไปนี้: rpc (การเรียกขั้นตอนระยะไกล), rtp (โปรโตคอลแอปพลิเคชันเรียลไทม์), rtcp (โปรโตคอลควบคุมแอปพลิเคชันเรียลไทม์), vat (เครื่องมือเสียงภาพ) และ wb (กระดานไวท์บอร์ดแบบกระจาย)

-S พิมพ์หมายเลขแพ็กเก็ต TCP แบบสัมบูรณ์

-t ไม่พิมพ์เวลาทุกบรรทัด

-tt พิมพ์เวลาที่ไม่ได้จัดรูปแบบในแต่ละบรรทัด

-v เอาต์พุตแบบละเอียด ตัวอย่างเช่น อายุการใช้งานของแพ็กเก็ตและประเภทบริการ

-vv เพื่อผลลัพธ์ที่ละเอียดยิ่งขึ้น ตัวอย่างเช่น การแสดงฟิลด์เพิ่มเติมสำหรับแพ็กเก็ตตอบกลับ NFS

-w เขียนแพ็คเก็ตดิบไปยังไฟล์ ซึ่งคุณสามารถถอดรหัสได้ในภายหลังโดยใช้ตัวเลือก -r หากคุณต้องการใช้คอนโซลเป็นเอาต์พุต ไฟล์จะเป็น "-" "

-x ส่งออกแต่ละแพ็กเก็ตเป็นฐานสิบหก (ไม่มีส่วนหัว) Snaplen ไบต์จะถูกส่งไปยังเอาต์พุต

ตัวเลือก WinDump เพิ่มเติม:

-B ตั้งค่าขนาดบัฟเฟอร์ของไดรเวอร์เป็นกิโลไบต์ ขนาดบัฟเฟอร์เริ่มต้นคือ 1 เมกะไบต์ หากบางแพ็กเก็ตไม่แสดงขึ้นระหว่างการทำงาน ให้ลองเพิ่มขนาดบัฟเฟอร์ หากคุณมีการเชื่อมต่อ PPP หรืออีเทอร์เน็ต 10 Mbps ขนาดบัฟเฟอร์จะลดลงครึ่งหนึ่งหรือสามเท่า

-D แสดงรายการอุปกรณ์เครือข่ายที่มีอยู่ในระบบของคุณ รายการมีลักษณะดังนี้: หมายเลข - หมายเลขของอุปกรณ์เครือข่ายในระบบ ชื่อ - ชื่อ ตามด้วยคำอธิบายของอุปกรณ์ ต่อจากนั้น คุณสามารถใช้ข้อมูลนี้เพื่อทำงานกับอินเทอร์เฟซเครือข่ายที่มีอยู่ทั้งหมดของระบบของคุณที่มีอยู่ในปัจจุบัน และคุณสามารถเลือกอุปกรณ์โดยใช้ตัวเลือก -I - "WinDump -i name" หรือ "WinDump -i number"

นิพจน์เป็นนิพจน์ที่กำหนดเกณฑ์สำหรับการกรองแพ็กเก็ต หากไม่มีฟิลด์นิพจน์ แพ็กเก็ตทั้งหมดจะถูกพิมพ์ มิฉะนั้น จะพิมพ์เฉพาะแพ็กเก็ตที่ตรงกับนิพจน์เท่านั้น

นิพจน์สามารถประกอบด้วยหนึ่งหรือหลาย primitives พื้นฐานมักประกอบด้วยรหัส (ชื่อหรือหมายเลข) ของตัวระบุ การคัดเลือกมีสามประเภทที่สำคัญ:

type เป็นตัวระบุที่กำหนดนโยบายทั่วไป ประเภทที่เป็นไปได้ ได้แก่ โฮสต์ เน็ต และพอร์ต เหล่านั้น. "โฮสต์ foo", "net 128.3", "พอร์ต 20" หากไม่ได้ระบุประเภท ระบบจะใช้โฮสต์ตามค่าเริ่มต้น

dir เป็นตัวระบุทิศทางของการส่งแพ็กเก็ต ตัวเลือกคือ src, dst, src หรือ dst และ src และ dst เช่น "src foo", "dst net 128.3", "src หรือ dst port ftp-data" หากไม่ได้ระบุ dir ไว้ src หรือ dst จะถูกใช้โดยค่าเริ่มต้น สำหรับการเชื่อมต่อ "null" (นี่คือ ppp หรือ slip) ตัวระบุขาเข้าและขาออกจะใช้เพื่อระบุทิศทางที่ต้องการ

โปรโต - ตัวระบุช่วยให้คุณกรองแพ็กเก็ตตามโปรโตคอลเฉพาะ โปรโตคอลที่เป็นไปได้: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp และ udp เหล่านั้น. "ether src foo", "arp net 128.3", "พอร์ต TCP 21" หากไม่มีตัวระบุ ก็จะไม่มีการกรองแพ็กเก็ต ("fddi" เป็นนามแฝงสำหรับ "ether" เนื่องจากในกรณีส่วนใหญ่แพ็กเก็ต FDDI มีที่อยู่อีเทอร์เน็ตต้นทางและปลายทางและมักประกอบด้วยประเภทแพ็กเก็ตอีเทอร์เน็ต ส่วนหัว FDDI ยังมีฟิลด์อื่นๆ ที่ไม่ได้อยู่ในรายการตัวกรอง)

นอกเหนือจากข้างต้นแล้ว primitives พิเศษบางตัวไม่มีเทมเพลต ซึ่งได้แก่ เกตเวย์ การออกอากาศ นิพจน์ทางคณิตศาสตร์ที่น้อยกว่า มากกว่า และทางคณิตศาสตร์ เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง

นิพจน์ตัวกรองแบบผสมจำนวนมากใช้คำและหรือและไม่รวมดั้งเดิม ตัวอย่างเช่น "โฮสต์ foo ไม่ใช่พอร์ต ftp และไม่ใช่พอร์ต ftp-data" เพื่อความสะดวกในการเข้าร่วม อาจละเว้นบางรอบคัดเลือก ตัวอย่างเช่น "tcp dst port ftp หรือ ftp-data หรือ domain" เหมือนกับ "tcp dst port ftp หรือ tcp dst port ftp-data หรือ tcp dst port domain"

อนุญาตให้ใช้นิพจน์ต่อไปนี้:

โฮสต์โฮสต์ dst เป็นจริง หากฟิลด์ปลายทาง IP ของแพ็กเก็ตเป็นโฮสต์ ก็อาจเป็นที่อยู่หรือชื่อโฮสต์ก็ได้

โฮสต์โฮสต์ src เป็นจริงหากฟิลด์ต้นทาง IP ของแพ็กเก็ตเป็นโฮสต์

โฮสต์โฮสต์เป็นจริงหากต้นทางหรือปลายทางของแพ็กเก็ตเป็นโฮสต์ คำนำหน้า: ip, arp หรือ rarp สามารถใช้เช่น: ip host host ซึ่งเทียบเท่ากับ ether proto \ ip และ hosthost หากโฮสต์เป็นชื่อที่มีที่อยู่ IP หลายที่อยู่ แต่ละที่อยู่จะถูกตรวจสอบเพื่อหารายการที่ตรงกัน

ether dst ehost True หากที่อยู่อีเทอร์เน็ตปลายทางคือ ehost Ehost เป็นชื่อหรือหมายเลขใด ๆ / etc / ethers (ดู ethers (3N)

ether src ehost เป็นจริงหากอีเธอร์เน็ตต้นทางคือ ehost

ether host ehost เป็นจริงหากที่อยู่อีเธอร์เน็ตปลายทางหรือต้นทางเป็น ehost

โฮสต์เกตเวย์เป็นจริงหากโฮสต์เป็นเกตเวย์ เหล่านั้น. ที่อยู่อีเทอร์เน็ตต้นทางหรือปลายทางเป็นโฮสต์ แต่ทั้ง IP ต้นทางและ IP ปลายทางไม่ใช่โฮสต์ โฮสต์สามารถเป็นชื่อและยังสามารถอยู่ใน / etc / hosts และ / etc / ethers (ซึ่งเทียบเท่ากับ ether host ehost และไม่ใช่ host host ซึ่งสามารถใช้กับชื่อหรือหมายเลขสำหรับ host / ehost ได้)

dst net net เป็นจริงหากที่อยู่ IP ของผู้รับเป็น net Net - รายการใด ๆ จาก / ฯลฯ / เครือข่ายหรือที่อยู่เครือข่าย

src net net เป็นจริงหากที่อยู่ IP ของผู้ส่งเป็น net

net net True หาก IP ของผู้รับหรือผู้ส่งมีที่อยู่เครือข่าย - net

net net mask mask True ถ้าที่อยู่ IP ตรงกับ net กับ netmask ที่เกี่ยวข้อง สามารถระบุร่วมกับ src หรือ dst

net net / len เป็นจริงหาก IP เป็น net และ subnet mask เป็น len bitmap (รูปแบบ CIDR) สามารถระบุร่วมกับ src หรือ dst

พอร์ตพอร์ต dst เป็นจริงหากแพ็กเก็ตเป็น ip / tcp หรือ ip / udp และมีพอร์ตปลายทาง - พอร์ต พอร์ตสามารถเป็นตัวเลขหรือแสดงอยู่ใน / etc / services (ดู tcp (4P) และ udp (4P)) หากชื่อถูกใช้สำหรับพอร์ตตั้งแต่สองพอร์ตขึ้นไป ระบบจะตรวจสอบทั้งหมายเลขพอร์ตและโปรโตคอล หากใช้หมายเลขพอร์ตหรือชื่อที่ไม่ถูกต้อง ระบบจะตรวจสอบเฉพาะหมายเลขพอร์ตเท่านั้น (เช่น dst พอร์ต 513 เอาต์พุต tcp / login และ udp / who traffic และพอร์ตโดเมนส่งออก tcp / domain และ udp / domain)

พอร์ตพอร์ต src เป็นจริงหากพอร์ตต้นทางเป็นพอร์ต

พอร์ตพอร์ตเป็นจริงหากพอร์ตต้นทางหรือปลายทางเป็นพอร์ต บางนิพจน์สามารถรวมกันได้ ตัวอย่างเช่น: tcp src port port - เฉพาะแพ็กเก็ต tcp ที่พอร์ตเป็น -port

ความยาวน้อยกว่าเป็นจริงถ้าความยาวแพ็กเก็ตน้อยกว่าหรือเท่ากับความยาว ซึ่งเทียบเท่ากับ len<= length.

ความยาวที่มากขึ้นจะเป็นจริงหากความยาวแพ็กเก็ตมากกว่าหรือเท่ากับความยาว ซึ่งเท่ากับ len> = ความยาว

โปรโตคอล ip proto เป็นจริงหากแพ็กเก็ตเป็นแพ็กเก็ต IP ของโปรโตคอล โปรโตคอลสามารถกำหนดหมายเลขหรือชื่อใดชื่อหนึ่ง icmp, igrp, udp, nd หรือ tcp

การออกอากาศอีเธอร์เป็นจริงหากแพ็กเก็ตเป็นแพ็กเก็ตการออกอากาศอีเธอร์เน็ต นิพจน์อีเทอร์เป็นทางเลือก

การออกอากาศ IP เป็นจริงหากแพ็กเก็ตเป็นแพ็กเก็ตการออกอากาศ IP

ether multicast เป็นจริงหากแพ็กเก็ตเป็นแพ็กเก็ตมัลติคาสต์อีเทอร์เน็ต นิพจน์อีเทอร์เป็นทางเลือก นี่คือชวเลขสำหรับ "ether & 1! = 0"

ip multicast เป็นจริงหากแพ็กเก็ตเป็นแพ็กเก็ต IP multicast

โปรโตคอล ether proto เป็นจริงหากแพ็กเก็ตเป็นประเภทอีเทอร์เน็ต โปรโตคอลอาจเป็นตัวเลขหรือชื่อ: ip, arp หรือ rarp

โฮสต์ decnet src เป็นจริงหากที่อยู่ DECNET ปลายทางคือโฮสต์ ซึ่งสามารถเป็นที่อยู่เช่น "10.123" " หรือชื่อโฮสต์ DECNET (ชื่อโฮสต์ DECNET รองรับเฉพาะระบบ Ultrix)

decnet dst host True หากที่อยู่ DECNET ปลายทางเป็นโฮสต์

โฮสต์โฮสต์ decnet เป็นจริง หากที่อยู่ DECNET ปลายทางหรือต้นทางเป็นโฮสต์

โปรโต [expr: ขนาด]

Proto เป็นหนึ่งในโปรโตคอลต่อไปนี้ ether, fddi, ip, arp, rarp, tcp, udp หรือ icmp และระบุระดับโปรโตคอลสำหรับการดำเนินการนี้ ไบต์ออฟเซ็ตสำหรับเลเยอร์โปรโตคอลนี้นำมาจาก expr ขนาด - ไม่บังคับ แสดงจำนวนไบต์ที่ต้องการที่ออฟเซ็ตที่กำหนด อาจเป็น 1.2 หรือ 4 ค่าเริ่มต้นคือ 1

ตัวอย่างการใช้tcpdump

แสดงรายการแพ็กเก็ตขาเข้าและขาออกทั้งหมดจากพระอาทิตย์ตก: tcpdump host sundown

การส่งทราฟฟิกระหว่าง helios และหนึ่งในสอง hot หรือ ace: tcpdump host helios และ \ (hot หรือ ace \)

การทิ้งการปฏิบัติทั้งหมดระหว่าง ace และโฮสต์อื่น ๆ ยกเว้น helios: tcpdump ip host ace ไม่ใช่ helios

การถ่ายโอนข้อมูลการรับส่งข้อมูลระหว่างเครื่องในพื้นที่และเครื่อง Berkeley: tcpdump net ucb-ether

การออกทราฟฟิก ftp ผ่านเกตเวย์ snup: tcpdump "gateway snup and (พอร์ต ftp หรือ ftp-data)"

การแสดงทราฟฟิกที่ไม่ได้เป็นของเครื่องบนเครือข่ายท้องถิ่น (หากเครื่องของคุณเป็นเกตเวย์ไปยังเครือข่ายอื่น tcpdump จะไม่สามารถแสดงทราฟฟิกบนเครือข่ายท้องถิ่นของคุณได้) tcpdump ip ไม่ใช่ net localnet

การออกแพ็กเก็ตเก่าและหยุด (แพ็กเก็ต SYN และ FIN) ที่ไม่ได้เป็นของเครือข่ายท้องถิ่น tcpdump "tcp & 3! = 0 และไม่ใช่ src และ dst net localnet"

การออกแพ็กเก็ต IP ที่ยาวกว่า 576 ไบต์ที่ส่งผ่านเกตเวย์ snup: tcpdump "gateway snup และ ip> 576"

การออก IP Broadcast หรือแพ็กเก็ตมัลติคาสต์ที่ไม่ได้ส่งผ่านการออกอากาศอีเทอร์เน็ตหรือมัลติคาสต์: tcpdump "ether & 1 = 0 และ ip> = 224"

การออกแพ็กเก็ต ICMP ทั้งหมดที่ไม่ใช่คำขอ / ตอบกลับ echo (เช่นไม่ใช่แพ็กเก็ต ping): tcpdump "icmp! = 8 และ icmp! = 0"

NetXRay

โดย Alice D. Saemon

คนที่ฉันรัก ...

นานมาแล้ว ... NetXRay เป็นผู้ดมกลิ่นคนแรกที่เข้ามาอยู่ในขอบเขตการมองเห็นของฉัน จากนั้นในปี 1997 โปรแกรมภาษาอังกฤษนี้ได้สร้างกระแสในแวดวงเครือข่ายที่เน้นวินโดว์ หลายปีผ่านไป แต่ NetXRay เวอร์ชันเก่า (3.0.1) ยังคงให้บริการในการทำงานประจำวันบนเวิร์กสเตชันของฉัน วันนี้ผลิตภัณฑ์ได้รับการเปลี่ยนชื่อเป็น Sniffer Basic โดยมีการเพิ่มคุณสมบัติใหม่บางอย่าง แต่ในทางกลับกัน ฟังก์ชันพื้นฐานยังคงไม่เปลี่ยนแปลงตั้งแต่ 3.0.1 นี่คือเหตุผลแรกว่าทำไม NetXRay 3.0.1 จะถูกอธิบายในหนังสือพิมพ์ เหตุผลที่สอง ... (ดูที่ตำรวจต่อต้านการละเมิดลิขสิทธิ์) เป็นผลิตภัณฑ์ที่มีราคาแพงมาก (1,643 ปอนด์ซึ่งเป็นสเตอร์ลิง) และข้อ จำกัด การทดลองใช้นั้นจริงจังมาก มาเริ่มกันเลย

แพ็คเกจประกอบด้วยชุดของฟังก์ชั่นที่แตกต่างกันและสามารถเรียกได้ว่าเป็นตัววิเคราะห์เครือข่ายมากกว่าดมกลิ่น คุณลักษณะทั้งหมด (โมดูล) ถูกจัดกลุ่มในเมนู "เครื่องมือ" นอกจากนี้ยังมีการตั้งค่าต่างๆ เริ่มจากพวกเขากันก่อน คุณสามารถเลือกอะแด็ปเตอร์สำหรับโพรบปัจจุบันได้ อะแดปเตอร์ต้องรองรับมาตรฐาน NDIS 3.0 / 3.1

ความสนใจ บัก! หากคุณ "ตั้งค่า" NetXRay บนอแด็ปเตอร์ "ผิด" ในความเห็นหรือดักจับแพ็กเก็ตที่ถอดรหัสที่เลเยอร์ลิงค์เครือข่ายไม่ได้ (เช่น การรับส่งข้อมูลจากการหาช่องโหว่ที่ส่งแพ็กเก็ตที่แยกส่วนคดโกง) - ในขั้นตอนของการถอดรหัส (การวิเคราะห์โปรโตคอล ) โปรแกรมค้าง ...

คุณสามารถทดสอบอินเทอร์เฟซหลายตัวพร้อมกันได้ ซึ่งจะสร้าง hypostases ของโปรแกรม (โพรบ) หลายตัว คุณสามารถคัดลอกการตั้งค่าทั้งหมดที่มีอยู่ไปยังโพรบใหม่ได้

ในตัวเลือก คุณสามารถกำหนดค่าสิ่งต่อไปนี้: ลักษณะที่ปรากฏของเดสก์ท็อป หมายเลขพอร์ตมาตรฐานสำหรับโปรโตคอลต่างๆ (3 ตัวเลือก - มีประโยชน์มากในกรณีที่แอปพลิเคชันเครือข่ายทำงานบนพอร์ตที่ไม่ได้มาตรฐาน) การตอบสนองต่อเหตุการณ์บางอย่าง ค่าเกณฑ์สำหรับสถิติประเภทต่างๆและดร.

ทีนี้ มาลงที่โมดูลการทำงานของแพ็คเกจกัน

จับ (จับแพ็กเก็ต)

อันที่จริงแล้ว หัวใจของ NetXRay ก็คือ ในความเข้าใจของคนทั่วไปนั้น มีการดมกลิ่น ดังนั้นฉันจะอนุญาตให้ตัวเองอธิบายรายละเอียดเพิ่มเติม

เมื่อเปิดใช้งานโมดูลนี้ หน้าต่างเล็ก ๆ จะปรากฏขึ้นต่อหน้าเราพร้อม "แดชบอร์ด" และปุ่มสองสามปุ่ม การกระทำทั้งหมดที่เราสามารถทำได้ในหน้าต่างนี้จะถูกทำซ้ำในเมนูการจับภาพ และเราสามารถทำได้: เริ่มดักจับแพ็กเก็ต, หยุด, หยุด + ดูเนื้อหาของบัฟเฟอร์ และดูเนื้อหาของบัฟเฟอร์ โดยที่การดักจับนั้นหยุดลง เรายังปรับแต่งฟิลเตอร์ได้ที่นั่น:

ตามที่อยู่ของผู้ส่งและผู้รับ เพื่ออำนวยความสะดวกในงานนี้ มีสมุดที่อยู่และชุดที่อยู่ที่กำหนดไว้ล่วงหน้า เช่น "ใดๆ"

โดยแม่แบบ หากคุณต้องการจับแพ็คเกจที่มีข้อมูลเฉพาะที่ใดก็ได้ในแพ็คเกจ คุณสามารถเขียนเทมเพลตที่ชาญฉลาดได้ ยิ่งไปกว่านั้น สิ่งที่ดีเป็นพิเศษคือ คุณสามารถออกแบบเทมเพลตในรูปแบบใดก็ได้ที่สะดวกสำหรับคุณ: ไบนารี เลขฐานสิบหก ASCII และ EBCDIC

ตามโปรโตคอลที่โปรแกรมรู้จัก มัน:

เครือข่าย: AppleTalk, AppleTalk ARP, APOLLO, DECNET, IP, IP ARP, IPX, LAT, NetBEUI, OSI, SNA, VINES, VINES Loopback, VINES Echo, XNS

สูงกว่าในสแต็ก IP: การขนส่ง บริการ และการกำหนดเส้นทาง - ICMP, IGMP, GGP, EGP, IGP, ISO-TP4, HELLO, IP-VINES, IGRP, OSPF, TCP, UDP; เลเยอร์แอปพลิเคชัน - FTP, REXEC, RLOGIN, RSH, เครื่องพิมพ์, SMTP, TELNET, DNS (TCP), GOPHER, HTTP, POP, SUNRPC (TCP), NNTP, NETBIOS, X-WINDOW, DNS (UDP), BOOTP, TFTP, SUNRPC (UDP), SNMP, SNMPTRAP, BIFF, WHO, SYSLOG, RIP, GDP, NFS

สูงกว่าในสแต็ก IPX: NCP, SAP, NRIP, NBIOS, DIAGNOSTIC, SERIALIZATION, NMPI, NLSP, NSNMP, NSNMPTRAP, SPX

อย่างที่คุณเห็น ไม่น้อยเลย ฉันคิดว่า - ซ้ำซ้อนสำหรับชีวิตจริง

ความสนใจ! ตัวกรองโปรโตคอลมีส่วนต่อประสานที่แปลกเล็กน้อย: สันนิษฐานว่าหากไม่มีการทำเครื่องหมายช่องทำเครื่องหมายทั้งหมดภายในขอบเขตของเลเยอร์เดียว แพ็คเก็ตโปรโตคอลทั้งหมดของเลเยอร์นี้และทุกสิ่งด้านบนจะถูกบันทึก (ด้านล่าง หากคุณดูที่ส่วนต่อประสานผู้ใช้) ดังนั้นหากคุณไม่ได้วาง "นก" ตัวเดียวทุกอย่างจะถูกจับได้อย่างแน่นอน โดยธรรมชาติแล้ว โปรโตคอลเลเยอร์แอปพลิเคชันที่ไม่รู้จักก็ถูกจับในกรณีนี้เช่นกัน แต่ไม่ได้ถอดรหัสให้อยู่ในรูปแบบที่อ่านได้ ซึ่งเป็นเรื่องปกติ เนื่องจากไม่เป็นที่รู้จัก :))

นอกจากนี้ คุณสามารถปรับขนาดบัฟเฟอร์หรือระบุไฟล์ที่จะวางผลการดักจับแพ็คเก็ต

การตั้งค่าตัวกรองสามารถเขียนลงในโปรไฟล์ที่เรียกว่า ตั้งชื่อ และเลือกจากรายการในภายหลัง

หลังจากจับจำนวนแพ็กเก็ตที่ต้องการแล้ว เมื่อเปิดใช้งานมุมมอง เราจะเข้าสู่ "หน้าต่างผลลัพธ์" ซึ่งโดยค่าเริ่มต้นจะมีชื่อ XRay1, XRay2 และอื่นๆ ตามจำนวนบัฟเฟอร์ปัจจุบัน คุณสามารถเห็นหน้าต่างดังกล่าวในภาพหน้าจอ: ด้านบน - รายการแพ็คเก็ตที่มี "คำอธิบายประกอบ" สั้น ๆ ตรงกลาง - ข้อมูลที่ถอดรหัส (ฉันสามารถถอดรหัสได้) และด้านล่าง - แพ็กเก็ตดิบ เป็นเรื่องแปลกที่เมื่อคุณคลิกที่ฟิลด์ที่สนใจในส่วนถอดรหัส ตำแหน่งที่เกี่ยวข้องในแพ็คเก็ตดิบจะถูกเน้น - คุณสามารถตรวจสอบคุณภาพของตัววิเคราะห์โปรโตคอลได้;)

อินเทอร์เฟซผู้ใช้ของ "หน้าต่างผลลัพธ์" มีข้อดี (ความสามารถในการใช้ตัวกรองที่กล่าวถึงข้างต้นกับบัฟเฟอร์ที่แสดง ความสามารถในการส่งแพ็กเก็ตหรือบัฟเฟอร์ไปยังเครือข่ายด้วยการคลิกเมาส์เพียงครั้งเดียว หรือคัดลอกบางอย่าง จำนวนแพ็กเก็ตไปยังบัฟเฟอร์ที่แยกจากกัน การแสดงข้อมูลที่ถอดรหัสได้อย่างสวยงาม แม้ว่าจะมีการซ้อนกันสำหรับฟิลด์ที่ผู้ใช้ทั่วไปไม่ค่อยสนใจ) และข้อเสียที่เห็นได้ชัด (คุณไม่สามารถลบแพ็กเกจสองสามชุดออกจากบัฟเฟอร์ได้ ไม่มีการทำงานของคลิปบอร์ด กล่าวคือไม่สามารถคัดลอกและบันทึกผลลัพธ์ในรูปแบบข้อความได้)

นอกจากการรวบรวมแพ็กเก็ตในบัฟเฟอร์หรือไฟล์สำหรับการถอดรหัสในภายหลังแล้ว ยังสามารถดูการรับส่งข้อมูลแบบเรียลไทม์ได้อีกด้วย

จริง ก) สายตามันดูแย่ ข) ตัวเลือกนี้เปิดอยู่ในที่ที่ไร้เหตุผล ซึ่งแม้แต่ผู้ใช้ NetXRay รุ่นเก่าอย่างฉันก็ยังลืมไปเลยว่า "เบอร์ดี้" นี้อยู่ที่ไหน นกถูกติดตั้งในเครื่องมือ | ตัวเลือก ... แท็บทั่วไป ช่องทำเครื่องหมาย Realtime Display และไม่ใช่ในการตั้งค่าการจับภาพซึ่งควรค้นหา - /

นอกจากนี้ "หน้าต่างผลลัพธ์" ยังมีแท็บสำหรับข้อมูลสถิติในเซสชันการจับภาพที่ดำเนินการ แต่เราจะไม่ยึดติดกับแท็บเหล่านั้น

เครื่องกำเนิดแพ็คเก็ต

นี่เป็นสิ่งที่ยอดเยี่ยมอย่างแท้จริง: คุณสามารถ "ร่าง" และส่งแพ็คเก็ตใดๆ ไปยังเครือข่ายได้ตั้งแต่เริ่มต้น อินเทอร์เฟซประกอบด้วยหน้าต่างหลักและตัวออกแบบแพ็คเกจที่เรียกว่า แบ่งออกเป็นสองส่วน - กำหนดค่าและถอดรหัส

ในตอนแรก เรามีภาพเหมือนของการถ่ายโอนข้อมูลมาตรฐาน (ดูส่วนทฤษฎีของบทความ) ซึ่งเต็มไปด้วยศูนย์ เราเริ่มป้อนเลขฐานสิบหกที่นั่น - ในส่วนการถอดรหัสซึ่งดูเหมือนแพ็กเก็ตที่ถอดรหัสแล้วใน "หน้าต่างผลลัพธ์" ของ Capture การวิเคราะห์แพ็กเก็ตของเราจะปรากฏขึ้น

แต่ในกรณีนี้ เราไม่เพียงแต่สามารถดูแพ็กเก็ตที่ถอดรหัสได้เท่านั้น แต่ยังทำการเปลี่ยนแปลงได้โดยคลิกที่ฟิลด์ที่กำหนด จริง การเปลี่ยนค่าในกรณีใด ๆ จะดำเนินการในรูปแบบเลขฐานสิบหกเท่านั้นและฟิลด์อินพุตมีความไม่สะดวก: (มีตัวเลือกมากมายสำหรับการสร้างและส่งแพ็กเก็ต: ส่งแพ็กเก็ตปัจจุบัน, ส่งบัฟเฟอร์ปัจจุบัน, เขียน แพ็คเก็ตตั้งแต่เริ่มต้นหรือส่งแพ็กเก็ตที่แก้ไขจากสิ่งที่รวบรวม ...

หมายเหตุเกี่ยวกับอินเทอร์เฟซ: หากมีการเรียกตัวเลือก "ส่งแพ็กเก็ตปัจจุบัน" จาก "หน้าต่างผลลัพธ์" ของ Capture แพ็กเก็ตจะถูกส่งทันทีโดยไม่ต้องเรียกตัวสร้างแพ็กเก็ต อย่างไรก็ตาม แพ็กเก็ตจะยังคงอยู่ใน "บัฟเฟอร์สำหรับส่ง" ปัจจุบัน สามารถแก้ไขได้ในภายหลัง

หากมีการเรียก "ส่งแพ็คเก็ตปัจจุบัน" จากหน้าต่างตัวสร้างแพ็คเก็ต "และ - ตัวสร้างแพ็คเกจจะถูกเรียกโดยอัตโนมัติ ระวัง!

ในตัวออกแบบแพ็คเกจ ในส่วนถอดรหัส โปรแกรมจะให้คำแนะนำแก่คุณ โดยเฉพาะอย่างยิ่ง คำนวณผลรวมการตรวจสอบใหม่เมื่อแก้ไขแพ็คเกจ (มันจะทำการเปลี่ยนแปลงที่เหมาะสมด้วยตัวมันเอง การสร้างแบบขี้เกียจ;) อย่างไรก็ตาม AI แตกต่างจากจิตใจของมนุษย์ตรงที่ไม่รู้จักวิธีคิดอย่างถูกต้อง ตัวอย่างเช่น เมื่อคุณเปลี่ยนที่อยู่ IP ของผู้รับ ลองคิดดูว่าคุณควรเปลี่ยนที่อยู่ MAC พร้อมกันหรือไม่?;)

สามารถส่งแพ็กเก็ตได้หลายโหมด: หนึ่งคลิก - หนึ่งแพ็กเก็ต จำนวนแพ็กเก็ตที่ระบุ หรือแบบวนซ้ำ วิธีนี้คุณสามารถสร้างการเข้าชม โดยทั่วไปแล้ว คุณจะพบแอปพลิเคชั่นมากมายสำหรับตัวสร้างแพ็กเก็ต ซึ่งขึ้นอยู่กับจินตนาการและความเฉลียวฉลาดของคุณ

ได้ทุกเรื่อง

นอกเหนือจากข้างต้น โปรแกรมยังมีประโยชน์อื่น ๆ อีกมากมายและไม่มาก (เหมือนใคร) ระฆังและนกหวีด สั้น ๆ เกี่ยวกับพวกเขา:

แผงควบคุม. สถิติความแออัดของเครือข่ายหรือส่วนหนึ่งของข้อมูลที่คุณมองเห็น จำนวนแพ็กเก็ต ไบต์ ข้อผิดพลาดทุกประเภท การคำนวณการใช้งาน ฉันมักสับสนกับคุณลักษณะนี้ เพราะฉันไม่เคยเห็นข้อความแสดงข้อผิดพลาดมาก่อนในชีวิต - เป็นไปไม่ได้เลยที่ไม่มีข้อความดังกล่าว!;)

ตารางโฮสต์ จับข้อมูลต่าง ๆ เกี่ยวกับโฮสต์ที่ผู้ดมกลิ่นและกิจกรรมของพวกเขามองเห็นได้ (ไม่มีการดักจับและวิเคราะห์แพ็คเก็ตแบบเต็ม)

เมทริกซ์ เกือบจะเหมือนกับ Host Table แต่นำเสนอในรูปแบบที่แตกต่างกันเล็กน้อย

ประวัติศาสตร์. วาดกราฟและไดอะแกรมเกี่ยวกับพฤติกรรมของเครือข่ายในช่วงเวลาหนึ่ง

การกระจายโปรโตคอล ตามชื่อของมัน มันเก็บสถิติเกี่ยวกับการใช้โปรโตคอลต่างๆ

สถิติ. สถิติการใช้และขนาดของบุคลากร

บันทึกนาฬิกาปลุก บันทึกเหตุการณ์ที่คุณกำหนด

ในระยะสั้นนั่นคือทั้งหมดที่ (ว้าว "ในระยะสั้นปรากฎ% - ()) ดาวน์โหลดและทดสอบสุขภาพ - เพื่อความปิติยินดีของคุณและศัตรูของคุณทั้งๆที่ :)

บทสรุป

จบลงแล้วสำหรับวันนี้ เรื่องของนักดมกลิ่น ใครฟังแล้วบ้าง (อ่านให้จบ) ทำได้ดีมาก ฉันหวังว่าคุณจะได้คำตอบสำหรับคำถามส่วนใหญ่ของคุณ เพื่อความเป็นธรรม ฉันทราบ: ยังห่างไกลจากปัญหาทั้งหมดที่ได้รับการพิจารณาภายในกรอบของบทความนี้ เหลือหัวข้อใหญ่อย่างน้อยสองหัวข้อ: โครงสร้างภายในของผู้ดมกลิ่น รวมถึงวิธีการและแนวทางในการเขียนซอฟต์แวร์ดังกล่าว ตลอดจนวิธีต้านทานการดมกลิ่น

สำหรับหัวข้อแรก นี่คือสิ่งที่ฉันคิดว่า: หัวข้อนี้น่าสนใจ ต้องใช้เนื้อหาแยกต่างหาก แต่จะมีไว้สำหรับโปรแกรมเมอร์เป็นหลัก ลองหาอะไรเกี่ยวกับเรื่องนี้กัน สำหรับคำถามที่สอง คำตอบนั้นโดยพื้นฐานแล้ว: การเข้ารหัส การเข้ารหัส และการเข้ารหัสอีกครั้ง ซึ่งชัดเจน แน่นอนว่ามีวิธีการรับรู้ถึงการมีอยู่ของผู้ดมกลิ่นในเครือข่ายและแม้กระทั่งต่อต้านมัน แต่ก็ค่อนข้างเป็นส่วนตัวและไม่ได้ผลอย่างเจ็บปวด

2021 wisemotors.ru มันทำงานอย่างไร. เหล็ก. การขุด สกุลเงินดิจิตอล