80,443 - Pentesting Web ææ³
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã
åºæ¬æ å ±
WebãµãŒãã¹ã¯æãäžè¬çã§åºç¯ãªãµãŒãã¹ã§ãããæ§ã ãªçš®é¡ã®è匱æ§ã倿°ååšããŸãã
ããã©ã«ãããŒã: 80 (HTTP), 443(HTTPS)
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
Web API ã¬ã€ãã³ã¹
æ¹æ³è«ã®æŠèŠ
ãã®æ¹æ³è«ã§ã¯ããã¡ã€ã³ïŒãŸãã¯ãµããã¡ã€ã³ïŒ1ã€ã ããæ»æããããšãæ³å®ããŸãããããã£ãŠãã¹ã³ãŒãå ã®åçºèŠããããã¡ã€ã³ããµããã¡ã€ã³ããŸãã¯æªç¢ºå®ã® web ãµãŒããŒã® IP ã«å¯ŸããŠãã®æ¹æ³è«ãé©çšããŠãã ããã
- ãŸããWeb ãµãŒããŒã䜿çšããŠããæè¡ãç¹å®ããŸããæè¡ãç¹å®ã§ããå Žåã¯ãæ®ãã®ãã¹ãäžã«èŠããŠããã¹ãããªãã¯ãæ¢ããŠãã ããã
- ãã®æè¡ã®ããŒãžã§ã³ã«æ¢ç¥ã®è匱æ§ã¯ãããïŒ
- ããç¥ãããtechã䜿ã£ãŠãããïŒæ å ±ãæœåºããããã®æçšãªããªãã¯ã¯ãããïŒ
- å®è¡ãã¹ãspecialised scannerã¯ãããïŒäŸ: wpscanïŒïŒ
- æ±çšã¹ãã£ããŒãå®è¡ããŸããäœããèŠã€ããããè峿·±ãæ å ±ãèŠã€ãããã¯åãããŸããã
- åæãã§ãã¯ããå§ãã: robots, sitemap, 404 error ãš SSL/TLS scan (if HTTPS).
- Web ããŒãžã®spideringãéå§ïŒå¯èœãªãã¹ãŠã®ãã¡ã€ã«ããã©ã«ãããã³äœ¿çšãããŠãããã©ã¡ãŒã¿ãæ€åºããŸããããã«ãç¹å¥ãªçºèŠããªãã確èªããŠãã ããã
- Note that anytime a new directory is discovered during brute-forcing or spidering, it should be spidered.
- Directory Brute-Forcing: çºèŠãããã©ã«ããã¹ãŠã«å¯ŸããŠbrute forceã詊ã¿ãæ°ãããã¡ã€ã«ãšãã£ã¬ã¯ããªãæ¢ããŸãã
- Note that anytime a new directory is discovered during brute-forcing or spidering, it should be Brute-Forced.
- Backups checking: äžè¬çãªããã¯ã¢ããæ¡åŒµåãä»ããŠãçºèŠãããã¡ã€ã«ã®ããã¯ã¢ãããèŠã€ããããã¹ãããŸãã
- Brute-Force parameters: é ããã©ã¡ãŒã¿ãçºèŠããããšã詊ã¿ãŸãã
- ãã¹ãŠã®å¯èœãªãšã³ããã€ã³ãã§ããŠãŒã¶ãŒå ¥åãåãä»ãããã®ãç¹å®ãããããããã«é¢é£ããããããçš®é¡ã®è匱æ§ããã§ãã¯ããŸãã
- ãã®ãã§ãã¯ãªã¹ãã«åŸã£ãŠãã ãã
ãµãŒããŒã®ããŒãžã§ã³ïŒè匱ãïŒïŒ
ç¹å®
å®è¡äžã®ãµãŒããŒã®ããŒãžã§ã³ã«å¯ŸããŠæ¢ç¥ã®è匱æ§ãããã確èªããŠãã ããã
ã¬ã¹ãã³ã¹ã®HTTP headers and cookies of the responseã¯ã䜿çšãããŠããæè¡ãããŒãžã§ã³ãèå¥ããã®ã«éåžžã«åœ¹ç«ã¡ãŸããNmap scanã¯ãµãŒããŒã®ããŒãžã§ã³ãèå¥ã§ããŸãããwhatweb, webtech or https://builtwith.com/:
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
æ€çŽ¢ ãã vulnerabilities of the web application version
WAFãããã確èªãã
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Webæè¡ã®ããªãã¯
䜿çšãããŠããããŸããŸãªããç¥ãããtechnologiesã§ã®finding vulnerabilitiesã®ããã®ããã€ãã®tricks:
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Custom UDP RPC Protocols
- Dotnet SOAP WSDL client exploitation
- Drupal
- Flask
- Fortinet FortiWeb
- Git
- Golang
- GraphQL
- H2 - Java SQL database
- ISPConfig
- IIS tricks
- Microsoft SharePoint
- JBOSS
- Jenkins
- Jira
- Joomla
- JSP
- Laravel
- Moodle
- Nginx
- PHP (php has a lot of interesting tricks that could be exploited)
- Python
- Roundcube
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Web API Pentesting
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS to RCE)
- Sitecore
- Zabbix
åããã¡ã€ã³ãç°ãªãããŒãããã©ã«ãããµããã¡ã€ã³ã§ç°ãªãæè¡ã䜿çšããŠããå¯èœæ§ãããããšã«æ³šæããŠãã ãã.
ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãåè¿°ã®ããç¥ãããtech/platform listed beforeãany otherã䜿çšããŠãããªããã€ã³ã¿ãŒãããã§æ°ããããªãã¯ãsearch on the Internetããã®ãå¿ããªãã§ãã ããïŒãããŠæããŠãã ããïŒïŒã
ãœãŒã¹ã³ãŒãã¬ãã¥ãŒ
ããã¢ããªã±ãŒã·ã§ã³ã®source codeãgithubã§å ¥æå¯èœãªããã¢ããªã±ãŒã·ã§ã³ãèªèº«ã§ã®White box testãè¡ãããšã«å ããŠãçŸåšã®Black-Box testingã«åœ¹ç«ã€ããã€ãã®æ å ±ãèŠã€ããããšããããŸã:
- ãŠã§ãçµç±ã§åç §å¯èœãªChange-log or Readme or Versionãã¡ã€ã«ãversion info accessibleãªãã®ã¯ãããŸããïŒ
- ãã®credentialsã¯ã©ã®ããã«ãã©ãã«ä¿åãããŠããŸããïŒè³æ Œæ å ±ïŒãŠãŒã¶åããã¹ã¯ãŒãïŒãå«ãïŒã¢ã¯ã»ã¹å¯èœãªïŒfileã¯ãããŸããïŒ
- passwordsã¯plain textã§ãããencryptedã§ããããããã¯ã©ã®hashing algorithmã䜿ãããŠããŸããïŒ
- äœããæå·åããããã«master keyã䜿çšããŠããŸããïŒã©ã®algorithmã䜿ãããŠããŸããïŒ
- ãããã®ãã¡ã€ã«ã®ããããã«ãè匱æ§ãæªçšããŠã¢ã¯ã»ã¹ã§ããŸããïŒ
- githubã®issuesïŒè§£æ±ºæžã¿ã»æªè§£æ±ºåããïŒãcommit historyã«è峿·±ãæ å ±ã¯ãããŸããïŒïŒå€ãã³ãããã«password introduced inside an old commitãå«ãŸããŠããå¯èœæ§ãªã©ïŒ
Source code Review / SAST Tools
èªåã¹ãã£ã
æ±çšèªåã¹ãã£ã
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 scanners
ãã CMS ã䜿çšãããŠããå Žåã¯ãrun a scanner ãå¿ããªãã§ãã ãããäœãæçãªæ å ±ãèŠã€ãããããããŸãã:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin websites for Security issues. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal or (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
ãã®æç¹ã§ã¯ã©ã€ã¢ã³ãã䜿çšããŠããwebãµãŒããŒã«é¢ããæ å ±ïŒããããŒã¿ãäžããããŠããã°ïŒãããã¹ãäžã«èŠããŠããã¹ãããã€ãã®ããªãã¯ãæ¢ã«ããã¯ãã§ããéãè¯ããã°CMSãèŠã€ããŠã¹ãã£ããŒãå®è¡ããŠãããããããŸããã
Step-by-step Web Application Discovery
ããããã¯webã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ãéå§ããŸãã
Initial checks
Default pages with interesting info:
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- ã¡ã€ã³ããã³ã»ã«ã³ããªããŒãžã®ã³ã¡ã³ãã確èªããã
Forcing errors
Web serversã¯ãå¥åŠãªããŒã¿ãéããšäºæããªãæåãããããšããããããã«ããè匱æ§ãåºçŸããããæ©å¯æ å ±ãé²åºããããšãããã
- /whatever_fake.php (.aspx,.html,.etc) ã®ãããªfake pagesã«ã¢ã¯ã»ã¹ãã
- ãšã©ãŒãçºçãããããã«ãcookie values ãš parameter ã®å€ã« â[]â, â]]â, â[[â ã远å ãã
- å
¥åã
/~randomthing/%sãšã㊠URL ã® æ«å°Ÿ ã«äžããããšã§ãšã©ãŒãçºçããã - PATCH, DEBUG ã®ãã㪠different HTTP Verbs ã詊ããããã㯠FAKE ã®ãããªèª€ã£ããã®ã䜿ã£ãŠã¿ã
Check if you can upload files (PUT verb, WebDav)
ãã WebDav ã enabled ã§ã«ãŒããã©ã«ããžã® uploading files æš©éããªãå Žåã¯ã次ã詊ã:
- Brute Force credentials
- WebDavçµç±ã§ããŒãžå ã®çºèŠããä»ã®ãã©ã«ãïŒfound foldersïŒã« Upload files ãããå¥ãã©ã«ãã«ã¯ã¢ããããŒãæš©éãããå¯èœæ§ãããã
SSL/TLS è匱æ§
- ã¢ããªã±ãŒã·ã§ã³ãã©ã®éšåã§ã HTTPSã®äœ¿çšã匷å¶ããŠããªã å ŽåãMitMã«å¯ŸããŠè匱ã§ãã
- ã¢ããªã±ãŒã·ã§ã³ã HTTPã§æ©å¯ããŒã¿ïŒãã¹ã¯ãŒãïŒãéä¿¡ããŠãã å Žåãããã¯é倧ãªè匱æ§ã§ãã
è匱æ§ããã§ãã¯ããã«ã¯ testssl.sh ã䜿çšããïŒBug Bountyããã°ã©ã ã§ã¯ãã®çš®ã®è匱æ§ã¯åãå ¥ããããªãããšãå€ãïŒãããŠè匱æ§ã®å確èªã«ã¯ a2sv ã䜿ã:
./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>
SSL/TLS è匱æ§ã«é¢ããæ å ±:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Web å ã§äœããã® spider ãå®è¡ããŸããspider ã®ç®çã¯ããã¹ã察象ã¢ããªã±ãŒã·ã§ã³ããååŸã§ãããã¹ãã§ããã ãå€ãèŠã€ããããšã§ãããããã£ãŠãWeb ã¯ããŒãªã³ã°ãå€éšãœãŒã¹ã䜿ã£ãŠãå¯èœãªéãå€ãã®æå¹ãªãã¹ãæ¢ãã¹ãã§ãã
- gospider (go): HTML spiderãJS ãã¡ã€ã«å ã® LinkFinder ãšãArchive.orgãCommonCrawl.orgãVirusTotal.com ãšãã£ãå€éšãœãŒã¹ã䜿çšããŸãã
- hakrawler (go): HTML spiderãJS ãã¡ã€ã«çšã® LinkFinder ãš Archive.org ãå€éšãœãŒã¹ãšããŠå©çšããŸãã
- dirhunt (python): HTML spiderããããã âjuicy filesâ ã瀺ããŠãããããšããããŸãã
- evine (go): å¯Ÿè©±åŒ CLI ã® HTML spiderãArchive.org ã§ãæ€çŽ¢ããŸãã
- meg (go): ãã®ããŒã«ã¯ spider ã§ã¯ãããŸãããæçšã§ããhosts ãã¡ã€ã«ãš paths ãã¡ã€ã«ãæå®ãããšãmeg ã¯å host ã®å path ãååŸããŠã¬ã¹ãã³ã¹ãä¿åããŸãã
- urlgrab (go): JS ã¬ã³ããªã³ã°æ©èœãæã€ HTML spiderããã ãã¡ã³ããããŠããªãããã«èŠããäºåã³ã³ãã€ã«çã¯å€ããçŸè¡ã³ãŒãã¯ã³ã³ãã€ã«ã§ããŸããã
- gau (go): waybackãotxãcommoncrawl ãšãã£ãå€éšãããã€ãã䜿ã HTML spiderã
- ParamSpider: ãã©ã¡ãŒã¿ä»ãã® URL ãèŠã€ããŠäžèЧåããã¹ã¯ãªããã
- galer (go): JS ã¬ã³ããªã³ã°æ©èœãæã€ HTML spiderã
- LinkFinder (python): JS ã®æŽåœ¢æ©èœãåãã HTML spider ã§ãJS ãã¡ã€ã«å ã®æ°ãããã¹ãæ€çŽ¢ã§ããŸããLinkFinder ã®ã©ãããŒã§ãã JSScanner ã確èªãã䟡å€ããããŸãã
- goLinkFinder (go): HTML ãœãŒã¹ãšåã蟌㿠javascript ãã¡ã€ã«ã®äž¡æ¹ãããšã³ããã€ã³ããæœåºããŸããbug huntersãred teamersãinfosec ninjas ã«æçšã§ãã
- JSParser (python2.7): Tornado ãš JSBeautifier ã䜿ã£ãŠ JavaScript ãã¡ã€ã«ããçžå¯Ÿ URL ãè§£æãã python 2.7 ã¹ã¯ãªãããAJAX ãªã¯ãšã¹ãã®çºèŠã«äŸ¿å©ã§ããã¡ã³ããããŠããªãããã§ãã
- relative-url-extractor (ruby): äžãããã HTML ãã¡ã€ã«ããæ£èŠè¡šçŸã䜿ã£ãŠãããã¡ã€ããããã¡ã€ã«äžã®çžå¯Ÿ URL ãæœåºããŸãã
- JSFScan (bash, several tools): è€æ°ããŒã«ã䜿ã£ãŠ JS ãã¡ã€ã«ããè峿·±ãæ å ±ãåéããŸãã
- subjs (go): JS ãã¡ã€ã«ãçºèŠããŸãã
- page-fetch (go): ãããã¬ã¹ãã©ãŠã¶ã§ããŒãžãèªã¿èŸŒã¿ãããŒãžèªã¿èŸŒã¿æã«ããŒãããããã¹ãŠã® URL ãåºåããŸãã
- Feroxbuster (rust): å è¿°ã®ããã€ãã®ããŒã«ã®ãªãã·ã§ã³ãçµã¿åãããã³ã³ãã³ãçºèŠããŒã«ã
- Javascript Parsing: JS ãã¡ã€ã«å ã®ãã¹ããã©ã¡ãŒã¿ãèŠã€ãã Burp extensionã
- Sourcemapper: .js.map ã® URL ãåããã°æŽåœ¢ããã JS ã³ãŒããååŸããŠãããããŒã«ã
- xnLinkFinder: æå®ã¿ãŒã²ããã®ãšã³ããã€ã³ããçºèŠããããŒã«ã§ãã
- waymore: wayback machine ãããªã³ã¯ãçºèŠããŸãïŒwayback ã®ã¬ã¹ãã³ã¹ãããŠã³ããŒãããŠããã«ãªã³ã¯ãæ¢ãããšãããŸãïŒã
- HTTPLoot (go): ãã©ãŒã ã®èªåå ¥åãªã©ãè¡ããªããã¯ããŒãªã³ã°ããç¹å®ã®æ£èŠè¡šçŸã§æ©å¯æ å ±ãæ€åºããŸãã
- SpiderSuite: ãµã€ããŒã»ãã¥ãªãã£å°éå®¶åãã®å€æ©èœ GUI web ã»ãã¥ãªã㣠Crawler/Spiderã
- jsluice (go): JavaScript ãœãŒã¹ã³ãŒããã URLããã¹ãã·ãŒã¯ã¬ããããã®ä»è峿·±ãããŒã¿ãæœåºãã Go ããã±ãŒãžå Œã³ãã³ãã©ã€ã³ããŒã«ã§ãïŒcommand-line toolïŒã
- ParaForge: ãªã¯ãšã¹ããããã©ã¡ãŒã¿ãšãšã³ããã€ã³ããæœåºããfuzzing ã enumeration çšã®ã«ã¹ã¿ã wordlist ãäœæããããã®ç°¡å㪠Burp Suite extensionã
- katana (go): ãã®ç®çã«é©ããåªããããŒã«ã§ãã
- Crawley (go): èŠã€ãããããã¹ãŠã®ãªã³ã¯ãåºåããŸãã
Brute Force directories and files
ã«ãŒããã©ã«ããã brute-forcing ãéå§ãããã®æ¹æ³ã§èŠã€ãã£ããã¹ãŠã®ãã£ã¬ã¯ããªããã³Spidering ã«ãã£ãŠçºèŠããããã£ã¬ã¯ããªãå¿
ã brute-force ããŠãã ããïŒãã® brute-forcing ã recursive ã«å®è¡ããèŠã€ãã£ããã£ã¬ã¯ããªåã䜿çšãã wordlist ã®å
é ã«è¿œå ããããšããææ³ã䜿ããŸãïŒã
ããŒã«:
- Dirb / Dirbuster - Kali ã«å«ãŸããŠãããå€ãïŒã〠é ãïŒãæ©èœããããŒã«ãèªå·±çœ²åèšŒææžãèš±å¯ããrecursive æ€çŽ¢ããµããŒãããŸãããã®ä»ã®ãªãã·ã§ã³ãšæ¯ã¹ããšé ãã§ãã
- Dirsearch (python): èªå·±çœ²åèšŒææžã¯èš±å¯ããŸããããrecursive æ€çŽ¢ã¯å¯èœã§ãã
- Gobuster (go): èªå·±çœ²åèšŒææžãèš±å¯ããŸãããrecursive æ€çŽ¢ã¯æã£ãŠããŸããã
- Feroxbuster - é«éã§ãrecursive æ€çŽ¢ããµããŒãããŸãã
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ - ffuf - é«é:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ - uro (python): ã¹ãã€ããŒã§ã¯ãããŸããããçºèŠããã URL ã®ãªã¹ããããéè€ããã URL ãåé€ããŸãã
- Scavenger: Burp ã®å±¥æŽããè€æ°ããŒãžã®ãã£ã¬ã¯ããªäžèЧãäœæãã Burp Extensionã
- TrashCompactor: js ã€ã³ããŒãã«åºã¥ãæ©èœãéè€ãã URL ãé€å»ããŸãã
- Chamaleon: Wappalyzer ã䜿ã£ãŠäœ¿çšãããŠããæè¡ãæ€åºãã䜿çšãã wordlists ãéžæããŸãã
æšå¥šèŸæž:
- https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt
- Dirsearch included dictionary
- http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10
- Assetnote wordlists
- 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/google/fuzzing/tree/master/dictionaries
- https://github.com/six2dez/OneListForAll
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/ayoubfathi/leaky-paths
- /usr/share/wordlists/dirb/common.txt
- /usr/share/wordlists/dirb/big.txt
- /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
泚æ: æ°ãããã£ã¬ã¯ããªã brute-forcing ã spidering ã®éçšã§çºèŠãããå Žåã¯ãåžžã«ãã®ãã£ã¬ã¯ããªã Brute-Force ããå¿ èŠããããŸãã
What to check on each file found
- Broken link checker: HTML å ã®å£ãããªã³ã¯ãèŠã€ããïŒtakeovers ã®ãªã¹ã¯ããããã®ïŒã
- File Backups: ãã¹ãŠã®ãã¡ã€ã«ãçºèŠããããå®è¡ãã¡ã€ã«ã®ããã¯ã¢ããïŒâ.phpâ, â.aspxâ ãªã©ïŒãæ¢ããŸããããã¯ã¢ããã®äžè¬çãªåœåããªãšãŒã·ã§ã³ã«ã¯ file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp, file.old ãªã©ããããŸããããŒã« bfac ã backup-gen ã䜿ãããšãã§ããŸãã
- Discover new parameters: é ããã©ã¡ãŒã¿ãçºèŠããããã« Arjunãparamethãx8ãParam Miner ãªã©ã®ããŒã«ã䜿ããŸããå¯èœã§ããã°ãåå®è¡å¯èœãª web ãã¡ã€ã«ã§é ããã©ã¡ãŒã¿ãæ¢çŽ¢ããŠãã ããã
- Arjun all default wordlists: https://github.com/s0md3v/Arjun/tree/master/arjun/db
- Param-miner âparamsâ : https://github.com/PortSwigger/param-miner/blob/master/resources/params
- Assetnote âparameters_top_1mâ: https://wordlists.assetnote.io/
- nullenc0de âparams.txtâ: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
- Comments: ãã¹ãŠã®ãã¡ã€ã«ã®ã³ã¡ã³ãããã§ãã¯ããŠãã ãããcredentials ã hidden functionality ãèŠã€ããããšããããŸãã
- CTF ããã¬ã€ããŠããå Žåãããããããªãã¯ãšããŠããŒãžã®å³åŽã«å€§éã®ã¹ããŒã¹ãå ¥ããŠã³ã¡ã³ãå ã«æ å ±ãé ãæ¹æ³ããè€æ°ã®æ¹è¡ã䜿ã£ãŠããŒãžäžéšã®ã³ã¡ã³ãã«æ å ±ãé ãæ¹æ³ããããŸãã
- API keys: API ããŒãèŠã€ããå Žåãåãã©ãããã©ãŒã ã® API ããŒã®äœ¿ãæ¹ã調ã¹ãããã®ãããžã§ã¯ããããã€ããããŸã: keyhacksãzileãtruffleHogãSecretFinderãRegHexãDumpsterDiveãEarlyBird
- Google API keys: ããšãã° AIza ã§å§ãŸããã㪠API ããŒïŒäŸ: AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjikïŒãèŠã€ããå Žåãgmapapiscanner ã䜿ã£ãŠãã®ããŒãã©ã® API ã«ã¢ã¯ã»ã¹å¯èœãã確èªã§ããŸãã
- S3 Buckets: spidering äžã«ãµããã¡ã€ã³ããªã³ã¯ã S3 bucket ã«é¢é£ããŠãããã確èªããŠãã ããããã®å Žåã¯ããã±ããã®æš©éã ãã§ã㯠ããŸãã
Special findings
spidering ã brute-forcing ãè¡ãéçšã§ã泚æãã¹ã è峿·±ããã® ãèŠã€ããããšããããŸãã
Interesting files
- CSS ãã¡ã€ã«å ã«å¥ãã¡ã€ã«ãžã® links ãæ¢ããŠãã ããã
- If you find a .git file some information can be extracted
- .env ãèŠã€ããå Žåãapi keysãDB ãã¹ã¯ãŒããªã©ã®æ å ±ãåŸãããããšããããŸãã
- API endpoints ãèŠã€ãããããããã ãã¹ãããã¹ãã§ãããããã¯ãã¡ã€ã«ã§ã¯ãããŸãããããã¡ã€ã«ã®ããã«èŠããããšãå€ãã§ãã
- JS files: spidering ã»ã¯ã·ã§ã³ã§ã¯ JS ãã¡ã€ã«ãããã¹ãæœåºã§ããããŒã«ãããã€ãæããããŸããããŸããçºèŠãããå JS ãã¡ã€ã«ãç£èŠããããšãæçšã§ããå Žåã«ãã£ãŠã¯ã³ãŒãã®å€æŽãæœåšçãªè匱æ§å°å ¥ã®å åãšãªããŸããããšãã° JSMon ã䜿ãããšãã§ããŸãã
- çºèŠãã JS ãã¡ã€ã«ã¯ RetireJS ã JSHole ã§è匱æ§ããªãã確èªããŠãã ããã
- Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
- Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
- JsFuck deobfuscation (javascript with chars:â[]!+â https://enkhee-osiris.github.io/Decoder-JSFuck/)
- TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23. - æ£èŠè¡šçŸãçè§£ããå¿ èŠãåºãŠããããšããããããŸããããã«ã¯æ¬¡ã圹ç«ã¡ãŸã: https://regex101.com/ ã https://pythonium.net/regex
- ãã©ãŒã ãæ€åºããããã¡ã€ã«ã¯ç£èŠãã䟡å€ããããŸãããã©ã¡ãŒã¿ã®å€æŽãæ°ãããã©ãŒã ã®åºçŸã¯ãæ°ããªè匱æ§ã®å åãšãªãåŸãŸãã
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
502 Proxy Error
ããä»»æã®ããŒãžããã®ã³ãŒãã§ å¿ç ãããªããèšå®ã®æªã proxy ã§ããå¯èœæ§ãé«ãã§ããããæ¬¡ã®ãã㪠HTTP ãªã¯ãšã¹ããéããš: GET https://google.com HTTP/1.1ïŒHost ãããããã®ä»äžè¬çãªããããä»ããŠïŒãproxy 㯠google.com ã«ã¢ã¯ã»ã¹ã詊ã¿ãããªã㯠SSRF ãèŠã€ããããšã«ãªããŸãã
NTLM Authentication - Info disclosure
å®è¡äžã®ãµãŒããèªèšŒãèŠæ±ããŠããŠããã Windows ã§ãã£ããããã°ã€ã³ã§ domain name ãå°ããããå Žåãæ
å ±æŒæŽ©ãåŒãèµ·ããããšãã§ããŸãã
次ã®ããããéä¿¡ããŠãã ãã: âAuthorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=âãNTLM èªèšŒã®ä»çµã¿ã«ããããµãŒãã¯ããã âWWW-Authenticateâ å
ã«å
éšæ
å ±ïŒIIS ããŒãžã§ã³ãWindows ããŒãžã§ã³ãªã©ïŒãè¿ããŸãã
ãããèªååããã«ã¯ nmap ã®ãã©ã°ã€ã³ âhttp-ntlm-info.nseâ ã䜿ããŸãã
HTTP Redirect (CTF)
ãªãã€ã¬ã¯ãå éšã«ã³ã³ãã³ããåã蟌ãããšãå¯èœã§ãããã®ã³ã³ãã³ãã¯ïŒãã©ãŠã¶ããªãã€ã¬ã¯ããå®è¡ããããïŒãŠãŒã¶ã«ã¯è¡šç€ºãããŸããããäœããããã«é ãããŠããå¯èœæ§ããããŸãã
Web Vulnerabilities Checking
Web ã¢ããªã±ãŒã·ã§ã³ã®å æ¬çãªåæãå®äºããããå€ãã®å¯èœæ§ã®ããè匱æ§ããã§ãã¯ããæã§ãããã§ãã¯ãªã¹ãã¯æ¬¡ã«ãããŸã:
Web Vulnerabilities Methodology
Web è匱æ§ã«é¢ãã詳现:
- 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://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection
Monitor Pages for changes
ããŒãžã®æ¹å€ïŒè匱æ§ã®å°å ¥ã«ã€ãªããå¯èœæ§ã®ãã倿ŽïŒãç£èŠããããã«ãhttps://github.com/dgtlmoon/changedetection.io ã®ãããªããŒã«ã䜿çšã§ããŸãã
HackTricks Automatic Commands
HackTricks èªåã³ãã³ã
```yaml 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 outEntry_1: Name: Notes Description: Notes for Web Note: | https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
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>
> [!TIP]
> AWSãããã³ã°ãåŠã³ãå®è·µããïŒ<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> GCPãããã³ã°ãåŠã³ãå®è·µããïŒ<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Azureãããã³ã°ãåŠã³ãå®è·µããïŒ<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>HackTricksããµããŒããã</summary>
>
> - [**ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³**](https://github.com/sponsors/carlospolop)ã確èªããŠãã ããïŒ
> - **ð¬ [**Discordã°ã«ãŒã**](https://discord.gg/hRep4RUj7f)ãŸãã¯[**ãã¬ã°ã©ã ã°ã«ãŒã**](https://t.me/peass)ã«åå ãããã**Twitter** ðŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**ããã©ããŒããŠãã ããã**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks)ããã³[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)ã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå
±æããŠãã ããã**
>
> </details>


