웹 쉘은 공격자가 웹 서버에 업로드하여 원격으로 서버를 제어할 수 있게 해주는 악성 스크립트이다. PHP, JSP, ASP와 같은 웹 언어로 작성되며, 웹 브라우저를 통해 접근할 수 있어 공격자는 터미널처럼 명령어를 실행하고, 파일을 조작하며, 시스템 정보를 탈취할 수 있다.
웹 쉘은 단순한 파일 업로드 취약점뿐 아니라 SQL 인젝션, 원격코드 실행(RCE) 취약점, 웹 애플리케이션의 로직 결함 등 다양한 취약점을 통해 업로드될 수 있으며, 공격자가 설치 후 장기간 침투 거점으로 활용하기 쉽다.
과거 웹쉘 공격은 파일 업로드, SQL Injection 등 단순한 웹 프로그래밍 취약점에 기반했으나, 최근에는 오픈소스 프레임워크, CMS(WordPress, Drupal 등)의 보급으로 공격 경로가 다양화되고 있음. 실제로 2022~2021년 웹쉘 탐지 건수는 약 14만 건으로, 2019년 대비 2배 이상 증가하였음. 공격이 쉬워진 이유는 소프트웨어 생태계가 복잡해지면서 보안 취약점 없이도 단순한 방법으로 공격이 가능해졌기 때문이다.
2. 웹 쉘의 주요 특징
✅ 1. 다양한 기능 제공 → 서버 전체 권한 탈취
공격자가 할 수 있는 일: 웹 쉘로 시스템 명령을 실행하면 서버 안에서 할 수 있는 거의 모든 일을 할 수 있다. 예를 들어,
웹사이트 데이터 삭제/변조
DB에서 개인정보 유출
랜섬웨어 설치
내부망 침투 거점으로 활용
실제 피해 예: 고객 정보가 저장된 DB를 덤프하여 유출 → 금전 요구 또는 다크웹에 판매
✅ 2. 은폐성 → 관리자도 모르게 장기간 침투 유지
공격자가 할 수 있는 일: 탐지를 피하기 때문에 보안 솔루션이 감지 못한 상태에서 오랜 시간 서버에 머물며 정보 수집, 내부망 이동을 수행할 수 있다.
실제 피해 예: 6개월 이상 운영되던 웹쉘이 디지털포렌식 과정에서 뒤늦게 발견됨 → 그 사이 수천 건의 고객정보 유출
✅ 3. 지속성 → 반복적인 재침투 가능
공격자가 할 수 있는 일: 한 번 들어온 뒤 웹쉘을 삭제하지 않으면 언제든 다시 접속 가능함. 더 나아가 시스템 계정을 생성하거나, 다른 경로에 백도어를 심어 다양한 재침투 경로 확보.
실제 피해 예: 피해 기업이 보안 조치 후에도 공격자 재침입 반복됨 → 조사해보니 다른 디렉토리에 은닉된 또 다른 웹 쉘 존재
✅ 4. 광범위한 호환성 → 다양한 웹사이트에서 동시다발적 피해 발생
공격자가 할 수 있는 일: 운영체제나 언어에 구애받지 않고 여러 종류의 서버에 동시 공격 가능 특히 CMS(워드프레스, 젠카트 등) 취약점을 통한 대규모 공격에 활용됨
실제 피해 예: 수천 개의 워드프레스 사이트가 같은 웹 쉘에 감염 → 공격자는 한 툴로 동시에 제어
✅ 5. 자동화된 공격 지원 → 대규모 공격 및 악성코드 유포
공격자가 할 수 있는 일: 한 번에 여러 서버에 명령 전송, 웹쉘 설치, 악성 파일 유포, 스팸 발송 등의 대규모 공격 가능 특히 공격자가 C&C 서버와 연동해 봇넷 구성 시 웹쉘은 통로 역할
실제 피해 예: 국내 웹 서버 수백 곳이 자동화 도구로 감염되어 크립토마이너(채굴 악성코드) 유포지로 활용됨 → CPU 과부하, 서버 마비, 검색엔진 블랙리스트 등 부가 피해
✅ 정리
웹쉘 특징
실제 피해 예시
다양한 기능 제공
서버 장악, DB 유출
은폐성
장기간 침입 지속
지속성
반복 재침입 및 내부망 확산
광범위한 호환성
다수 사이트 동시 감염
자동화된 공격 지원
악성코드 유포, 봇넷 구축
웹 쉘은 단순한 해킹 도구가 아니라, 공격자가 거점을 확보하고 다양한 공격을 실행하는 기반이 된다. 그래서 보안에서는 웹쉘 탐지와 제거, 업로드 방지 정책이 매우 중요하다.
3. 웹쉘 공격 방법 및 대응방안
✅1. 기존 웹쉘 공격 방법
파일 업로드 기능 악용
확장자 우회 (.jpg.php, .php;.jpg 등)를 통해 악성 스크립트를 업로드
웹 취약점 악용
SQL Injection, Command Injection, XSS, RFI 등을 통해 웹쉘 삽입 또는 실행
프레임워크 / CMS 취약점 악용
WordPress, Drupal, Apache Struts2, 전자정부 프레임워크 등에서 발생한 취약점을 통해 웹쉘 업로드
취약한 웹 에디터 활용
SmartEditor, DaumEditor, Namo CrossEditor와 같은 에디터의 파일 업로드 취약점 이용
✅2. 최신 웹쉘 공격 사례
🧠 Fileless Web Shell Attack
웹쉘을 파일로 저장하지 않고 메모리에서 실행
로그나 정적 분석 회피 가능 → 탐지 어려움
공격자는 로그 없이 실시간 명령 실행 가능, 흔적을 남기지 않음
💉 Injection Web Shell Attack
웹 요청 파라미터나 DB에 웹쉘 코드를 삽입하여 실행
취약한 입력 필터링 우회
SQL Injection이나 Command Injection과 결합 공격이 가능
✅대응 전략
사전 대응 전략
최신 보안 패치 및 소프트웨어 업데이트 정기적으로 적용
파일 업로드 설정 강화
허용 확장자 제한, 업로드 디렉터리 권한 최소화, 실행 차단 설정
보안 에디터로 교체 또는 취약점 패치
입력값 필터링 및 검증 철저히 수행
사후 대응 전략
웹쉘 탐지 솔루션 및 EDR 도입 (정적/동적 분석 기반)
의심 파일 및 로그 분석
웹쉘 업로드 경로 확인 및 삭제
불필요한 포트/계정/스크립트 차단 및 제거
관리자 계정 비밀번호 변경 및 접근 IP 제한
주기적 백업 및 복구 시나리오 점검
4.웹 쉘 감염 관련 사건 사고
중국 연계 APT 그룹의 장기간 웹 쉘 공격: 2025년 3월, 중국과 연계된 APT 그룹인 'Weaver Ant'가 아시아의 한 통신 회사를 대상으로 수년에 걸친 정교한 웹 쉘 공격을 수행한 사례가 보고되었다. 이들은 웹 쉘을 통해 지속적으로 시스템에 접근하여 정보를 탈취하고, 추가적인 악성 활동을 수행하였다. (*apt란 구가의 후원을 받아 스파이 활동에 주력하는 그)
중국 연계 해커들, MITRE 네트워크 침입에 'ROOTROT' 웹 쉘 사용: MITRE의 실험 네트워크에 해커가 침입해 'ROOTROT' 등 여러 웹쉘을 설치하고 내부를 은밀히 통제하였다. 웹쉘은 메모리 기반으로 작동해 흔적 없이 명령을 실행할 수 있어 탐지가 어려웠다. 이번 공격은 고도화된 사이버 첩보 활동으로, 보안이 강한 기관도 취약점을 노리면 뚫릴 수 있음을 보여준다.
파일 다운로드 취약점은 웹 애플리케이션이 사용자에게 파일을 다운로드할 때, 공격자가 악성 파일을 다운로드할 수 있는 취약점이다. 이는 파일 다운로드 기능이 적절히 보호되지 않거나 사용자의 입력을 제대로 검증하지 않을 경우 발생한다. 예를 들어, 공격자가 URL 매개변수를 조작하여 서버에서 중요한 시스템 파일을 다운로드할 수 있는 경우다.
취약점 실습
공격자는 파일 다운로드 기능의 URL 매개변수를 조작하여 서버의 민감한 파일에 접근할 수 있다.
공격자는 악성 스크립트를 포함한 파일을 업로드할 수 있다. 예를 들어, .php, .exe와 같은 파일을 업로드하여 웹 서버에서 실행하게 할 수 있다.
이를 통해 시스템에 악성 코드가 실행되거나, 데이터가 유출될 수 있다.
사이트 검색해 본 결과 게시판 업로드 창에 제한 없이 아무 파일이나 올릴 수 있게 보안이 미흡한 웹 사이트들도 종종 보였다.
대응 방안
파일 형식 검증: 업로드 가능한 파일의 확장자 및 MIME 타입을 엄격히 검증이 필요하다.
업로드 경로 제한: 업로드된 파일이 실행되지 않도록 서버 측에서 파일 저장 위치를 제한하고, 업로드된 파일에 대한 실행 권한을 제거한다.
파일 크기 제한: 업로드할 수 있는 파일의 크기를 제한하여 서비스 거부 공격(DoS)을 방지한다.
파일 이름 변경: 파일 이름에 특수문자나 경로 조작을 방지하기 위해 파일 이름을 변경하여 저장한다.
3. 소스코드 내 중요정보 노출 취약점
설명
소스코드 내 중요정보 노출 취약점은 소스 코드 파일에 중요한 정보(예: DB 비밀번호, API 키 등)가 포함되어 있어 공격자가 이를 쉽게 접근하거나 추출할 수 있는 취약점이다. 개발자 실수로 코드나 설정 파일에 민감한 정보를 포함시킨 경우 발생한다.
취약점 캡처
예를 들어, GitHub와 같은 저장소에 비밀번호가 포함된 코드를 푸시한 경우 공격자는 해당 코드를 쉽게 검색하여 비밀번호를 얻을 수 있다.
코드 내에 API 키나 데이터베이스 자격 증명이 노출된 경우 이를 추출할 수 있다.
브라우저의 개발자 도구를 활용해서 html 내용을 본 결과 주석으로 활성화 되지 않은 경로를 추출했고 주소창에 url을 쳐 보니 숨겨진 페이지 창을 볼 수 있었다.
대응 방안
민감 정보 외부 저장: 비밀번호와 같은 민감한 정보는 코드에 하드코딩하지 않고, 환경 변수나 안전한 설정 파일에 저장한다.
Gitignore 파일 사용: Git과 같은 버전 관리 시스템을 사용할 때 민감한 정보를 포함한 파일을 .gitignore에 추가하여 공개되지 않도록 한다.
암호화: 민감 정보를 저장할 때 반드시 암호화를 적용하여, 만약 정보가 유출되더라도 안전하게 보호한다.
4. 공개용 웹 게시판 취약점
설명
공개용 웹 게시판 취약점은 유지보수 부족으로 인해 발생하며, 공격자는 알려진 보안 취약점을 악용하여 웹사이트를 변조하거나, 민감한 정보를 유출할 수 있다. 대표적인 취약점으로는 파일 업로드 취약점, SQL 인젝션, XSS(크로스 사이트 스크립팅), 권한 관리 취약점 등이 있다.
취약점 캡처
그누보드가 사용된 웹사이트를 확인할 수 있었다.
inurl:board intitle:게시판, inurl:bbs intitle:게시판 등을 활용하여 특정 게시판이 사용된 웹사이트를 찾을 수 있다.
파일 업로드 취약점: 공격자가 악성 PHP 파일을 업로드하여 원격 명령을 실행할 수 있음.
SQL 인젝션: 데이터베이스 질의문을 변조하여 관리자 계정을 탈취하거나 정보를 유출할 수 있음.
XSS(크로스 사이트 스크립팅): 악성 스크립트를 삽입하여 사용자 세션을 가로채거나 피싱 공격을 수행할 수 있음.
권한 관리 취약점: 게시판 관리자 페이지가 보호되지 않아 비인가 사용자가 접근할 수 있음.
대응 방안
최신 버전 유지: 보안 패치 및 업데이트를 정기적으로 수행한다.
보안 설정 강화: 업로드 파일 확장자 제한, SQL 인젝션 필터링 적용, 관리자 페이지 접근 제한 설정을 적용한다.
정기 점검 및 모니터링: 취약점 스캐닝을 수행하고, 웹 방화벽(WAF)을 적용하여 실시간 탐지 및 대응을 강화한다.
🔹 실습 intitle: "index of" "password" 구글링으로 디렉터리 목록 접근
passwords.txt 파일을 통해 ZIP 파일 비밀번호를 추출할 수 있었음
🔹 대응 방안
디렉터리 나열 비활성화: 서버 설정에서 Options -Indexes를 추가하여 디렉터리 목록이 노출되지 않도록 설정한다.
파일 접근 제한: 중요한 파일(예: 백업, 설정 파일 등)을 보호하기 위해 파일 접근 권한을 제한한다.
.htaccess 사용: .htaccess 파일을 사용하여 웹 서버의 접근을 제어하고, 특정 디렉터리에 대한 접근을 제한한다.
3. 시스템 관리 취약점
🔹 왜 위험한가? phpMyAdmin, cPanel, RDP(Remote Desktop Protocol), SSH 등 서버 관리 도구가 외부에 노출되면 공격자가 직접 서버에 접근할 수 있음. 무차별 대입 공격(Brute-force Attack)을 통해 관리자 계정을 탈취하거나, 알려진 취약점을 이용해 서버를 장악할 수 있음. 서버에 악성코드를 심거나, 랜섬웨어를 감염시켜 데이터를 인질로 잡을 수도 있음.
🔹 실제 사례 RDP(Remote Desktop Protocol) 노출로 인한 랜섬웨어 감염 사례: 공격자가 인터넷에 노출된 RDP 포트를 스캔하여 관리자 계정의 패스워드를 무차별 대입 공격(Brute-force Attack)으로 탈취한 후, 랜섬웨어를 배포하여 피해 시스템을 감염시킨 사례가 있음. 📌 출처: https://asec.ahnlab.com/ko/39804/?utm_source
🔹 실습
intitle:"index of" password 구글링을 통해 php 노출된 시스템 관리 인터페이스를 탐색. 공격자가 이를 이용하여 시스템의 취약점을 찾거나 공격을 시도할 수 있음.
allow_url_fopen이 활성화되어 있는 경우 원격 파일 포함(RFI) 공격이 가능해져 외부 URL에서 악성 파일을 포함하거나 실행할 수 있음. 이를 통해 웹 쉘을 업로드하거나 서버 명령어를 실행할 수 있음.
intitle:"index of" intext:"web.config.txt"를 통해 API 관련 키가 노출된 파일을 발견할 수 있었음.
🔹 대응 방안
원격 관리 도구 보호: phpMyAdmin, cPanel 등의 관리 도구는 외부 접근을 차단하거나 VPN을 통해 접근하도록 제한한다.
강력한 인증 적용: 관리자 계정에는 강력한 비밀번호를 설정하고, 2단계 인증을 활성화하여 보안을 강화한다.
포트 차단 및 모니터링: 불필요한 포트를 차단하고, RDP, SSH 등의 포트는 방화벽을 통해 외부 접근을 제한한다.
소프트웨어 최신화: 관리 도구와 서버 소프트웨어를 최신 버전으로 유지하여 알려진 취약점으로 인한 공격을 차단한다.
4. 불필요한 Method 허용 취약점
🔹 왜 위험한가? HTTP 메서드(예: PUT, DELETE, TRACE 등)가 불필요하게 활성화되어 있으면 공격자가 악성 파일을 업로드하거나 중요한 파일을 삭제할 수 있음. TRACE 메서드가 허용된 경우, XST(Cross-Site Tracing) 공격을 통해 쿠키 탈취 및 세션 하이재킹이 가능함.
Shodan은 인터넷에 연결된 다양한 IoT 기기들을 검색하고 분석할 수 있는 도구이다. 이를 통해 웹캠, CCTV, 네트워크 프린터, 산업제어시스템 등 다양한 기기들의 보안 취약점을 파악하고, 실시간으로 접근할 수 있는 정보들을 열람할 수 있다. 이번 시간에는 Shodan을 통해 검색할 수 있는 주요 IoT 기기들과 각 기기의 특징을 살펴보겠다.
1. CCTV
특징: 감시용 카메라. 아날로그 CCTV가 아닌 네트워크 연결형 카메라.
보안 위험: CCTV 영상 유출, 관리 부실로 인한 해킹 위험. 개인정보 유출 가능성 있음.
대표적 피해 사례: 영상 정보 유출 및 해킹 사례 발생.
검색 키워드: port:80 has_screenshot:true (해당 ip를 웹브라우저 주소 창에 검색하면 이동한다)
포트 554는 **RTSP (Real-Time Streaming Protocol)**로, 웹 브라우저로 직접 접속할 수 없다.
has_screenshot:true는 Shodan이 캡처한 화면이 있는 결과만 표시한다.
RTSP 포트로 접속이 불가능하므로, HTTP 80 포트로 변경하여 접근할 수 있다. 이를 통해 CCTV 영상에 접근할 수 있다.
2. WebCam, IP Cam
특징: 화상 채팅이나 인터넷 방송 등으로 사용되는 카메라. 네트워크를 통해 직접 연결되는 웹캠에 대한 검색어는 다양한 종류가 존재함.
보안 위험: 사생활 침해 우려가 큼. 불법적으로 웹캠 화면을 엿보거나 유출될 수 있음.
대표적 피해 사례: 가정집에서 설치된 IP 카메라 해킹 사례가 보도된 바 있음.
IP 카메라
검색 키워드: title:"IPCam Client" port:80
예를 들어, Foscam과 같은 브랜드에서 기본 비밀번호를 사용하는 웹캠은 쉽게 접근할 수 있을 수 있다.(사용자가 비밀번호를 안 바꿨다면)
WebCam
검색 키워드: title:"webcam" has_screenshot:true
이 검색어를 통해 웹캠의 라이브 영상을 확인할 수 있다. Shodan은 각 기기의 화면을 캡처하여 결과로 표시하므로, 이를 통해 라이브 영상을 확인할 수 있다.
3. Network Printer
특징: 네트워크에 연결되어 모든 사용자들이 함께 사용할 수 있는 프린터.
보안 위험: 프린터 해킹으로 문서 엿보기, 인쇄 기록 훔쳐보기 등. 프린터 하드디스크에서 이전 인쇄 기록을 볼 수 있는 경우도 있음.
대표적 피해 사례: 프린터 해킹 사건으로 인해 문서 정보가 유출된 사례 있음.
HP 프린터 검색 키워드: "HP-ChaiSOE" port:80
Xerox 프린터 검색 키워드: ssl:"Xerox Generic Root"
일부 프린터는 기본 비밀번호가 걸려 있지 않거나, 취약한 비밀번호를 사용하여 보안에 취약할 수 있다. 예를 들어, 엡손과 캐논은 비밀번호가 걸려 있지만, 다른 프린터는 보안에 취약한 경우가 있다. Server: printer 포트 80을 통해 확인할 수 있다.
4. 산업 제어 시스템 (ICS)
특징: 산업 시설을 제어하는 시스템으로, 네트워크 기술을 통해 외부와 연결되며 생산성 향상에 기여함.
보안 위험: 해킹 시 산업 기밀 유출, 시설 셧다운, 재정적 피해, 국가 시설을 대상으로 한 테러 가능성.
사례: 과거 산업 제어 시스템이 해킹되어 큰 피해를 본 사례가 있음.
1. Nordex 관련 검색
Nordex는 독일에 본사를 둔 풍력 발전기 제조업체.
검색한 결과, ICS(산업제어시스템) 관련 장비에서 실행 중인 시스템이 나타남.
이 시스템은 로그인으로 컨트롤 가능한 상태
2. ICS 검색
ICS(산업제어시스템)와 관련된 장비를 검색하는 과정에서 특정 제품이나 시스템에 대한 정보를 찾음.
ICS 관련 시스템은 보통 특정 산업 장비에 대한 제어를 담당하는 시스템으로, 해당 시스템은 리눅스 기반의 모니터링 대시보드를 활용하는 것으로 추측됨.
3. 제품 가이드북을 활용한 로그인 UI 우회 방법
목적: 로그인 UI 우회 방법 탐색
방법:
ICS(산업제어시스템) 회사 이름을 Shodan에서 검색
검색 결과에서 제품(프로덕트) 이름을 확인
해당 제품 이름을 구글에서 검색하여 가이드북을 찾음
가이드북을 분석하여 로그인 UI를 우회할 수 있는 방법을 탐색
4. Siemens 제품의 VNC 서버 취약점 분석(raw data 분석)
top automation vendors를 검색하면 Siemens가나타났으며, Siemens 제품과 관련된 ICS 정보를 검색해봤다.
Siemens 제품과 관련된 데이터를 추가 검색
Siemens의 제품과 관련된 데이터를 쇼단에서 이미지 탭에서 검색하고, 그 내부의 raw data를 분석한 결과 VNC 서버와 관련된 정보가 나타남.
발견된 취약점:
인증이 비활성화된 VNC 서버가 존재하여 외부 공격자가 쉽게 접근할 수 있음
VNC 서버의 보안이 취약할 경우 공격자가 시스템에 접근할 가능성이 높음
기술적 제한:
웹브라우저는 VNC 프로토콜(RFB)을 지원하지 않음
VNC 서버에 접속하려면 전용 VNC 클라이언트가 필요함
5. POS 시스템
특징: 상점에서 판매 거래를 처리하는 시스템으로, 결제 카드 정보와 고객 데이터를 처리하는 중요한 역할을 한다. POS 시스템은 카드 결제뿐만 아니라, 재고 관리, 매출 기록 등의 기능을 수행한다.
보안 위험: 카드 정보 및 고객 데이터를 처리하기 때문에 해킹 시 중요한 개인 정보가 유출될 수 있다. POS 시스템 해킹을 통해 신용카드 정보, 결제 내역, 고객 정보 등이 유출될 수 있으며, 이를 통해 금융 사기 및 데이터 도용이 발생할 수 있다.
대표적 피해 사례: POS 시스템이 해킹되어 카드 정보가 유출된 사건이 발생한 바 있으며, 특히 대형 상점 체인에서 발생한 사례가 보도된 적 있음. 해커는 POS 단말기를 통해 결제 정보를 훔쳐 불법적인 거래를 시도하기도 한다.
pos 검색 키워드: pos
Shodan을 통해 POS 시스템의 로그인 화면을 확인할 수 있다. 일부 취약한 POS 시스템은 보안에 취약하여 개인정보 유출의 위험이 있다.
개인정보 유출 원인
취약한 기본 설정: 많은 IoT 기기가 기본 비밀번호나 설정을 그대로 사용하여 보안에 취약하게 노출된다.
소프트웨어 취약점: 오래된 소프트웨어를 사용하거나 보안 패치가 적용되지 않은 경우 해킹에 취약할 수 있다.
인증 및 암호화 부재: 일부 IoT 기기는 인증 기능이 없거나 암호화되지 않은 통신을 사용하여 개인정보 유출 위험이 있다.
네트워크 보안 취약점: 공유기나 방화벽 설정이 취약한 경우, 외부 공격자가 내부 네트워크에 접근하여 IoT 기기를 공격할 수 있다.
보안 강화 방안
기본 비밀번호 변경: 모든 IoT 기기의 기본 비밀번호를 강력한 비밀번호로 변경해야 한다.
최신 소프트웨어 유지: IoT 기기의 소프트웨어를 최신 버전으로 유지하고 보안 패치를 정기적으로 적용해야 한다.
강력한 인증 및 암호화: 인증 기능을 활성화하고 암호화된 통신을 사용하여 개인정보를 보호해야 한다.
네트워크 보안 강화: 공유기와 방화벽 설정을 강화하여 외부 공격으로부터 네트워크를 보호해야 한다.
결론
Shodan을 활용하여 IoT 기기의 보안 취약점을 미리 파악하고 적절한 보안 조치를 취하는 것이 중요하다. Shodan에서 검색할 수 있는 IoT 기기들은 CCTV, 웹캠, IP 카메라, 네트워크 프린터, 산업 제어 시스템(ICS) 등이 있다. 각 기기는 기본 설정, 소프트웨어 취약점, 인증 및 암호화 부재 등의 이유로 보안에 취약할 수 있으며, 이를 해결하기 위한 보안 강화 방안을 적용하는 것이 중요하다.