เมื่อวันหนึ่งหัวหน้าเกิดคำถามว่า “ทำไมบางคนถึงเข้าถึงคอมพิวเตอร์ที่ทำงานจากระยะไกล โดยไม่ได้รับการอนุญาตเพิ่มเติมในการใช้งาน”
ภารกิจเกิดขึ้นเพื่อ "ปิด" ช่องโหว่
มีแอปพลิเคชันมากมายสำหรับการควบคุมระยะไกลผ่านเครือข่าย: เดสก์ท็อประยะไกลของ Chrome, AmmyAdmin, LiteManager, TeamViewer, การควบคุมทุกที่ ฯลฯ หากเดสก์ท็อประยะไกลของ Chrome มีคู่มืออย่างเป็นทางการสำหรับต่อสู้กับการเข้าถึงบริการ TeamViewer จะมีข้อจำกัดด้านลิขสิทธิ์ตรงเวลาหรือคำขอ จากเครือข่ายและผู้ใช้ "กัดฟัน" ไม่ทางใดก็ทางหนึ่ง "ส่องแสง" กับผู้ดูแลระบบจากนั้นเป็นที่ชื่นชอบของหลาย ๆ คนสำหรับการใช้งานส่วนตัว - AnyDesk ยังคงต้องการการดูแลเป็นพิเศษโดยเฉพาะอย่างยิ่งหากเจ้านายพูดว่า "ไม่!"
หากคุณรู้ว่าการบล็อกแพ็กเก็ตเครือข่ายตามเนื้อหาคืออะไรและคุณพอใจกับแพ็กเก็ตเครือข่ายแล้ว ส่วนที่เหลือของเนื้อหา
ไม่ได้มีเจตนา สำหรับคุณ.
พยายามที่จะไปจากสิ่งที่ตรงกันข้ามในความเป็นจริง
กาลครั้งหนึ่ง ฉันได้แก้ไขปัญหาการบล็อก “Anyplace Control” ซึ่งมาพร้อมกับซอฟต์แวร์ที่น่าสงสัยและแก้ไขได้ด้วยการบล็อก IP เพียงไม่กี่รายการ (ฉันได้สำรองโปรแกรมป้องกันไวรัสไว้แล้ว) ปัญหาของ AnyDesk หลังจากที่ฉันรวบรวมที่อยู่ IP มากกว่าหนึ่งโหลด้วยตนเอง หลอกฉัน หลีกหนีจากการใช้แรงงานคนตามปกติ
นอกจากนี้ยังพบว่าใน “C:ProgramDataAnyDesk” มีไฟล์จำนวนหนึ่งพร้อมการตั้งค่า ฯลฯ และในไฟล์นั้น ad_svc.ติดตาม เหตุการณ์เกี่ยวกับการเชื่อมต่อและความล้มเหลวจะถูกรวบรวม
1. การสังเกต
ดังที่ได้กล่าวไปแล้ว การบล็อก *.anydesk.com ไม่ได้ให้ผลลัพธ์ใด ๆ ในการทำงานของโปรแกรม จึงตัดสินใจวิเคราะห์ พฤติกรรมของโปรแกรมในสถานการณ์ตึงเครียด. TCPView จาก Sysinternals อยู่ในมือคุณแล้วไปได้เลย!
1.1. จะเห็นได้ว่ากระบวนการหลายอย่างที่เราสนใจนั้น "ค้างอยู่" และมีเพียงกระบวนการเดียวที่สื่อสารกับที่อยู่จากภายนอกเท่านั้นที่เป็นที่สนใจของเรา พอร์ตที่เชื่อมต่อถูกเลือกจากสิ่งที่ฉันเห็น: 80, 443, 6568 🙂 เราไม่สามารถบล็อก 80 และ 443 ได้อย่างแน่นอน
1.2. หลังจากบล็อกที่อยู่ผ่านเราเตอร์แล้ว ที่อยู่อื่นจะถูกเลือกอย่างเงียบๆ
1.3. คอนโซลคือทุกสิ่งของเรา! เราพิจารณา PID แล้วฉันก็โชคดีนิดหน่อยที่บริการติดตั้ง AnyDesk ดังนั้น PID ที่เรากำลังมองหาจึงเป็นเพียง PID เดียวเท่านั้น
1.4. เรากำหนดที่อยู่ IP ของเซิร์ฟเวอร์บริการจากกระบวนการ PID
2. การเตรียมการ
เนื่องจากโปรแกรมระบุที่อยู่ IP อาจจะใช้งานได้บนพีซีของฉันเท่านั้น ฉันจึงไม่มีข้อจำกัดด้านความสะดวกและความเกียจคร้าน ดังนั้น C#
2.1. วิธีการทั้งหมดในการระบุที่อยู่ IP ที่จำเป็นเป็นที่ทราบกันดีอยู่แล้ว แต่ยังคงต้องดำเนินการต่อไป
string pid1_;//узнаем PID сервиса AnyDesk
using (var p = new Process())
{p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = " /c "tasklist.exe /fi "imagename eq AnyDesk.exe" /NH /FO CsV | findstr "Services""";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.StandardOutputEncoding = Encoding.GetEncoding("CP866");
p.Start();
string output = p.StandardOutput.ReadToEnd();
string[] pid1 = output.Split(',');//переводим ответ в массив
pid1_ = pid1[1].Replace(""", "");//берем 2й элемент без кавычек
}
ในทำนองเดียวกันเราพบบริการที่สร้างการเชื่อมต่อฉันจะให้เฉพาะสายหลักเท่านั้น
p.StartInfo.Arguments = "/c " netstat -n -o | findstr /I " + pid1_ + " | findstr "ESTABLISHED""";
ผลลัพธ์ที่ได้จะเป็น:
จากแถวนั้น เช่นเดียวกับขั้นตอนก่อนหน้า ให้แยกคอลัมน์ที่ 3 และลบทุกอย่างที่อยู่หลัง “:” ส่งผลให้เราได้ IP ที่ต้องการ
2.2. การบล็อก IP ใน Windows หาก Linux มี Blackhole และ iptables วิธีการบล็อกที่อยู่ IP ในหนึ่งบรรทัดโดยไม่ต้องใช้ไฟร์วอลล์ใน Windows ก็กลายเป็นเรื่องผิดปกติ
แต่มีเครื่องมืออะไรบ้างนั้น...
route add наш_найденный_IP_адрес mask 255.255.255.255 10.113.113.113 if 1 -p
พารามิเตอร์หลัก "ถ้า 1" ส่งเส้นทางไปที่ Loopback (คุณสามารถแสดงอินเทอร์เฟซที่มีอยู่ได้โดยการรันการพิมพ์เส้นทาง) และสำคัญ! ตอนนี้จำเป็นต้องเปิดตัวโปรแกรม ด้วยสิทธิ์ของผู้ดูแลระบบเนื่องจากการเปลี่ยนเส้นทางต้องใช้ระดับความสูง
2.3. การแสดงและบันทึกที่อยู่ IP ที่ระบุเป็นงานที่ไม่สำคัญและไม่ต้องการคำอธิบาย หากคุณลองคิดดู คุณก็สามารถประมวลผลไฟล์ได้ ad_svc.ติดตาม AnyDesk เอง แต่ฉันไม่ได้คิดถึงมันทันที + บางทีอาจมีข้อจำกัดอยู่
2.4. พฤติกรรมที่ไม่สม่ำเสมอที่แปลกประหลาดของโปรแกรมคือเมื่อ "taskkilling" กระบวนการบริการใน Windows 10 มันจะรีสตาร์ทโดยอัตโนมัติใน Windows 8 จะสิ้นสุดลงโดยเหลือเพียงกระบวนการคอนโซลและไม่ต้องเชื่อมต่อใหม่โดยทั่วไปจะไร้เหตุผลและสิ่งนี้ไม่ถูกต้อง
การลบกระบวนการที่เชื่อมต่อกับเซิร์ฟเวอร์ออกทำให้คุณสามารถ "บังคับ" การเชื่อมต่อใหม่ไปยังที่อยู่ถัดไปได้ มันถูกนำไปใช้ในลักษณะเดียวกับคำสั่งก่อนหน้า ดังนั้นฉันจะให้มัน:
p.StartInfo.Arguments = "/c taskkill /PID " + pid1_ + " /F";
นอกจากนี้ให้เปิดโปรแกรม AnyDesk
//запускаем программу которая расположена по пути path_pro
if (File.Exists(path_pro)){
Process p1 = Process.Start(path_pro);}
2.5. เราจะตรวจสอบสถานะของ AnyDesk ต่อนาที (หรือบ่อยกว่านั้น?) และหากมีการเชื่อมต่ออยู่ เช่น การเชื่อมต่อที่ถูกสร้างขึ้น - บล็อก IP นี้และอีกครั้ง - รอจนกว่าจะเชื่อมต่อ บล็อกและรอ
3. การโจมตี
รหัสถูก "ร่าง" และตัดสินใจที่จะแสดงภาพกระบวนการ "+" ระบุ IP ที่พบและถูกบล็อก และ "."—ทำซ้ำการตรวจสอบโดยไม่ต้องเชื่อมต่อเพื่อนบ้านจาก AnyDesk ได้สำเร็จ
ผลที่ตามมา…
โปรแกรมนี้ทำงานบนคอมพิวเตอร์หลายเครื่องที่ใช้ Windows OS ต่างกัน โดยมี AnyDesk 5 และ 6 เวอร์ชัน มีการทำซ้ำมากกว่า 500 ครั้ง มีการรวบรวมที่อยู่ประมาณ 80 รายการ สำหรับ 2500 - 87 และอื่นๆ...
เมื่อเวลาผ่านไป จำนวน IP ที่ถูกบล็อกมีจำนวนถึง 100+
เชื่อมโยงไปยังขั้นสุดท้าย ไฟล์ข้อความ มีที่อยู่:
มันเสร็จแล้ว! กลุ่มที่อยู่ IP ถูกเพิ่มเข้าไปในกฎของเราเตอร์หลักผ่านสคริปต์และ AnyDesk ก็ไม่สามารถสร้างการเชื่อมต่อภายนอกได้
มีจุดแปลกคือจากบันทึกเริ่มต้นเห็นได้ชัดว่าที่อยู่นั้นเกี่ยวข้องกับการถ่ายโอนข้อมูล boot-01.net.anydesk.com. แน่นอนว่าเราบล็อกโฮสต์ *.net.anydesk.com ทั้งหมดตามกฎทั่วไป แต่นั่นไม่ใช่เรื่องแปลก แต่ละครั้งที่มีการ ping ปกติจากคอมพิวเตอร์เครื่องอื่น ชื่อโดเมนนี้จะให้ IP ที่แตกต่างกัน กำลังตรวจสอบบน Linux:
host boot-01.net.anydesk.com
เช่น DNSLookup พวกเขาให้ที่อยู่ IP เดียวเท่านั้น แต่ที่อยู่นี้เป็นตัวแปร เมื่อวิเคราะห์การเชื่อมต่อ TCPView เราจะส่งคืนบันทึก PTR ของที่อยู่ IP ประเภทนั้น รีเลย์-*.net.anydesk.com.
ตามทฤษฎี: เนื่องจากบางครั้ง ping ไปยังโฮสต์ที่ไม่ถูกบล็อกที่ไม่รู้จัก boot-01.net.anydesk.com เราสามารถค้นหา ips เหล่านี้และบล็อกมันได้ ทำให้การใช้งานนี้เป็นสคริปต์ปกติภายใต้ Linux OS ที่นี่ไม่จำเป็นต้องติดตั้ง AnyDesk จากการวิเคราะห์พบว่า IP เหล่านี้มักจะ "ตัด"กับที่พบในรายการของเรา บางทีอาจเป็นเพียงโฮสต์นี้ที่โปรแกรมเชื่อมต่อก่อนที่จะเริ่ม "แยก" IP ที่รู้จัก ฉันอาจจะเสริมบทความด้วยส่วนที่ 2 ของการค้นหาโฮสต์ในภายหลังแม้ว่าในขณะนี้ ตัวโปรแกรมเองไม่ได้ติดตั้งภายในเครือข่ายภายนอกเข้าร่วมโดยทั่วไป
ฉันหวังว่าคุณจะไม่เห็นสิ่งที่ผิดกฎหมายข้างต้น และผู้สร้าง AnyDesk จะปฏิบัติต่อการกระทำของฉันอย่างมีน้ำใจนักกีฬา
ที่มา: will.com