ในบทความนี้ เราจะเริ่มเผยแพร่บทความเกี่ยวกับมัลแวร์ที่เข้าใจยาก โปรแกรมแฮ็กแบบไร้ไฟล์หรือที่เรียกว่าโปรแกรมแฮ็กแบบไร้ไฟล์ โดยทั่วไปจะใช้ PowerShell บนระบบ Windows เพื่อเรียกใช้คำสั่งโดยไม่โต้ตอบเพื่อค้นหาและแยกเนื้อหาที่มีค่า การตรวจจับกิจกรรมของแฮ็กเกอร์โดยไม่มีไฟล์ที่เป็นอันตรายนั้นเป็นงานที่ยาก เนื่องจาก... โปรแกรมป้องกันไวรัสและระบบตรวจจับอื่น ๆ ทำงานโดยอาศัยการวิเคราะห์ลายเซ็น แต่ข่าวดีก็คือว่าซอฟต์แวร์ดังกล่าวมีอยู่จริง ตัวอย่างเช่น,
เมื่อฉันเริ่มค้นคว้าหัวข้อแฮกเกอร์ตัวฉกาจครั้งแรก
PowerShell ที่ยอดเยี่ยมและทรงพลัง
ฉันเคยเขียนเกี่ยวกับแนวคิดเหล่านี้มาก่อน
นอกจากตัวอย่างแล้ว บนเว็บไซต์คุณสามารถดูว่าโปรแกรมเหล่านี้ทำอะไรได้บ้าง การวิเคราะห์แบบไฮบริดเรียกใช้มัลแวร์ในแซนด์บ็อกซ์ของตัวเองและตรวจสอบการเรียกของระบบ กระบวนการที่กำลังรันและกิจกรรมเครือข่าย และแยกสตริงข้อความที่น่าสงสัย สำหรับไบนารีและไฟล์ปฏิบัติการอื่น ๆ เช่น โดยที่คุณไม่สามารถดูโค้ดระดับสูงจริง ๆ ได้ การวิเคราะห์แบบไฮบริดจะตัดสินว่าซอฟต์แวร์นั้นเป็นอันตรายหรือน่าสงสัยโดยพิจารณาจากกิจกรรมรันไทม์ของซอฟต์แวร์นั้น และหลังจากนั้นตัวอย่างก็ได้รับการประเมินแล้ว
ในกรณีของ PowerShell และสคริปต์ตัวอย่างอื่นๆ (Visual Basic, JavaScript ฯลฯ) ฉันสามารถดูโค้ดได้ ตัวอย่างเช่น ฉันเจออินสแตนซ์ PowerShell นี้:
คุณยังสามารถเรียกใช้ PowerShell ในการเข้ารหัส base64 เพื่อหลีกเลี่ยงการตรวจจับได้ สังเกตการใช้พารามิเตอร์ที่ไม่โต้ตอบและซ่อนไว้
หากคุณได้อ่านโพสต์ของฉันเกี่ยวกับการสร้างความสับสน คุณจะรู้ว่าตัวเลือก -e ระบุว่าเนื้อหามีการเข้ารหัส base64 อย่างไรก็ตาม การวิเคราะห์แบบไฮบริดยังช่วยในเรื่องนี้ด้วยการถอดรหัสทุกอย่างกลับคืนมา หากคุณต้องการลองถอดรหัส base64 PowerShell (ต่อไปนี้จะเรียกว่า PS) ด้วยตัวเอง คุณจะต้องเรียกใช้คำสั่งนี้:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
เจาะลึกลงไปอีก
ฉันถอดรหัสสคริปต์ PS ของเราโดยใช้วิธีนี้ ด้านล่างนี้เป็นข้อความของโปรแกรม แม้ว่าฉันจะแก้ไขเล็กน้อยก็ตาม:
โปรดทราบว่าสคริปต์เชื่อมโยงกับวันที่ 4 กันยายน 2017 และส่งคุกกี้เซสชัน
ฉันเขียนเกี่ยวกับรูปแบบการโจมตีนี้ใน
มันทำอะไร?
สำหรับซอฟต์แวร์ความปลอดภัยที่สแกนบันทึกเหตุการณ์หรือไฟร์วอลล์ของ Windows การเข้ารหัส base64 จะป้องกันไม่ให้สตริง "WebClient" ตรวจพบโดยรูปแบบข้อความธรรมดาเพื่อป้องกันการร้องขอเว็บดังกล่าว และเนื่องจากมัลแวร์ “ชั่วร้าย” ทั้งหมดจะถูกดาวน์โหลดและส่งผ่านไปยัง PowerShell ของเรา วิธีการนี้จึงช่วยให้เราหลบเลี่ยงการตรวจจับได้อย่างสมบูรณ์ หรือค่อนข้างนั่นคือสิ่งที่ฉันคิดในตอนแรก
ปรากฎว่าเมื่อเปิดใช้งานการบันทึกขั้นสูงของ Windows PowerShell (ดูบทความของฉัน) คุณจะสามารถเห็นบรรทัดที่โหลดในบันทึกเหตุการณ์ ฉันชอบ
มาเพิ่มสถานการณ์เพิ่มเติม
แฮกเกอร์ซ่อนการโจมตี PowerShell อย่างชาญฉลาดในมาโคร Microsoft Office ที่เขียนด้วย Visual Basic และภาษาสคริปต์อื่นๆ แนวคิดก็คือเหยื่อจะได้รับข้อความ เช่น จากบริการจัดส่ง โดยมีรายงานแนบมาในรูปแบบ .doc คุณเปิดเอกสารนี้ที่มีมาโคร และสุดท้ายมันก็เปิด PowerShell ที่เป็นอันตรายขึ้นมาเอง
บ่อยครั้งที่สคริปต์ Visual Basic นั้นถูกทำให้สับสนเพื่อให้สามารถหลบเลี่ยงโปรแกรมป้องกันไวรัสและโปรแกรมสแกนมัลแวร์อื่น ๆ ได้อย่างอิสระ ตามเจตนารมณ์ข้างต้น ฉันจึงตัดสินใจเขียนโค้ด PowerShell ข้างต้นใน JavaScript เพื่อเป็นแบบฝึกหัด ด้านล่างนี้เป็นผลงานของฉัน:
JavaScript ที่สับสนซ่อน PowerShell ของเรา แฮกเกอร์ตัวจริงทำเช่นนี้ครั้งหรือสองครั้ง
นี่เป็นอีกเทคนิคหนึ่งที่ฉันเคยเห็นลอยอยู่ในเว็บ: การใช้ Wscript.Shell เพื่อเรียกใช้ PowerShell ที่เข้ารหัส อย่างไรก็ตาม JavaScript เองก็เป็นเช่นนั้น
ในกรณีของเรา สคริปต์ JS ที่เป็นอันตรายจะถูกฝังเป็นไฟล์ที่มีนามสกุล .doc.js โดยทั่วไป Windows จะแสดงเฉพาะส่วนต่อท้ายแรกเท่านั้น ดังนั้นเหยื่อจึงจะปรากฏเป็นเอกสาร Word
ไอคอน JS จะปรากฏเฉพาะในไอคอนเลื่อนเท่านั้น ไม่น่าแปลกใจเลยที่หลายๆ คนจะเปิดไฟล์แนบนี้โดยคิดว่าเป็นเอกสาร Word
ในตัวอย่างของฉัน ฉันแก้ไข PowerShell ด้านบนเพื่อดาวน์โหลดสคริปต์จากเว็บไซต์ของฉัน สคริปต์ PS ระยะไกลเพิ่งพิมพ์ "Evil Malware" อย่างที่คุณเห็นเขาไม่ได้ชั่วร้ายเลย แน่นอนว่าแฮกเกอร์ตัวจริงสนใจที่จะเข้าถึงแล็ปท็อปหรือเซิร์ฟเวอร์ผ่านเชลล์คำสั่ง ในบทความถัดไป ฉันจะแสดงวิธีดำเนินการนี้โดยใช้ PowerShell Empire
ฉันหวังว่าสำหรับบทความเบื้องต้นแรกเราจะไม่เจาะลึกหัวข้อนี้มากนัก ตอนนี้ ผมจะให้คุณพักหายใจ และครั้งต่อไปเราจะเริ่มดูตัวอย่างที่แท้จริงของการโจมตีโดยใช้มัลแวร์ที่ไม่มีไฟล์ โดยไม่มีคำเบื้องต้นหรือการเตรียมการใดๆ ที่ไม่จำเป็น
ที่มา: will.com