80,443 - Pentesting ์›น ๋ฐฉ๋ฒ•๋ก 

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 ์ง€์›ํ•˜๊ธฐ

๊ธฐ๋ณธ ์ •๋ณด

์›น ์„œ๋น„์Šค๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ๊ด‘๋ฒ”์œ„ํ•œ ์„œ๋น„์Šค์ด๋ฉฐ, ๋งŽ์€ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํฌํŠธ: 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 ์•ˆ๋‚ด

Web API Pentesting

๋ฐฉ๋ฒ•๋ก  ์š”์•ฝ

์ด ๋ฐฉ๋ฒ•๋ก ์—์„œ๋Š” ํ•˜๋‚˜์˜ domain (๋˜๋Š” subdomain)๋งŒ ๊ณต๊ฒฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฐฉ๋ฒ•๋ก ์€ scope ๋‚ด์—์„œ ๋ฏธํ™•์ธ web server๊ฐ€ ์žˆ๋Š” ๊ฐ ๋ฐœ๊ฒฌ๋œ domain, subdomain ๋˜๋Š” IP์— ๋Œ€ํ•ด ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋จผ์ € ์›น ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์„ ์‹๋ณ„ํ•˜์„ธ์š”. ๊ธฐ์ˆ ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ํ…Œ์ŠคํŠธ ๋™์•ˆ ์—ผ๋‘์— ๋‘˜ tricks๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.
  • ํ•ด๋‹น ๊ธฐ์ˆ  ๋ฒ„์ „์˜ known vulnerability๊ฐ€ ์žˆ๋‚˜์š”?
  • ์ž˜ ์•Œ๋ ค์ง„ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”? ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” useful trick์ด ์žˆ๋‚˜์š”?
  • ์‹คํ–‰ํ•  specialised scanner๊ฐ€ ์žˆ๋‚˜์š” (์˜ˆ: wpscan)?
  • general purposes scanners๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. ๋ญ”๊ฐ€๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฑฐ๋‚˜ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • initial checks๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”: robots, sitemap, 404 error ๋ฐ SSL/TLS scan (HTTPS์ธ ๊ฒฝ์šฐ).
  • ์›น ํŽ˜์ด์ง€๋ฅผ spideringํ•˜์„ธ์š”: ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  files, folders ๋ฐ parameters being used๋ฅผ findํ•  ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ special findings๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • brute-forcing ๋˜๋Š” spidering ์ค‘์— ์ƒˆ๋กœ์šด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ˜๋“œ์‹œ spidering ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Directory Brute-Forcing: ๋ฐœ๊ฒฌ๋œ ๋ชจ๋“  ํด๋”์— ๋Œ€ํ•ด brute force๋ฅผ ์‹œ๋„ํ•˜์—ฌ ์ƒˆ๋กœ์šด files ๋ฐ directories๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.
  • brute-forcing ๋˜๋Š” spidering ์ค‘์— ์ƒˆ๋กœ์šด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ˜๋“œ์‹œ Brute-Forced ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Backups checking: ์ผ๋ฐ˜์ ์ธ ๋ฐฑ์—… ํ™•์žฅ์ž๋ฅผ ๋ง๋ถ™์—ฌ discovered files์˜ backups๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜์„ธ์š”.
  • Brute-Force parameters: ์ˆจ๊ฒจ์ง„ parameters๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.
  • ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ endpoints ์ค‘ user input์„ ๋ฐ›๋Š” ๊ฒƒ์„ identifiedํ–ˆ๋‹ค๋ฉด, ํ•ด๋‹น ์ž…๋ ฅ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ vulnerabilities๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • ์ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”

Server Version (Vulnerable?)

Identify

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์„œ๋ฒ„ version์— ๋Œ€ํ•ด known vulnerabilities๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
์‘๋‹ต์˜ HTTP headers and cookies๋Š” ์‚ฌ์šฉ ์ค‘์ธ technologies ๋ฐ/๋˜๋Š” version์„ identifyํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Nmap scan์€ ์„œ๋ฒ„ ๋ฒ„์ „์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, whatweb, webtech ๋˜๋Š” https://builtwith.com/** ๊ฐ™์€ ๋„๊ตฌ๋“ค๋„ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:**

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

Search for vulnerabilities of the web application version

Check if any WAF

Web tech tricks

์‚ฌ์šฉ ์ค‘์ธ ๋‹ค์–‘ํ•œ ์ž˜ ์•Œ๋ ค์ง„ technologies์—์„œ vulnerabilities๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ tricks:

