พิมพ์ลายนิ้วมือ Hacker Geek OS ด้วย TTL และขนาดหน้าต่าง TCP
คุณรู้หรือไม่ว่าคุณสามารถค้นหาระบบปฏิบัติการที่อุปกรณ์เครือข่ายทำงานอยู่โดยดูจากวิธีการสื่อสารบนเครือข่าย เรามาดูกันว่าเราสามารถค้นพบระบบปฏิบัติการที่อุปกรณ์ของเรากำลังทำงานอยู่ได้อย่างไร.
ทำไมคุณถึงทำเช่นนี้?
การพิจารณาว่าระบบปฏิบัติการที่เครื่องหรืออุปกรณ์ใดกำลังทำงานอยู่อาจมีประโยชน์ได้หลายประการ ก่อนอื่นให้ดูที่มุมมองในชีวิตประจำวันจินตนาการว่าคุณต้องการเปลี่ยนเป็น ISP ใหม่ที่ให้บริการอินเทอร์เน็ตแบบไม่ จำกัด ราคา $ 50 ต่อเดือนเพื่อให้คุณลองใช้บริการของพวกเขา เมื่อใช้ลายนิ้วมือ OS คุณจะพบว่าพวกเขามีเราเตอร์ขยะและให้บริการ PPPoE ที่มีให้ในเครื่อง Windows Server 2003 ดูเหมือนจะไม่ดีอย่างนั้นอีกแล้วเหรอ?
การใช้งานอื่นสำหรับเรื่องนี้แม้ว่าจะไม่ได้เป็นเรื่องจริยธรรม แต่อย่างใดความจริงที่ว่าช่องโหว่ด้านความปลอดภัยเป็นระบบปฏิบัติการที่เฉพาะเจาะจง ตัวอย่างเช่นคุณทำการสแกนพอร์ตและค้นหาพอร์ต 53 ที่เปิดอยู่และเครื่องกำลังใช้งานเวอร์ชันที่ล้าสมัยและมีความเสี่ยงของ Bind คุณมีโอกาสเดียวที่จะใช้ช่องโหว่ด้านความปลอดภัยเนื่องจากความพยายามที่ล้มเหลวจะล้มเหลวภูต.
ระบบลายนิ้วมือ OS ทำงานอย่างไร?
เมื่อทำการวิเคราะห์ทราฟฟิกของทราฟฟิกปัจจุบันหรือแม้แต่มองที่การจับแพ็คเก็ตเก่าหนึ่งในวิธีที่ง่ายที่สุดมีประสิทธิภาพวิธีการทำลายนิ้วมือ OS คือเพียงมองขนาดหน้าต่าง TCP และ Time To Live (TTL) แพ็กเก็ตในเซสชัน TCP.
นี่คือค่าสำหรับระบบปฏิบัติการที่ได้รับความนิยมมากขึ้น:
ระบบปฏิบัติการ | ใช้เวลาอยู่ | ขนาดหน้าต่าง TCP |
Linux (เคอร์เนล 2.4 และ 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista และ 7 (เซิร์ฟเวอร์ 2008) | 128 | 8192 |
iOS 12.4 (เราเตอร์ของซิสโก้) | 255 | 4128 |
เหตุผลหลักที่ระบบปฏิบัติการมีค่าแตกต่างกันเนื่องจาก RFC นั้นสำหรับ TCP / IP ไม่ได้กำหนดค่าเริ่มต้น สิ่งสำคัญอื่น ๆ ที่ควรจดจำคือค่า TTL จะไม่ตรงกับค่าใดค่าหนึ่งในตารางเสมอแม้ว่าอุปกรณ์ของคุณจะใช้ระบบปฏิบัติการที่ระบุไว้คุณจะเห็นเมื่อคุณส่งแพ็กเก็ต IP ข้ามเครือข่ายระบบปฏิบัติการของอุปกรณ์ที่ส่ง ตั้งค่า TTL เป็นค่าเริ่มต้นสำหรับระบบปฏิบัติการนั้น แต่เมื่อเราเตอร์แพ็คเก็ตลัดเข้าไป TTL จะลดลง 1 ดังนั้นหากคุณเห็น TTL ที่ 117 คุณสามารถคาดหวังว่าจะเป็นแพ็กเก็ตที่ส่งด้วย TTL ที่ 128 และ สำรวจเราเตอร์ 11 ตัวก่อนที่จะถูกดักจับ.
การใช้ tshark.exe เป็นวิธีที่ง่ายที่สุดในการดูค่าดังนั้นเมื่อคุณมีการดักจับแพ็กเก็ตตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Wireshark แล้วไปที่:
C: \ Program Files \
ตอนนี้กดปุ่ม Shift ค้างไว้และคลิกขวาที่โฟลเดอร์ wireshark และเลือกหน้าต่างคำสั่งเปิดที่นี่จากเมนูบริบท
ตอนนี้พิมพ์:
tshark -r "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" ฟิลด์ -T -e ip.src -e ip.ttl -e tcp.window_size
ตรวจสอบให้แน่ใจว่าได้แทนที่“ C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap” ด้วยเส้นทางที่แน่นอนในการจับแพ็คเก็ตของคุณ เมื่อคุณกด Enter คุณจะเห็นแพ็กเก็ต SYN ทั้งหมดจากการจับรูปแบบตารางที่อ่านง่ายขึ้น
ตอนนี้เป็นการจับแพ็คเก็ตแบบสุ่มที่ฉันทำให้ฉันเชื่อมต่อกับเว็บไซต์ How-To Geek ในบรรดาการแชทของ Windows อื่น ๆ ฉันสามารถบอกคุณได้สองสิ่ง:
- เครือข่ายท้องถิ่นของฉันคือ 192.168.0.0/24
- ฉันอยู่ในกล่อง Windows 7
หากคุณดูบรรทัดแรกของตารางคุณจะเห็นว่าฉันไม่ได้โกหกที่อยู่ IP ของฉันคือ 192.168.0.84 TTL ของฉันคือ 128 และ TCP Window Size ของฉันคือ 8192 ซึ่งตรงกับค่าสำหรับ Windows 7.
สิ่งต่อไปที่ฉันเห็นคือที่อยู่ 74.125.233.24 ที่มี TTL 44 และ TCP Window Size 5720 ถ้าฉันดูที่ตารางของฉันไม่มี OS ที่มี TTL 44 แต่มันบอกว่า Linux กับเซิร์ฟเวอร์ของ Google run มี TCP Window Size 5720 หลังจากทำการค้นหาเว็บอย่างรวดเร็วของที่อยู่ IP คุณจะเห็นว่าในความเป็นจริงแล้วเซิร์ฟเวอร์ Google.
มีอะไรอีกที่คุณใช้ tshark.exe เพื่อบอกเราในความคิดเห็น.