메시지 가로채기(man-in-the-middle) 공격은 중개자로서 트래픽에 대한 액세스 권한을 얻기 위한 다양한 기술의 총칭입니다. 이러한 기술은 매우 다양하기 때문에 가능한 모든 상황에서 작동하는 이러한 공격을 탐지하기 위한 단일 도구를 구현하는 것은 문제가 있습니다. 예를 들어, 로컬 네트워크에 대한 메시지 가로채기(man-in-the-middle) 공격에서 ARP 스푸핑(poisoning)이 일반적으로 사용됩니다. 그리고 많은 man-in-the-middle 공격 탐지 도구는 이더넷 주소 쌍 변경을 감시하거나 ARP 요청/응답을 수동적으로 모니터링하여 의심스러운 ARP 활동을 보고합니다. 그러나 이 공격이 ARP 포이즈닝을 사용하지 않을 때 악의적으로 구성된 프록시 서버, VPN 또는 기타 옵션에 사용된다면 그러한 도구는 무력합니다.

이 섹션의 목적은 메시지 가로채기(man-in-the-middle) 공격을 탐지하기 위한 몇 가지 기술과 MitM 공격을 받고 있는지 확인하도록 설계된 몇 가지 도구를 살펴보는 것입니다. 다양한 방법론과 구현 시나리오로 인해 100% 탐지를 보장할 수 없습니다.

1. 트래픽 변조 감지

이미 언급했듯이 ARP 스푸핑이 중간자 공격에 항상 사용되는 것은 아닙니다. 따라서 ARP 수준 활동 탐지가 가장 널리 사용되는 탐지 방법인 반면 트래픽 수정 탐지는 보다 일반적인 방법입니다. mitmcanary 프로그램이 이를 도와줄 수 있습니다.

프로그램의 원리는 "제어" 요청을 하고 수신된 답변을 저장하는 것입니다. 그 후 일정 간격으로 동일한 요청을 반복하고 수신된 응답을 비교합니다. 이 프로그램은 매우 지능적이며 오탐을 피하기 위해 응답에서 동적 요소를 감지하고 올바르게 처리합니다. 프로그램이 MitM 공격을 위한 도구 활동의 흔적을 기록하자마자 이에 대해 보고합니다.

일부 도구가 "상속"할 수 있는 방법의 예:

  • MITMf 는 기본적으로 HTML 코드의 모든 HTTPS URL을 HTTP로 변경합니다. HTTP 콘텐츠를 비교하여 감지합니다.
  • Zarp + MITMProxy , MITMProxy에는 HTTP 압축을 지울 수 있는 기능이 있습니다. 이것은 전송된 트래픽의 투명성에 사용되며 이 번들은 이전에 존재하는 압축이 사라지면 감지됩니다.
  • 응답자, mDNS 응답 번역의 갑작스러운 변경으로 감지됨: 예기치 않은 응답; 응답은 내부이지만 외부가 예상됩니다. 응답이 예상 IP와 다릅니다.
  • MITMCanary 대 MITMF:

  • MITMCanary 대 응답자:

  • MITMCanary 대 Zarp + MITMProxy:

sudo pip install Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen 분석 요청 simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

이미 언급했듯이 mitmcanary 작업은 제어 요청으로 시작해야 합니다. 이렇게하려면 디렉토리로 이동하십시오.

CD 서비스/

그리고 파일을 실행 setup_test_persistence.py:

Python2 setup_test_persistence.py

시간이 좀 걸립니다. 끝날 때까지 기다리세요. 오류 메시지가 표시되지 않아야 합니다(그렇다면 일부 종속성이 누락된 것입니다).

다음과 같이 출력됩니다.

[이메일 보호됨]:~/bin/mitmcanary/service$ python2 setup_test_persistence.py 이전 구성 버전이 감지되었습니다(14 대신 0). 구성 업그레이드가 진행 중입니다. 로그 제거가 실행되었습니다. 분석 중... 퍼지 완료! /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+에 로그인 기록(기본값, 2016년 9월 1일, 20:27:38)

이 프로세스를 마친 후 동일한 디렉터리에서 다음을 실행합니다(백그라운드 프로세스가 시작됨).

Python2 메인.py

그런 다음 새 터미널 창을 열고 mitmcanary를 사용하여 루트 디렉터리로 변경합니다. 내 디렉토리는 bin/mitmcanary/이므로 다음을 입력합니다.

CD bin/mitmcanary/

거기에서 실행하십시오 :

Python2 메인.py

첫 번째 창에는 다음과 같은 내용이 표시됩니다.

[이메일 보호됨]:~/bin/mitmcanary/service$ python2 main.py 로그인 기록 /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (기본값, 2016년 9월 1일, 20:27 :38) 사용 127.0.0.1:3000에서 Tuio를 청취하는 소켓용 60초 동안 잠자기 60초 동안 잠자기 60초 동안 잠자기 60초 동안 잠자기 60초 동안 잠자기 60초 동안 잠자기

저것들. 프로그램은 1분에 한 번씩 제어 요청을 하고 메시지 가로채기(man-in-the-middle) 공격의 징후를 찾습니다.

두 번째 창에는 출력이 있고 + 어두운 창이 열리고 프로그램 작성자는 이 창을 "그래픽 인터페이스"라고 부릅니다.

잠시 기다렸다가 인터넷을 검색하여 프로그램이 잘못된 경고를 생성하지 않는지 확인할 수 있습니다.

고전적인 Ettercap 프로그램을 사용해 봅시다.

ARP 스푸핑으로 일반 MitM 공격을 실행하고 있습니다. mitmcanary는 에칭 자체에 반응하지 않습니다. mitmcanary 도구는 트래픽 자체를 생성합니다. 즉, 사용자 작업이 필요하지 않습니다. 일정 시간이 지나면 하나의 경고가 표시되며 다음 검사에서 확인되지 않습니다. 그러나 몇 분 후에 동일한 경고가 나타납니다. 추가 분석 없이는 이것이 오탐의 예인지 여부를 말하기가 어렵습니다. 이는 이와 매우 유사합니다. 이 경고는 트래픽이 추가 경로를 거쳐야 하는 연결 실패 또는 내 열악한 인터넷 연결의 특성으로 인해 발생할 수 있습니다.