๊ฐ™์€ domain์ด ์„œ๋กœ ๋‹ค๋ฅธ ports, folders, subdomains์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ technologies๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์„ธ์š”.
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์œ„์— ๋‚˜์—ด๋œ ์ž˜ ์•Œ๋ ค์ง„ tech/platform์ด๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ธํ„ฐ๋„ท์—์„œ ์ƒˆ๋กœ์šด tricks๋ฅผ ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š” (๊ทธ๋ฆฌ๊ณ  ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ์„ธ์š”!).

Source Code Review

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ source code๊ฐ€ github์— ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ž์ฒด์ ์œผ๋กœ White box test๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ํ˜„์žฌ์˜ Black-Box testing์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์›น์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ Change-log, Readme ๋˜๋Š” Version ํŒŒ์ผ์ด๋‚˜ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ์žˆ๋Š”๊ฐ€?
  • credentials๋Š” ์–ด๋–ป๊ฒŒ ์–ด๋””์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”๊ฐ€? ์‚ฌ์šฉ์ž๋ช…์ด๋‚˜ passwords์™€ ๊ฐ™์€ file์ด (์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ) ์žˆ๋Š”๊ฐ€?
  • passwords๊ฐ€ plain text์ธ๊ฐ€, encrypted๋˜์–ด ์žˆ๋Š”๊ฐ€, ์•„๋‹ˆ๋ฉด ์–ด๋–ค hashing algorithm์ด ์‚ฌ์šฉ๋˜๋Š”๊ฐ€?
  • ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” master key๊ฐ€ ์žˆ๋Š”๊ฐ€? ์–ด๋–ค algorithm์ด ์‚ฌ์šฉ๋˜๋Š”๊ฐ€?
  • ์–ด๋–ค ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ์ด ํŒŒ์ผ๋“ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • github์˜ ์ด์Šˆ(ํ•ด๊ฒฐ๋œ ๊ฒƒ๊ณผ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ)๋‚˜ commit history์— ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๊ฐ€ ์žˆ๋Š”๊ฐ€? (์˜ˆ: ์˜ค๋ž˜๋œ ์ปค๋ฐ‹์— ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ)

Source code Review / SAST Tools

Automatic scanners

General purpose automatic scanners

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 ์Šค์บ๋„ˆ

