웹쉘(Web Shell),보안,SKT해킹 도구
**웹쉘(Web Shell)**은
웹 서버에 업로드된 악성 스크립트 파일로, 공격자가 원격에서 서버를 조작할 수 있도록 만든 백도어 프로그램입니다.
✅ 1. 웹쉘이란?
항목 | 설명 |
정의 | 웹 서버 상에 숨겨진 악성 코드 또는 스크립트 파일 |
형태 | .php, .asp, .jsp, .aspx 등의 웹 페이지 파일 형식 |
기능 | 원격 명령 실행, 파일 업로드/다운로드, DB 조작, 서버 탈취 등 |
목적 | 서버를 장악하고 내부망 침투, 개인정보 탈취, 추가 악성코드 설치 등 |
✅ 2. 웹쉘 공격 방식
- 파일 업로드 취약점 이용
- 예: 이미지 업로드 폼을 통해 웹쉘 스크립트 업로드
- 취약한 웹 애플리케이션 공격
- SQL Injection, XSS, RCE 등을 통해 웹쉘 삽입
- 이미 해킹된 계정이나 CMS 취약점 이용
- 워드프레스/제로보드 등 CMS 취약한 플러그인
✅ 3. 웹쉘 탐지 방법
방법 | 설명 |
파일 무결성 점검 | 정기적으로 웹 서버 내 파일 변조 여부 확인 |
웹 로그 분석 | 비정상적인 접근 패턴, URL 파라미터 분석 |
백도어 탐지 툴 사용 | WebShell Detector, LMD(Linux Malware Detect), ClamAV 등 |
코드 내용 확인 | eval(), base64_decode(), system() 등 위험 함수 포함 여부 점검 |
✅ 4. 웹쉘 방어 및 예방
전략 | 세부 내용 |
파일 업로드 제한 | 확장자, MIME 타입, 파일명 필터링 |
권한 설정 | 업로드 폴더는 실행 권한 제거 (chmod -x) |
서버 보안 설정 | 웹 방화벽(WAF), SELinux, 보안 패치 주기적 적용 |
암호화 통신 적용 | HTTPS 적용으로 데이터 도청 방지 |
서버 모니터링 | 실시간 탐지 시스템으로 이상 징후 감지 및 차단 |
✅ 5. 대표적인 웹쉘 예시 코드 (PHP)

