วิธีค้นหาชื่อโฮสต์ที่ไคลเอ็นต์ TLS เชื่อมต่อกับ || เดิมคือ: จะค้นหาผู้ให้บริการดั้งเดิมของข้อมูลที่ให้บริการโดย CDN ได้อย่างไร


1

ตกลง. โพสต์แรกหลังจากปีที่ซุ่มซ่อน และแม้แต่ชื่อเรื่องก็เป็นสิ่งที่ท้าทายในตัวมันเอง ...

วิชาบังคับก่อน:

  • บริษัท A ให้บริการผ่าน CDN เช่น Cloudflare, Akamai, CloudFront, ...

สถานการณ์:

  • (My) ลูกค้า A กำลังขอข้อมูล
  • (My) เซิร์ฟเวอร์ DNS (dnsmasq) เห็นข้อความค้นหาและแก้ไขที่อยู่ที่ชี้ไปที่ CDN
  • ลูกค้า A เข้าถึง CDN อย่างมีความสุขผ่านทาง https ทุกอย่างทำงานได้

ความท้าทายของฉัน:

ฉันต้องการทราบว่า บริษัท ของฉันกำลังเข้าถึงบริการจาก บริษัท ใด (บริษัท A ในตัวอย่างนี้) ตอนนี้สิ่งเดียวที่ฉันมีของข้อมูลคือการค้นหาและคำตอบ dns เช่น:

query[A] e4478.a.akamaiedge.net from [IP_of_Client_A]
query[A] e673.dsce9.akamaiedge.net from [IP_of_Client_A]
query[A] e6858.dsce9.akamaiedge.net from [IP_of_Client_A]

ฉันลองทำอะไร:

นอกเหนือจาก nslookup, ขุด (ซึ่งฉันไม่ใช่ฮีโร่ของ), nmap, netstat และ tcpdump เล็กน้อยฉันได้อ่านทุกบทความใน Superuser.com ด้วย "Akamai" ในนั้นและ "วิจัย" (duckduckgo'ed) เป็นจำนวนมาก พารามิเตอร์การค้นหาของฉันผิดหรือเป็นคำถามพื้นฐานมากไม่พบคำตอบ

เกือบจะมี:

ในขณะที่ทำเช่นนั้นฉันเจอrobtex.comซึ่งเป็นไปได้ที่จะป้อนที่อยู่เช่น "e4478.a.akamaiedge.net" และให้ข้อมูลทุกประเภทกลับคืน
ภายใต้หัวข้อ "การใช้เป็น CNAME" จะแก้ไข "e4478.a.akamaiedge.net" เป็น "www.icloud.com.edgekey.net"
ตอนนี้มันช่วยฉันได้นาน! นี่คือสิ่งที่ฉันชอบที่จะได้รับด้วยคำสั่ง (รวม) un * xy shell หากเป็นไปได้

ไม่ใช่ที่อยู่ทั้งหมดที่ได้รับการแก้ไขให้เป็น CNAME เพียงอันเดียว
อดีต "e6858.dsce9.akamaiedge.net" ได้รับการแก้ไขในรายการของ "com-instantwinner.club, www.pboy.com, www.apple.com.edgekey.net.globalredir.akadns.net" แต่ก็ไม่เป็นไร อย่างน้อยฉันก็สามารถทำให้แคบลงได้ (ถ้ามันไม่ชัดอย่างเช่นในกรณีนี้)

ฉันเจอลิงค์นี้การพิจารณาบริการที่ใช้ * .CloudFront.netซึ่งดูมีแนวโน้ม แต่โดยทั่วไปแล้วบอกว่าไม่มีทางที่จะหาข้อมูลนั้นได้ ยังไงก็เถอะ Robtex และฉันก็ไม่ยอมแพ้หวังว่าจะมีวิธีที่จะทำให้ฉันได้เช่นกัน

คำแนะนำใด ๆ?


ฉันคิดว่า downvotes ของคุณมาจากชื่อ ฉันมีการแก้ไขที่รอดำเนินการมากเกินไปหรือฉันจะแก้ไข แต่ฉันแนะนำ "วิธีค้นหาชื่อโฮสต์ที่ไคลเอ็นต์ TLS เชื่อมต่ออยู่"
Duncan X Simpson

แต่ไม่มีวิธีการค้นหา IP โดยไม่มีไซต์ที่บอกคุณโดยเฉพาะ
Duncan X Simpson

ขอบคุณ Duncan X Simpson ถ้าฉันรู้ว่าฉันจะเปลี่ยนชื่อฉันจะทำยังไง!
Wolf

หากต้องการเปลี่ยนชื่อให้กดปุ่มแก้ไขด้านล่างแท็กในคำถามของคุณ
Duncan X Simpson

เสร็จแล้ว ทุกอย่างใช้เวลานานกว่าในรอบแรก :)
Wolf