CMS๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ์žŠ์ง€ ๋ง๊ณ  ์Šค์บ๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”, ์˜์™ธ๋กœ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin ์›น์‚ฌ์ดํŠธ์˜ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal ๋˜๋Š” (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

์ด ์‹œ์ ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ธ ์›น ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ •๋ณด(์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด)์™€ ํ…Œ์ŠคํŠธ ์ค‘์— ๊ธฐ์–ตํ•ด๋‘˜ ๋ช‡ ๊ฐ€์ง€ ์š”๋ น์„ ์ด๋ฏธ ํ™•๋ณดํ–ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šด์ด ์ข‹๋‹ค๋ฉด CMS๋ฅผ ๋ฐœ๊ฒฌํ•ด scanner๋ฅผ ์‹คํ–‰ํ–ˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํƒ์ƒ‰

์ด ์‹œ์ ๋ถ€ํ„ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ํ™•์ธ

๊ธฐ๋ณธ ํŽ˜์ด์ง€(์œ ์šฉํ•œ ์ •๋ณด):

  • /robots.txt
  • /sitemap.xml
  • /crossdomain.xml
  • /clientaccesspolicy.xml
  • /.well-known/
  • ๋ฉ”์ธ ๋ฐ ๋ณด์กฐ ํŽ˜์ด์ง€์˜ ์ฃผ์„๋„ ํ™•์ธํ•˜์„ธ์š”.

์˜ค๋ฅ˜ ์œ ๋„

์›น ์„œ๋ฒ„๋Š” ์ด์ƒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ทจ์•ฝ์ ์ด๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด ๋…ธ์ถœ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • /whatever_fake.php (.aspx,.html,.etc) ๊ฐ™์€ fake pages์— ์ ‘๊ทผํ•˜์„ธ์š”
  • ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค ๊ฐ’(cookie values) ๋ฐ **ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’(parameter values)**์— **โ€œ[]โ€, โ€œ]]โ€, โ€œ[[โ€**๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”
  • URL์˜ ๋์— **/~randomthing/%s**๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋ณด์„ธ์š”
  • PATCH, DEBUG ๊ฐ™์€ ๋‹ค๋ฅธ HTTP Verbs๋ฅผ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ FAKE์ฒ˜๋Ÿผ ์ž˜๋ชป๋œ ๊ฒƒ๋„ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”

Check if you can upload files (PUT verb, WebDav)

WebDav๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ ๋ฃจํŠธ ํด๋”์— ํŒŒ์ผ ์—…๋กœ๋“œ ๊ถŒํ•œ์ด ์ถฉ๋ถ„์น˜ ์•Š๋‹ค๋ฉด ๋‹ค์Œ์„ ์‹œ๋„ํ•˜์„ธ์š”:

  • ์ž๊ฒฉ์ฆ๋ช…์— ๋Œ€ํ•ด Brute Force ์‹œ๋„
  • Web ํŽ˜์ด์ง€ ๋‚ด ๋‹ค๋ฅธ ๋ฐœ๊ฒฌ๋œ ํด๋”๋“ค์— WebDav๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์‹œ๋„ํ•˜์„ธ์š”. ๋‹ค๋ฅธ ํด๋”์—๋Š” ์—…๋กœ๋“œ ๊ถŒํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SSL/TLS ์ทจ์•ฝ์ 

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋А ๋ถ€๋ถ„์—์„œ๋„ HTTPS ์‚ฌ์šฉ์„ ๊ฐ•์ œํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, MitM์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ(๋น„๋ฐ€๋ฒˆํ˜ธ)๋ฅผ HTTP๋กœ ์ „์†กํ•œ๋‹ค๋ฉด, ์ด๋Š” ๋†’์€ ์‹ฌ๊ฐ๋„์˜ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค

Use 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>

Information about SSL/TLS vulnerabilities:

Spidering

์›น ๋‚ด๋ถ€์— ์–ด๋–ค ์‹์œผ๋กœ๋“  spider๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. spider์˜ ๋ชฉํ‘œ๋Š” ํ…Œ์ŠคํŠธ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์›น ํฌ๋กค๋ง๊ณผ ์™ธ๋ถ€ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•ด ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • gospider (go): HTML spider, JS files์—์„œ LinkFinder ์‚ฌ์šฉ ๋ฐ ์™ธ๋ถ€ ์†Œ์Šค(Archive.org, CommonCrawl.org, VirusTotal.com).
  • hakrawler (go): HML spider, JS ํŒŒ์ผ์— ๋Œ€ํ•œ LinkFider ๋ฐ 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): HTML spider, JS beautify ๊ธฐ๋Šฅ์„ ํ†ตํ•ด 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)์„ ์ฃผ๋ฉด ์ •๊ทœ์‹์„ ์ด์šฉํ•ด ugly(minify) ํŒŒ์ผ์—์„œ ์ƒ๋Œ€ URL์„ ์ฐพ์•„ ์ถ”์ถœํ•จ.
  • JSFScan (bash, ์—ฌ๋Ÿฌ ๋„๊ตฌ): ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด JS ํŒŒ์ผ์—์„œ ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ˆ˜์ง‘.
  • subjs (go): JS ํŒŒ์ผ ์ฐพ๊ธฐ.
  • page-fetch (go): headless browser๋กœ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๊ณ  ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋ถˆ๋Ÿฌ์˜จ ๋ชจ๋“  urls๋ฅผ ์ถœ๋ ฅ.
  • Feroxbuster (rust): ์ด์ „ ๋„๊ตฌ๋“ค์˜ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ํ˜ผํ•ฉํ•œ content discovery ๋„๊ตฌ.
  • Javascript Parsing: JS ํŒŒ์ผ์—์„œ ๊ฒฝ๋กœ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๋Š” Burp extension.
  • Sourcemapper: .js.map URL์„ ์ฃผ๋ฉด beautified JS ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋„๊ตฌ.
  • xnLinkFinder: ์ฃผ์–ด์ง„ ํƒ€๊นƒ์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๋„๊ตฌ.
  • waymore: wayback machine์—์„œ ๋งํฌ๋ฅผ ๋ฐœ๊ฒฌ(wayback์˜ ์‘๋‹ต๋„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋” ๋งŽ์€ ๋งํฌ๋ฅผ ์ฐพ์Œ).
  • HTTPLoot (go): ํผ ์ฑ„์šฐ๊ธฐ๊นŒ์ง€ ํฌํ•จํ•ด ํฌ๋กค๋งํ•˜๊ณ  ํŠน์ • regex๋กœ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ฐพ์Œ.
  • SpiderSuite: Spider Suite๋Š” ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋ฅผ ์œ„ํ•œ ๊ณ ๊ธ‰ ๋‹ค๊ธฐ๋Šฅ GUI ์›น ๋ณด์•ˆ Crawler/Spider.
  • jsluice (go): JavaScript ์†Œ์Šค ์ฝ”๋“œ์—์„œ URLs, paths, secrets ๋ฐ ๊ธฐํƒ€ ํฅ๋ฏธ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” Go ํŒจํ‚ค์ง€ ๋ฐ command-line tool.
  • ParaForge: ์š”์ฒญ์—์„œ parameters์™€ endpoints๋ฅผ ์ถ”์ถœํ•˜์—ฌ fuzzing ๋ฐ ์—ด๊ฑฐ์šฉ ์ปค์Šคํ…€ ์›Œ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ Burp Suite extension.
  • katana (go): ์ด ์šฉ๋„์— ์•„์ฃผ ์ข‹์€ ๋„๊ตฌ.
  • Crawley (go): ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋งํฌ๋ฅผ ์ถœ๋ ฅ.

Brute Force directories and files

๋ฃจํŠธ ํด๋”์—์„œ brute-forcing์„ ์‹œ์ž‘ํ•˜๊ณ , ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ฐพ์€ ๋ชจ๋“  ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ Spidering์œผ๋กœ ๋ฐœ๊ฒฌ๋œ ๋ชจ๋“  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ˜๋“œ์‹œ brute-force ํ•˜์„ธ์š”(๋ฐœ๊ฒฌ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ ์›Œ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ์•ž์— ๋ถ™์—ฌ ์žฌ๊ท€์ ์œผ๋กœ brute-forcing ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
๋„๊ตฌ:

  • Dirb / Dirbuster - Kali์— ํฌํ•จ, ์˜ค๋ž˜๋œ(๊ทธ๋ฆฌ๊ณ  ๋А๋ฆฐ) ๋„๊ตฌ์ง€๋งŒ ์ž‘๋™ํ•จ. auto-signed certificates์™€ recursive search ์ง€์›. ๋‹ค๋ฅธ ์˜ต์…˜๋“ค์— ๋น„ํ•ด ๋„ˆ๋ฌด ๋А๋ฆผ.
  • Dirsearch (python): auto-signed certificates๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ recursive search๋ฅผ ํ—ˆ์šฉ.
  • Gobuster (go): auto-signed certificates ํ—ˆ์šฉ, ๊ทธ๋Ÿฌ๋‚˜ recursive search๋Š” ์—†์Œ.
  • Feroxbuster - ๋น ๋ฅด๋ฉฐ recursive search ์ง€์›.
  • 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): spider๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋ฐœ๊ฒฌ๋œ URL ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›์•„ โ€œ์ค‘๋ณตโ€ URL์„ ์ œ๊ฑฐํ•˜๋Š” ๋„๊ตฌ.
  • Scavenger: Burp history์—์„œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๋Š” Burp Extension.
  • TrashCompactor: js imports ๊ธฐ๋ฐ˜์œผ๋กœ ์ค‘๋ณต ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ URL ์ œ๊ฑฐ.
  • Chamaleon: wapalyzer๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ ์ค‘์ธ ๊ธฐ์ˆ ์„ ๊ฐ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์›Œ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ํƒ.

๊ถŒ์žฅ ์›Œ๋“œ๋ฆฌ์ŠคํŠธ:

์ฐธ๊ณ : brute-forcing ๋˜๋Š” spidering ์ค‘ ์ƒˆ๋กœ์šด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•ญ์ƒ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ Brute-Force ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

What to check on each file found

  • Broken link checker: HTML ๋‚ด๋ถ€์˜ broken links๋ฅผ ์ฐพ์•„ takeover์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ.
  • File Backups: ๋ชจ๋“  ํŒŒ์ผ์„ ์ฐพ์€ ํ›„ ์‹คํ–‰ ํŒŒ์ผ์˜ ๋ฐฑ์—…์„ ์ฐพ์•„๋ณด์„ธ์š”(โ€œ.phpโ€, โ€œ.aspxโ€โ€ฆ). ๋ฐฑ์—… ํŒŒ์ผ ์ด๋ฆ„์˜ ์ผ๋ฐ˜์ ์ธ ๋ณ€ํ˜•์€: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp and file.old. ๋„๊ตฌ bfac ๋˜๋Š” backup-gen๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  • Discover new parameters: ์ˆจ๊ฒจ์ง„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด Arjun, parameth, x8 ๋ฐ Param Miner๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ๊ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์›น ํŒŒ์ผ์—์„œ ์ˆจ๊ฒจ์ง„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.
  • 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๋ฅผ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๊ฒฝ์šฐ, ํ”ํ•œ ํŠธ๋ฆญ์œผ๋กœ ํŽ˜์ด์ง€์˜ ์†Œ์Šค ์šฐ์ธก์— ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๊ณต๋ฐฑ์„ ๋„ฃ์–ด ๋ธŒ๋ผ์šฐ์ €๋กœ๋Š” ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ฃผ์„์— ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด ์žˆ์Œ. ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ newline์„ ์‚ฌ์šฉํ•ด ์›นํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ์ฃผ์„์— ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ.
  • API keys: API key๋ฅผ ์ฐพ์œผ๋ฉด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์˜ API ํ‚ค ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค์„ ์ฐธ๊ณ ํ•˜์„ธ์š”: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
  • Google API keys: AIza๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ˜•ํƒœ์˜ API key(์˜ˆ: AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik)๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด gmapapiscanner ํ”„๋กœ์ ํŠธ๋กœ ํ•ด๋‹น ํ‚ค๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.
  • S3 Buckets: spidering ์ค‘์— ์–ด๋–ค subdomain์ด๋‚˜ link๊ฐ€ 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 ํŒŒ์ผ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ฒฝ์šฐ 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)