결과가 명확하지 않으므로("예"보다는 "아니오") 다양한 모듈이 있는 Bettercap 프로그램을 사용해 보겠습니다. 다양한 Ettercap 플러그인 및/또는 추가 프로그램기능을 확장하기 위해 mitmcanary도 "밝힐 것"입니다.

실험의 순도를 위해 장비를 다시 시작하고 공격받은 머신에서 mitmcanary를 실행하고 공격하는 머신에서 Bettercap을 실행합니다. 동시에, 공격을 받은 시스템에 대해 다시 제어 요청을 할 필요가 없습니다. 이러한 요청은 프로그램과 함께 디렉토리 내의 파일에 저장됩니다. 저것들. 서비스와 그래픽 인터페이스를 시작하는 것으로 충분합니다.

그리고 공격하는 머신에서 우리는 파서를 활성화한 Bettercap을 실행할 것입니다:

수도캡 -X

가양성처럼 보이는 별도의 경고가 나타납니다.

하지만 이 명령을 실행하면:

sudo bettercap -X --proxy

공격을 받은 시스템에서 메시지 가로채기 공격에 대한 많은 경고가 발생합니다.

그래서 뭐 더 기능적인 도구메시지 가로채기(man-in-the-middle) 공격의 경우 트래픽에 더 많은 발자국을 남깁니다. mitmcanary를 실제로 사용하려면 다음 조건을 충족해야 합니다.

  • 트래픽 전송에 중개자가 없다고 확신할 때 신뢰할 수 있는 네트워크에서 초기 요청을 수행합니다.
  • 전문 공격자가 예외에 기본 리소스를 추가하여 이 도구에 보이지 않게 할 수 있으므로 확인 요청이 이루어진 리소스를 편집하십시오.

2. ARP 스푸핑(arp ​​Cache Poisoning) 탐지

매우 자주 로컬 네트워크에 대한 메시지 가로채기(man-in-the-middle) 공격은 ARP 중독으로 시작됩니다. 이것이 MitM 공격을 탐지하도록 설계된 많은 도구가 이더넷(MAC 주소)과 IP 주소 간의 통신이 할당되는 ARP 캐시의 변경 사항을 추적하는 메커니즘을 기반으로 하는 이유입니다.

이러한 프로그램의 예로는 arpwatch , arpalert 및 수많은 새 프로그램이 있습니다. ArpON 프로그램은 ARP 캐시 변경 사항을 모니터링할 뿐만 아니라 이를 보호합니다.

예를 들어, 백그라운드에서 포크를 생성하고 메일로 메시지를 보내지 않고 디버그 모드에서 arpwatch를 실행해 보겠습니다. 대신 메시지가 stderr(표준 오류 출력)로 전송됩니다.

sudo /usr/sbin/arpwatch -d

공격 머신에서 Ettercap을 실행하고 ARP 스푸핑을 시작합니다. 공격받은 기계에서 우리는 다음을 관찰합니다.

rpwatch 프로그램은 귀하의 컴퓨터에서 새로 연결된 장치에 대해 빠르게 찾을 수 있도록 도와줍니다. 지역 네트워크, ARP 캐시 변경 사항.

실시간 ARP 스푸핑을 탐지하는 또 다른 도구는 Ettercap 자체에서 만든 플러그인입니다. arp_cop. 공격받은 머신에서 다음과 같이 Ettercap을 실행합니다.

sudo ettercap -TQP arp_cop ///

그리고 공격자에 대해서는 ARP 에칭을 시작해보자. 공격을 받은 시스템에 경고가 즉시 표시되기 시작합니다.

3. DNS 스푸핑 탐지

DNS 스푸핑은 트래픽을 수정할 수 있는 중개자가 사용자와 대상 사이에 있음을 나타냅니다. DNS 레코드가 스푸핑되었음을 어떻게 감지할 수 있습니까? 이를 수행하는 가장 쉬운 방법은 신뢰하는 네임서버의 응답과 비교하는 것입니다. 그러나 결국 귀하의 요청에 대한 응답의 항목도 대체될 수 있습니다 ...

저것들. 암호화된 채널(예: Tor를 통해)을 통해 확인하거나 비표준 설정(다른 포트, UDP 대신 TCP)을 사용해야 합니다. XiaoxiaoPu의 sans 프로그램은 대략(적어도 내가 이해하는 한) 이를 위한 것입니다. 이 프로그램을 사용하여 Tor와 비표준 설정을 통해 DNS 쿼리를 내 DNS 서버로 리디렉션했습니다. 그러나 나는 그녀가 나에게 DNS 응답 스푸핑에 대한 메시지를 보여주도록 할 수 없었습니다. 그리고 이것이 없으면 프로그램의 의미가 사라집니다.

더 나은 대안을 찾지 못했습니다.

원칙적으로 DNS 스푸핑은 일반적으로 포트 53만 모니터링하고 UDP 프로토콜만 모니터링한다는 점을 감안할 때 수동으로라도 DNS 스푸핑 사실을 확인하는 것만으로도 충분하지만, 이를 위해서는 비표준 구성의 자체 DNS 서버가 필요합니다. 예를 들어 공격하는 컴퓨터에서 파일을 만들었습니다. dns.conf다음 내용으로:

지역 mi-al.ru

저것들. mi-al.ru 사이트에 대한 DNS 레코드를 요청할 때 실제 IP 대신 공격자의 컴퓨터 IP가 전송됩니다.

나는 공격 머신에서 실행합니다.

sudo bettercap --dns dns.conf

그리고 공격을 받으면 두 가지 검사를 수행합니다.

mi-al.ru # 발굴 및 mi-al.ru -p 4560 @185.117.153.79 발굴

결과:

[이메일 보호됨]:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-데비안<<>> 미알루 ;; 전역 옵션: +cmd ;; 답변을 받았습니다: ;; ->>헤더<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 [이메일 보호됨]:~$ dig mi-al.ru -p 4560 @185.117.153.79 ;<<>> DiG 9.10.3-P4-데비안<<>> mi-al.ru -p 4560 @185.117.153.79 ;; 전역 옵션: +cmd ;; 답변을 받았습니다: ;; ->>헤더<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

