
🔄 need-restart를 통한 Linux 권한 상승 (CVE-2024-48990). 루트 획득 자동화. 💀
이 스크립트는 needrestart 유틸리티의 CVE-2024-48990 취약점을 라이브러리 경로 하이재킹(PYTHONPATH hijacking)을 통해 익스플로잇합니다. 원래 벡터와 달리 이 방법은 Python만을 사용하므로, 대상 머신에 gcc 같은 컴파일러가 설치되어 있어야 한다는 요구 사항을 우회할 수 있습니다.
/tmp/malicious/importlib 디렉토리를 생성합니다. 이는 Python 표준 라이브러리의 구조를 모방합니다.importlib/__init__.py):
여기에는 상승된 권한으로 실행될 코드가 포함됩니다. 로드되면 현재 사용자가 root(UID 0)인지 확인합니다. 그렇다면 /bin/bash 바이너리를 /tmp/poc로 복사하고 SUID 비트(chmod 4755)를 설정합니다. 이로 인해 모든 사용자가 권한을 상승시킬 수 있는 백도어가 생성됩니다.e.py):
무해한 스크립트로서 무한 루프에서 계속 실행됩니다. 두 가지 기능을 수행합니다:
needrestart가 가로챌 수 있도록 시스템에서 Python 인터프리터가 계속 실행되도록 유지합니다./tmp 디렉토리를 지속적으로 모니터링합니다. /tmp/poc 파일이 생성되는 순간 자동으로 -p 플래그(root 권한을 잃지 않기 위함)와 함께 실행하여 대화형 셸을 제공합니다.PYTHONPATH="$PWD" python3 e.py 명령으로 미끼를 실행하면 Python의 동작을 변경합니다. 모든 import가 시스템의 합법적인 경로보다 먼저 /tmp/malicious를 찾도록 강제합니다.needrestart):
needrestart가 관리자 권한으로 실행될 때(수동으로 또는 시스템 예약 작업에 의해) 활성 프로세스를 스캔합니다. 우리의 e.py에 도달하면 환경 변수를 추출하고 자체 Python 프로세스를 시작하여 분석합니다. 악성 PYTHONPATH를 상속받은 needrestart의 root 프로세스는 우리의 가짜 importlib 라이브러리를 import하고 payload를 실행하여 머신에 대한 완전한 제어권을 부여합니다.