김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing
레이블이 MITM인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MITM인 게시물을 표시합니다. 모든 게시물 표시

2020년 5월 12일 화요일

삼성 타이젠 MiTM 인증서 검증 버그 및 취약점

 SecureKim     오후 5:14     삼성, 취약점, 타이젠, MITM, Samsung, Security, Tizen, vulnerability     No comments   


15년 12월 중순, 내가 리포트 했던 타이젠 웹 인증서 검증 버그가 있었다.


이것은 사용자가 브라우저 사용시 MiTM을 막을 수 없는 취약점으로,

MiTM시 인증서 검증 이후 SSL 관련 경고창은 띄우지만

경고창과 무관하게 데이터가 날아가는 취약점이었다.


이 공격은 당시 모든 타이젠 브라우저에 가능했으며,

유저는 HTTPS 를 사용하더라도 공격을 당할 수 밖에 없는 매우 심각한 취약점이다.

그런데 이것을 단지 일개 신입사원이 발견한 것이었다.

(그렇다고 뭐 보상이나 격려 같은건 전혀 없었지만)


여튼 이제 모두 패치되었지만 5년전, 타이젠에는 이런일도 있었다는 것을 기록한다.


-------------------------------------------------------------------

어느날 타이젠에 MiTM 공격을 시도 해 보았다.

이후 웹에서 인증서 검증을 하고 아래처럼 경고창을 띄우는 것을 확인 했고,




평소라면 "아, 경고창 뜨네. 공격 검증하네." 하고 넘어 갔겠지만

시스템에 대한 믿음이 없던 나는 데이터를 직접 확인 해 보기로 했다.



패킷 확인 결과, 인증서 검증 후

경고창은 띄웠지만 데이터는 날아가는 황당한 장면을 목격하게 되었다.

즉, 만약 아이디 패스워드를 입력하는 페이지에서 MiTM을 당한다면

사용자가 경고창을 보고 Deny를 하더라도 이미 아이디 패스워드는 탈취 되는 것이다.



Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

2017년 10월 18일 수요일

Wifi WPA2 "KRACK" 공격 상세 분석

 SecureKim     오후 11:55     분석, 취약점, KRACK, MITM, Security, TKIP, wifi, WPA-2     No comments   


핵심 요약


일단 시간이 없는 사람들을 위해 KRACK 공격의 핵심을 요약하면 다음과 같다.

ㆍ키가 재사용 되면 패킷이 해독될 위험이 있다.
ㆍKRACK은 키를 재사용 하도록 할 수 있다.

내용이 쉽지는 않기 때문에 왜 재사용 되면 안되는지

어떻게 재사용 하도록 하는지는 아래에서 자세히 설명한다.



선행 학습 - 요약


일단 공격을 이해하기 전에 선행 학습 해야 할 내용이 있는데,

참고 자료들도 적은 양은 아니므로 중요 내용만 요약하면 다음과 같다.

ㆍWPA 는 EAPOL 포맷의 4-Way Handshake를 사용하며,
한번 사용된 PTK는 다시 사용되지 않아야 한다.

ㆍWPA에서 동일한 키로 자꾸 암호화 하면 해독 될 가능성이 높다.
특히 Context 內 영어 등 자연어가 있으면 거의 된다고 봐야 함.

ㆍJammer와 RogueAP, 다양한 채널을 이용하면 Wifi도 MitM 할 수 있다.

ㆍPMK 는 Pre-shared password (와이파이 패스워드)로 부터 나온다.

ㆍPTK 는 PMK, ANonce, SNonce, MAC( AP, Client) 주소로 부터 나온다.
실제로 사용되는 것은 PTK 로 부터 나온 KCK, KEK, TEK, TK( CCMP ) 등 이지만,
아래부터는 PTK로 작성한다.

  • KCK is used to construct MAC in EAPOL packets 2,3 and 4.
  • KEK is used to encrypt some data sent to client(for example GTK).
  • TEK is used for encrypting traffic between client and AP, later during session.

KRACK 내용 분석


일단 두가지를 먼저 짚고 넘어가자.

1. wpa_supplicant 2.4, 2.5 버전에는 특별한 버그가 있다.

재전송된 Msg3 을 받았을 때, TK 를 0으로 채워서 인스톨 한다는 점이다.

이것은 당시에는 심각하게 받아들여지지 않았는데,

Side Effect 를 일으킬 수 있으므로 분리 패치가 필요한 부분이다.


2. iOS 와 Window 도 안전하지 않다.

Msg3 재전송을 허용하지 않기 때문에 ( 근데 이거 802.11 표준 위반이다 )

Key reinstallation Attack 에는 취약하지 않지만, Group Key Handshake 공격에는 취약하다.


자 이제 논문의 그림을 보면서 하나씩 이해하려고 노력해 보자.



PHASE 1. 공격자는 쭉 메시지를 보다가 Msg4 를 가로채고 보내지 않는다. 
            (이걸 대체 어떻게 한건지 디테일은 최하단 내용 참조)

