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

APT34 หรือ Oilrig โดยครั้งนี้ได้ใช้การโจมตีแบบ Spearphishing Email

กวิจัยด้านภัยคุกคามค้นพบการโจมตีแบบใหม่ที่เกิดจากกลุ่มผู้ไม่ประสงค์ดีของอิหร่านที่รู้จักกันในชื่อ 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