Notes / Penetration Testing
공개 익스플로잇 탐색과 수정
식별한 서비스·버전에 맞는 공개 익스플로잇을 찾고, 대상 환경에 맞게 주소·셸코드·오프셋을 수정해 안전하게 쓰는 과정의 개념과 구문을 정리합니다.
목차
서비스·버전을 확정했으면 알려진 공개 익스플로잇을 찾는다. 다만 공개 PoC는 다른 환경 기준이라 그대로는 안 되는 경우가 많다. 주소·셸코드·오프셋을 대상에 맞게 고치고, 출처를 검증해 안전하게 써야 한다.
개념
- 온라인 리소스: Exploit-DB, Packet Storm, GitHub, 구글 검색 연산자로 “제품+버전+취약점” 탐색.
- 오프라인 리소스:
searchsploit(Exploit-DB 로컬 사본), 프레임워크 모듈, Nmap NSE. - 수정이 필요한 지점: 대상 IP/포트, 리버스 셸 주소, 셸코드(아키텍처·배드문자), 버퍼 오프셋·리턴 주소, 언어/라이브러리 버전 차이로 인한 컴파일 오류.
- 주의: 출처 불명 PoC는 백도어·파괴 코드가 섞일 수 있다. 반드시 코드를 읽고 무엇을 하는지 이해한 뒤 격리 환경에서 실행한다.
서비스·버전 확정 → 매칭 익스플로잇 검색 → 코드 정독(안전성)
→ 환경 맞춰 수정(주소/셸코드/오프셋) → 격리 테스트 → 적용
공격·확인 구문
허가된 대상에서만. PoC는 읽고 이해한 뒤 실행.
검색
searchsploit "service 3.11" # 로컬 Exploit-DB 검색
searchsploit -m 12345 # 로컬로 복사(미러)
searchsploit -x 12345 # 내용 열어 정독
# 구글: "ProductName 3.11" exploit site:github.com
수정 포인트 점검
대상/리스너 주소·포트가 내 환경으로 바뀌었는가
셸코드 아키텍처(x86/x64)·배드문자 제거가 맞는가
오프셋·리턴 주소가 대상 바이너리/버전에 맞는가
컴파일 플래그·의존 라이브러리 버전 차이 해결했는가
안전 수칙
실행 전 전체 소스 정독: 네트워크 연결·파일 삭제·외부 다운로드 여부
격리된 테스트 대상에서 먼저 재현
난독화·인코딩된 페이로드는 디코드해 내용 확인