728x90
경고
본 글은 보안 학습 및 취약점 이해를 목적으로 작성되었습니다.
정보통신망에 대한 무단 침입, 권한 없는 접근, 악성코드 유포 및 시스템 장악 행위는
「정보통신망 이용촉진 및 정보보호 등에 관한 법률,「개인정보 보호법」
등 관련 법령에 따라 형사처벌 대상이 될 수 있습니다.
본문에 포함된 내용은 사전 허가된 테스트 환경(CTF, 교육용 랩)에서만 활용되어야 하며,
이를 악용할 경우 발생하는 모든 법적 책임은 행위자 본인에게 있습니다.
Reverse Shell이란?
: 대상 시스템(타깃)이 공격자 측으로 역방향 연결(outbound) 을 생성하여 공격자가 원격에서 명령을 실행할 수 있도록 만드는 통신 방식이다.
이 방식은 방화벽/NAT 환경에서 인바운드 연결이 차단되어도 아웃바운드 연결은 허용되는 경우가 많다는 점을 악용
Reverse Shell의 동작 원리
- 타깃 서버에서 임의 코드 실행(RCE) 이 가능할 때 해당 코드가 외부(공격자)로 네트워크 연결을 시도
- 공격자 측은 대기 중(리스너) 이며, 연결이 성립되면 쉘을 획득
예시) https://www.revshells.com/
1. reverse_shell 관련 코드를 희생자가 다운로드하거나 희생자 PC에 존재
2. 희생자가 다운로드 또는 실행 시
3. 공격자는 연결을 대기하고 있던 창에서 희생자가 실행한 코드로 희생자 PC에 접속 성공
Reverse Shell의 유형
1. TCP 기반 Reverse Shell (전통적)
- 서버가 공격자에게 직접 TCP 연결
- 단순, 빠름
- 탐지 쉬움 (비정상 아웃바운드, 포트 시그니처)
2. HTTP(S) 기반 Reverse Shell / C2 방식 (현대적)
- HTTP/HTTPS 트래픽으로 위장
- 주기적 비콘(beaconing) 또는 요청-응답
- 프록시/보안장비 우회에 유리
- HTTPS 위장 (정상 웹 트래픽과 구분 어려움) + 주기적 통신(C2) 명령은 서버가 “요청받는 것처럼” 보이게 처리하여 요새 자주 쓰임
실습
1. 아래 URL에서 reverse_shell 코드 생성 및 다운로드
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php https://www.revshells.com/
- IP, Port는 내 IP, PORT로 생성 또는 변경(포트는 임의로 설정)
- 희생자의 정보를 볼 PC(공격자 PC의 IP)


2. 포트 리스닝
- 희생자가 파일을 다운로드 받거나 실행시킬때까지 대기

3. 공격을 위해 서버에 파일 업로드

4. 희생자가 웹 서버에서 reverse_shell 파일을 다운로드 받으면 공격 성공


Connection received on 10.49.177.2 55088
→ 웹서버가 웹서버 임시 포트 55088을 이용해서 공격자(나)에게 접속함(reverse_shell 코드 대로 동작함)Linux ip-10-49-183-
5.15.0-139-generic #149~20.04.1-Ubuntu SMP Wed Apr 16 08:29:56 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
→ 서버 정보
uid=33(www-data) gid=33(www-data) groups=33(www-data)
→현재 사용자 정보
참고
728x90
'해킹과 보안 > TryHackme' 카테고리의 다른 글
| Tryhackme Metasploit: Exploitation (0) | 2026.02.19 |
|---|---|
| powershell (0) | 2026.02.07 |
| nmap 옵션 및 예시 (0) | 2026.01.10 |
| systeminfo, ver, set, ping, traceroute, netstat (1) | 2026.01.06 |
| kerberos/NTLM 인증 과정 (0) | 2026.01.05 |