Javascript ถือเป็นหัวใจสำคัญของการพัฒนาเว็บ UI โดยส่วนใหญ่จะใช้สำหรับการเขียนสคริปต์และการเขียนโปรแกรมส่วนหน้า ฟังดูไม่เป็นอันตรายใช่ไหม? อย่างไรก็ตาม จาวาสคริปต์ยังสามารถใช้เป็นเครื่องมือที่เป็นอันตรายในการดำเนินการที่ไม่พึงประสงค์โดยที่เหยื่อไม่รู้ตัว สามารถใช้เพื่อดาวน์โหลดโปรแกรมมัลแวร์แบบขับเคลื่อน ฟิชชิงผู้ใช้ หรือแม้แต่ดำเนินการครอบครองเว็บเบราว์เซอร์ของเหยื่อ (ที่มีช่องโหว่) โดยสมบูรณ์ ตอนนี้ขอตรงไปที่ธุรกิจ ...
พนักงานของบริษัทส่งต่ออีเมลถึงฉันและขอการวิเคราะห์ภัยคุกคามสำหรับกิจกรรมที่น่าสงสัย อีเมลดังกล่าวถูกส่งไปเพื่อพยายามฟิชชิ่งแบบหอก มีไฟล์แนบมาซึ่งดึงดูดความสนใจของฉัน โครงการ.html
ฉันขับเคลื่อนเครื่องเสมือน Windows 10 ของฉันเพื่อการวิเคราะห์เพิ่มเติม (เหตุผลที่ Windows มีล่ามจาวาสคริปต์ในตัว CScript CScript ใช้สำหรับเอาต์พุตบรรทัดคำสั่ง/เทอร์มินัล ในขณะที่ WScript ใช้สำหรับเอาต์พุตล่าม GUI) ฉันดาวน์โหลดไฟล์บนเครื่องเสมือนของฉัน จากนั้น ฉันเปลี่ยนชื่อ .html เป็นนามสกุล .txt และเปิดโดยใช้โปรแกรมแก้ไขข้อความ
แท็ก ‹script› พิสูจน์ว่านี่คือโค้ดจาวาสคริปต์บางส่วน ฟังก์ชัน unescape() จะแทนที่ลำดับที่เข้ารหัสด้วย Escape ด้วยอักขระที่ฟังก์ชันนั้นแทน ฉันสร้างสำเนาของไฟล์ Project.txt เพื่อหลีกเลี่ยงการแก้ไขโค้ดต้นฉบับและเปลี่ยนชื่อนามสกุล txt ของสำเนาเป็น .js จากนั้น ฉันแทนที่ฟังก์ชัน document.write ด้วยฟังก์ชัน WScript.echo สิ่งนี้คล้ายกับฟังก์ชัน 'พิมพ์' แต่สำหรับ WScript/CScript ฉันขับเคลื่อน cmd และใช้คำสั่งนี้:
cscript “Project2 -Copy.js”
ตอนแรกมันไม่ได้ผล แต่หลังจากล้างแท็กที่ไม่จำเป็นออกจากโค้ดแล้ว ฉันก็เริ่มเห็นผลลัพธ์ที่เหมาะสม
ฉันเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ 'decode.txt' โดยใช้คำสั่งนี้:
cscript “Project2 -Copy.js” > decode.txt
ฉันดูไฟล์นี้และค้นพบซอร์สโค้ดของเว็บไซต์
ฉันเลื่อนโค้ดลงไปและค้นพบอักขระที่เข้ารหัส base64 จำนวนหนึ่ง
ด้วยความอยากรู้อยากเห็น ฉันจึงเริ่มใช้เครื่องมือตัวที่สองที่จะใช้สำหรับการวิเคราะห์นี้ CyberChef (ฉันขอแนะนำอย่างยิ่ง) ฉันใส่สูตร "จาก base64" และวางอินพุต base64
ฉันเลื่อนลงไปอีกในโค้ดเพื่อแสดงช่องส่งแบบฟอร์ม นี่อาจเป็นหน้าฟิชชิ่งอย่างแน่นอน แต่มันขโมยอะไรและส่งไปที่ไหน?
โดยจะบันทึกช่องอีเมลและรหัสผ่านด้วย send-btn แบบคลาสสิก ฉันค้นพบ eval() object ที่ด้านล่างของสคริปต์ที่มีอักขระที่เข้ารหัสด้วยอักขระบางตัว
ฉันคัดลอกเนื้อหาอ็อบเจ็กต์ eval() และวางไว้ในไฟล์ใหม่ 'eval.js' จากนั้น ฉันแทนที่ eval()functionด้วยฟังก์ชัน WScript.echo และรันบน cmd
cscript eval.js
ฉันเปลี่ยนเส้นทางเอาต์พุตใหม่นี้ไปยังไฟล์ใหม่ evaldecode.txt และเปิดไฟล์ในโปรแกรมแก้ไขข้อความ
รู้สึกพิเศษมาก ฉันจึงอบโค้ดที่เหลือในโปรแกรมตกแต่งจาวาสคริปต์ของ CyberChef เพื่อให้ได้รับมุมมองที่ดี พบไวยากรณ์ JSON บางส่วน มาดูกันดีกว่า
ฉันพบ URL ของเว็บไซต์ที่แบบฟอร์มนี้ส่งข้อมูลประจำตัวที่ถูกขโมย [ปกปิด].com/success/list.php
ฉันพยายามสำรวจไดเร็กทอรีเส้นทางและพบว่า... เซิร์ฟเวอร์มีช่องโหว่!
เซิร์ฟเวอร์นี้เป็นเว็บเซิร์ฟเวอร์ LiteSpeed การดู list.txt อย่างรวดเร็วจะแสดงข้อมูลที่ละเอียดอ่อนสูงซึ่งฉันไม่สามารถใส่ได้ที่นี่
ตอนนี้ได้รับการยืนยันว่าเป็นไซต์ฟิชชิ่ง (และไม่ใช่แซนด์บ็อกซ์ BeEF ที่เป็นอันตรายในการหลบหนี 0 วัน) ฉันจึงสามารถดูภาพไซต์ได้ ฉันเปลี่ยนชื่อไฟล์ต้นฉบับกลับเป็นนามสกุล .html และเปิดบนเบราว์เซอร์ VM ของฉัน
ฉันทดสอบแบบฟอร์มโดยกรอกรายละเอียดปลอมแล้วส่งไป ฉันตรวจสอบ [ปกปิด].com/success/list.txt และอินพุตปลอมก็ถูกเพิ่มลงในไฟล์ข้อความอย่างรวดเร็วเหมือนกับเหยื่อรายอื่นๆ
เมื่อดูที่ไดเรกทอรีหลัก [ข้อมูลปกปิด].com ดูเหมือนว่าไซต์ดังกล่าวโฮสต์อยู่ใน NameCheap โดยไม่มีหน้าดัชนี ฉันพยายามค้นหาอีเมลหรือข้อมูลใดๆ ที่สามารถใช้เพื่อระบุตัวผู้ดูแลเว็บได้.. แต่ความพยายามทั้งหมดกลับไร้ผล
ฉันรวบรวมหลักฐานทั้งหมดของขั้นตอนการวิเคราะห์ภัยคุกคามและมอบให้แก่ลูกค้าของฉัน พร้อมด้วย URL ของเว็บไซต์และข้อมูลที่เกี่ยวข้อง ลูกค้าตัดสินใจรายงานไซต์นี้ และถูกลบออกภายในเวลาไม่ถึงหนึ่งชั่วโมง การลงโทษเพิ่มเติมใดๆ จะถูกบังคับใช้ตามดุลยพินิจของบริษัทโฮสติ้ง
นั่นคือวิธีที่ฉันสามารถขจัดความสับสนให้กับโค้ดจาวาสคริปต์ที่เป็นอันตรายและติดตามมันกลับไปยังเซิร์ฟเวอร์ของผู้โจมตี รวมถึงข้อมูลรับรองที่ถูกขโมยที่ถูกเปิดเผย
อยู่อย่างปลอดภัย.
อยู่อย่างอันตราย
เจอกันครั้งหน้าเมื่อฉันจำรหัสผ่านได้