PHASE 2. 클라이언트는 Msg4 를 보낸 직후 PTK & GTK 를 설치하고, 
            설치한 PTK로 데이터를 암호화해서 보낸다.

PHASE 3. AP는 Msg4 가 오지 않으므로 클라이언트가 Msg3 를 못 받은걸로 생각하고, 
             다시 MSG4 를 설치했던 PTK로 암호화해서 보낸다. 공격자는 이걸 그대로 전달한다.
             클라이언트는 Msg3를 받고 nonce 와 replay 카운터를 초기화 한다.

PHASE 4. AP 사이드에 연결을 성립시켜서 PTK 설치하게 한다.
             생각해보면 AP는 Msg4를 받지 않아 아직 PTK 가 설치 되어 있지 않기 때문에, 
             클라이언트가 보낸 암호화된 Msg4 를 reject 할 것이다.
             그러나 802.11 표준을 유심히 살펴보면 마지막 counter 뿐만 아니라 
             4-way handshake 에 사용된 모든 replay counter 를 받아들이도록 되어 있어서 문제 없다.
             즉, 어떤 AP는 r+1을 받아들이고 어떤 AP는 이전에 암호화된 Msg4 를 받아들임
       

PHASE 5. 클라이언트가 데이터를 다시 동일한 Nonce와 PTK로 암호화해서 보낸다.


결국 요약하면 


WPA는 일반적으로 키를 자주 Refresh 하므로

복호화 하기 매우 어렵다.

하지만 쓰던 키를 재사용 하도록 공격 해서 데이터를 모은 다음,

데이터가 쌓이면 결국 복호화 할 수 있다 라는 말이 된다.


위험도

4-Way Handshake 가 나온 이래 14년간 누구도 생각지 못한 엄청난 공격이다.

그래서 와이파이 세상이 망한 것 처럼 화제가 되고 있지만

글쎄, 전통적인 WPA Crack 에 쉽게 깨지는 패스워드를 사용하고 있는 AP가

이 세상에 얼마나 많은데

굳이 AP 와 Jammer 를 사고 펌웨어를 수정해서 이 공격을 할까?

게다가 HTTPS 를 깨는 것이 아니라서,

주의심이 깊은 사용자라면 당하지 않을 수도 있다고 생각한다.



복호화

사실상 암호화는 PTK 로 직접 하는 것이 아니라, PTK 로 Derive 된 임시키를 
OTP (One Time Pad)로 사용하게 된다.
참고로 이 임시키는 매 패킷마다 시퀀스 번호를 참조하여 derive 되는데...

ㆍ가장 궁금해지는 부분이다. 키를 알지 못하는 상태에서,
단지 키를 재사용한다는 이유만으로 어떻게 복호화가 가능한가?

아래 그림을 참고해 보면 이해가 쉽다.



KRACK 의 주장은, 거의 모든 패킷에 항상 영어 단어 등이 있을 것이므로
Message 1, 2 를 갖고 있을 때 분리가 가능하다는 것이다.

Crip-drag 공격 참조
http://travisdazell.blogspot.kr/2012/11/many-time-pad-attack-crib-drag.html

Two Time Pad를 통해 자연어를 자동으로 해독하는 방안에 대해서는
아래 참고 논문을 참조하면 되겠다.
https://crypto.stackexchange.com/questions/2249/how-does-one-attack-a-two-time-pad-i-e-one-time-pad-with-key-reuse/2250#2250

디테일


ㆍ논문에서는 다양한 공격들과 디테일을 더 다룬다. 논문을 직접 보는게 더 좋다.

ㆍTKIP 나 GCMP 를 쓰는 경우 복호화 뿐만 아니라 패킷을 Inject 할 수도 있고,