"정상" DNS 쿼리의 경우 로컬 IP 192.168.1.48이 전송되고 비정형 포트에서 DNS 쿼리 시 올바른 서버 IP가 전송됨을 알 수 있습니다.

서버가 UDP가 아닌 TCP와 함께 작동하도록 구성된 경우 명령은 다음과 같습니다.

발굴 mi-al.ru -p 4560 +tcp @185.117.153.79

분명히 트래픽 자체에서 DNS 응답을 추적하고, 대체 소스에 대해 다시 확인하고, 스푸핑의 경우 경보를 울리는 도구가 부족합니다.

자신의 원격 DNS 설정을 피하기 위해 Tor를 통해 네임서버를 쿼리할 수 있습니다. 모든 Tor 트래픽이 암호화되기 때문에 이러한 방식으로 수신된 DNS 응답은 중개자에게는 너무 어렵습니다. Tor가 아직 설치되어 있지 않으면 설치하십시오.

sudo apt-get 설치 토르

스도 팩맨 -S 토르

서비스 시작:

sudo systemctl 시작 토르

필요한 경우 이 서비스를 시작에 추가하십시오.

sudo systemctl 활성화 토르

파일 열기 /etc/tor/torrc거기에 다음 줄을 추가하십시오.

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit, .onion

숫자 530에 주의하십시오. 이것은 포트 번호이며 530 대신 다른(사용하지 않은) 포트를 지정할 수 있습니다. 가장 중요한 것은 기억하십시오.

다시 확인합니다.

mi-al.ru 파기 # 및 mi-al.ru 파기 -p 530 @localhost

이제 서버로 지정합니다. 로컬 호스트, /etc/tor/torrc.conf 파일에 지정된 대로 포트 번호를 씁니다.

다음 스크린샷에서 볼 수 있듯이 DNS 스푸핑 공격이 확인된 시스템에 대해 수행되고 있습니다.

4. 무차별 모드에서 네트워크 인터페이스 검색

로컬 네트워크에 무차별 모드의 장비가 있는 경우(특히 갑자기 나타난 경우) 이는 메시지 가로채기 공격을 명확하게 나타내지는 않지만 매우 의심스럽습니다.

이 모드에서 네트워크 카드를 사용하면 주소가 지정된 대상에 관계없이 모든 패킷을 수신할 수 있습니다.

정상 상태에서 이더넷 인터페이스는 링크 계층 패킷 필터링을 사용하며 수신 패킷의 대상 헤더에 있는 MAC 주소가 현재 네트워크 인터페이스의 MAC 주소와 일치하지 않고 브로드캐스트되지 않으면 패킷을 폐기합니다. 무차별 모드에서는 네트워크 인터페이스에 대한 필터링이 비활성화되고 현재 호스트로 향하지 않는 패킷을 포함하여 모든 패킷이 시스템에 허용됩니다.

대부분의 운영 체제에서 무차별 모드를 활성화하려면 관리자 권한이 필요합니다. 저것들. 네트워크 카드를 무차별 모드로 설정하는 것은 스니핑의 목적을 달성할 수 있는 의식적인 행위입니다.

무차별 모드에서 네트워크 인터페이스를 검색하기 위해 Ettercap 플러그인이 있습니다. search_promisc.

플러그인 시작 예:

sudo ettercap -TQP search_promisc ///

플러그인 작동은 완전히 신뢰할 수 없으며 네트워크 인터페이스 모드를 결정하는 데 오류가 있을 수 있습니다.

결론

일부 메시지 가로채기(man-in-the-middle) 공격 방법은 많은 흔적을 남기고 일부(예: 프록시에서 수동으로 자격 증명 찾기)는 탐지가 불가능하거나 거의 불가능합니다.

거의 항상 여러 가지 방법으로 원하는 결과를 얻을 수 있습니다. 이는 정보 보안 분야에도 적용됩니다. 때로는 목표를 달성하기 위해 무차별적으로 구멍을 찾고 스플로잇을 개발하거나 네트워크를 통해 전송되는 내용을 들을 수 있습니다. 후자의 옵션이 가장 좋은 경우가 많습니다. 그렇기 때문에 오늘 우리는 MITM 공격을 사용하여 네트워크 트래픽에서 중요한 정보를 포착하는 데 도움이 되는 도구에 대해 이야기할 것입니다.

MITMf

더 흥미로운 후보 중 하나부터 시작하겠습니다. 이것은 sergio-proxy 위에 구축된 중간자 공격을 위한 전체 프레임워크입니다. 최근에 Kali Linux에 포함되었습니다. 직접 설치하려면 저장소를 복제하고 몇 가지 명령을 실행하기만 하면 됩니다.

# setup.sh # pip install -r requirements.txt

플러그인으로 확장할 수 있는 아키텍처가 있습니다. 주요 내용은 다음과 같습니다.

  • 스푸핑 - ARP/DHCP 스푸핑, ICMP 리디렉션 및 DNS 쿼리 수정을 사용하여 트래픽을 리디렉션할 수 있습니다.
  • 스니퍼 - 이 플러그인은 다양한 프로토콜에 대한 로그인 시도를 모니터링합니다.
  • BeEFAutorun - OS 및 클라이언트 브라우저 유형에 따라 BeEF 모듈을 자동으로 실행할 수 있습니다.
  • AppCachePoison - 캐시 중독 공격을 수행합니다.
  • SessionHijacking - 세션을 가로채고 받은 쿠키를 firelis 프로필에 저장합니다.
  • BrowserProfiler - 브라우저에서 사용하는 플러그인 목록을 가져오려고 합니다.
  • FilePwn - Backdoor Factory 및 BDFProxy를 사용하여 HTTP를 통해 전송된 파일을 대체할 수 있습니다.
  • 주입 - HTML 페이지에 임의의 콘텐츠를 주입합니다.
  • jskeylogger - JavaScript 키로거를 클라이언트 페이지에 삽입합니다.

이 기능이 충분하지 않은 경우 적절한 확장을 구현하여 언제든지 고유한 기능을 추가할 수 있습니다.

퍼티 라이더

