เมื่อเร็ว ๆ นี้ ผู้ผลิตอุปกรณ์ติดตั้งระบบไฟฟ้าในยุโรปได้ติดต่อกับ Group-IB พนักงานของตนได้รับจดหมายที่น่าสงสัยพร้อมไฟล์แนบที่เป็นอันตรายทางไปรษณีย์ อิลยา โปเมอรานเซฟผู้เชี่ยวชาญด้านการวิเคราะห์มัลแวร์ที่ CERT Group-IB ได้ทำการวิเคราะห์ไฟล์นี้โดยละเอียด ค้นพบสปายแวร์ AgentTesla ที่นั่น และแจ้งสิ่งที่คาดหวังจากมัลแวร์ดังกล่าวและอันตรายอย่างไร
ในโพสต์นี้ เราจะเปิดชุดบทความเกี่ยวกับวิธีการวิเคราะห์ไฟล์ที่อาจเป็นอันตรายดังกล่าว และเรากำลังรอผู้ที่อยากรู้อยากเห็นมากที่สุดในวันที่ 5 ธันวาคมสำหรับการสัมมนาผ่านเว็บเชิงโต้ตอบฟรีในหัวข้อนี้ “การวิเคราะห์มัลแวร์: การวิเคราะห์กรณีจริง”. รายละเอียดทั้งหมดอยู่ภายใต้การตัด
กลไกการกระจาย
เรารู้ว่ามัลแวร์เข้าถึงเครื่องของเหยื่อผ่านอีเมลฟิชชิ่ง ผู้รับจดหมายอาจเป็นสำเนาลับ
การวิเคราะห์ส่วนหัวพบว่าผู้ส่งจดหมายถูกปลอมแปลง อันที่จริงจดหมายฝากไว้ด้วย vps56[.]oneworldhosting[.]com.
ไฟล์แนบอีเมลมีไฟล์เก็บถาวร WinRar qoute_jpeg56a.r15 ด้วยไฟล์ปฏิบัติการที่เป็นอันตราย QOUTE_JPEG56A.exe ข้างใน.
ระบบนิเวศของมัลแวร์
ตอนนี้เรามาดูกันว่าระบบนิเวศของมัลแวร์ที่อยู่ระหว่างการศึกษาจะเป็นอย่างไร แผนภาพด้านล่างแสดงโครงสร้างและทิศทางการโต้ตอบของส่วนประกอบต่างๆ
ตอนนี้เรามาดูส่วนประกอบของมัลแวร์แต่ละส่วนโดยละเอียดมากขึ้น
Loader
ไฟล์ต้นฉบับ QOUTE_JPEG56A.exe เป็นการเรียบเรียง ออโต้อิท v3 สคริปต์
เพื่อทำให้สคริปต์ต้นฉบับสับสน obfuscator ที่คล้ายกัน PELock AutoIT-Obfuscator ลักษณะ
การถอดรหัสลดความสับสนจะดำเนินการในสามขั้นตอน:
- ขจัดความสับสน สำหรับ-ถ้า
ขั้นตอนแรกคือการคืนค่าโฟลว์การควบคุมของสคริปต์ Control Flow Flattening เป็นหนึ่งในวิธีที่พบได้บ่อยที่สุดในการปกป้องโค้ดไบนารี่ของแอปพลิเคชันจากการวิเคราะห์ การแปลงที่สับสนจะเพิ่มความซับซ้อนในการแยกและการจดจำอัลกอริธึมและโครงสร้างข้อมูลอย่างมาก
- การกู้คืนแถว
มีการใช้สองฟังก์ชันในการเข้ารหัสสตริง:
- gdorizabegkvfca - ทำการถอดรหัสแบบ Base64
- xgacyukcyzxz - XOR ไบต์ไบต์อย่างง่ายของสตริงแรกที่มีความยาววินาที
- ขจัดความสับสน BinaryToString и ดำเนินงาน
โหลดหลักจะถูกจัดเก็บในรูปแบบที่แบ่งออกเป็นไดเร็กทอรี แบบอักษร ส่วนทรัพยากรของไฟล์
ลำดับการติดกาวมีดังนี้: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, อ๊อชคริวัสโว, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, ฮวาจโฮ, AVZOUMVFRDWFLWU.
ฟังก์ชัน WinAPI ใช้เพื่อถอดรหัสข้อมูลที่แยกออกมา CryptDecryptและคีย์เซสชันที่สร้างขึ้นตามค่าจะถูกใช้เป็นคีย์ fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.
ไฟล์ปฏิบัติการที่ถอดรหัสจะถูกส่งไปยังอินพุตของฟังก์ชัน รันพีอีซึ่งดำเนินการ กระบวนการฉีด в RegAsm.exe โดยใช้บิวท์อิน เชลล์โค้ด (หรือที่เรียกว่า เรียกใช้ PE ShellCode). การประพันธ์เป็นของผู้ใช้ฟอรัมภาษาสเปน ตรวจไม่พบ[.]สุทธิ ภายใต้ชื่อเล่นว่า วอร์โดว์
นอกจากนี้ยังเป็นที่น่าสังเกตว่าในหนึ่งในกระทู้ของฟอรัมนี้ obfuscator สำหรับ AutoIt ด้วยคุณสมบัติที่คล้ายกันซึ่งระบุไว้ในระหว่างการวิเคราะห์ตัวอย่าง
เขาเอง เชลล์โค้ด ค่อนข้างเรียบง่ายและดึงดูดความสนใจที่ยืมมาจากกลุ่มแฮ็กเกอร์อนุนักคาร์บานักเท่านั้น ฟังก์ชันแฮชการเรียก API
เรายังตระหนักถึงกรณีการใช้งานอีกด้วย เฟรนช์ชี่ เชลล์โค้ด รุ่นที่แตกต่างกัน
นอกเหนือจากฟังก์ชันที่อธิบายไว้แล้ว เรายังระบุฟังก์ชันที่ไม่ได้ใช้งานด้วย:
- การบล็อกการยกเลิกกระบวนการด้วยตนเองในตัวจัดการงาน
- การรีสตาร์ทกระบวนการลูกเมื่อสิ้นสุด
- บายพาส UAC
- บันทึกเพย์โหลดลงในไฟล์
- การสาธิตหน้าต่างโมดอล
- รอให้ตำแหน่งเคอร์เซอร์ของเมาส์เปลี่ยน
- AntiVM และ AntiSandbox
- การทำลายตนเอง
- สูบน้ำหนักบรรทุกจากเครือข่าย
เรารู้ว่าฟังก์ชันดังกล่าวเป็นเรื่องปกติสำหรับตัวป้องกัน ไซเฟอร์ไอทีซึ่งเห็นได้ชัดว่าเป็น bootloader ที่เป็นปัญหา
โมดูลหลักของซอฟต์แวร์
ต่อไป เราจะอธิบายโมดูลหลักของมัลแวร์โดยย่อ และพิจารณารายละเอียดเพิ่มเติมในบทความที่สอง ในกรณีนี้คือแอปพลิเคชันบน NET..
ในระหว่างการวิเคราะห์ เราพบว่ามีการใช้เครื่องสร้างความสับสน ConfuserEX.
IELibrary.dll
ไลบรารีถูกจัดเก็บเป็นทรัพยากรโมดูลหลักและเป็นปลั๊กอินที่รู้จักกันดี ตัวแทนTeslaซึ่งมีฟังก์ชันในการดึงข้อมูลต่างๆ จากเบราว์เซอร์ Internet Explorer และ Edge
Agent Tesla เป็นซอฟต์แวร์สอดแนมแบบโมดูลาร์ที่เผยแพร่โดยใช้โมเดลมัลแวร์ในรูปแบบบริการภายใต้หน้ากากของผลิตภัณฑ์คีย์ล็อกเกอร์ที่ถูกกฎหมาย เจ้าหน้าที่ Tesla สามารถแยกและส่งข้อมูลประจำตัวผู้ใช้จากเบราว์เซอร์ ไคลเอนต์อีเมล และไคลเอนต์ FTP ไปยังเซิร์ฟเวอร์ไปยังผู้โจมตี บันทึกข้อมูลคลิปบอร์ด และจับภาพหน้าจอของอุปกรณ์ ในขณะที่วิเคราะห์ เว็บไซต์อย่างเป็นทางการของนักพัฒนาไม่สามารถใช้งานได้
จุดเริ่มต้นคือฟังก์ชัน รับรหัสผ่านที่บันทึกไว้ คลาส InternetExplorer
โดยทั่วไป การเรียกใช้โค้ดเป็นแบบเชิงเส้นและไม่มีการป้องกันการวิเคราะห์ เฉพาะฟังก์ชันที่ยังไม่เกิดขึ้นจริงเท่านั้นที่สมควรได้รับความสนใจ รับคุกกี้ที่บันทึกไว้. เห็นได้ชัดว่าควรจะขยายฟังก์ชันการทำงานของปลั๊กอิน แต่ก็ไม่เคยเกิดขึ้น
การแนบ bootloader เข้ากับระบบ
เรามาศึกษาวิธีการแนบ bootloader เข้ากับระบบ ตัวอย่างที่ศึกษาไม่ได้ยึดเหนี่ยว แต่ในเหตุการณ์คล้ายคลึงกันนั้นจะเกิดขึ้นตามรูปแบบต่อไปนี้:
- ในโฟลเดอร์ C:UsersPublic สคริปต์ถูกสร้างขึ้น ของ Visual Basic
ตัวอย่างสคริปต์:
- เนื้อหาของไฟล์ตัวโหลดจะถูกเสริมด้วยอักขระ null และบันทึกลงในโฟลเดอร์ %ชั่วคราว%
- คีย์การทำงานอัตโนมัติจะถูกสร้างขึ้นในรีจิสทรีสำหรับไฟล์สคริปต์ HKCUSoftwareMicrosoftWindowsCurrentVersionRun
ดังนั้น จากผลการวิเคราะห์ส่วนแรก เราจึงสามารถตั้งชื่อตระกูลของส่วนประกอบทั้งหมดของมัลแวร์ที่อยู่ระหว่างการศึกษา วิเคราะห์รูปแบบการติดไวรัส และยังได้รับออบเจ็กต์สำหรับเขียนลายเซ็นอีกด้วย เราจะวิเคราะห์ออบเจ็กต์นี้ต่อไปในบทความถัดไป ซึ่งเราจะดูรายละเอียดเพิ่มเติมในโมดูลหลัก ตัวแทนTesla. ไม่ควรพลาด!
อย่างไรก็ตาม ในวันที่ 5 ธันวาคม เราขอเชิญผู้อ่านทุกคนเข้าร่วมการสัมมนาผ่านเว็บเชิงโต้ตอบฟรีในหัวข้อ “การวิเคราะห์มัลแวร์: การวิเคราะห์กรณีจริง” ซึ่งผู้เขียนบทความนี้ซึ่งเป็นผู้เชี่ยวชาญของ CERT-GIB จะแสดงขั้นตอนแรกของออนไลน์ การวิเคราะห์มัลแวร์ - การแกะตัวอย่างแบบกึ่งอัตโนมัติโดยใช้ตัวอย่างมินิเคสจริงสามกรณีจากการปฏิบัติ และคุณสามารถมีส่วนร่วมในการวิเคราะห์ได้ การสัมมนาผ่านเว็บนี้เหมาะสำหรับผู้เชี่ยวชาญที่มีประสบการณ์ในการวิเคราะห์ไฟล์ที่เป็นอันตรายอยู่แล้ว การลงทะเบียนนั้นมาจากอีเมลองค์กรอย่างเคร่งครัด:
การลงทะเบียน . กำลังคอยคุณอยู่!
Yara
rule AgentTesla_clean{
meta:
author = "Group-IB"
file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
scoring = 5
family = "AgentTesla"
strings:
$string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
$web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
all of them
}
rule AgentTesla_obfuscated {
meta:
author = "Group-IB"
file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
scoring = 5
family = "AgentTesla"
strings:
$first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
$second_names = "IELibrary.resources"
condition:
all of them
}
rule AgentTesla_module_for_IE{
meta:
author = "Group-IB"
file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
scoring = 5
family = "AgentTesla_module_for_IE"
strings:
$s0 = "ByteArrayToStructure"
$s1 = "CryptAcquireContext"
$s2 = "CryptCreateHash"
$s3 = "CryptDestroyHash"
$s4 = "CryptGetHashParam"
$s5 = "CryptHashData"
$s6 = "CryptReleaseContext"
$s7 = "DecryptIePassword"
$s8 = "DoesURLMatchWithHash"
$s9 = "GetSavedCookies"
$s10 = "GetSavedPasswords"
$s11 = "GetURLHashString"
condition:
all of them
}
rule RunPE_shellcode {
meta:
author = "Group-IB"
file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
scoring = 5
family = "RunPE_shellcode"
strings:
$malcode = {
C7 [2-5] EE 38 83 0C // mov dword ptr [ebp-0A0h], 0C8338EEh
C7 [2-5] 57 64 E1 01 // mov dword ptr [ebp-9Ch], 1E16457h
C7 [2-5] 18 E4 CA 08 // mov dword ptr [ebp-98h], 8CAE418h
C7 [2-5] E3 CA D8 03 // mov dword ptr [ebp-94h], 3D8CAE3h
C7 [2-5] 99 B0 48 06 // mov dword ptr [ebp-90h], 648B099h
C7 [2-5] 93 BA 94 03 // mov dword ptr [ebp-8Ch], 394BA93h
C7 [2-5] E4 C7 B9 04 // mov dword ptr [ebp-88h], 4B9C7E4h
C7 [2-5] E4 87 B8 04 // mov dword ptr [ebp-84h], 4B887E4h
C7 [2-5] A9 2D D7 01 // mov dword ptr [ebp-80h], 1D72DA9h
C7 [2-5] 05 D1 3D 0B // mov dword ptr [ebp-7Ch], 0B3DD105h
C7 [2-5] 44 27 23 0F // mov dword ptr [ebp-78h], 0F232744h
C7 [2-5] E8 6F 18 0D // mov dword ptr [ebp-74h], 0D186FE8h
}
condition:
$malcode
}
rule AgentTesla_AutoIT_module{
meta:
author = "Group-IB"
file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
scoring = 5
family = "AgentTesla"
strings:
$packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
all of them
}
แฮช
Name | qoute_jpeg56a.r15 |
MD5 | 53BE8F9B978062D4411F71010F49209E |
SHA1 | A8C2765B3D655BA23886D663D22BDD8EF6E8E894 |
SHA256 | 2641DAFB452562A0A92631C2849B8B9CE880F0F8F
890E643316E9276156EDC8A |
ชนิดภาพเขียน | เก็บถาวร WinRAR |
ขนาด | 823014 |
Name | QOUTE_JPEG56A.exe |
MD5 | 329F6769CF21B660D5C3F5048CE30F17 |
SHA1 | 8010CC2AF398F9F951555F7D481CE13DF60BBECF |
SHA256 | 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08
C05B5E3BD36FD52668D196AF |
ชนิดภาพเขียน | PE (สคริปต์ AutoIt ที่คอมไพล์แล้ว) |
ขนาด | 1327616 |
ชื่อเดิม | ไม่ทราบ |
ประทับวันที่ | 15.07.2019 |
linker | ไมโครซอฟต์ลิงค์เกอร์ (12.0) [EXE32] |
MD5 | C2743AEDDADACC012EF4A632598C00C0 |
SHA1 | 79B445DE923C92BF378B19D12A309C0E9C5851BF |
SHA256 | 37A1961361073BEA6C6EACE6A8601F646C5B6ECD
9D625E049AD02075BA996918 |
ชนิดภาพเขียน | เชลล์โค้ด |
ขนาด | 1474 |
ที่มา: will.com