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 / 호스트기반모의해킹 · 24
바인드 쉘과 웹 쉘
1. 바인드 쉘
1.1 개념
바인드 쉘은 악성 코드가 타겟 시스템의 특정 포트를 열고(Listening), 공격자가 그 포트로 접속하여 제어권을 얻는 방식이다.
- 흐름:
Attacker ---(Connect) ---> Target(Listening on 7777)
- 트래픽: 인바운드(Inbound) 트래픽 발생.
1.2 제작 및 접속
1.3 한계점
- 방화벽(Firewall): 대부분의 기업 환경은 외부에서 내부로 들어오는 인바운드 정책을 엄격하게 통제한다. 허용되지 않은 포트(예: 7777)로 접속 시도가 차단될 확률이 매우 높다.
- NAT: 타겟이 사설 IP망 내부에 있다면 외부에서 직접 접속이 불가능하다(포트포워딩 필요).
- 따라서 실무에서는 리버스 쉘이 훨씬 선호된다.
2. 웹 쉘
2.1 개념
웹 서버의 파일 업로드 취약점 등을 이용하여 스크립트 파일(php, jsp, asp)을 업로드하고, 웹 요청을 통해 시스템 명령어를 실행하는 쉘이다.
- 특징: 별도의 포트를 열지 않고, 기존 웹 서비스 포트(80, 443)를 이용하므로 방화벽을 우회하기 쉽다.
- 트래픽: 정상적인 HTTP/HTTPS 트래픽 틈에 섞여 있어 탐지가 까다롭다(단, 로그 분석 시 평문 명령어 노출 가능).
2.2 종류
A. 단순 웹 쉘(One-Liner)
가장 간단한 형태. 기능이 제한적이다.
<?php system($_GET['cmd']); ?>
- 사용:
http://target.com/shell.php?cmd=ls -al
- 주의: URL Encoding 필수. 공백(
) -> %20, & -> %26 등으로 변환해야 명령어가 제대로 전달된다.
B. 기능형 웹 쉘(예: WSO - Web Shell by Orb)
파일 관리, DB 접속, 프로세스 조회 등 GUI에 준하는 기능을 제공하는 풀 패키지 웹 쉘.
- 보안 기능: 패스워드 인증을 적용하여 아무나 접근하지 못하게 해야 한다.
3. 실무에서는?
- 공개 웹 쉘의 위험성:
webshell.php 처럼 뻔한 이름이나 패스워드가 없는 웹 쉘을 방치하면, 제3의 해커(인터넷 스캐너)가 이를 발견하고 시스템을 장악할 수 있다.
- 이는 모의해커의 과실로 인한 보안 사고로 간주되며, 법적 책임 소지가 있다.
- 반드시 복잡한 파일명(예:
a8f12.php)과 강력한 패스워드를 적용해야 한다.
- 트래픽 암호화:
- 기본 웹 쉘은 명령어가 HTTP GET/POST 파라미터에 평문으로 노출된다(예:
cmd=cat /etc/passwd).
- WAF(웹 방화벽) 탐지를 피하기 위해 명령어를 암호화하거나 인코딩하여 전송하는 고급 웹 쉘을 사용하기도 한다.
- 모의해킹 종료 후에는 반드시 웹 쉘 파일을 삭제(Cleanup)해야 한다.