การวิเคราะห์การโจมตี (ตอนที่ 1)
การวิเคราะห์การโจมตี (ตอนที่ 2)
ดอน ปาร์คเกอร์
ในส่วนที่ 2 ของซีรีย์นี้ เราได้ทิ้งข้อมูลที่จำเป็นทั้งหมดไว้สำหรับการโจมตีเครือข่ายของเหยื่อ เมื่อคำนึงถึงเรื่องนั้นแล้ว เรามาดูการโจมตีจริงกันดีกว่า การโจมตีนี้เกี่ยวข้องกับการส่งโปรแกรมการร้องขอหลายรายการเพื่อให้สามารถดำเนินการโจมตีได้ต่อไป
มันคงไม่มีประโยชน์ที่จะโจมตีคอมพิวเตอร์แล้วถอยกลับ ดังนั้นเราจะทำการโจมตีอย่างรุนแรง โดยทั่วไปแล้ว เป้าหมายของผู้โจมตีที่เป็นอันตรายไม่ได้มีแค่การเพิ่มการปรากฏตัวบนเครือข่ายคอมพิวเตอร์เท่านั้น แต่ยังรวมถึงการบำรุงรักษาเครือข่ายด้วย นั่นหมายความว่าผู้โจมตียังคงต้องการซ่อนตัวและดำเนินการอื่นๆ ต่อไป
ประเด็นที่น่าสนใจ
ตอนนี้เราจะใช้ Metasploit Framework เพื่ออำนวยความสะดวกในการโจมตีจริง กลไกการทำงานนี้มีความน่าสนใจจริงๆ เนื่องจากช่วยให้คุณทำการขุดได้หลายประเภท รวมทั้งมีตัวเลือกต่างๆ มากมายในการเลือกเพย์โหลด บางทีคุณอาจไม่ต้องการยูทิลิตี้แบบย้อนกลับหรือการฉีด VNC เพย์โหลดมักขึ้นอยู่กับเป้าหมายที่จะมาถึง สถาปัตยกรรมเครือข่าย และเป้าหมายสุดท้าย ในกรณีนี้เราจะดำเนินการด้วยยูทิลิตี้แบบย้อนกลับ นี่มักจะเป็นแนวทางที่ได้เปรียบมากกว่า โดยเฉพาะในกรณีที่เป้าหมายของเราอยู่หลังเราเตอร์และไม่สามารถเข้าถึงได้โดยตรง ตัวอย่างเช่น คุณ “โจมตี” เว็บเซิร์ฟเวอร์ แต่โหลดยังคงสมดุลอยู่ ไม่มีการรับประกันว่าจะสามารถเชื่อมต่อกับยูทิลิตี้ส่งต่อได้ ดังนั้นคุณจึงต้องการให้คอมพิวเตอร์สร้างยูทิลิตี้แบบย้อนกลับ เราจะไม่ครอบคลุมถึงวิธีการใช้งาน Metasploit Framework เนื่องจากอาจได้ครอบคลุมไว้ในบทความอื่นแล้ว ดังนั้นมาเน้นที่เรื่องระดับแพ็กเกจกันดีกว่า
ในครั้งนี้ แทนที่จะใช้วิธีการแนะนำขั้นตอนการโจมตีแต่ละขั้นตอนด้วยภาพสั้นๆ และตัวอย่างโค้ด เราจะนำเสนอการโจมตีแบบอื่นแทน สิ่งที่จะทำคือสร้างการโจมตีขึ้นมาใหม่ด้วยความช่วยเหลือของ Snort เราจะใช้ประโยชน์จากบันทึกไบนารีในการโจมตีที่เราทำ แล้วแยกวิเคราะห์ผ่าน Snort ในทางอุดมคติแล้วจะต้องดูเหมือนทุกอย่างที่เราทำ อันที่จริงสิ่งที่จะนำมาใช้นั้นเป็นชุดหลักฐาน เป้าหมายที่นี่คือการดูว่าเราสามารถรวบรวมสิ่งที่เกิดขึ้นได้แม่นยำเพียงใด โดยคำนึงถึงสิ่งนั้น เราจะใช้บันทึกแพ็กเก็ตไบนารีที่บันทึกทุกสิ่งที่ถูกดำเนินการ และแยกวิเคราะห์ผ่าน Snort โดยใช้กฎเริ่มต้นบางส่วน
เอาต์พุตของ Snort
ไวยากรณ์ที่ใช้ในการเรียก Snort มีดังนี้:
C:\snort\bin\snort.exe –r c:\article_binary –dv –c snort.conf –A full
รูปแบบนี้ทำให้ Snort วิเคราะห์แพ็คเก็ตไบนารีที่เรียกว่า article_binary ผลลัพธ์แสดงอยู่ด้านล่าง เราได้ตัดทอนเอาต์พุต Snort เพื่อให้สามารถดูแต่ละส่วนโดยละเอียดได้
==============================================================
Snort processed 1345 packets.
==============================================================
Breakdown by protocol:
TCP: 524 (38.959%)
UDP: 810 (60.223%)
ICMP: 11 (0.818%)
ARP: 0 (0.000%)
EAPOL: 0 (0.000%)
IPv6: 0 (0.000%)
ETHLOOP: 0 (0.000%)
IPX: 0 (0.000%)
FRAG: 0 (0.000%)
OTHER: 0 (0.000%)
DISCARD: 0 (0.000%)
==============================================================
Action Stats:
ALERTS: 63
LOGGED: 63
PASSED: 0
ส่วนนี้มีความน่าสนใจเนื่องจากมีการแจ้งเตือน 63 รายการที่เกิดจากการโจมตีเพียงครั้งเดียว เราจะมาดูไฟล์ alert.ids ซึ่งสามารถให้รายละเอียดมากมายเกี่ยวกับสิ่งที่เกิดขึ้นได้ ตอนนี้ หากคุณจำได้ สิ่งแรกที่ผู้โจมตีทำคือใช้ Nmap เพื่อสแกนเครือข่าย ซึ่งยังสร้างการแจ้งเตือนครั้งแรกที่ถูกเรียกใช้โดย Snort อีกด้วย
[**] [1:469:3] ICMP PING NMAP [**]
[Classification: Attempted Information Leak] [Priority: 2]
08/09-15:37:07.296875 192.168.111.17 -> 192.168.111.23
ICMP TTL:54 TOS:0x0 ID:3562 IpLen:20 DgmLen:28
Type:8 Code:0 ID:30208 Seq:54825 ECHO
[Xref => http://www.whitehats.com/info/IDS162]
ด้วยวิธีนี้ ผู้โจมตีจึงใช้ netcat ในการแจกแจงเว็บเซิร์ฟเวอร์เพื่อดูว่าเป็นเว็บเซิร์ฟเวอร์ประเภทใด การดำเนินการนี้ไม่ได้ทำให้เกิดการแจ้งเตือน Snort ใด ๆ เราอยากทราบว่าเกิดอะไรขึ้นเช่นกัน ดังนั้นเรามาดูบันทึกของแพ็กเกจโดยละเอียดกันดีกว่า หลังจากปฏิบัติตามขั้นตอนการจับมือ TCP/IP ทั่วไปแล้ว เราจะเห็นแพ็กเก็ตด้านล่างนี้
15:04:51.546875 IP (tos 0x0, ttl 128, id 9588, offset 0, flags [DF], proto: TCP (6), length: 51) 192.168.111.17.1347 > 192.168.111.23.80: P, cksum 0x5b06 (correct), 3389462932:3389462943(11) ack 2975555611 win 64240
0x0000: 4500 0033 2574 4000 8006 75d7 c0a8 6f11 E..3%[email protected].
0x0010: c0a8 6f17 0543 0050 ca07 1994 b15b 601b ..o..C.P.....[`.
0x0020: 5018 faf0 5b06 0000 4745 5420 736c 736c P...[...GET.slsl
0x0030: 736c 0a sl.
ไม่มีอะไรโดดเด่นเกี่ยวกับแพ็คเกจนี้ นอกเหนือจากข้อเท็จจริงที่ว่ามีคำขอ GET ที่มีปัญหาภายในบางอย่างตามมา เช่น slslsl เป็นต้น ในความเป็นจริงแล้วไม่มีอะไรที่ Snort ทำได้ ดังนั้นจึงเป็นเรื่องยากมากที่จะสร้างลายเซ็น IDS ที่มีประสิทธิภาพ (หรือลายเซ็น) เพื่อกระตุ้นความพยายามในการแจงนับประเภทนี้ เพราะเหตุนี้จึงไม่มีลายเซ็นดังกล่าว แพ็กเก็ตถัดไปหลังจากนั้นคือที่ที่เว็บเซิร์ฟเวอร์ของเครือข่ายเหยื่อแสดงอยู่
เมื่อทำการนับเสร็จแล้ว ผู้โจมตีจะส่งรหัสเพื่อดำเนินการโจมตีไปยังเว็บเซิร์ฟเวอร์ทันที โค้ดนี้จะให้ผลลัพธ์บางอย่างโดยเปิดใช้งานลายเซ็น Snort โดยเฉพาะสำหรับช่องโหว่ที่แสดงด้านล่างนี้ เราจะเห็นลายเซ็น Snort นี้ได้
[**] [1:1248:13] WEB-FRONTPAGE rad fp30reg.dll access [**]
[Classification: access to a potentially vulnerable web application] [Priority:
2]08/09-15:39:23.000000 192.168.111.17:1454 -> 192.168.111.23:80
TCP TTL:128 TOS:0x0 ID:15851 IpLen:20 DgmLen:1500 DF
***A**** Seq: 0x7779253A Ack: 0xAA1FBC5B Win: 0xFAF0 TcpLen: 20
[Xref => http://www.microsoft.com/technet/security/bulletin/MS01-035.mspx][Xref
=> http://cve.mitre.org/cgi-bin/cvename.cgi?name=2001-0341][Xref => http://www.s
ecurityfocus.com/bid/2906][Xref => http://www.whitehats.com/info/IDS555]
เมื่อผู้โจมตีสามารถเข้าถึงเว็บเซิร์ฟเวอร์แล้ว เขาจะเริ่มใช้ไคลเอนต์ TFTP เพื่อถ่ายโอนไฟล์ 4 ไฟล์: nc.exe, ipeye.exe, fu.exe, msdirectx.exe เมื่อถ่ายโอนไฟล์เหล่านี้แล้ว ผู้โจมตีจะใช้ netcat เพื่อส่งยูทิลิตี้กลับไปยังคอมพิวเตอร์ของเขา จากนั้นเขาสามารถตัดการเชื่อมต่อยูทิลิตี้อื่น ๆ ที่เกิดจากการโจมตีครั้งแรก และดำเนินการงานที่เหลือทั้งหมดในยูทิลิตี้ netcat ที่น่าสนใจคือ ไม่มีการบันทึกการกระทำใดๆ ที่ผู้โจมตีดำเนินการผ่านยูทิลิตี้แบบย้อนกลับโดย Snort อย่างไรก็ตาม โดยไม่คำนึงถึงสิ่งนั้น ผู้โจมตีใช้รูทคิทที่ส่งผ่าน TFTP เพื่อซ่อนข้อมูลกระบวนการสำหรับ netcat
บทสรุป
ในส่วนที่สามของบทความชุดนี้ เราได้เห็นการสาธิตการโจมตีโดยใช้ Snort เราสามารถสร้างสิ่งหนึ่งที่ทำไปแล้วขึ้นมาใหม่ได้อย่างสมบูรณ์ ยกเว้นการใช้งานรูทคิท แม้ว่า IDS จะเป็นเทคโนโลยีที่มีประโยชน์มากและเป็นส่วนหนึ่งของระบบป้องกันเครือข่ายของคุณ แต่มันก็ไม่ได้สมบูรณ์แบบเสมอไป IDS จะสามารถแจ้งเตือนคุณถึงการสัญจรที่สามารถตรวจจับได้เท่านั้น โดยคำนึงถึงสิ่งนั้น เราจะเรียนรู้วิธีสร้างลายเซ็น Snort ในส่วนสุดท้ายของซีรีส์นี้ พร้อมกันนั้นเราจะเรียนรู้วิธีทดสอบลายเซ็นดิจิทัลเพื่อประเมินประสิทธิภาพด้วย