Linux에서 bettercap을 사용하여 HTTPS 트래픽을 해독하는 방법

XNUMXD덴탈의 HTTPS 프로토콜 (Hypertext Transfer Protocol Secure)을 사용하면 웹 브라우저가 웹 브라우저에서 연결중인 웹 서버로 지점 간 암호화 및 인증 된 보안 통신을 설정하므로 인터넷을 안전하게 탐색 할 수 있습니다. HTTPS는 HTTP의 보안 버전입니다., HTTP에서는 모든 정보가 암호화없이 전송되기 때문에 누군가가 통신을 가로 채면 암호를 포함하여 보내고 / 또는받는 모든 것을 절대적으로 볼 수 있습니다. 오늘이 기사에서 우리는 네트워크 트래픽을 캡처하기위한 중간자 공격HTTPS 트래픽을 해독하려면 널리 사용되는 bettercap 도구를 사용하여 HTTP / HTTPS 프록시 구성 Linux.

Linux에서 bettercap으로 HTTPS 트래픽 복호화

HTTPS 란 무엇이며 그 용도는 무엇입니까?

현재이 기사, 은행 웹 사이트, 일반 전자 상거래 및 긴 등 대부분의 웹 사이트는 고객에게 보안을 제공하기 위해 HTTPS 프로토콜을 가지고 있습니다. HTTPS는 HTTP의 보안 버전입니다. , 모든 통신이 암호화되고 지점 간 인증되며 모든 데이터의 무결성도 확인됩니다. 우리는 암호화가 우리에게 제공한다는 것을 기억해야합니다. 기밀 유지 즉, 누군가가 데이터 트래픽을 캡처하더라도 모든 것이 점대 점으로 암호화되어 있기 때문에이를 해독 할 수 없습니다. 그러나 통신의 "중간"에 들어가 해당 트래픽을 해독하는 기술이 있습니다. 인증 즉, 우리가 웹 서버와 통신을 설정하고 제 XNUMX자가 우리를 가장하여 정보가 그들에게도 전송되도록 할 수 없다는 것을 의미합니다. 드디어, 보전 이는 암호화의 매우 중요한 특성입니다.이를 통해 출발지에서 출발하는 모든 데이터가 어떠한 수정없이 목적지에 도달하는지 확인할 수 있습니다. 누군가가 데이터 통신을 방해하고 수정할 수있는 경우 HTTPS 프로토콜 (및 참여하는 모든 프로토콜)이이를 자동으로 감지하고 해당 데이터를 수락하지 않습니다.

HTTPS는 TLS 프로토콜을 사용하여 통신에 보안을 제공하며 대부분의 HTTPS 연결은 TLSv1.2 및 TLSv1.3 , 후자의 프로토콜은 TLSv1.2보다 훨씬 빠르고 안전합니다. 특정 보안 암호화 제품군 만 지원하므로 TLSv1.2 에서처럼 덜 안전한 암호화 제품군의 통합을 허용하지 않습니다. 물론 TLS를 사용할 때 아래에서는 기본적으로 포트 443에서 널리 사용되는 전송 계층 프로토콜 TCP를 사용합니다. HTTP의 경우 TCP는 기본적으로 포트 80에서 직접 사용됩니다. 이것은 곧 설명 할 내용을 아는 데 매우 중요합니다.

Bettercap 기능 및 설치

Bettercap은 주요 Linux 기반 배포판과 호환되는 매우 강력한 도구이며 주요 기능 중 일부는 다음과 같습니다.

  • WiFi 네트워크 스캐너는 인증 해제 공격을 허용하고 클라이언트없이 PMKID 연결에 대한 공격을 허용하며 WPA 및 WPA2 프로토콜을 사용하는 클라이언트의 핸드 셰이크 캡처를 허용합니다.
  • 정보를 읽고 쓰기위한 BLE (Bluetooth Low Energy) 장치 스캐너.
  • 무선 마우스와 같이 2.4GHz 대역을 사용하는 무선 장치의 스캐너도 데이터 주입을 통한 MouseJacking 공격을 허용합니다.
  • IP 네트워크에 대한 수동 및 능동 공격 허용
  • 모든 정보를 캡처하기 위해 ARP, DNS 및 DHCPv6을 기반으로 MitM 공격을 수행 할 수 있습니다.
  • HTTP / HTTPS 프록시를 생성하여 보안 HTTPS 트래픽을 해제 할 수 있으며 스크립트 사용을 크게 촉진합니다.
  • 사용자 자격 증명을 수집하기위한 매우 강력한 네트워크 스니퍼.
  • 매우 빠른 포트 스캐너이지만이를 위해 포트 스캐너의 왕보다 Nmap을 사용하는 것이 좋습니다.
  • 공격을 쉽게 할 수있는 강력한 REST API가 있습니다.
  • 명령 터미널은 매우 강력하지만 공격을 용이하게하기 위해 그래픽 사용자 인터페이스를 통합합니다.
  • 기능을 확장하기 위해 다양한 범주의 모듈이 많이 있습니다.

컴퓨터 보안을 지향하는 Linux 배포판에서는 bettercap이 기본적으로 설치 될 수 있습니다. 그렇지 않으면 모든 종속성과 함께 직접 설치해야합니다. Bettercap을 사용하는 가장 쉬운 방법은 Docker 소프트웨어 저장소에 있으므로 Docker (버전 17.05 이상)를 사용하는 것입니다.

docker pull bettercap/bettercap docker pull bettercap/dev

그리고 다음과 같이 실행합니다.

docker run -it --privileged --net=host bettercap/bettercap -h

Docker가없는 경우 소스 코드에서 컴파일해야하며 다음 종속성이 필요합니다.

  • 건설 필수
  • libpcap-dev
  • libusb-1.0-0-dev
  • libnetfilter-queue-dev

예를 들어 Debian 기반 운영 체제에서는 다음과 같이 설치됩니다.

sudo apt update

sudo apt 설치 golang git 빌드 필수 libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev

나중에 소스 코드를 다운로드하고 컴파일해야합니다.

git clone https://github.com/bettercap/bettercap

CD 베터캡

빌드하다

이 Bettercap 도구를 설치하면 사용을 시작할 수 있고«bettercap»콘솔을 통해 실행하여 버전을 볼 수 있습니다.

시작하기 전에 그래픽 사용자 인터페이스 웹 UI로 Bettercap을 실행할 수도 있습니다. 이렇게하려면 다음 명령을 실행해야합니다.

bettercap -eval "caplets.update; ui.update; q"

그리고 그래픽 환경을 시작하기 위해 다음을 수행합니다.

sudo bettercap -caplet http-ui

웹 브라우저를 열고 http://127.0.0.1을 입력하면 그래픽 사용자 인터페이스에 액세스 할 수 있습니다.

bettercap 웹 UI 사용자 이름은 "user"이고 암호는 구성 파일에 표시되는 "pass"입니다.

브라우저를 통해 bettercap 관리 메뉴에 액세스하면 다음 메뉴를 볼 수 있습니다.

그래픽 사용자 인터페이스에서 직접 실행할 수있는 공격이 많이 있지만, 거의 비슷하기 때문에 명령으로 입력 할 것입니다. 그러나 그래픽을 통해 특정 공격을 수행하는 방법도 알려 드릴 것입니다. 사용자 인터페이스.

따라서 HTTPS 통신을 해독 할 수 있습니다.

모든 테스트를 수행 한 테스트 시나리오는 서브넷이 192.168.248.0/24이고 기본 게이트웨이가 192.168.248.2 인 NAT 환경의 VMware에있는 두 개의 VM입니다.

  • 공격 시스템 : IP 192.168.248.131의 Kali Linux
  • 피해자 컴퓨터 : IP 192.168.248.129의 데비안

가장 먼저 할 일은 일반적인 ARP Spoofing 공격을 실행하여 모든 트래픽을 캡처하는 것입니다. HTTPS 트래픽은 암호화되며 해독 할 수 없습니다. 또한 ICMP 트래픽, TCP 및 UDP 트래픽, HTTP 트래픽도 캡처합니다. 이를 수행하려면 다음 명령을 실행하기 만하면됩니다.

sudo bettercap

bettercap에 들어가면 소프트웨어를 구성하기 위해 몇 가지 명령을 실행해야합니다. 가장 먼저해야 할 일은 대상을 정의하는 것입니다. 여기서는 IP가 192.168.248.129 인 데비안 머신입니다. 기본 게이트웨이도 넣을 필요는 없습니다.