403 & 401 Bypasses

502 Proxy Error

์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ๋กœ ์‘๋‹ตํ•˜๋ฉด, ๋ณดํ†ต ์ž˜๋ชป ๊ตฌ์„ฑ๋œ proxy์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ GET https://google.com HTTP/1.1์™€ ๊ฐ™์€ HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๋ฉด(Host ํ—ค๋” ๋ฐ ๋‹ค๋ฅธ ์ผ๋ฐ˜ ํ—ค๋” ํฌํ•จ), proxy๋Š” _google.com_์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๊ฒƒ์ด๊ณ  ๊ทธ๋•Œ SSRF๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NTLM Authentication - Info disclosure

์„œ๋ฒ„๊ฐ€ ์ธ์ฆ์„ ์š”๊ตฌํ•˜๋Š”๋ฐ ํ•ด๋‹น ์„œ๋ฒ„๊ฐ€ Windows์ด๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธ์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ ์ •๋ณด ๋ˆ„์ถœ์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ํ—ค๋”๋ฅผ ์ „์†กํ•˜์„ธ์š”: โ€œAuthorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=โ€ ๊ทธ๋Ÿฌ๋ฉด NTLM ์ธ์ฆ ๋™์ž‘ ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋Š” โ€œWWW-Authenticateโ€ ํ—ค๋” ๋‚ด๋ถ€์— ๋‚ด๋ถ€ ์ •๋ณด(IIS ๋ฒ„์ „, Windows ๋ฒ„์ „ ๋“ฑ)๋ฅผ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ์ž๋™ํ™”ํ•˜๋ ค๋ฉด nmap ํ”Œ๋Ÿฌ๊ทธ์ธ โ€œhttp-ntlm-info.nseโ€œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

HTTP Redirect (CTF)

๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋‚ด๋ถ€์— ์ฝ˜ํ…์ธ ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ˜ํ…์ธ ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ณด์—ฌ์ง€์ง€ ์•Š์ง€๋งŒ, ๊ทธ ๋‚ด๋ถ€์— ๋ฌด์–ธ๊ฐ€ ์ˆจ๊ฒจ์ ธ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Web Vulnerabilities Checking

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ํฌ๊ด„์  ์—ด๊ฑฐ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด ์ด์ œ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์ทจ์•ฝ์ ์„ ํ™•์ธํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋Š” ๋‹ค์Œ์—์„œ ํ™•์ธํ•˜์„ธ์š”:

Web Vulnerabilities Methodology

์›น ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด:

Monitor Pages for changes

ํŽ˜์ด์ง€ ๋ณ€ํ™”๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์ž ์žฌ์  ์ทจ์•ฝ์ ์ด ์‚ฝ์ž…๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด https://github.com/dgtlmoon/changedetection.io์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HackTricks Automatic Commands

HackTricks Automatic Commands ```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 out

Entry_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) ํ™•์ธํ•˜๊ธฐ!
> - **๐Ÿ’ฌ [**๋””์Šค์ฝ”๋“œ ๊ทธ๋ฃน**](https://discord.gg/hRep4RUj7f) ๋˜๋Š” [**ํ…”๋ ˆ๊ทธ๋žจ ๊ทธ๋ฃน**](https://t.me/peass)์— ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜ **ํŠธ์œ„ํ„ฐ** ๐Ÿฆ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**๋ฅผ ํŒ”๋กœ์šฐํ•˜์„ธ์š”.**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks) ๋ฐ [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— PR์„ ์ œ์ถœํ•˜์—ฌ ํ•ดํ‚น ํŠธ๋ฆญ์„ ๊ณต์œ ํ•˜์„ธ์š”.**
>
> </details>