URL에 ?cmd=ls 입력 시 서버 명령어 실행됨
(※ 학습 목적 예시로, 실제 시스템에 적용 금지)
웹쉘(Web Shell) 공격을 효과적으로 방지하고 대응하기 위해서는 다음과 같은 세 가지 측면에서의 접근이 중요합니다:
1. 웹쉘 탐지 및 차단을 위한 오픈소스 도구
웹쉘 탐지와 차단을 위해 활용할 수 있는 오픈소스 도구는 다음과 같습니다:
도구명 |
주요 기능 및 특징 |
ClamAV | 다양한 플랫폼에서 사용 가능한 오픈소스 백신으로, 웹쉘을 포함한 악성 코드 탐지에 활용됩니다. |
Chkrootkit | 리눅스 시스템에서 루트킷 및 웹쉘 탐지를 위한 도구로, 시스템 내부의 이상 징후를 검사합니다. |
LMD (Linux Malware Detect) | 리눅스 시스템에서 웹쉘 및 악성 스크립트 탐지에 특화된 도구로, ClamAV와 연동하여 사용 가능합니다. |
이러한 도구들은 웹 서버의 보안 상태를 점검하고, 웹쉘과 같은 악성 스크립트의 존재를 확인하는 데 유용합니다.
2. 서버 취약점 점검 체크리스트
서버의 보안을 강화하기 위해 다음과 같은 취약점 점검 항목을 고려해야 합니다:
점검 항목 |
설명 |
계정 관리 | root 계정의 원격 접속 제한, 패스워드 복잡성 설정, 계정 잠금 임계값 설정 등 |
파일 및 디렉토리 권한 설정 | 중요 파일 및 디렉토리의 소유자 및 권한 설정, SUID/SGID 파일 점검 등 |
서비스 관리 | 불필요한 서비스 비활성화, 포트 제한, 접근 제어 설정 등 |
패치 및 로그 관리 | 최신 보안 패치 적용, 로그의 정기적 검토 및 보고 등 |
이러한 점검 항목은 리눅스 서버의 보안 상태를 평가하고 강화하는 데 도움이 됩니다.Velog+1JW's Tech Blog+1
3. 웹쉘 방어를 위한 서버 설정 예시
웹쉘 공격을 방지하기 위해 서버 설정을 다음과 같이 조정할 수 있습니다:
설정 항목 |
설정 예시 및 설명 |
파일 업로드 제한 | 업로드 가능한 파일의 확장자 및 MIME 타입을 제한하여 악성 스크립트 업로드 방지 |
실행 권한 제거 | 업로드 디렉토리의 실행 권한을 제거하여 업로드된 파일의 실행을 방지 |
입력 값 검증 | 사용자 입력 값에 대한 철저한 검증을 통해 악성 코드 삽입 방지 |
웹 애플리케이션 방화벽(WAF) 설정 | WAF를 통해 웹 애플리케이션의 취약점을 보호하고, 웹쉘 공격을 차단 |
이러한 설정을 통해 웹쉘 공격의 위험을 줄이고, 서버의 보안을 강화할 수 있습니다.
웹쉘(Web Shell) 탐지, 점검, 방어를 위한 종합 가이드
1. 웹쉘 탐지 및 차단을 위한 오픈소스 도구 사용법
■ ClamAV
- 설치: sudo apt install clamav
- 업데이트: sudo freshclam
- 전체 스캔: clamscan -r /var/www
- 특징:
- 광범위한 악성코드 시그니처 보유
- 리눅스, macOS 등 다양한 플랫폼에서 작동
■ LMD (Linux Malware Detect)
- 설치:

- 스캔 명령어: maldet -a /var/www
- ClamAV 연동: LMD는 ClamAV 엔진을 활용하여 탐지율 향상 가능
■ Chkrootkit
- 설치: sudo apt install chkrootkit
- 사용법: sudo chkrootkit
- 역할: 루트킷 및 비정상적인 시스템 상태 탐지
2. 서버 취약점 점검 체크리스트
■ 계정 및 인증 관련
- root 계정의 SSH 접속 차단 (/etc/ssh/sshd_config에서 PermitRootLogin no)
- 패스워드 복잡성 정책 설정 (길이, 문자 종류 등)
- 2FA 설정 (가능한 경우)
■ 파일 및 디렉토리 권한
- 웹 루트 디렉토리 내 .php, .asp, .jsp 등 실행 파일 권한 확인
- chmod 644 또는 실행 권한 제거 (chmod -x)
■ 불필요한 서비스 제거
- 사용하지 않는 포트/데몬 비활성화 (netstat -tulpn, systemctl disable)
■ 패치 및 로그 관리
- 정기적인 OS 및 웹서버 보안 패치 적용
- /var/log/auth.log, /var/log/apache2/error.log 등 로그 주기적 확인 및 백업
3. 웹쉘 방어를 위한 서버 설정 가이드
■ Apache
- .htaccess로 업로드 경로 내 실행 차단

■ Nginx
- 업로드 폴더에 대해 PHP 실행 비활성화

■ PHP 보안 설정

■ 웹 방화벽 (WAF)
- ModSecurity, NAXSI, Cloudflare 등 적용하여 웹 요청 필터링
■ 추가 권장사항
- 업로드 경로를 /var/www/uploads 등 별도 폴더로 분리하고 noexec 마운트
- 웹쉘 탐지용 스케줄링 (cron으로 LMD 주기 실행)

이 글이 도움이 되셨다면
🔔 구독 과 ❤️ 좋아요 꾸우욱 눌러 주세요!🙏
그리고 💖커피 ☕, 💚차 🍵, 💛맥주 🍺, ❤️와인 🍷 중 마음에 드시는 한 잔으로 💰 후원해 주시면 큰 힘이 됩니다.
👇 지금 바로 아래 🔘버튼을 꾸욱 눌러 📣 응원해 주세요! 👇