SSL Strip


이번에는 SSL 통신 우회 공격을 해보자


인터넷하다보면 http:// 주로 이렇게 시작하는 주소가 많지만


https:// 라고 뜬걸 한번쯤은 본적이 있을 것이다


보통 로그인 페이지같은 보안이 중요한 페이지를


80번 포트에서 443포트로 리다이렉션(Redirection)하게 되어있다.


이때 SSL이용 하여 보안 통신을 하게 된다.


SSL이란 보안 소켓 계층(Secure Socket Latey)이다


SSL은 서버와 클라이언트의 진위 확인을 가능하게 해준다.


간단하게 안전하게 통신할 수 있는 암호화된 프로토콜이라고 할 수 있다


SSL Strip은 https 를 http로 통신하게끔 만드는 공격 기법이다


먼저 IP 포워딩설정해주어야한다


아래와 같이 써보자


echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000




ettercap 을 이용해도 되지만 여기서는 arpspoof라는 툴을 이용해서 arpspoofing 한다.(ettercap의 arp poisoning)


arpspoof -i eth0 -t 192.168.0.22 192.168.0.1 (arpspoof -i eth0 -t 공격대상 목적지)



ip_forward의 값을 바꿔주었기때문에 (default value인 0 에서 1로)


192.168.0.22와 192.168.0.1사이에 공격자(192.168.0.8)이 낀 상태다(Mitm)




희생자 PC(win XP) 에서 확인해본 192.168.0.1의 MAC 주소



공격자의 MAC주소



희생자 PC의 192.168.0.1의 MAC주소가 공격자 PC의 MAC주소로 되어있는걸 볼수있다


arp 스푸핑이 제대로 작동하고 있다는 뜻이다



이제 sslstrip을 하기위하여


sslstrip -a -k -f 를 입력하자



이제 실제로 ssl 을 이용하는 페이지를 이동해보면




(밑에스크린 샷은 원래 정상적인 SSL 통신을 할때 (https://) 주소창 모양이다)



실제 로그인 하면 평문으로 전송 되기 때문에 sniffing이 가능하다


(참고로 네이버는 보안이 잘 되어있어서 SSL만 strip한다고 간단하게 희생자의 아이디와 패스워드를 sniffing할수 없다)


로그는 sslstrip.log에서 볼수 있다 ( grep을 이용하여 찾아보면 아이디와 패스워드가 평문으로 전송된걸 알수 있을 것이다(SSL Strip 공격당하고 있는 희생자가 어딘가에 로그인했다면))



(테스트화면을 보여주기 위해 로그인해봄)