본문 바로가기

4-1. 2025-2 심화 스터디/버그헌팅

[버그헌팅] I.Sly 팀활동 section5 요약본

 

1. 실습 목표

  • 목표: VM에 침투 → root 권한 획득 → /root/flag.txt 회수.
  • 대상: VulnHub의 Basic Pentesting:2(Josiah Pierce, 2018) OVA 이미지. 실습은 VirtualBox에서 진행.

 

2. 환경 세팅과 주의해야할 점

  • OVA 임포트: VirtualBox에 OVA 임포트 후 네트워크 모드 설정. 실습 기본은 NAT 권장(다른 모드로 바꾸면 접근성·스캔 범위 달라짐).
  • 스냅샷 필수: 실습 전 스냅샷 찍어두기! 여러 공격·설정 변경 후 쉽게 복구 가능
  • 환경 팁:
    • Host-only / Bridged로 바꿀 시 IP 범위 확인
    • 호스트 방화벽/안티바이러스가 스캔을 막는 경우가 있으니 실습 전 확인

 

3. 핵심 정보수집 결과

  • 먼저 nmap -sV로 서비스·버전 체크
  • 예시로 열린 포트: 22(SSH), 80(HTTP), 139/445(SMB), 8009(AJP), 8080(Tomcat)
  • 웹루트에 dev.txt, j.txt 같은 파일이 남아있을 수 있음 — 프레임워크/단서(예: Struts 버전, 약한 비밀번호 힌트) 확인 필수!

 

 

4. 찾아낸 중요 취약점

  1. Samba 4.3.11 — CVE-2017-7494 (RCE): 원격 코드 실행 가능. SMB가 열려있다면 우선점검 대상으로 삼을 것(권한상승 루트로 직결되는 경우 많음)
  2. Apache Struts 2.5.12 (REST plugin) — CVE-2017-9805 (RCE): XML 역직렬화로 단일 요청만으로 RCE 가능. struts2-rest-showcase 같은 엔드포인트 노출 여부 확인
  3. OpenSSH 7.2p2 — 사용자명 열거 가능: 직접 RCE는 아니지만 자격증명 공격의 기초가 된다. 


팁: RCE 가능한 취약점이 있으면 우선 노려보고, 없으면 웹/SMB에서 사용자명·패스워드 단서를 찾아 SSH로 들어가는 플랜B 실행할것

 

5. 도구 & 워크플로

  • 필수 도구: nmap, searchsploit, enum4linux, john, hydra, 브라우저(웹크롤링) 등등
  • 권장 스텝(커맨드 예시): nmap → searchsploit 연동은 빠르게 취약 후보를 찾기 좋음
# 1) 서비스/버전 스캔
nmap -sV -oX nmap_result.xml <target_ip>

# 2) nmap 결과로 exploit DB 연동 검색
searchsploit --nmap nmap_result.xml

# 3) SMB 열거
enum4linux -a <target_ip>

# 4) 웹 루트 스캔(숨겨진 파일 찾기)
gobuster dir -u http://<target_ip>/ -w /path/to/wordlist

# 5) 획득한 해시 크랙
john --wordlist=/path/to/wordlist hashfile

 

 

6. 실습 시뮬레이션 

  • 상황: 웹에서 dev.txt에 Struts 사용 흔적 발견 → struts2-rest-showcase-2.5.12 엔드포인트 열린다! 
    → CVE-2017-9805 페이로드로 RCE 시도 → 쉘 획득 → 내부 파일(/etc/shadow) 접근 → john으로 크랙 → SSH 로그인 → sudo로 root 획득
  • 상황2: SMB(445)에서 취약한 Samba 버전 확인 → CVE-2017-7494로 직접 원격 코드 실행 → 바로 쉘 획득

 

 

7. 웹에서 찾은 작은 파일(dev.txt, j.txt)의 역할

  • 개발 노트·백업 파일·로그 파일에 버전·설정·약한 패스워드 힌트가 적혀있는 경우가 많음!! 실습에서는 이런 텍스트 파일이 사건의 단서가 되고, dev/j 파일에서 얻는 힌트가 실제 공격 성공률을 크게 높여준다.

 

8. Tomcat / AJP 체크 포인트

  • AJP 포트(8009) 열려 있으면 Ghostcat (CVE-2020-1938) 같은 이슈 가능. Tomcat 버전만 보고 안전하다고 판단xxx! — 연동된 프로토콜·플러그인(예: Struts) 때문에 뚫릴 수 있음

 

9. 실습 체크리스트 

  • 실습 전 스냅샷 찍기
  • nmap -sV로 서비스·버전 확실히 뽑기
  • searchsploit로 빠르게 취약점 후보 매칭
  • 웹루트의 작은 텍스트 파일(backup, dev, old 등) 꼼꼼히 보기
  • SMB 열거(enum4linux)로 내부 사용자/공유 확인
  • 주의! 
    • 버전 번호만 보고 바로 PoC 실행하지 말 것(환경·설정에 따라 exploit 적용 여부 달라짐)
    • 스냅샷 없이 실습 중 돌이킬 수 없는 변경 가하지 말 것