mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
443 lines
31 KiB
Markdown
443 lines
31 KiB
Markdown
# 80,443 - Pentesting Web Metodologie
|
|
|
|
<details>
|
|
|
|
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
|
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
As jy belangstel in **hakwerk loopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiend Pools geskrewe en gesproke vereis_).
|
|
|
|
{% embed url="https://www.stmcyber.com/careers" %}
|
|
|
|
## Basiese Inligting
|
|
|
|
Die webdiens is die mees **gewone en omvattende diens** en daar bestaan baie **verskillende tipes kwesbaarhede**.
|
|
|
|
**Verstekpoort:** 80 (HTTP), 443(HTTPS)
|
|
```bash
|
|
PORT STATE SERVICE
|
|
80/tcp open http
|
|
443/tcp open ssl/https
|
|
```
|
|
|
|
```bash
|
|
nc -v domain.com 80 # GET / HTTP/1.0
|
|
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|
```
|
|
### Web API Leiding
|
|
|
|
{% content-ref url="web-api-pentesting.md" %}
|
|
[web-api-pentesting.md](web-api-pentesting.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Metodologie opsomming
|
|
|
|
> In hierdie metodologie gaan ons aanneem dat jy 'n domein (of subdomein) gaan aanval en net daardie een. Jy moet hierdie metodologie toepas op elke ontdekte domein, subdomein of IP met 'n onbepaalde webbediener binne die reikwydte.
|
|
|
|
* [ ] Begin deur die **tegnologieë** wat deur die webbediener gebruik word, te **identifiseer**. Soek na **truuks** om in gedagte te hou gedurende die res van die toets as jy die tegnologie suksesvol kan identifiseer.
|
|
* [ ] 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 uit te voer (soos wpscan)?
|
|
* [ ] Begin met die **algemene doeleindes skandeerders**. Jy weet nooit of hulle iets gaan vind of as hulle interessante inligting gaan vind.
|
|
* [ ] Begin met die **aanvanklike kontroles**: **robots**, **sitemap**, **404** fout en **SSL/TLS-skandering** (indien HTTPS).
|
|
* [ ] Begin met **spinnekoppe** van die webbladsy: Dit is tyd om al die moontlike **lêers, vouers** en **parameters wat gebruik word, te vind**. Kyk ook vir **spesiale bevindinge**.
|
|
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spinnekoppe, dit moet gespinnekop word._
|
|
* [ ] **Gids Brute-Forcing**: Probeer om al die ontdekte vouers te brute force op soek na nuwe **lêers** en **gids**.
|
|
* [ ] _Let daarop dat enige tyd 'n nuwe gids ontdek word tydens brute-forcing of spinnekoppe, dit moet Brute-Forced word._
|
|
* [ ] **Back-up kontrole**: Toets of jy **back-ups** van **ontdekte lêers** kan vind deur algemene back-up-uitbreidings by te voeg.
|
|
* [ ] **Brute-Force parameters**: Probeer om **verskuilde parameters** te vind.
|
|
* [ ] Sodra jy al die moontlike **eindpunte** wat **gebruikerinsette** aanvaar, geïdentifiseer het, kyk vir alle soorte **kwesbaarhede** wat daarmee verband hou.
|
|
* [ ] [Volg hierdie kontrolelys](../../pentesting-web/web-vulnerabilities-methodology/)
|
|
|
|
## Bedienerweergawe (Kwesbaar?)
|
|
|
|
### Identifiseer
|
|
|
|
Kyk of daar **bekende kwesbaarhede** vir die bediener **weergawe** wat loop.\
|
|
Die **HTTP-koppe en koekies van die respons** kan baie nuttig wees om die **tegnologieë** en/of **weergawe** wat gebruik word, te **identifiseer**. **Nmap-scan** kan die bedienerweergawe identifiseer, maar dit kan ook nuttig wees die gereedskap [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)of [**https://builtwith.com/**](https://builtwith.com)**:**
|
|
```bash
|
|
whatweb -a 1 <URL> #Stealthy
|
|
whatweb -a 3 <URL> #Aggresive
|
|
webtech -u <URL>
|
|
webanalyze -host https://google.com -crawl 2
|
|
```
|
|
Soek na **kwesbaarhede van die webtoepassing** **weergawe**
|
|
|
|
### **Kyk of daar enige WAF is**
|
|
|
|
* [**https://github.com/EnableSecurity/wafw00f**](https://github.com/EnableSecurity/wafw00f)
|
|
* [**https://github.com/Ekultek/WhatWaf.git**](https://github.com/Ekultek/WhatWaf.git)
|
|
* [**https://nmap.org/nsedoc/scripts/http-waf-detect.html**](https://nmap.org/nsedoc/scripts/http-waf-detect.html)
|
|
|
|
### Web tegnologie truuks
|
|
|
|
Sommige **truuks** vir **die vind van kwesbaarhede** in verskillende bekende **tegnologieë** wat gebruik word:
|
|
|
|
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
|
* [**Apache**](apache.md)
|
|
* [**Artifactory**](artifactory-hacking-guide.md)
|
|
* [**Buckets**](buckets/)
|
|
* [**CGI**](cgi.md)
|
|
* [**Drupal**](drupal.md)
|
|
* [**Flask**](flask.md)
|
|
* [**Git**](git.md)
|
|
* [**Golang**](golang.md)
|
|
* [**GraphQL**](graphql.md)
|
|
* [**H2 - Java SQL-databasis**](h2-java-sql-database.md)
|
|
* [**IIS truuks**](iis-internet-information-services.md)
|
|
* [**JBOSS**](jboss.md)
|
|
* [**Jenkins**](broken-reference/)
|
|
* [**Jira**](jira.md)
|
|
* [**Joomla**](joomla.md)
|
|
* [**JSP**](jsp.md)
|
|
* [**Laravel**](laravel.md)
|
|
* [**Moodle**](moodle.md)
|
|
* [**Nginx**](nginx.md)
|
|
* [**PHP (php het baie interessante truuks wat uitgebuit kan word)**](php-tricks-esp/)
|
|
* [**Python**](python.md)
|
|
* [**Spring Actuators**](spring-actuators.md)
|
|
* [**Symphony**](symphony.md)
|
|
* [**Tomcat**](tomcat.md)
|
|
* [**VMWare**](vmware-esx-vcenter....md)
|
|
* [**Web API Pentesting**](web-api-pentesting.md)
|
|
* [**WebDav**](put-method-webdav.md)
|
|
* [**Werkzeug**](werkzeug.md)
|
|
* [**Wordpress**](wordpress.md)
|
|
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
|
|
|
|
*Neem in ag dat dieselfde domein verskillende tegnologieë in verskillende poorte, vouers 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 te **soek vir nuwe truuks** (en laat my weet!).
|
|
|
|
### Bronkode-oorsig
|
|
|
|
As die **bronkode** van die aansoek beskikbaar is op **github**, behalwe om self 'n Witboks-toets van die aansoek uit te voer, is daar **inligting** wat nuttig kan wees vir die huidige **Swartboks-toetsing**:
|
|
|
|
* Is daar 'n **Wysigingslogboek of Leesmy of Weergawe**-lêer of enige iets met **weergawe-inligting wat toeganklik is** via die web?
|
|
* Hoe en waar word die **geloofsbriewe** gestoor? Is daar enige (toeganklike?) **lêer** met geloofsbriewe (gebruikersname of wagwoorde)?
|
|
* Is die **wagwoorde** in **plat teks**, **geënkripteer** of watter **hashing-algoritme** word gebruik?
|
|
* Word enige **meestersleutel** gebruik vir die enkripsie van iets? Watter **algoritme** word gebruik?
|
|
* Kan jy **toegang kry tot enige van hierdie lêers** deur van 'n kwesbaarheid gebruik te maak?
|
|
* Is daar enige **interessante inligting in die github** (opgeloste en onopgeloste) **kwessies**? Of in die **commit-geskiedenis** (miskien 'n **wagwoord ingevoer binne 'n ou commit**)?
|
|
|
|
{% content-ref url="code-review-tools.md" %}
|
|
[code-review-tools.md](code-review-tools.md)
|
|
{% endcontent-ref %}
|
|
|
|
### Outomatiese skandeerders
|
|
|
|
#### Algemene doel outomatiese skandeerders
|
|
```bash
|
|
nikto -h <URL>
|
|
whatweb -a 4 <URL>
|
|
wapiti -u <URL>
|
|
W3af
|
|
zaproxy #You can use an API
|
|
nuclei -ut && nuclei -target <URL>
|
|
|
|
# https://github.com/ignis-sec/puff (client side vulns fuzzer)
|
|
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"
|
|
```
|
|
#### CMS skandeerders
|
|
|
|
Indien 'n CMS gebruik word, moenie vergeet om **'n skandeerder** uit te voer nie, dalk word iets sappigs gevind:
|
|
|
|
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat.md)**, Railo, Axis2, Glassfish**\
|
|
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** webwerwe vir Sekuriteitskwessies. (GUI)\
|
|
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**, PrestaShop, Opencart**\
|
|
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md) **of** [**(M)oodle**](moodle.md)\
|
|
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
|
|
```bash
|
|
cmsmap [-f W] -F -d <URL>
|
|
wpscan --force update -e --url <URL>
|
|
joomscan --ec -u <URL>
|
|
joomlavs.rb #https://github.com/rastating/joomlavs
|
|
```
|
|
> Op hierdie punt behoort jy reeds enige inligting te hê oor die webbediener wat deur die klient gebruik word (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 skandeerders laat loop.
|
|
|
|
## Stap-vir-stap Webtoepassingsontdekking
|
|
|
|
> Van hier af gaan ons begin om met die webtoepassing te interaksieer.
|
|
|
|
### Aanvanklike kontroles
|
|
|
|
**Verstekbladsye met interessante inligting:**
|
|
|
|
* /robots.txt
|
|
* /sitemap.xml
|
|
* /crossdomain.xml
|
|
* /clientaccesspolicy.xml
|
|
* /.well-known/
|
|
* Kontroleer ook kommentaar in die hoof- en sekondêre bladsye.
|
|
|
|
**Forsing van foute**
|
|
|
|
Webbedieners kan **onverwags optree** wanneer vreemde data aan hulle gestuur word. Dit kan **kwesbaarhede** of **gevoelige inligting openbaar**.
|
|
|
|
* Toegang tot **vals bladsye** soos /whatever\_fake.php (.aspx,.html,.ens.)
|
|
* Voeg "\[]", "]]", en "\[\[" by in **koekiewaardes** en **parameter** waardes om foute te skep
|
|
* Skep 'n fout deur inset 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)**)**
|
|
|
|
As jy vind dat **WebDav** **geaktiveer** is, maar jy het nie genoeg regte vir **die oplaai van lêers** in die hoofmap nie, probeer dan:
|
|
|
|
* **Brute Force** geloofsbriewe
|
|
* **Laai lêers op** via WebDav na die **res** van die **gevonde lêers** binne die webbladsy. Jy mag regte hê om lêers in ander lêers op te laai.
|
|
|
|
### **SSL/TLS kwesbaarhede**
|
|
|
|
* As die aansoek **nie die gebruik van HTTPS afdwing nie** op enige punt, is dit **kwesbaar vir MitM**
|
|
* As die aansoek **gevoelige data (wagwoorde) stuur deur HTTP** te gebruik. Dan is dit 'n hoë kwesbaarheid.
|
|
|
|
Gebruik [**testssl.sh**](https://github.com/drwetter/testssl.sh) om te kyk vir **kwesbaarhede** (In Bug Bounty-programme sal sulke tipes 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
|
|
|
|
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
|
|
sslscan <host:port>
|
|
sslyze --regular <ip:port>
|
|
```
|
|
Inligting oor SSL/TLS kwesbaarhede:
|
|
|
|
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
|
|
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
|
|
|
|
### Spidering
|
|
|
|
Begin 'n soort **spinnekop** binne die web. Die doel van die spinnekop is om **soveel moontlike paaie** van die getoetste aansoek te vind. 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 spinnekop, LinkFinder in JS lêers en eksterne bronne (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
|
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spinnekop, met LinkFider vir JS lêers en Archive.org as eksterne bron.
|
|
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spinnekop, dui ook "sappige lêers" aan.
|
|
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiewe CLI HTML spinnekop. Dit soek ook in Archive.org
|
|
* [**meg**](https://github.com/tomnomnom/meg) (go): Hierdie instrument is nie 'n spinnekop nie, maar dit kan nuttig wees. Jy kan net 'n lêer met gasheers en 'n lêer met paaie aandui en meg sal elke pad op elke gasheer haal en die respons stoor.
|
|
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spinnekop met JS-renderingsvermoëns. Dit lyk egter asof dit nie onderhou word nie, die vooraf saamgestelde weergawe is oud en die huidige kode kompileer nie
|
|
* [**gau**](https://github.com/lc/gau) (go): HTML spinnekop wat eksterne verskaffers gebruik (wayback, otx, commoncrawl)
|
|
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Hierdie skrip sal URL's met parameters vind en lys.
|
|
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spinnekop met JS-renderingsvermoëns.
|
|
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spinnekop, met JS-verfraaiingsvermoëns wat nuwe paaie in JS lêers kan soek. Dit kan ook die moeite werd wees om na [JSScanner](https://github.com/dark-warlord14/JSScanner) te kyk, wat 'n omhulsel van LinkFinder is.
|
|
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Om eindpunte in beide HTML-bron- en ingeslote javascript-lêers te onttrek. Nuttig vir foutsoekers, rooi spanne, 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 ontled. Nuttig vir die maklike ontdekking van AJAX-versoeke. Dit lyk asof dit nie 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 deur handige regulêre uitdrukking te gebruik om die relatiewe URL's uit lelike (geminifiseerde) lêers te vind en te onttrek.
|
|
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, verskeie gereedskap): Versamel interessante inligting uit JS-lêers met verskeie gereedskap.
|
|
* [**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 koplose blaaier en druk al die gelaai URL's om die bladsy te laai.
|
|
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Inhoudsontdekkingsinstrument wat verskeie opsies van die vorige gereedskap meng
|
|
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): 'n Burp-uitbreiding om paaie en parameters in JS-lêers te vind.
|
|
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): 'n Instrument wat, gegewe die .js.map-URL, jou die mooi JS-kode sal gee
|
|
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Hierdie is 'n instrument wat gebruik word om eindpunte vir 'n gegewe teiken te ontdek.
|
|
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ontdek skakels van die wayback-masjien (laai ook die antwoorde in die wayback af en soek na meer skakels
|
|
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Kruip (selfs deur vorms te vul) en vind ook sensitiewe inligting deur spesifieke regulêre uitdrukkings te gebruik.
|
|
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite is 'n gevorderde multi-funksie GUI-websekuriteitskruiper/spinnekop wat ontwerp is vir sibersekuriteitsprofessionals.
|
|
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Dit is 'n Go-pakket en [kommalyn-instrument](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) vir die onttrek van URL's, paaie, geheime en ander interessante data uit JavaScript-bronkode.
|
|
* [**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 aangepaste woordelys vir fuzzing en enumerasie te skep.
|
|
|
|
### Brute Force-dosisse en lêers
|
|
|
|
Begin **brute-krag** vanaf die hoofmap en verseker dat jy **alle** die **gevonde dosisse** met **hierdie metode** en al die dosisse **ontdek** deur die **Spidering** te brute-krag (jy kan hierdie brute-krag **rekursief** doen en die name van die gevonde dosisse aan die begin van die gebruikte woordelys toevoeg).\
|
|
Gereedskap:
|
|
|
|
* **Dirb** / **Dirbuster** - Ingesluit in Kali, **oud** (en **stadig**) maar funksioneel. Laat outomatiese ondertekende sertifikate en rekursiewe soektog toe. Te stadig in vergelyking met die ander opsies.
|
|
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Dit laat nie outomatiese ondertekende sertifikate toe nie, maar** laat rekursiewe soektog toe.
|
|
* [**Gobuster**](https://github.com/OJ/gobuster) (go): Dit laat outomatiese ondertekende sertifikate toe, dit het **nie** 'n **rekursiewe** soektog nie.
|
|
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Vinnig, ondersteun rekursiewe soektog.**
|
|
* [**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)- Vinnig: `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 spinnekop nie, maar 'n instrument wat, gegewe die lys van gevonde URL's, "dupliseerde" URL's sal verwyder.
|
|
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Burp-uitbreiding om 'n lys van dosisse van die burp-geskiedenis van verskillende bladsye te skep
|
|
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Verwyder URL's met dupliseerde funksionaliteite (gebaseer op js invoere)
|
|
* [**Chamaleon**](https://github.com/iustin24/chameleon): Dit gebruik wapalyzer om gebruikte tegnologieë op te spoor en die woordlyste te kies wat gebruik moet word.
|
|
|
|
**Aanbevole woordeboeke:**
|
|
|
|
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
|
|
* [**Dirsearch** ingeslote woordeboek](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
|
|
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
|
|
* [Assetnote woordeboeke](https://wordlists.assetnote.io)
|
|
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
|
|
* raft-large-directories-lowercase.txt
|
|
* directory-list-2.3-medium.txt
|
|
* RobotsDisallowed/top10000.txt
|
|
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
|
* [https://github.com/google/fuzzing/tree/master/dictionaries](https://github.com/google/fuzzing/tree/master/dictionaries)
|
|
* [https://github.com/six2dez/OneListForAll](https://github.com/six2dez/OneListForAll)
|
|
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
|
* _/usr/share/wordlists/dirb/common.txt_
|
|
* _/usr/share/wordlists/dirb/big.txt_
|
|
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
|
|
|
_Merk op dat elke keer as 'n nuwe gids ontdek word tydens brute-forcing of spidering, dit Brute-Forced moet word._
|
|
|
|
### Wat om op elke gevonde lêer te kontroleer
|
|
|
|
* [**Gebroke skakelkontroleerder**](https://github.com/stevenvachon/broken-link-checker): Vind gebroke skakels binne HTMLs wat vatbaar kan wees vir oorneem
|
|
* **Lêerback-ups**: Sodra jy al die lêers gevind het, soek na back-ups van al die uitvoerbare lêers ("_.php_", "_.aspx_"...). Gewone variasies vir die benaming van 'n back-up is: _lêer.ext\~, #lêer.ext#, \~lêer.ext, lêer.ext.bak, lêer.ext.tmp, lêer.ext.old, lêer.bak, lêer.tmp en lêer.old._ Jy kan ook die gereedskap [**bfac**](https://github.com/mazen160/bfac) **of** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
|
|
* **Ontdek nuwe parameters**: Jy kan gereedskappe 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 verskuilde parameters te ontdek. As jy kan, kan jy probeer om** verskuilde parameters op elke uitvoerbare web-lêer te soek.
|
|
* _Arjun alle verstekwoordlyste:_ [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)
|
|
* **Opmerkings:** Kontroleer die opmerkings van al die lêers, jy kan **geloofsbriewe** of **verskuilde funksionaliteit** vind.
|
|
* As jy **CTF** speel, is 'n "gewone" truuk om **inligting** **te verberg** binne opmerkings aan die **regterkant** van die **bladsy** (deur **honderde** **spasies** te gebruik sodat jy die data nie sien as jy die bronkode met die blaaier oopmaak nie). 'n Ander moontlikheid is om **verskeie nuwe lyne** te gebruik en inligting in 'n opmerking aan die **onderkant** van die webbladsy te verberg.
|
|
* **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 kontroleer watter API's die sleutel kan toegang verkry.
|
|
* **S3 Emmers**: Terwyl jy aan die spider is, kyk of enige **subdomein** of enige **skakel** verband hou met 'n sekere **S3-emmer**. In daardie geval, [**kontroleer** die **toestemmings** van die emmer](buckets/).
|
|
|
|
### Spesiale bevindinge
|
|
|
|
**Terwyl** jy die **spidering** en **brute-forcing** uitvoer, kan jy **interessante** **dinge** vind wat jy moet **opmerk**.
|
|
|
|
**Interessante lêers**
|
|
|
|
* Soek na **skakels** na ander lêers binne die **CSS**-lêers.
|
|
* [As jy 'n _**.git**_ lêer vind kan daar inligting onttrek word](git.md)
|
|
* As jy 'n _**.env**_ vind, kan inligting soos API-sleutels, databasiswagwoorde en ander inligting gevind word.
|
|
* As jy **API-eindpunte** vind, [moet jy hulle ook toets](web-api-pentesting.md). Dit is nie lêers nie, maar sal waarskynlik soos hulle lyk.
|
|
* **JS-lêers**: In die spidering-afdeling is daar verskeie gereedskappe genoem wat paaie uit JS-lêers kan onttrek. Dit sal ook interessant wees om elke gevonde JS-lêer te **monitor**, aangesien 'n verandering in sommige gevalle 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 die ontdekte JS-lêers met [**RetireJS**](https://github.com/retirejs/retire.js/) of [**JSHole**](https://github.com/callforpapers-source/jshole) toets om te sien 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://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
|
|
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
|
|
* In verskeie gevalle sal jy die gebruikte regulêre uitdrukkings moet **verstaan**, dit sal nuttig wees: [https://regex101.com/](https://regex101.com)
|
|
* Jy kan ook die lêers waar vorms opgespoor is **monitor**, aangesien 'n verandering in die parameter of die verskyning van 'n nuwe vorm 'n potensiële nuwe kwesbare funksionaliteit kan aandui.
|
|
|
|
**403 Verbode/Grondige Verifikasie/401 Onbevoegd (omseil)**
|
|
|
|
{% content-ref url="403-and-401-bypasses.md" %}
|
|
[403-and-401-bypasses.md](403-and-401-bypasses.md)
|
|
{% endcontent-ref %}
|
|
|
|
**502 Proksi-fout**
|
|
|
|
As enige bladsy met daardie kode **reageer**, is dit waarskynlik 'n sleg gekonfigureerde proksi. **As jy 'n HTTP-versoek stuur soos: `GET https://google.com HTTP/1.1`** (met die gasheerkop en ander algemene koppe), sal die **proksi** probeer om _**google.com**_ **te benader en jy sal 'n** SSRF **gevind het.**
|
|
|
|
**NTLM-verifikasie - Inligtingsoorplasing**
|
|
|
|
As die bedrywende bediener wat vir verifikasie vra **Windows** is of jy 'n aanmelding vind wat vir jou **geloofsbriewe** vra (en vir 'n **domeinnaam** vra), kan jy 'n **inligtingsoorplasing** veroorsaak.\
|
|
**Stuur** die **kop**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` en as gevolg van hoe die **NTLM-verifikasie werk**, sal die bediener reageer met interne inligting (IIS-weergawe, Windows-weergawe...) binne die kop "WWW-Authenticate".\
|
|
Jy kan dit **outomatiseer** deur die **nmap-inprop** "_http-ntlm-info.nse_".
|
|
|
|
**HTTP Aanwysing (CTF)**
|
|
|
|
Dit is moontlik om inhoud binne 'n **Aanwysing** te **plaas**. Hierdie inhoud **sal nie aan die gebruiker gewys word** (aangesien die blaaier die aanwysing sal uitvoer) maar iets kan **daarin versteek** wees.
|
|
### Web Kwesbaarhede Kontroleer
|
|
|
|
Nou wat 'n omvattende opsomming van die webtoepassing uitgevoer is, is dit tyd om vir 'n hele paar moontlike kwesbaarhede te kyk. Jy kan die kontrolelys hier vind:
|
|
|
|
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology/" %}
|
|
[web-vulnerabilities-methodology](../../pentesting-web/web-vulnerabilities-methodology/)
|
|
{% endcontent-ref %}
|
|
|
|
Vind meer inligting oor web kwesbaarhede in:
|
|
|
|
* [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist)
|
|
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
|
|
* [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection)
|
|
|
|
### Monitor Bladsye vir Veranderinge
|
|
|
|
Jy kan gereedskap soos [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gebruik om bladsye vir wysigings te monitor wat moontlik kwesbaarhede kan invoeg.
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die aanstel!** (_vloeiend in Pools geskrewe en gespreek benodig_).
|
|
|
|
{% embed url="https://www.stmcyber.com/careers" %}
|
|
|
|
### HackTricks Outomatiese Opdragte
|
|
```
|
|
Protocol_Name: Web #Protocol Abbreviation if there is one.
|
|
Port_Number: 80,443 #Comma separated if there is more than one.
|
|
Protocol_Description: Web #Protocol Abbreviation Spelled out
|
|
|
|
Entry_1:
|
|
Name: Notes
|
|
Description: Notes for Web
|
|
Note: |
|
|
https://book.hacktricks.xyz/pentesting/pentesting-web
|
|
|
|
Entry_2:
|
|
Name: Quick Web Scan
|
|
Description: Nikto and GoBuster
|
|
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
|
|
|
|
Entry_3:
|
|
Name: Nikto
|
|
Description: Basic Site Info via Nikto
|
|
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
|
|
|
|
Entry_4:
|
|
Name: WhatWeb
|
|
Description: General purpose auto scanner
|
|
Command: whatweb -a 4 {IP}
|
|
|
|
Entry_5:
|
|
Name: Directory Brute Force Non-Recursive
|
|
Description: Non-Recursive Directory Brute Force
|
|
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
|
|
|
|
Entry_6:
|
|
Name: Directory Brute Force Recursive
|
|
Description: Recursive Directory Brute Force
|
|
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
|
|
|
|
Entry_7:
|
|
Name: Directory Brute Force CGI
|
|
Description: Common Gateway Interface Brute Force
|
|
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
|
|
|
|
Entry_8:
|
|
Name: Nmap Web Vuln Scan
|
|
Description: Tailored Nmap Scan for web Vulnerabilities
|
|
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
|
|
|
|
Entry_9:
|
|
Name: Drupal
|
|
Description: Drupal Enumeration Notes
|
|
Note: |
|
|
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
|
|
|
|
Entry_10:
|
|
Name: WordPress
|
|
Description: WordPress Enumeration with WPScan
|
|
Command: |
|
|
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
|
|
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e
|
|
|
|
Entry_11:
|
|
Name: WordPress Hydra Brute Force
|
|
Description: Need User (admin is default)
|
|
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
|
|
|
|
Entry_12:
|
|
Name: Ffuf Vhost
|
|
Description: Simple Scan with Ffuf for discovering additional vhosts
|
|
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
|
|
```
|
|
<details>
|
|
|
|
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
|
|
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
|
|
|
</details>
|