또 다른 주목할만한 유틸리티. 사실, 오늘날 고려되는 다른 모든 도구와 달리 매우 협소하게 전문화되어 있습니다. 프로젝트의 저자가 말했듯이 그는 침투 테스트 중에 가장 중요한 데이터가 SSH / Telnet / rlogin을 통해 연결된 관리자가 연결된 Linux / UNIX 서버에 있다는 사실에서 이러한 유틸리티를 만들도록 영감을 받았습니다. 그리고 대부분의 경우 관리자의 컴퓨터에 액세스하는 것이 대상 서버에 액세스하는 것보다 훨씬 쉬웠습니다. 시스템 관리자의 컴퓨터에 침투한 후에 남은 것은 PuTTY가 실행 중인지 확인하고 이 도구를 사용하여 공격자에 대한 역방향 브리지를 구축하는 것입니다.


이 유틸리티를 사용하면 관리자와 원격 서버(비밀번호 포함) 간의 "통신"을 스니핑할 수 있을 뿐만 아니라 주어진 세션 내에서 임의의 셸 명령을 실행할 수도 있습니다. 그리고 이 모든 것은 사용자(관리자)에게 절대적으로 투명하게 이루어집니다. PuTTY 프로세스의 구현 방법과 같은 기술적인 세부 사항에 관심이 있다면 저자의 프레젠테이션을 읽는 것이 좋습니다.


태어난 지 8년이 넘은 다소 오래된 유틸리티입니다. 쿠키를 훔쳐 세션을 복제하도록 설계되었습니다. 세션 하이재킹의 경우 호스트 탐지(개방형 무선 네트워크 또는 허브에 연결하는 경우) 및 ARP 포이즈닝 수행에 대한 기본 기술을 보유하고 있습니다. 유일한 문제는 8년 전과 달리 오늘날 Yahoo나 Facebook과 같은 거의 모든 대기업이 SSL 암호화를 사용하여 이 도구를 완전히 쓸모 없게 만든다는 것입니다. 그럼에도 불구하고 웹에는 SSL을 사용하지 않는 리소스가 여전히 충분하므로 유틸리티를 폐기하기에는 너무 이릅니다. 장점은 Firefox에 자동으로 통합되고 가로채는 각 세션에 대해 별도의 프로필을 생성한다는 사실입니다. 소스 코드는 리포지토리에서 사용할 수 있으며 다음 명령 시퀀스를 사용하여 직접 빌드할 수 있습니다.

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip 세션 도둑

프록시 퍼즈

ProzyFuzz는 MITM 공격과 직접적인 관련이 없습니다. 이름에서 짐작할 수 있듯이 이 도구는 퍼징용으로 설계되었습니다. 이것은 네트워크 트래픽 패킷의 내용을 무작위로 변경하는 파이썬으로 구현된 작은 비결정적 네트워크 fuzzer입니다. TCP 및 UDP 프로토콜을 지원합니다. 한쪽 면만 퍼지하도록 구성할 수 있습니다. 일부 네트워크 애플리케이션(또는 프로토콜)을 빠르게 테스트하고 PoC를 개발해야 할 때 유용합니다. 사용 예:

파이썬 프록시퍼즈 -l -아르 자형 -피

옵션 목록에는 다음이 포함됩니다.

  • w - 퍼징이 시작되기 전에 전송된 요청 수를 설정합니다.
  • c - 클라이언트만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • s - 서버만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • u - UDP 프로토콜(그렇지 않으면 TCP가 사용됨).

중간자

다양한 프로토콜에 대한 MITM 공격을 수행하기 위한 유틸리티인 DEF CON 컨퍼런스에서 발표되었습니다. 알파 버전은 HTTP 프로토콜을 지원했으며 무기고에 세 가지 멋진 플러그인이 있습니다.

  • plugin-beef.py - 로컬 네트워크에서 들어오는 모든 HTTP 요청에 BeEF(브라우저 공격 프레임워크)를 삽입합니다.
  • plugin-metasploit.py - 암호화되지 않은(HTTP) 요청에 삽입하여 Metasploit에서 브라우저 익스플로잇을 로드하는 IFRAME를 요청합니다.
  • plugin-keylogger.py - HTTPS를 통해 전송될 모든 텍스트 필드에 JavaScript onKeyPress 이벤트 핸들러를 삽입하여 전체 양식이 제출되기 전에 브라우저가 사용자의 비밀번호를 공격자의 서버에 문자별로 보내도록 합니다.

Middler는 네트워크 트래픽을 자동으로 분석하여 그 안에 있는 쿠키를 찾을 뿐만 아니라 클라이언트에게 독립적으로 요청합니다. 즉, 프로세스가 최대한 자동화됩니다. 이 프로그램은 액세스 권한이 있는 트래픽에 대해 컴퓨터 네트워크(또는 공용 핫스팟)에서 보호되지 않는 모든 계정의 수집을 보장합니다. 프로그램이 올바르게 작동하려면 Scapy, libpcap, readline, libdnet, python-netfilter 패키지가 시스템에 설치되어 있어야 합니다. 안타깝게도 리포지토리가 오랫동안 업데이트되지 않았으므로 새 기능을 직접 추가해야 합니다.

HTTP 트래픽을 대화식으로 검사하고 수정할 수 있는 콘솔 유틸리티입니다. 이러한 기술 덕분에 이 유틸리티는 침투 테스터/해커뿐만 아니라 웹 응용 프로그램을 디버깅하는 데 사용하는 일반 개발자도 사용합니다. 애플리케이션이 어떤 요청을 하고 어떤 응답을 받는지에 대한 자세한 정보를 얻는 데 사용할 수 있습니다. 또한 mitmproxy는 일부 REST API, 특히 제대로 문서화되지 않은 API의 작동 방식을 배우는 데 도움이 될 수 있습니다.

설치는 매우 간단합니다.

$ sudo 적성 설치 mitmproxy

$ pip 설치 mitmproxy

$ easy_install mitmproxy

mitmproxy를 사용하면 자체 서명된 인증서를 클라이언트에 발급하여 HTTPS 트래픽을 가로챌 수도 있습니다. 트래픽 가로채기 및 수정을 설정하는 방법에 대한 좋은 예를 찾을 수 있습니다.


인터셉터-NG

