Drupal

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

Discovery

  • Check meta
curl https://www.drupal.org/ | grep 'content="Drupal'
  • ๋…ธ๋“œ: Drupal ์€ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ์ธ๋ฑ์‹ฑํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, ์„ค๋ฌธ ์กฐ์‚ฌ, ๊ธฐ์‚ฌ ๋“ฑ ์–ด๋–ค ๊ฒƒ์ด๋“  ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ URI๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ /node/<nodeid> ํ˜•์‹์ž…๋‹ˆ๋‹ค.
curl drupal-site.com/node/1

์—ด๊ฑฐ

๋ฒ„์ „

  • /CHANGELOG.txt ํ™•์ธ
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""

Drupal 7.57, 2018-02-21

Tip

์ตœ์‹  Drupal ์„ค์น˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ CHANGELOG.txt ๋ฐ README.txt ํŒŒ์ผ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์—ด๊ฑฐ

Drupal์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์‚ฌ์šฉ์ž๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

  1. Administrator: ์ด ์‚ฌ์šฉ์ž๋Š” Drupal ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  2. Authenticated User: ์ด ์‚ฌ์šฉ์ž๋“ค์€ ์›น์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธํ•˜์—ฌ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๊ธฐ์‚ฌ ์ถ”๊ฐ€ ๋ฐ ํŽธ์ง‘๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Anonymous: ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ์ž๋Š” ์ต๋ช…์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์‚ฌ์šฉ์ž๋“ค์€ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ๋Š” ๊ฒƒ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋ฅผ ์—ด๊ฑฐํ•˜๋ ค๋ฉด:

  • ์‚ฌ์šฉ์ž ์ˆ˜ ์–ป๊ธฐ: /user/1, /user/2, /user/3โ€ฆ์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • ๋“ฑ๋ก: /user/register์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ƒ์„ฑํ•ด ๋ณด์„ธ์š”. ์ด๋ฆ„์ด ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ด๋ฉด ์„œ๋ฒ„์˜ ์˜ค๋ฅ˜๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •: ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žฌ์„ค์ •ํ•ด ๋ณด์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ˆจ๊ฒจ์ง„ ํŽ˜์ด์ง€

**/node/FUZZ**๋ฅผ ์‚ดํŽด๋ณด์•„ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์ฐพ์œผ์„ธ์š”. ์—ฌ๊ธฐ์„œ **FUZZ**๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค (์˜ˆ: 1์—์„œ 1000๊นŒ์ง€).

์„ค์น˜๋œ ๋ชจ๋“ˆ ์ •๋ณด

#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml

# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml

์ž๋™ ๋„๊ตฌ

droopescan scan drupal -u http://drupal-site.local

RCE

Drupal ์›น ์ฝ˜์†”์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ RCE๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์˜ต์…˜์„ ํ™•์ธํ•˜์„ธ์š”:

Drupal RCE

From XSS to RCE

  • Drupalwned: XSS๋ฅผ RCE ๋˜๋Š” ๊ธฐํƒ€ ์ค‘์š”ํ•œ ์ทจ์•ฝ์ ์œผ๋กœ ์Šน๊ฒฉ์‹œํ‚ค๋Š” Drupal Exploitation Script. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๊ฒŒ์‹œ๋ฌผ์„ ํ™•์ธํ•˜์„ธ์š”. Drupal ๋ฒ„์ „ 7.X.X, 8.X.X, 9.X.X ๋ฐ 10.X.X๋ฅผ ์ง€์›ํ•˜๋ฉฐ ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:
  • Privilege Escalation: Drupal์—์„œ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • (RCE) Upload Template: Drupal์— ๋ฐฑ๋„์–ด๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ…œํ”Œ๋ฆฟ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

Post Exploitation

Read settings.php

find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null

DB์—์„œ ์‚ฌ์šฉ์ž ๋คํ”„ํ•˜๊ธฐ

mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'

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