การกลับมาของกลุ่มแฮคเกอร์ APT32 พร้อมกับ TTPs ใหม่และไฟล์อันตราย

กวิจัยด้านภัยคุกคามค้นพบการโจมตีแบบใหม่ที่เกิดจากกลุ่มผู้ไม่ประสงค์ดีของอิหร่านที่รู้จักกันในชื่อ APT34 หรือ Oilrig โดยครั้งนี้ได้ใช้การโจมตีแบบ Spearphishing Email มุ่งเป้าไปที่นักการทูตชาวจอร์แดน โดยที่ผู้ส่งจะปลอมแปลงเป็นเพื่อนร่วมงานจากแผนกไอทีขององค์กรรัฐบาลเดียวกัน 

ซึ่งอีเมลดังกล่าวจะมีไฟล์ Exel ที่เป็นโค้ดแมโคร VBA อันตรายแนบไปด้วย โดยโค้ดนี้ใช้สำหรับสร้างไฟล์สามไฟล์ คือ ไฟล์ปฏิบัติการที่เป็นอันตราย ไฟล์ที่ใช้กำหนดค่า และไฟล์ที่มี Sign และ DLL ที่ไม่อันตราย อีกทั้งยังค้นพบความผิดปกติอีกประการหนึ่งเกี่ยวข้องกับการดำเนินการ 2 Anti-analysis ที่ใช้ในมาโครอย่างการสลับการมองเห็นชีตในสเปรดชีตและอีกวิธีหนึ่งคือการตรวจสอบการเชื่อมต่อของเมาส์ ซึ่งอาจไม่มีอยู่ในบริการการวิเคราะห์มัลแวร์ของแซนด์บ็อกซ์ 

บรรทัดที่ 25 มีการเรียกใช้ฟังก์ชั่นที่ติดต่อกับเซิร์ฟเวอร์ C2 
แมโครนี้ใช้ WMI (Windows Management Instrumentation) เพื่อ ping เซิร์ฟเวอร์ C2 

ตามที่กล่าวไว้ในตารางข้างต้น มาโครมีความสามารถในการสร้างไฟล์สามไฟล์ดังนี้  

  • ไฟล์ปฏิบัติการที่เป็นอันตราย : %LocalAppData%\MicrosoftUpdate\update.exe  
  • ไฟล์ที่ใช้กำหนดค่า : %LocalAppData%\MicrosoftUpdate\update.exe.config  
  • ไฟล์ที่มี Sign และ DLL ที่ไม่อันตราย %LocalAppData%\MicrosoftUpdate\Microsoft.Exchange.WebServices.dll 

แบบฟอร์มทั้งสามรูปแบบจะถูกเก็บไว้ในไฟล์ Excel โดยมีชื่อกำกับไว้พร้อมกับคำอธิบายดังภาพด้านบน ซึ่งคำอธิบายนี้ประกอบด้วยข้อมูลที่เข้ารหัส Base64 ไว้ นอกจากนี้ยังใช้มาโคร Excel เพื่อสร้างการคงอยู่สำหรับไฟล์ update.exe โดยตั้งค่าการดำเนินการที่กำหนดเวลาไว้ 

การดำเนินการนี้ถูกเรียกว่า MicrosoftUpdate โดยจะดำเนินการซ้ำทุกๆ 4 ชั่วโมง และตัวมาโครเองยังใช้คุณสมบัติ IdleSettings ที่เลิกใช้แล้ว เช่น Duration (ซึ่งจะเริ่มงานก็ต่อเมื่อคอมพิวเตอร์ไม่ได้ใช้งานเป็นเวลาสิบนาที) และ WaitTimeout (ซึ่งกำหนดระยะเวลาที่จะรอสำหรับสภาวะที่ไม่ได้ใช้งาน) งานนี้ได้รับการตั้งค่าให้ใช้เวลา 20 วันจึงจะเสร็จสมบูรณ์ 