이 전설적인 악기가 우리 리뷰에 포함되지 않았다면 이상했을 것입니다. 사용해 본 적이 없더라도 아마도 들어 본 적이 있을 것입니다. (그리고 더 잘 알아야 합니다) - 그것은 잡지의 페이지에서 매우 일반적입니다. 나는 그 기능을 완전히 설명하지 않을 것입니다. 첫째, 우리는 MITM에 관심이 있고 둘째, 그러한 설명이 전체 기사를 차지할 것입니다.

계속 회원만 이용 가능

옵션 1. "사이트" 커뮤니티에 가입하여 사이트의 모든 자료를 읽으십시오.

지정된 기간 동안 커뮤니티에 가입하면 모든 Hacker 자료에 액세스할 수 있고 개인 누적 할인이 증가하며 전문적인 Xakep 점수 등급을 누적할 수 있습니다!

거의 항상 여러 가지 방법으로 원하는 결과를 얻을 수 있습니다. 이는 정보 보안 분야에도 적용됩니다. 때로는 목표를 달성하기 위해 무차별적으로 구멍을 찾고 스플로잇을 개발하거나 네트워크를 통해 전송되는 내용을 들을 수 있습니다. 후자의 옵션이 가장 좋은 경우가 많습니다. 그렇기 때문에 오늘 우리는 MITM 공격을 사용하여 네트워크 트래픽에서 중요한 정보를 포착하는 데 도움이 되는 도구에 대해 이야기할 것입니다.

MITMf

더 흥미로운 후보 중 하나부터 시작하겠습니다. 이것은 sergio-proxy 위에 구축된 메시지 가로채기(man-in-the-middle) 공격을 위한 전체 프레임워크입니다. 최근에 Kali Linux에 포함되었습니다. 직접 설치하려면 저장소를 복제하고 몇 가지 명령을 실행하기만 하면 됩니다.

# setup.sh # pip install -r requirements.txt

# pip install -r 요구 사항.txt

플러그인으로 확장할 수 있는 아키텍처가 있습니다. 주요 내용은 다음과 같습니다.

  • 스푸핑 - ARP/DHCP 스푸핑, ICMP 리디렉션 및 DNS 쿼리 수정을 사용하여 트래픽을 리디렉션할 수 있습니다.
  • 스니퍼 - 이 플러그인은 다양한 프로토콜에 대한 로그인 시도를 모니터링합니다.
  • BeEFAutorun - OS 및 클라이언트 브라우저 유형에 따라 BeEF 모듈을 자동으로 실행할 수 있습니다.
  • AppCachePoison - 캐시 중독 공격을 수행합니다.
  • SessionHijacking - 세션을 가로채고 받은 쿠키를 firelis 프로필에 저장합니다.
  • BrowserProfiler - 브라우저에서 사용하는 플러그인 목록을 가져오려고 합니다.
  • FilePwn - Backdoor Factory 및 BDFProxy를 사용하여 HTTP를 통해 전송된 파일을 대체할 수 있습니다.
  • 주입 - HTML 페이지에 임의의 콘텐츠를 주입합니다.
  • jskeylogger - JavaScript 키로거를 클라이언트 페이지에 삽입합니다.

이 기능이 충분하지 않은 경우 적절한 확장을 구현하여 언제든지 고유한 기능을 추가할 수 있습니다.

퍼티 라이더

또 다른 주목할만한 유틸리티. 사실, 오늘날 고려되는 다른 모든 도구와 달리 매우 협소하게 전문화되어 있습니다. 프로젝트의 저자가 말했듯이 그는 침투 테스트 중에 가장 중요한 데이터가 SSH / Telnet / rlogin을 통해 연결된 관리자가 연결된 Linux / UNIX 서버에 있다는 사실에서 이러한 유틸리티를 만들도록 영감을 받았습니다. 그리고 대부분의 경우 관리자의 컴퓨터에 액세스하는 것이 대상 서버에 액세스하는 것보다 훨씬 쉬웠습니다. 시스템 관리자의 컴퓨터에 침투한 후에 남은 것은 PuTTY가 실행 중인지 확인하고 이 도구를 사용하여 공격자에 대한 역방향 브리지를 구축하는 것입니다.

이 유틸리티를 사용하면 관리자와 원격 서버(비밀번호 포함) 간의 "통신"을 스니핑할 수 있을 뿐만 아니라 주어진 세션 내에서 임의의 셸 명령을 실행할 수도 있습니다. 그리고 이 모든 것은 사용자(관리자)에게 절대적으로 투명하게 발생합니다. PuTTY 프로세스의 구현 방법과 같은 기술적인 세부 사항에 관심이 있다면 저자의 프레젠테이션을 읽는 것이 좋습니다.

태어난 지 8년이 넘은 다소 오래된 유틸리티입니다. 쿠키를 훔쳐 세션을 복제하도록 설계되었습니다. 세션 하이재킹의 경우 호스트 탐지(개방형 무선 네트워크 또는 허브에 연결하는 경우) 및 ARP 포이즈닝 수행에 대한 기본 기술을 보유하고 있습니다. 유일한 문제는 8년 전과 달리 오늘날 Yahoo나 Facebook과 같은 거의 모든 대기업이 SSL 암호화를 사용하여 이 도구를 완전히 쓸모 없게 만든다는 것입니다. 그럼에도 불구하고 웹에는 SSL을 사용하지 않는 리소스가 여전히 충분하므로 유틸리티를 폐기하기에는 너무 이릅니다. 장점은 Firefox에 자동으로 통합되고 가로채는 각 세션에 대해 별도의 프로필을 생성한다는 사실입니다. 소스 코드는 리포지토리에서 사용할 수 있으며 다음 명령 시퀀스를 사용하여 직접 빌드할 수 있습니다.

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip 세션 도둑

# apt-get install 빌드 필수 libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

프록시 퍼즈

ProzyFuzz는 MITM 공격과 직접적인 관련이 없습니다. 이름에서 짐작할 수 있듯이 이 도구는 퍼징용으로 설계되었습니다. 이것은 네트워크 트래픽 패킷의 내용을 무작위로 변경하는 파이썬으로 구현된 작은 비결정적 네트워크 fuzzer입니다. TCP 및 UDP 프로토콜을 지원합니다. 한쪽 면만 퍼지하도록 구성할 수 있습니다. 일부 네트워크 애플리케이션(또는 프로토콜)을 빠르게 테스트하고 PoC를 개발해야 할 때 유용합니다. 사용 예:

파이썬 프록시퍼즈 -l -아르 자형 -피

파이썬 프록시퍼즈 -l -아르 자형 -피

옵션 목록에는 다음이 포함됩니다.

  • w - 퍼징이 시작되기 전에 전송된 요청 수를 설정합니다.
  • c - 클라이언트만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • s - 서버만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • u - UDP 프로토콜(그렇지 않으면 TCP가 사용됨).

중간자

다양한 프로토콜에 대한 MITM 공격을 수행하기 위한 유틸리티인 DEF CON 컨퍼런스에서 발표되었습니다. 알파 버전은 HTTP 프로토콜을 지원했으며 무기고에 세 가지 멋진 플러그인이 있습니다.

  • plugin-beef.py - 로컬 네트워크에서 들어오는 모든 HTTP 요청에 BeEF(브라우저 공격 프레임워크)를 삽입합니다.
  • plugin-metasploit.py - 암호화되지 않은(HTTP) 요청에 삽입하여 Metasploit에서 브라우저 익스플로잇을 로드하는 IFRAME를 요청합니다.
  • plugin-keylogger.py - HTTPS를 통해 전송될 모든 텍스트 필드에 JavaScript onKeyPress 이벤트 핸들러를 삽입하여 전체 양식이 제출되기 전에 브라우저가 사용자의 비밀번호를 공격자의 서버에 문자별로 보내도록 합니다.

Middler는 네트워크 트래픽을 자동으로 분석하여 그 안에 있는 쿠키를 찾을 뿐만 아니라 클라이언트에게 독립적으로 요청합니다. 즉, 프로세스가 최대한 자동화됩니다. 이 프로그램은 액세스 권한이 있는 트래픽에 대해 컴퓨터 네트워크(또는 공용 핫스팟)에서 보호되지 않는 모든 계정의 수집을 보장합니다. 프로그램이 올바르게 작동하려면 Scapy, libpcap, readline, libdnet, python-netfilter 패키지가 시스템에 설치되어 있어야 합니다. 안타깝게도 리포지토리가 오랫동안 업데이트되지 않았으므로 새 기능을 직접 추가해야 합니다.

HTTP 트래픽을 대화식으로 검사하고 수정할 수 있는 콘솔 유틸리티입니다. 이러한 기술 덕분에 이 유틸리티는 침투 테스터/해커뿐만 아니라 웹 응용 프로그램을 디버깅하는 데 사용하는 일반 개발자도 사용합니다. 애플리케이션이 어떤 요청을 하고 어떤 응답을 받는지에 대한 자세한 정보를 얻는 데 사용할 수 있습니다. 또한 mitmproxy는 일부 REST API, 특히 제대로 문서화되지 않은 API의 작동 방식을 배우는 데 도움이 될 수 있습니다.

설치는 매우 간단합니다.

$ sudo 적성 설치 mitmproxy

mitmproxy를 사용하면 자체 서명된 인증서를 클라이언트에 발급하여 HTTPS 트래픽을 가로챌 수도 있습니다. 트래픽 가로채기 및 수정을 설정하는 방법에 대한 좋은 예를 찾을 수 있습니다.

디스니프

음, 이 유틸리티는 일반적으로 듣자마자 가장 먼저 생각해야 할 것 중 하나입니다.
"MITM 공격". 이 도구는 꽤 오래되었지만 계속해서 활발하게 업데이트되고 있습니다. 이는 좋은 소식입니다. 기능에 대해 자세히 이야기하는 것은 의미가 없으며 14년 동안 네트워크에서 두 번 이상 다루어졌습니다. 예를 들어 다음과 같은 가이드에서:

또는 당사 웹사이트의 지침:

마지막으로..

평소와 같이 모든 유틸리티를 고려하지 않고 가장 인기 있는 유틸리티만 고려했습니다. 언젠가는 이야기할 수 있는 잘 알려지지 않은 프로젝트가 많이 있습니다. 보시다시피 MITM 공격을 수행하는 도구는 부족하지 않으며 자주 발생하지 않는 멋진 도구 중 하나가 Windows에서 구현됩니다. nix 시스템에 대해서는 할 말이 없습니다. 따라서 항상 올바른 하이재킹 도구를 찾을 수 있다고 생각합니다.
다른 사람의 자격 증명. 죄송합니다. 즉, 테스트 목적입니다.

TCP 세션을 시작하는 프로세스는 세 단계로 구성됩니다. 클라이언트는 SYN 플래그가 있는 패킷을 서버에 보냅니다. 클라이언트로부터 SYN 플래그가 있는 패킷을 수신한 서버는 응답으로 SYN+ACK 플래그가 있는 패킷을 보내고 ESTABLISHED 상태로 전환합니다. 클라이언트는 서버로부터 올바른 응답을 받은 후 ACK 플래그가 포함된 패킷을 보내고 ESTABLISHED 상태가 됩니다.

금지 목록

특정 작업에 대한 권한이 없는 클라이언트 목록입니다. 금지 목록의 도움으로 DDoS 공격이 감지되면 일반적으로 봇의 기능이 제한됩니다. 또한 게임 서버의 현실에서 이 목록에는 평판이 좋지 않거나 치트 코드를 사용하거나 불법적인 행위를 하는 플레이어가 포함됩니다.

"실제" 트래픽으로 DDoS 공격을 수행하는 데 사용되는 컴퓨터입니다. 대부분의 경우 이것은 바이러스에 감염된 일반 사용자의 컴퓨터입니다. 종종 사용자는 자신의 컴퓨터가 감염되어 불법적인 용도로 사용되고 있다는 사실을 알아차리지 못합니다.

웹 서버

클라이언트(일반적으로 웹 브라우저)의 HTTP 요청을 수락하고 HTTP 응답을 제공하는 네트워크의 컴퓨터입니다. 일반적으로 웹 서버는 HTTP 응답과 함께 HTML 페이지, 이미지, 미디어 스트림 또는 기타 데이터로 응답합니다.

웹 서비스