คำตอบ:


0

Wireshark จะสมบูรณ์แบบสำหรับสิ่งนี้ แต่ก่อนอื่นคำเตือนบังคับ:

รับสิทธิ์!

หากคุณแอบฟังเครือข่ายโดยไม่ต้องได้รับความยินยอมของทุกคนใช้มัน ( ไอไอ EULA ไอ ) คุณจะทำลายกฎหมายดักฟังโทรศัพท์ของรัฐบาลกลาง

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

ภาพประกอบ Wireshark


ขอบคุณ เนื่องจากฉันเพิ่งสังเกตปริมาณข้อมูลระหว่างลูกค้าในพื้นที่ของฉันและเซิร์ฟเวอร์ DNS ในพื้นที่ของฉันฉันหวังว่าฉันจะปลอดภัยจากการถูกดำเนินคดีใด ๆ .. ;)
Wolf

โซลูชันที่คุณเสนอจะแนะนำว่านี่เป็นการเชื่อมต่อ https ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ เป็นบริการบางอย่างบนไคลเอนต์ (ในกรณีนี้คือบริการที่เกี่ยวข้องกับ macOS iCloud) ที่เริ่มทำงานเมื่อใดก็ตามที่ไคลเอ็นต์เริ่มทำงาน การจับภาพทราฟฟิกหมายถึงการมิเรอร์สวิตช์พอร์ตบนเครื่องอื่น ค่อนข้างซับซ้อน (สำหรับ n0ob อย่างฉัน) ฉันหวังว่าจะมีการรวมกันของสตริงคำสั่ง nslookup-traceroute-dig- อะไรก็ตามที่ฉันสามารถวางที่อยู่เช่น "e6858.dsce9.akamaiedge.net" ในและที่คายรายการ CNAME ที่เกี่ยวข้อง
Wolf

@ Wolf 1. HTTPS เป็นไปได้มากที่สุด 2. แม้ว่ามันจะไม่เป็นเช่นนั้นก็ยังคงใช้ SNI 3. การจับภาพการรับส่งข้อมูลไม่จำเป็นต้องมีสิ่งนั้น หากคุณสามารถเรียกใช้ Wireshark / etc ในตัวลูกค้าเองนั่นคือทั้งหมดที่จำเป็น มิฉะนั้นคุณอาจต้องใช้การวางยาพิษ ARP (ซึ่งไม่ควรยากเกินไป) หากคุณไม่สามารถรับพอร์ตมิเรอร์หรือเราเตอร์ / สวิตช์ในเส้นทางเพื่อจับภาพการรับส่งข้อมูล
Duncan X Simpson

0

ในหลายกรณีการเปลี่ยนเส้นทางโหนดขอบ CDN ทำได้โดยใช้กลวิธี DNS CNAME อย่างที่คุณบันทึกไว้ดังนั้นลูกค้ายังคงคิดว่ามันกำลังจะไปยังไซต์ดั้งเดิม เมื่อเป็นกรณีนี้หัวข้อ "โฮสต์:" ของคำขอ HTTP จะยังคงมีชื่อของไซต์ดั้งเดิม ในกรณีของ TLS (HTTPS) การจับมือ TLS อาจมีตัวบ่งชี้ชื่อเซิร์ฟเวอร์ (SNI) ที่บอกสิ่งเดียวกัน

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.