Docker μ†ŒμΌ“μ„ μ΄μš©ν•œ κΆŒν•œ μƒμŠΉ

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

λ•Œλ•Œλ‘œ docker μ†ŒμΌ“μ— μ ‘κ·Όν•  수 있으며 이λ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μƒμŠΉμ‹œν‚€κ³  싢을 수 μžˆμŠ΅λ‹ˆλ‹€. 일뢀 μž‘μ—…μ€ 맀우 μ˜μ‹¬μŠ€λŸ¬μšΈ 수 μžˆμœΌλ―€λ‘œ ν”Όν•˜κ³  싢을 수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ κΆŒν•œ μƒμŠΉμ— μœ μš©ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ ν”Œλž˜κ·Έλ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€:

마운트λ₯Ό ν†΅ν•œ 방법

루트둜 μ‹€ν–‰ 쀑인 μ»¨ν…Œμ΄λ„ˆμ—μ„œ 파일 μ‹œμŠ€ν…œμ˜ λ‹€μ–‘ν•œ 뢀뢄을 λ§ˆμš΄νŠΈν•˜κ³  μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ—μ„œ κΆŒν•œμ„ μƒμŠΉμ‹œν‚€κΈ° μœ„ν•΄ 마운트λ₯Ό μ•…μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  • -v /:/host -> 호슀트 파일 μ‹œμŠ€ν…œμ„ μ»¨ν…Œμ΄λ„ˆμ— λ§ˆμš΄νŠΈν•˜μ—¬ 호슀트 파일 μ‹œμŠ€ν…œμ„ 읽을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν˜ΈμŠ€νŠΈμ— μžˆλŠ” κ²ƒμ²˜λŸΌ 느끼고 μ‹Άμ§€λ§Œ μ»¨ν…Œμ΄λ„ˆμ— μžˆλŠ” 경우 λ‹€μŒκ³Ό 같은 ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ λ°©μ–΄ λ©”μ»€λ‹ˆμ¦˜μ„ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€:
  • --privileged
  • --cap-add=ALL
  • --security-opt apparmor=unconfined
  • --security-opt seccomp=unconfined
  • -security-opt label:disable
  • --pid=host
  • --userns=host
  • --uts=host
  • --cgroupns=host
  • --device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined -> 이전 방법과 μœ μ‚¬ν•˜μ§€λ§Œ μ—¬κΈ°μ„œλŠ” λ””λ°”μ΄μŠ€ λ””μŠ€ν¬λ₯Ό λ§ˆμš΄νŠΈν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ—μ„œ mount /dev/sda1 /mntλ₯Ό μ‹€ν–‰ν•˜λ©΄ /mntμ—μ„œ 호슀트 파일 μ‹œμŠ€ν…œμ— μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν˜ΈμŠ€νŠΈμ—μ„œ fdisk -l을 μ‹€ν–‰ν•˜μ—¬ λ§ˆμš΄νŠΈν•  </dev/sda1> λ””λ°”μ΄μŠ€λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
  • -v /tmp:/host -> μ–΄λ–€ 이유둜 ν˜ΈμŠ€νŠΈμ—μ„œ νŠΉμ • λ””λ ‰ν† λ¦¬λ§Œ λ§ˆμš΄νŠΈν•  수 있고 호슀트 내뢀에 μ ‘κ·Όν•  수 μžˆλŠ” 경우, 이λ₯Ό λ§ˆμš΄νŠΈν•˜κ³  마운트된 디렉토리에 suidκ°€ μžˆλŠ” **/bin/bash**λ₯Ό μƒμ„±ν•˜μ—¬ ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰ν•˜κ³  루트둜 μƒμŠΉν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Note

/tmp 폴더λ₯Ό λ§ˆμš΄νŠΈν•  수 μ—†μ§€λ§Œ λ‹€λ₯Έ μ“°κΈ° κ°€λŠ₯ν•œ 폴더λ₯Ό λ§ˆμš΄νŠΈν•  수 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ“°κΈ° κ°€λŠ₯ν•œ 디렉토리λ₯Ό 찾으렀면: find / -writable -type d 2>/dev/null을 μ‚¬μš©ν•˜μ„Έμš”.

λ¦¬λˆ…μŠ€ λ¨Έμ‹ μ˜ λͺ¨λ“  디렉토리가 suid λΉ„νŠΈλ₯Ό μ§€μ›ν•˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€! suid λΉ„νŠΈλ₯Ό μ§€μ›ν•˜λŠ” 디렉토리λ₯Ό ν™•μΈν•˜λ €λ©΄ mount | grep -v "nosuid"λ₯Ό μ‹€ν–‰ν•˜μ„Έμš”. 예λ₯Ό λ“€μ–΄ 일반적으둜 /dev/shm, /run, /proc, /sys/fs/cgroup, /var/lib/lxcfsλŠ” suid λΉ„νŠΈλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ˜ν•œ /etc λ˜λŠ” ꡬ성 파일이 ν¬ν•¨λœ λ‹€λ₯Έ 폴더λ₯Ό λ§ˆμš΄νŠΈν•  수 μžˆλŠ” 경우, μ»¨ν…Œμ΄λ„ˆμ—μ„œ 루트둜 이λ₯Ό λ³€κ²½ν•˜μ—¬ ν˜ΈμŠ€νŠΈμ—μ„œ μ•…μš©ν•˜κ³  κΆŒν•œμ„ μƒμŠΉμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€ (예: /etc/shadow μˆ˜μ •).

μ»¨ν…Œμ΄λ„ˆμ—μ„œ νƒˆμΆœν•˜κΈ°

Curl

이 νŽ˜μ΄μ§€μ—μ„œλŠ” docker ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μƒμŠΉμ‹œν‚€λŠ” 방법에 λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. curl λͺ…령을 μ‚¬μš©ν•˜μ—¬ μ΄λŸ¬ν•œ 방법을 μ•…μš©ν•˜λŠ” 방법을 찾을 수 μžˆμŠ΅λ‹ˆλ‹€:

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