set arp.spoof.targets 192.168.248.129

arp.spoof 켜기

"help"명령을 실행하면 bettercap은 작동중인 모든 것을 알려줍니다.

흥미로운 부분은 "help arp.spoof"를 실행하면이 모듈에서 사용할 수있는 모든 옵션이 나타날 것입니다. 가장 흥미로운 옵션 중 하나는 "arp.spoof.fullduplex"입니다.이 옵션을 사용하면 대상과 기본 게이트웨이 (게이트웨이) 모두에 ARP 스푸핑을 허용하지만 라우터에 ARP 스푸핑 공격에 대한 보호 기능이 있으면 공격이 실패합니다. 항상 활성화하는 것이 좋습니다. 따라서 명령 목록은 다음과 같습니다.

set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on

이 작업이 완료되면 Kali Linux에서 Wireshark를 실행하여 eth0 인터페이스의 모든 패킷을 캡처하면 피해자와주고받는 모든 트래픽을 볼 수 있습니다. 보시다시피 ICMP 트래픽은 192.168.248.129, 즉 우리가 공격하는 데비안 팀입니다.

우리는 또한 모든 DNS, TCP, UDP 및 암호화 된 트래픽을 포함한 모든 프로토콜 트래픽이 있지만 ARP 스푸핑만으로는 해독 할 수 없습니다.

그래픽 환경을 통해 더 나은 성능을 얻으면 동일한 작업을 수행 할 수 있으며 기본 게이트웨이에 대한 ARP 스푸핑을 수행하도록 선택할 수도 있습니다.

그래픽 인터페이스를 통해이 공격을 수행하려면 LAN으로 이동하여 대상을 선택하고 "arp.spoof.targets"에 추가 한 다음 "전이중 스푸핑"을 클릭합니다. 로컬 네트워크에서 사용 가능한 장비 목록이 표시됩니다. 표시되지 않으면 정찰 모듈에서«Play»아이콘을 클릭합니다.

일반적인 ARP 스푸핑 공격을 수행하는 방법을 알게되면 이제 동일한 작업을 수행하지만 ssltrip이 활성화 된 HTTP 프록시를 활성화하여 모든 HTTPS 통신을 해제합니다.

평소처럼 Kali Linux에서 bettercap을 실행합니다.

bettercap

내부에 들어가면 다음과 같은 방식으로 bettercap을 구성해야합니다.

set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on
http.proxy on
net.sniff on

이 작업을 수행 한 후 피해자가 HTTPS가있는 사이트를 방문하면 자동으로 HTTP로 변환되며 사용자 자격 증명을 캡처 할 수 있습니다. 아래에서 pccomponentes에 로그인을 시도한 방법을 완벽하게 볼 수 있으며 두 사용자 이름 (이메일) 및 암호. 논리적으로, 우리는 우리의 것을 보여주지 않기 위해 잘못된 자격 증명을 도입했습니다. 이러한 이유로 401 오류를 반환합니다.

다른 웹 사이트를 탐색하면 모든 트래픽도 볼 수 있습니다.

웹에 HSTS (HTTP Strict Transport 보안)가 활성화되면 HTTPS 트래픽을 "리프트"할 수 없으므로 모든 트래픽이 암호화됩니다.

HSTS 란 무엇이며 용도는 무엇입니까?

보시다시피 HTTPS 통신의 암호 해독은 매우 간단하지만 항상 가능한 것은 아닙니다. 현재 많은 웹 사이트에서 HSTS 프로토콜을 사용하여 사용자의 통신을 더욱 안전하게 보호합니다. HSTS (HTTP Strict Transport Security라고도 함)는 쿠키 사용 덕분에 방금 알려 드린 것과 동일한 공격을 방지하는 웹 보안 정책입니다. 웹 서버는 웹 브라우저가 반환 될 때마다이를 "알립니다". 귀하의 웹 사이트에 액세스하려면 HTTPS 프로토콜을 사용하여 통신이 지점 간 암호화되도록하고 트래픽을 스니핑하여 통신을 가로 채더라도 더 나은 캡을 사용하여 TLS를 "리프트"할 수 없기 때문에 교환 된 트래픽을 볼 수 없습니다. 암호화. 이러한 쿠키에는 만료 날짜가 있지만 좋은 구성 정책 (웹 서버용)은 매우 높은 값 (예 : 31536000 년 (max-age = XNUMX))을 설정하는 것입니다.

HSTS의 작동은 매우 간단합니다. 기본적으로 특정 HSTS 쿠키를 통합하는 일부 웹 브라우저가 있습니다. 특히 Google과 같은 인터넷의 "큰 쿠키"는 HSTS "사전로드"목록에 도메인이 있습니다. HTTP 프로토콜을 통해 이러한 도메인에 액세스 할 수 없습니다. 브라우저가이 도메인에 HTTPS를 통해 액세스 할 수 없음을 감지하면 연결을 거부하고 연결할 수 없습니다. 브라우저가 서버의 디지털 인증서가 자체 서명 된 것을 감지하면 연결도 거부하고 연결할 수 없습니다. 실제로 시크릿 모드에 액세스하더라도 연결할 수 없습니다. 현재의 모든 브라우저는 일반적으로 사용자를 보호하기 위해이 목록을 통합합니다.

전자 상거래 웹 사이트, 은행, 미디어 및 기타 여러 사이트와 같은 "나머지 인터넷"의 경우 HSTS 쿠키가 웹 브라우저에 다운로드되고 이러한 보호를받을 수 있도록 최소한 한 번 입력해야합니다. . 이 경우 두 번째부터 브라우저가 해당 도메인에 HTTPS를 통해 액세스 할 수 없음을 감지하면 연결을 거부하고 연결할 때 오류가 발생합니다. 또한 브라우저가 서버의 디지털 인증서가 자체 서명되었음을 감지하면 연결도 거부되고 연결할 수 없습니다. 어떤 이유로 든이 웹 사이트에 액세스하려면 이전에 한 번도 액세스 한 적이없는 다른 웹 브라우저를 사용해야하지만 공격을받을 수 있으므로 권장하지 않습니다. 웹에 연결하지 않는 것이 좋습니다.

사용자에 대한 공격을 수행하고 사용자가 HSTS를 사용하여 웹 사이트에 들어가면 연결이 해독 될 수있는 유일한 시간은 사용자의 첫 번째 이전 연결 이전입니다 (새 브라우저, 새로 포맷 된 컴퓨터이기 때문에 절대로 피해자 사용자가 새 노트북을 구입하고 호텔에 가서 새로 설치된 브라우저를 사용하여 은행에 처음으로 연결한다고 가정 해 보겠습니다.이 경우에는 여전히 그렇지 않기 때문에 공격 할 수 있습니다. 웹 브라우저에 HSTS 쿠키가 있습니다. 이를 방지하기 위해 웹 서버에 "preload"지시문이 있지만 HSTS Preload 목록에 등록해야하기 때문에 신중하게 사용해야합니다. 그렇지 않으면 사용자가 연결하는 데 문제가 있습니다.

보시다시피 HSTS 정책은 수동 및 능동 공격으로부터 웹 사이트 사용자를 보호하는 데 도움이됩니다.이 보안 조치는 MitM 공격자가 요청을 가로 챌 수있는 최소한의 용량을 갖기 때문에 웹 서버에서 구성해야하는 가장 중요한 것 중 하나입니다. 피해자와 웹 서버 간의 응답.

Bettercap은 우리가 HSTS 하이 잭 공격 이 보호를 우회하는 것은 DNS 스푸핑을 수행하고 피해자를 우리가 제어하는 ​​다른 도메인으로 전달하여 나중에 모든 정보를 캡처하는 것을 기반으로합니다. 캐 플릿은 미리 구성된 Bettercap 스크립트이지만 쉽게 수정할 수 있으므로 다운로드하려면 Linux 터미널에서 다음 명령을 실행해야합니다.

git clone https://github.com/bettercap/caplets.git

CD 캐 플릿

sudo make install

완료되면 다음을 입력하여 실행합니다.

bettercap -caplet RUTA

다음 스크린 샷에서 기본 캐 플릿의 실행을 볼 수 있습니다.

그리고 여기에 수행 된 공격 기록이 있습니다.

우리는 당신이 방문하는 것이 좋습니다 공식 Bettercap 웹 사이트 이 훌륭한 도구에 대한 모든 정보를 찾을 수 있습니다.