GCMP의 경우 Key 를 복구해 낼 수도 있다. (https://www.krackattacks.com/)


ㆍ이 공격을 성공 시키려면 PMK 를 모르는 상태에서 Wifi 를 MitM 해야하고

그러기 위해서는 Channel Based MitM 을 먼저 시도해야 한다.
(https://people.cs.kuleuven.be/~mathy.vanhoef/papers/acsac2014.pdf)

이때 Rogue AP 2개와 Jammer 가 필요하며 Latency 가 두배 가까이 늘어나게 된다.

위 논문에 의하면 MitM시 Latency는 3.82±10.4 ms. -> 7.45±12.9 ms

100MB 파일 다운로드 속도는  18.6 Mbps -> 8 Mbps 로 변했다고 한다.

즉, 평소보다 다운로드 속도가 많이 느리다면 

공격의 징후로 볼 수도 있다.



참고 자료



WPA 설명 자료 (IEEE802.11i)

http://ieee802.org/16/liaison/docs/80211-05_0123r1.pdf

OTP가 두번 사용될 경우 자연어 자동 해독 방법

https://crypto.stackexchange.com/questions/2249/how-does-one-attack-a-two-time-pad-i-e-one-time-pad-with-key-reuse/2250#2250

각종 용어 설명은 아래 참조
http://etutorials.org/Networking/Wireless+lan+security/Chapter+8.+WLAN+Encryption+and+Data+Integrity+Protocols/Key+Management/

4 way handshake 이해하기 좋은 그림
https://netmanias.com/ko/?m=view&id=blog&no=5376


PMK 를 모르는 상태에서 Wifi MitM 을 어떻게 하는건지?



https://people.cs.kuleuven.be/~mathy.vanhoef/papers/acsac2014.pdf

위 논문은 좀 더 자세하게 다루고 싶은 내용이라 요약하자면, 

ㆍ4 way handshake 때문에 MitM 위치 잡는게 사실상 어렵다. 
세션키가 MAC주소에 기반하기 때문에 AP와 동일한 MAC 주소를 가져야 하는데, 
AP와 클라이언트가 통신 해야 하기 때문에 불가능했다.

ㆍ그래서 두개의 AP를 만들어 하나는 실제 AP와 같은 채널에, 
다른 하나는 AP와 다른 채널에 둔다.
다른 채널에 있더라도 물리적으로 가깝게 있기 때문에 서로 프레임을 수신 할 수 있어서 
무한 루프에 빠질 수 있는데 이를 막기 위해 최근 전달된 프레임을 
시퀀스 번호로 추적해 새 프레임만 전달하도록 했다.

ㆍ이 Rouge AP를 102.4 ms 마다 뿌림. 
다만, 뿌린다고 해서 클라이언트가 바로 채널을 변경하는 것이 아니다.

ㆍ비컨을 선택적 Jamming 했더니 반드시 몇 프레임은 손실되었다. 
특히 authentication message 는 34바이트밖에 안되서 
거의 선택적 Jamming 을 할 수 없었고 클라이언트를 Rogue AP에 붙일 수 없다.
그래서 실제 AP를 지속적으로 Jamming 해서 클라이언트가 Rogue AP 에 붙게 했다.

ㆍ다른 채널에 AP를 복제하는 것은 간단하지만, 
실제 AP 채널에 있는 장치는 모든 클라이언트 MAC 주소를 Listen 하고 있다가 보내야 하므로,
Attacker 측 드라이버 펌웨어를 수정해서 Sequence Number 를 덮어쓰는걸 방지했다.

이렇게 하면 와이파이 패스워드를 몰라도 MitM 위치에서 선택적으로 패킷을 버리거나 다시 보내거나 할 수 있다.

물론 그렇다고 해도 2014년 당시 이 논문으로는 패킷을 decrypt 할 수 없었다. 
(하지만 3년후 이 아저씨는 결국 대박을 치게 된다)


Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

2016년 1월 8일 금요일

MITM을 위한 Proxy 설정방법

 SecureKim     오전 10:16     MITM, Network, proxy, Security     No comments   


ARP Spoofing이 안되는 경우 ( 정책 상 Blocking 되는 경우)

iptables를 이용하면 됩니다.

iptables -t nat -A OUTPUT -p tcp -o wlan0 -j DNAT --to ip:port

주의 할 것은, 모든 tcp 통신을 포워딩 하기 때문에

DNS 쿼리도 이곳으로 날리게 됩니다.

따라서 먼저 한번 접속해서 도메인 이름을 알도록 하거나

--dports 80,443 등 옵션을 추가해 주는 것이 좋습니다.


Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
이전 게시물 홈

페이지

  • 홈
  • Hobby

Categories

  • AI
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • Node.js
  • Plasma
  • Security
  • Study
  • Video
  • android
  • mysql
  • review
  • windows

Popular Posts

  • Termux 로 안드로이드에 우분투(GUI)와 VSCode설치하기
      많은 글들이 있지만 뭔가 대부분 잘 안됐다. 이번 기회에 정리한다. 0. 먼저 Termux와 Remote Desktop Manager를 설치한다. Remote Desktop Manager 대신 아래도 나쁘지 않다. 화면이 작지만 마우스 스크롤이나 ...
  • 회사 프록시와 인증서에 고통받는 그대를 위한 글 (Bash, Gradle, Python, wget, nodejs(npm), apt-get, cURL, git, yarn, androidStudio)
    대기업에 입사하면 장단점이 있는데, 단점 중에 하나가 회사에서 프록시를 사용하여 트래픽 감시를 하므로 프록시 설정을 해주어야 한다는 점 입니다. 특히, 회사에서는 https 트래픽도 감시를 하므로 인증서도 설정해 주어야 합니다. 그런데 문...
  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마...

Blog Archive

  • ▼  2026 (2)
    • ▼  2월 (2)
      • 태블릿에서 양자내성암호(격자암호) 돌려보기
      • 양자컴퓨터와 보안 위협 (쇼어 알고리즘)
  • ►  2025 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  7월 (1)
  • ►  2024 (2)
    • ►  11월 (2)
  • ►  2023 (2)
    • ►  10월 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ►  2017 (12)
    • ►  10월 (2)
    • ►  9월 (9)
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ►  2015 (6)
    • ►  12월 (3)
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ►  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ►  7월 (3)
    • ►  6월 (3)

구독

글
Atom
글
전체 댓글
Atom
전체 댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates