Материалы в этой статье предназначены только для образовательных целей. Атаки на устройство/программу/систему без разрешения ответственного/владельца устройства/программы/системы могут наказываться согласно статьям соответствующего Законодательства. Будьте осторожны, внимательны и ответственны! :) Сетевая разведкаДавайте представим, что мы подключились к произвольной сети и ничего не знаем об этой сети и других устройствах, подключенных к сети. Наша цель — собрать как можно больше информации о структуре сети и подключенных к сети устройствах, которые мы в дальнейшем будем использовать для проведения атак. ............................................................................................................................................. В настоящее время мы проводим тестирование сетевой безопасности компании **3.14ZDEC LLC**. Мы подключились к сети, и на следующем этапе нам нужно провести разведку сети и подключенных к сети устройств. Для начала давайте выясним, какой диапазон IP используется в сети.В основном при подключении к сети наш компьютер получает IP-данные от DHCP-сервера в сети (часто DHCP-сервер работает на самом роутере). Эти данные представляют собой IP-адрес, назначенный нашему компьютеру, IP-адрес шлюза, маску подсети и IP-адрес DNS-сервера. Чтобы узнать наш локальный IP-адрес и маску подсети, мы выполним ifconfig или в новых дистрибутивах Linux с помощью команды ip a lzt@kali:~$ ifconfig wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.88 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe10:6c31 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:80:61:ff txqueuelen 1000 (Ethernet) RX packets 354 bytes 466840 (455.8 KiB) RX errors 0 dropped 8 overruns 0 frame 0 TX packets 229 bytes 17076 (16.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Code lzt@kali:~$ ifconfig wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.88 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe10:6c31 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:80:61:ff txqueuelen 1000 (Ethernet) RX packets 354 bytes 466840 (455.8 KiB) RX errors 0 dropped 8 overruns 0 frame 0 TX packets 229 bytes 17076 (16.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Мы видим, что на нашем устройстве wlan0 наш IP-адрес — 192.168.1.88, а маска сети — 255.255.255.0. Следовательно, устройства в этой сети будут иметь IP-адреса 192.168.1.0-192.168.1.255, они же 192.168.1.0/24. Также давайте узнаем IP-адрес шлюза. Мы можем увидеть это с помощью команды route. lzt@kali:~$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway.local 0.0.0.0 UG 100 0 0 wlan0 Code lzt@kali:~$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway.local 0.0.0.0 UG 100 0 0 wlan0 Видим домен шлюза —gateway.local. Давайте пропингуем его, чтобы узнать его IP-адрес. lzt@kali:~$ ping gateway.local PING gateway.local (192.168.1.1) 56(84) bytes of data. 64 bytes from gateway.local (192.168.1.1): icmp_seq=1 ttl=64 time=0.504 ms Code lzt@kali:~$ ping gateway.local PING gateway.local (192.168.1.1) 56(84) bytes of data. 64 bytes from gateway.local (192.168.1.1): icmp_seq=1 ttl=64 time=0.504 ms и мы видим IP-адрес нашего шлюза 192.168.1.1. Вероятно, это роутер. Traceroute Traceroute также полезен. Например, выполнив трассировку до google.com, мы можем увидеть, какой «путь» проходят наши запросы, когда они попадают на google.com. traceroute google.com lzt@kali:~$ traceroute google.com traceroute to google.com (142.250.187.174), 30 hops max, 60 byte packets 1 gateway.local (192.168.1.1) 0.771 ms 0.704 ms 1.291 ms 2 10.10.15.1 (10.10.15.1) 5.387 ms 6.107 ms 6.062 ms 3 host-91.21.65.222.zdechost.ru (91.21.65.222) 19.296 ms 9.828 ms 5.938 ms 4 host-16.185.12.3.zdechost.ru (16.185.12.3) 8.224 ms 5 zdechost.ru (19.12.156.2) 34.873 ms 34.832 ms 34.736 ms 6 * * * 7 142.250.60.18 (142.250.60.18) 31.750 ms sof02s46-in-f14.1e100.net (142.250.187.174) 34.604 ms Code lzt@kali:~$ traceroute google.com traceroute to google.com (142.250.187.174), 30 hops max, 60 byte packets 1 gateway.local (192.168.1.1) 0.771 ms 0.704 ms 1.291 ms 2 10.10.15.1 (10.10.15.1) 5.387 ms 6.107 ms 6.062 ms 3 host-91.21.65.222.zdechost.ru (91.21.65.222) 19.296 ms 9.828 ms 5.938 ms 4 host-16.185.12.3.zdechost.ru (16.185.12.3) 8.224 ms 5 zdechost.ru (19.12.156.2) 34.873 ms 34.832 ms 34.736 ms 6 * * * 7 142.250.60.18 (142.250.60.18) 31.750 ms sof02s46-in-f14.1e100.net (142.250.187.174) 34.604 ms Мы видим IP-адреса всех устройств, через которые идет наш трафик на google.com. Первый — наш gateway.local, а последний — 142.250.187.174, IP-адрес google.com. Здесь мы можем заметить, что IP-адрес второго устройства (10.10.15.1) является локальным IP-адресом. Отсюда мы все еще можем предположить, что наша сеть 192.168.1.0/24 является частью сети 10.10.15.x. То есть могут быть сети под IP 10.10.15.2,3,4,5,6, которые тоже принадлежат ООО 3.14ЗДЕЦ. arp-scan и netdiscover Инструменты arp-scan и netdiscover используют протокол arp для обнаружения устройств, подключенных к сети. Эти двое делают практически одно и то же. Давайте посмотрим на netdiscover.Мы указываем netdiscover диапазон IP-адресов, и он отправляет запросы проверки ARP на все IP-адреса в этом диапазоне, запрашивая MAC-адреса этих IP-адресов. Показательный пример — отправляет ARP-запрос на адрес 192.168.1.9 со словами «192.168.1.9, пожалуйста, сообщите мне свой MAC-адрес». Если мы получим ответ после отправки запроса, то мы понимаем, что устройство с таким IP-адресом существует, а также знаем его MAC-адрес. Если ответа нет, можно предположить, что в сети нет устройства с таким IP-адресом.Чтобы просканировать нашу сеть, мы введем в терминал следующее: sudo netdiscover -i wlan0 -r 192.168.1.0/24 -c 5 -s 200 Code sudo netdiscover -i wlan0 -r 192.168.1.0/24 -c 5 -s 200 где wlan0 — интерфейс, подключенный к нашей сети, а 192.168.1.0/24 — сеть, которую мы будем сканировать. Дополнительным параметром -c мы указываем, что он должен отправлять 5 ARP-запросов на каждый IP-адрес, поскольку возможно, что мы не получим ответа от отправки только одного запроса. Также с помощью параметра -s мы указываем ожидание 200 миллисекунд после каждого запроса, поскольку часто некоторые системы безопасности могут заметить наше сканирование, если оно выполняется слишком быстро. Currently scanning: Finished! | Screen View: Unique Hosts 491 Captured ARP Req/Rep packets, from 5 hosts. Total size: 29460 _____________________________________________________________________________ IP At MAC Address Count Len MAC Vendor / Hostname ----------------------------------------------------------------------------- 192.168.1.1 00:27:19:16:2d:c9 375 22500 TP-LINK TECHNOLOGIES CO., LTD. 192.168.1.44 a8:a1:59:89:9c:77 107 6420 Xiamen Xinglian Electronics Co., Ltd. 192.168.1.59 8c:ea:48:cc։af:ff 5 300 Samsung Electronics Co.,Ltd 192.168.1.53 05:50:99:53:00:bb 3 180 Unknown vendor 192.168.1.3 b0:6f:e0:44:af:f4 1 60 Samsung Electronics Co.,Ltd Code Currently scanning: Finished! | Screen View: Unique Hosts 491 Captured ARP Req/Rep packets, from 5 hosts. Total size: 29460 _____________________________________________________________________________ IP At MAC Address Count Len MAC Vendor / Hostname ----------------------------------------------------------------------------- 192.168.1.1 00:27:19:16:2d:c9 375 22500 TP-LINK TECHNOLOGIES CO., LTD. 192.168.1.44 a8:a1:59:89:9c:77 107 6420 Xiamen Xinglian Electronics Co., Ltd. 192.168.1.59 8c:ea:48:cc։af:ff 5 300 Samsung Electronics Co.,Ltd 192.168.1.53 05:50:99:53:00:bb 3 180 Unknown vendor 192.168.1.3 b0:6f:e0:44:af:f4 1 60 Samsung Electronics Co.,Ltd Сканирование заняло около 5 минут и мы видим в ответе 5 найденных устройств. Netdiscover также показывает названия компаний, соответствующие найденным MAC-адресам. Зачастую межсетевые экраны и другие системы безопасности, установленные в сети, замечают сканер ARP независимо от количества отправленных пакетов. Для этого у netdiscover есть пассивный режим, который мы можем активировать, указав -p. sudo netdiscover -p Code sudo netdiscover -p В этом режиме netdiscover прослушивает пакеты arp, отправленные другими устройствами в сети, и регистрирует их, ничего не отправляя. Добавка Чтобы увидеть работу netdiscover, мы можем запустить Wireshark вместе с netdiscover и добавить фильтр ARP, чтобы видеть только пакеты ARP. Nmap Чтобы обнаружить устройства, подключенные к сети, мы также можем использовать nmap, который имеет функцию обнаружения хоста. Эта функция в основном выполняет пинг-сканирование и DNS lookup. nmap 192.168.1.0/24 Code nmap 192.168.1.0/24 или если мы не хотим выполнять сканирование портов, а только обнаружение хоста: nmap 192.168.1.0/24 -sn Code nmap 192.168.1.0/24 -sn В nmap также есть метод сканирования arp: nmap 192.168.1.0/24 -PR Code nmap 192.168.1.0/24 -PR Собранные MAC- и IP-адреса можно использовать позже для более детального сканирования, обнаружения уязвимостей, атак типа «Man In the Middle» и т. д. Спасибо, что уделили внимание.
Хорошая статья для чайников, можно было расширить круг. DHCP на роутере не так много используется, да согласен есть, но большую часть уделают эту задачу для AD