นอกจากเทคนิคการสลับการมองเห็นที่อธิบายไว้ก่อนหน้านี้แล้ว ยังพบเทคนิคที่สองในมาโครนี้เพื่อหลีกเลี่ยงการวิเคราะห์อัตโนมัติ มาโครนี้ทำได้โดยการตรวจสอบการมีอยู่ของเมาส์ หากไม่ได้เชื่อมต่อเมาส์ แมโครจะไม่สร้างไฟล์ใดๆ ในสามไฟล์ 

มีบางกรณีที่ไม่สามารถต่อเมาส์เข้ากับคอมพิวเตอร์ได้ อันดับแรก ไม่จำเป็นต้องใช้เมาส์หากคอมพิวเตอร์ถูกควบคุมจากระยะไกล เมาส์เพียงตัวเดียวที่จำเป็นจะถูกติดตั้งบนคอมพิวเตอร์ควบคุม ประการที่สอง ไม่จำเป็นต้องใช้เมาส์หากเครื่องวิเคราะห์กำลังประมวลผลและจำลองไฟล์ Office เพียงอย่างเดียว สคริปต์สามารถสร้างขึ้นเพื่อดำเนินการทั้งหมดที่จำเป็นโดยอัตโนมัติโดยไม่ต้องใช้เมาส์ 

โปรแกรมที่เป็นอันตรายคือไบนารี .NET ที่ตรวจสอบสถานะของโปรแกรมและทำให้ตัวเองเข้าสู่โหมดสลีปเป็นเวลา8 ชั่วโมงหลังจากการเริ่มดำเนินการ นักวิเคราะห์เชื่อว่าผู้ไม่ประสงค์ดีอาจตั้งค่าความล่าช้านี้ไว้โดยสันนิษฐานว่านักการทูตจะเปิดอีเมลในตอนเช้าและออกไปหลังจากแปดชั่วโมงเพื่อให้คอมพิวเตอร์ไม่ถูกใช้งานอยู่ 

เมื่อเปิดใช้งาน มัลแวร์จะสื่อสารกับโดเมนย่อย C2 โดยใช้เครื่องมือสร้างโดเมน (DGA) DGA เป็นเทคนิคที่ใช้กันอย่างแพร่หลายซึ่งทำให้การทำงานของมัลแวร์มีความยืดหยุ่นมากขึ้นในการลบโดเมนและบล็อกรายการ 

จากนั้นตั้งค่าช่องสัญญาณ DNS เพื่อติดต่อกับ IP Address ที่ให้มา นี่เป็นเทคนิคที่ไม่ค่อยพบเห็นซึ่งช่วยให้ผู้ไม่ประสงค์ดีเข้ารหัสข้อมูลที่แลกเปลี่ยนในสภาพแวดล้อมของการสื่อสารนี้ ทำให้ผู้ตรวจสอบเครือข่ายตรวจจับสิ่งผิดปกติได้ยาก 

โดเมนบางส่วนที่ใช้ในแคมเปญมีชื่อที่น่าสงสัย โดยเห็นได้ชัดว่าพยายามปลอมแปลงเป็นหน่วยงานที่เป็นที่รู้จักและเชื่อถือได้ เช่น AstraZeneca, HSBC และ Cisco 

ขั้นตอนต่อไป C2 จะส่งคำสั่งลับๆ ที่ต่างกัน 22 คำสั่งไปยังมัลแวร์ ซึ่งดำเนินการผ่าน PowerShell หรือ Windows CMD interpreter สุดท้ายการกรองข้อมูลที่ถูกขโมยจะทำผ่าน DNS โดยมีข้อมูลฝังอยู่ในคำขอ ทำให้ปรากฏเป็นมาตรฐานในบันทึกเครือข่าย 

Indicator of Attack: 

