SUID와 Sudo 악용
잘못된 설정
SUID와 Sudo 악용은(는) CoddyKit의 무료 Ethical Hacking Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ethical Hacking Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
SUID 비트
SUID 권한 비트가 설정되면 파일을 실행한 사용자가 아니라 파일의 소유자 권한으로 파일이 실행됩니다. 소유자가 root인 경우 SUID 바이너리는 root 권한으로 실행됩니다. 이는 passwd 같은 도구에는 유용하지만 악용되면 위험합니다.
-rwsr-xr-x 1 root root /usr/bin/passwd
# the s in rws = SUID bitSUID 바이너리 찾기
모든 SUID 파일을 열거하고 알려진 안전한 기준 목록과 비교하십시오. 텍스트 편집기, 인터프리터, 사용자 지정 바이너리처럼 특이한 항목은 권한 상승 후보입니다.
find / -perm -4000 -type f 2>/dev/nullGTFOBins
GTFOBins는 SUID 또는 sudo 권한이 주어졌을 때 표준 Unix 바이너리를 악용하여 제한을 벗어나거나 권한을 상승하거나 파일을 읽고 쓸 수 있는 방법을 정리한 목록입니다. 발견한 바이너리는 항상 GTFOBins에서 확인하십시오.
# gtfobins.github.io -> search the binary nameSUID find 악용
find에 SUID 비트가 설정되어 있으면 해당 -exec 옵션이 root 권한으로 명령을 실행하므로 즉시 root 셸을 얻을 수 있습니다.
find . -exec /bin/sh -p \; -quit
# -p preserves the elevated privilegesSUID 셸 탈출
많은 인터프리터와 페이지 표시 프로그램은 셸을 실행할 수 있습니다. SUID가 설정된 vim, less, awk, python을 이용하면 root 셸로 진입할 수 있습니다.
awk "BEGIN {system(\"/bin/sh -p\")}"
# or in less: !/bin/shSudo 잘못된 설정
sudo -l을 실행하여 허용된 명령을 나열하십시오. 악용 가능한 바이너리를 root로 실행하도록 허용하거나 NOPASSWD를 사용하는 항목은 즉시 악용할 수 있습니다. 해당 명령이 셸일 필요는 없습니다. GTFOBins에서 다양한 탈출 방법을 확인할 수 있습니다.
sudo -l
# (ALL) NOPASSWD: /usr/bin/vim편집기 또는 페이지 표시 프로그램의 Sudo
sudo vim(또는 less, more, man, nano 계열)을 실행할 수 있다면 프로그램 내부에서 root 권한으로 셸을 실행할 수 있습니다.
sudo vim -c ":!/bin/sh"
# inside less: sudo less file -> !/bin/shLD_PRELOAD 트릭
sudo가 env_keep를 통해 LD_PRELOAD를 보존한다면, sudo 명령이 시작될 때 root 권한으로 실행되는 악성 공유 라이브러리를 로드할 수 있습니다.
sudo -l # look for env_keep+=LD_PRELOAD
sudo LD_PRELOAD=/tmp/evil.so programSudo 버전 취약점
특정 sudo 버전에는 결함이 있습니다. 예를 들어 Baron Samedit(CVE-2021-3156) 힙 오버플로와 -u#-1 우회(CVE-2019-14287)가 있습니다. sudo --version을 알려진 CVE와 대조하여 확인하십시오.
sudo --version
# vulnerable < 1.9.5p2 -> Baron Samedit사용자 지정 SUID 바이너리
개발자가 절대 경로 없이 이름으로 다른 프로그램을 호출하는 사용자 지정 SUID 보조 도구를 제공하는 경우가 있습니다. PATH를 제어할 수 있다면 해당 호출을 가로챌 수 있습니다. 이는 다음에 다룰 PATH 악용 기법으로 이어집니다.
강화와 윤리
방어자는 SUID 바이너리를 최소화하고, 절대 경로를 사용하며, 일찍 권한을 내리고, 엄격한 규칙으로 sudo를 최신 상태로 유지해야 합니다. 테스터는 승인된 범위 내에서만 이를 악용하십시오.
빠른 확인
SUID와 sudo에 관한 지식을 테스트해 보십시오.
복습
SUID와 sudo 악용에 대해 배웠습니다.
- SUID는 바이너리를 소유자(대개 root)의 권한으로 실행합니다
- 발견한 바이너리를 GTFOBins에서 확인하십시오
- SUID/sudo가 설정된
find,vim,awk,less를 통해 셸로 탈출할 수 있습니다 - LD_PRELOAD와 sudo CVE(Baron Samedit)도 권한을 상승시킵니다
다음 학습 내용: cron 작업과 PATH 악용
자주 묻는 질문
“SUID와 Sudo 악용” 강의는 무료인가요?
네 — “SUID와 Sudo 악용” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ethical Hacking Academy 강의 전체를 잠금 해제할 수 있습니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“SUID와 Sudo 악용”에서 뭘 배우나요?
잘못된 설정 브라우저에서 직접 실행하는 실습 코드로 Ethical Hacking Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ethical Hacking Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ethical Hacking Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“SUID와 Sudo 악용” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ethical Hacking Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ethical Hacking Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 열거
- SUID와 Sudo 악용
- Cron 작업과 PATH
- 커널 익스플로잇