웹 서비스는 인터넷에서 제공되는 서비스입니다. 이 용어를 사용하면 검색, 웹 메일, 문서 저장, 파일, 책갈피 등을 의미할 수 있으며 일반적으로 웹 서비스는 컴퓨터, 브라우저 또는 인터넷 접속 위치에 관계없이 사용할 수 있습니다.

도메인

"도메인"이라는 개념은 네트워크 기술과 관련하여 다양한 상황에서 사용될 수 있습니다. 대부분 도메인 아래에서 사이트의 도메인 이름을 의미합니다. 도메인은 여러 수준으로 나뉩니다. 예를 들어 example.com에서 com은 첫 번째 수준 도메인이고 example은 두 번째 수준 도메인입니다. 의사 소통의 용이성을 위해 사람들은 "하위 도메인"이라는 용어를 사용하여 두 수준보다 큰 도메인을 의미합니다. 예를 들어 mail.example.com 도메인에서 메일은 하위 도메인입니다.

검색 로봇

인터넷에서 새로운 페이지를 발견하고 기존 페이지를 변경하기 위한 검색 엔진 서비스. 작동 원리는 브라우저와 유사합니다. 그것은 페이지의 내용을 분석하고 그것이 속한 검색 엔진의 서버에 어떤 특별한 형식으로 저장하고 다음 페이지에 대한 링크로 보냅니다.

대역폭

단위 시간당 전송 가능한 최대 데이터 양입니다. 종종 인터넷에 대한 고속 액세스를 약속하는 인터넷 제공 업체는 약속을 이행하지 않습니다. 대부분의 경우 이는 전체 대역폭 사용 때문입니다.

이 기사에서는 메시지 가로채기(man-in-middle) 공격의 이론과 이러한 유형의 공격을 방지하는 데 도움이 되는 몇 가지 실용적인 사항을 알아 내려고 노력할 것입니다. MitM 공격을 통해 통신에 침입하고 대화를 들을 수 있으므로 이러한 침입이 개인 정보에 미치는 위험을 이해하는 데 도움이 됩니다.

인터넷 작동 방식 이해

메시지 가로채기 공격을 이해하려면 먼저 인터넷 자체가 어떻게 작동하는지 이해해야 합니다. 상호 작용의 주요 지점: 클라이언트, 라우터, 서버. 클라이언트와 서버 간의 가장 일반적인 통신 프로토콜은 HTTP(Hypertext Transfer Protocol)입니다. 브라우저를 통한 웹 서핑, 이메일, 인스턴트 메시징 - 모두 HTTP를 통해 이루어집니다.

브라우저의 주소 표시줄에 입력하면 클라이언트(귀하)는 웹 페이지를 표시하라는 요청을 서버에 보냅니다. 패킷(HTTP GET 요청)은 여러 라우터를 통해 서버로 전송됩니다. 그런 다음 서버는 클라이언트로 전송되어 모니터에 표시되는 웹 페이지로 응답합니다. HTTP 메시지는 기밀성과 익명성을 보장하기 위해 보안 모드에서 전송되어야 합니다.

그림 1. 클라이언트-서버 상호작용

통신 프로토콜 보안

보안 통신 프로토콜에는 다음 속성이 각각 있어야 합니다.

  1. 은둔- 지정된 수신자만 메시지를 읽을 수 있습니다.
  2. 확실성- 상호 작용 당사자의 신원이 입증됩니다.
  3. 진실성- 메시지가 전송 중에 수정되지 않았는지 확인합니다.

이러한 규칙 중 하나라도 따르지 않으면 전체 프로토콜이 손상됩니다.

HTTP 프로토콜을 통한 메시지 가로채기 공격

공격자는 ARP 스푸핑이라는 기술을 사용하여 중간자 공격을 쉽게 수행할 수 있습니다. Wi-Fi 네트워크에 있는 모든 사람이 가짜 ARP 패킷을 보낼 수 있으므로 자신도 모르게 라우터 대신 공격자를 통해 모든 트래픽을 보낼 수 있습니다.

그 후 공격자는 트래픽을 완전히 제어하고 양방향으로 전송된 요청을 모니터링할 수 있습니다.

그림 2. 중간자 공격 방식


이러한 공격을 방지하기 위해 보안 버전의 HTTP 프로토콜이 생성되었습니다. TLS(전송 계층 보안) 및 그 이전 버전인 SSL(Secure Socket Layer)은 네트워크를 통해 보안 통신을 제공하는 암호화 프로토콜입니다. 따라서 보안 프로토콜을 HTTPS라고 합니다. 브라우저의 주소 표시줄에 입력하여 보안 프로토콜이 어떻게 작동하는지 확인할 수 있습니다(https의 S 참고).

제대로 구현되지 않은 SSL에 대한 메시지 가로채기 공격

최신 SSL은 우수한 암호화 알고리즘을 사용하지만 올바르게 구현되지 않아도 문제가 되지 않습니다. 해커가 요청을 가로챌 수 있는 경우 요청된 URL에서 "S"를 제거하여 SSL을 우회하여 변경할 수 있습니다.

이러한 요청 가로채기 및 수정을 알 수 있습니다. 예를 들어 https://login.yahoo.com/ 을 요청하고 응답이 http://login.yahoo.com/ 인 경우 이는 의심을 불러일으킬 것입니다. 글을 쓰는 시점에서 이러한 공격은 실제로 Yahoo 이메일 서비스에서 작동합니다.

그림 3. 요청 가로채기 및 수정


이러한 공격을 방지하기 위해 서버는 HTTPS 프로토콜을 통해 강제 보안 연결을 적용하는 메커니즘인 HSTS(HTTP Strict Transport Security)를 구현할 수 있습니다. 이 경우 공격자가 URL에서 "S"를 제거하여 요청을 수정하면 서버는 여전히 302 리디렉션을 사용하여 사용자를 보안 프로토콜이 있는 페이지로 리디렉션합니다.

그림 4. HSTS 운영 계획


SSL을 구현하는 이 방법은 다른 유형의 공격에 취약합니다. 공격자는 서버에 SSL 연결을 생성하지만 사용자가 HTTP를 사용하도록 속입니다.

그림 5. HSTS에 대한 공격 체계


