파일 다운로드 취약점은 웹 애플리케이션이 사용자에게 파일을 다운로드할 때, 공격자가 악성 파일을 다운로드할 수 있는 취약점이다. 이는 파일 다운로드 기능이 적절히 보호되지 않거나 사용자의 입력을 제대로 검증하지 않을 경우 발생한다. 예를 들어, 공격자가 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) 등이 있다. 각 기기는 기본 설정, 소프트웨어 취약점, 인증 및 암호화 부재 등의 이유로 보안에 취약할 수 있으며, 이를 해결하기 위한 보안 강화 방안을 적용하는 것이 중요하다.