Command Interpreter Payload 
PS Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress 
PS Get-NetNeighbor -AddressFamily IPv4 | Select-Object “IPADDress” 
CMD whoami 
PS [System.Environment]::OSVersion.VersionString 
CMD net user 
PS Get-ChildItem -Path “C:\Program Files” | Select-Object Name 
PS Get-ChildItem -Path ‘C:\Program Files (x86)’ | Select-Object Name 
PS Get-ChildItem -Path ‘C:’ | Select-Object Name 
10 CMD hostname 
11 PS Get-NetTCPConnection | Where-Object {$_.State -eq “Established”} | Select-Object “LocalAddress”, “LocalPort”, “RemoteAddress”, “RemotePort” 
12 PS $(ping -n 1 10.65.4.50 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.4.51 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.65.65 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.53.53 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.21.200 | findstr /i ttl) -eq $null 
13 PS nslookup ise-posture.mofagov.gover.local | findstr /i Address;nslookup webmail.gov.jo | findstr /i Address 
14 PS $(ping -n 1 10.10.21.201 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.19.201 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.19.202 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.24.200 | findstr /i ttl) -eq $null 
15 PS $(ping -n 1 10.10.10.4 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.50.10 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.22.50 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.45.19 | findstr /i ttl) -eq $null 
16 PS $(ping -n 1 10.65.51.11 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.6.1 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.52.200 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.6.3 | findstr /i ttl) -eq $null 
17 PS $(ping -n 1 10.65.45.18 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.28.41 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.36.13 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.51.10 | findstr /i ttl) -eq $null 
18 PS $(ping -n 1 10.10.22.42 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.23.200 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.45.19 | findstr /i ttl) -eq $null;$(ping -n 1 10.10.19.50 | findstr /i ttl) -eq $null 
19 PS $(ping -n 1 10.65.45.3 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.4.52 | findstr /i ttl) -eq $null;$(ping -n 1 10.65.31.155 | findstr /i ttl) -eq $null;$(ping -n 1 ise-posture.mofagov.gover.local | findstr /i ttl) -eq $null 
20 PS Get-NetIPConfiguration | Foreach IPv4DefaultGateway | Select-Object NextHop 
21 PS Get-DnsClientServerAddress -AddressFamily IPv4 | Select-Object SERVERAddresses 
22 CMD systeminfo | findstr /i \”Domain\” 

IOCs 

File SHA256 
Confirmation Receive Document.xls 82A0F2B93C5BCCF3EF920BAE425DD768371248CDA9948D5A8E70F3C34E9F7CCA 
Microsoft.Exchange.WebServices.dll  7EBBEB2A25DA1B09A98E1A373C78486ED2C5A7F2A16EEC63E576C99EFE0C7A49 
update.exe.config C744DA99FE19917E09CD1ECC48B563F9525DAD3916E1902F61B79BDA35298D87 
update.exe E0872958B8D3824089E5E1CFAB03D9D98D22B9BCB294463818D721380075A52D 

Other 

Indicator Value 
Mutex 726a06ad-475b-4bc6-8466-f08960595f1e 
C2 domain joexpediagroup[.]com 
C2 domain asiaworldremit[.]com 
C2 domain uber-asia[.]com 

Mitre TTPs 

Initial Access  
T1566.001 Spearphishing 
Execution   
T1059.001 PowerShell 
T1059.003 Windows Command Shell 
T1053.005 Scheduled Task 
T1204.002 Malicious File 
T1047 Windows Management Instrumentation 
Persistence  
T1053.005 Scheduled Task 
Defense Evasion  
T1480 Execution Guardrails 
Discovery  
T1087.001 Local Account 
T1083 File and Directory Discovery 
T1049 System Network Connections Discovery 
Command and Control  
T1071.004 DNS 
T1132.002 Non-Standard Encoding 
T1568.002 Domain Generation Algorithms 
Exfiltration  
T1041 Exfiltration Over C2 Channel 

Ref:  

https://www.socinvestigation.com/apt34-returns-with-new-ttps-and-delivers-malicious-file s/ 

https://www.fortinet.com/blog/threat-research/please-confirm-you-received-our-apt

Share