이러한 공격을 방지하기 위해 Chrome, Firefox 및 Tor와 같은 최신 브라우저는 HSTS를 사용하는 사이트를 모니터링하고 클라이언트 측 SSL 연결을 적용합니다. 이 경우 메시지 가로채기(man-in-the-middle) 공격을 수행하는 공격자는 피해자와 SSL 연결을 생성해야 합니다.

그림 6. 공격자가 피해자와 SSL 연결을 설정하는 공격 계획


사용자에 대한 SLL 연결을 보호하기 위해 공격자는 서버 역할을 하는 방법을 알아야 합니다. SSL의 기술적 측면을 이해합시다.

SSL 이해

해커의 관점에서 통신 프로토콜을 손상시키는 것은 위에 나열된 구성 요소(프라이버시, 신뢰성 및 무결성) 간의 약한 링크를 찾는 것으로 귀결됩니다.

SSL은 비대칭 암호화 알고리즘을 사용합니다. 대칭 암호화에서 문제는 동일한 키가 데이터를 암호화하고 해독하는 데 사용된다는 것입니다. 공격자가 이 키를 추적할 수 있기 때문에 이 접근 방식은 인터넷 프로토콜에 적합하지 않습니다.

반면 비대칭 암호화는 암호화에 사용되는 공개 키와 데이터를 복호화하는 데 사용되는 개인 키라는 양쪽에 2개의 키를 포함합니다.

그림 7. 공개 키와 개인 키의 작업

SSL은 보안 통신에 필요한 세 가지 속성을 어떻게 제공합니까?

  1. 비대칭 암호화가 데이터를 암호화하는 데 사용되기 때문에 SSL은 개인 연결을 제공합니다. 이 암호화는 깨지기 쉽고 눈에 띄지 않습니다.
  2. 서버는 신뢰할 수 있는 제3자인 인증 기관에서 발급한 SSL 인증서를 클라이언트에 전송하여 서버의 적법성을 증명합니다.

공격자가 어떻게든 인증서를 확보할 수 있다면 메시지 가로채기(man-in-the-middle) 공격의 조건을 만들 수 있습니다. 따라서 서버 및 피해자와 2개의 연결이 생성됩니다. 이 경우 서버는 공격자가 정상적인 클라이언트라고 생각하고 피해자는 자신이 서버임을 증명하는 인증서를 제공했기 때문에 공격자를 식별할 방법이 없습니다.

귀하의 메시지는 암호화된 형태로 도달 및 도착하지만 사이버 범죄자의 컴퓨터를 통해 사슬을 따라 전달되어 사이버 범죄자가 완전히 제어할 수 있습니다.

그림 8. 공격자가 인증서를 가지고 있는 경우 공격 방식


공격자가 피해자의 브라우저를 손상시킬 수 있는 경우 인증서를 위조할 필요가 없습니다. 이 경우 기본적으로 신뢰할 수 있는 자체 서명된 인증서를 삽입할 수 있습니다. 이것이 대부분의 메시지 가로채기 공격이 구현되는 방식입니다. 더 복잡한 경우 해커는 다른 방법으로 인증서를 위조해야 합니다.

인증 기관의 문제

서버에서 보낸 인증서는 인증 기관에서 발급하고 서명합니다. 각 브라우저에는 신뢰할 수 있는 CA 목록이 있으며 이를 추가하거나 제거할 수 있습니다. 여기서 문제는 큰 기관을 제거하기로 결정하면 이러한 기관에서 서명한 인증서를 사용하는 사이트를 방문할 수 없다는 것입니다.

인증서와 CA는 항상 HTTPS 연결에서 가장 약한 링크였습니다. 모든 것이 올바르게 구현되고 각 인증 기관이 강력한 권한을 가지고 있다고 해도 많은 제3자를 믿어야 한다는 사실을 받아들이기는 여전히 어렵습니다.

오늘날 650개 이상의 조직에서 인증서를 발급할 수 있습니다. 공격자가 그 중 하나를 해킹하면 원하는 인증서를 얻을 수 있습니다.

인증기관인 베리사인(VeriSign)이 하나뿐이었을 때도 문제가 있었다. 가로채기(man-in-the-middle) 공격을 막아야 할 사람들이 가로채기 서비스를 팔고 있었다는 것이다.

또한 인증 기관을 해킹하여 많은 인증서가 생성되었습니다. 공격을 받은 사용자가 사기성 인증서를 신뢰하도록 하기 위해 다양한 기술과 트릭이 사용되었습니다.

범죄학

공격자는 가짜 ARP 패킷을 보내기 때문에 그의 IP 주소를 볼 수 없습니다. 대신 네트워크의 각 장치에 고유한 MAC 주소에 주의를 기울여야 합니다. 라우터의 MAC 주소를 알고 있으면 기본 게이트웨이의 MAC 주소와 비교하여 실제로 라우터인지 침입자인지 확인할 수 있습니다.

예를 들어 Windows에서는 명령줄(CMD)에서 ipconfig 명령을 사용하여 기본 게이트웨이(마지막 줄)의 IP 주소를 볼 수 있습니다.

그림 9 ipconfig 명령 사용


그런 다음 arp -a 명령을 사용하여 이 게이트웨이의 MAC 주소를 찾습니다.

그림 10. arp –a 명령 사용


그러나 공격을 알아차릴 수 있는 또 다른 방법이 있습니다. 공격이 시작될 때 네트워크 활동을 모니터링하고 ARP 패킷을 관찰하는 경우입니다. 예를 들어, 이 용도로 Wireshark를 사용할 수 있습니다. 이 프로그램은 기본 게이트웨이의 MAC 주소가 변경된 경우 알려줍니다.

참고: 공격자가 MAC 주소를 올바르게 스푸핑하면 그를 추적하는 것이 큰 문제가 됩니다.

결론

SSL은 공격자가 공격을 수행하기 위해 많은 작업을 수행하도록 하는 프로토콜입니다. 그러나 정부가 후원하는 공격이나 자격을 갖춘 해커 조직으로부터 사용자를 보호하지는 못합니다.

사용자의 임무는 가짜 인증서(매우 일반적인 기술)의 삽입을 방지하기 위해 브라우저와 컴퓨터를 보호하는 것입니다. 또한 신뢰할 수 있는 인증서 목록에 주의를 기울이고 신뢰할 수 없는 인증서를 제거해야 합니다.