NetBIOS – это сервис, который обеспечивает связь по сети и часто используется для присоединения к домену и устаревшим приложениям.
Это старая технология, но она до сих пор используется в некоторых средах.
Поскольку это незащищенный протокол, он часто может быть хорошей отправной точкой при атаке на сеть.
Сканирование на NetBIOS совместно с NBTScan и Nmap Scripting Engine – хороший способ начать сбор данных.
Чтобы выполнить эту технику, мы будем использовать Metasploitable 2, намеренно уязвимую виртуальную машину, в качестве нашей целевой машины.
Мы будем атаковать ее с помощью Kali Linux, дистрибутива для хакеров и пентестеров.
Обзор NetBIOS
NetBIOS, обозначающий базовую сетевую систему ввода / вывода, представляет собой сервис, позволяющий компьютерам взаимодействовать по сети.
Однако NetBIOS – это не сетевой протокол, а API.
Он работает по TCP / IP по протоколу NBT, что позволяет ему работать в современных сетях.
NetBIOS предоставляет два основных метода связи.
Служба дейтаграмм позволяет осуществлять связь без установления соединения по сети, что идеально подходит для ситуаций, когда предпочтительной является быстрая передача, например, при генерации ошибок и сеансовая служба, с другой стороны, позволяет двум компьютерам устанавливать соединение для надежной связи.
NetBIOS также предоставляет службы имен, которые выполняют разрешение имен и регистрацию по сети.
Основной способ, которым злоумышленники используют NetBIOS – это отравляющие атаки, которые происходят, когда злоумышленник находится в сети и подделывает другую машину, чтобы контролировать и перенаправлять трафик.
На этом этапе злоумышленник также может получить хэшированные учетные данные пользователя, чтобы впоследствии их взломать.
Сканирование с помощью NBTScan
NetBScanner — Сетевой сканер NetBIOS
NBTScan – это инструмент командной строки, используемый для сканирования сетей для получения общих ресурсов NetBIOS и информации об именах.
Он может работать как в Unix, так и в Windows и поставляется с Kali Linux по умолчанию.
Первое, что мы можем сделать, это вывести справку, которая предоставит нам все варианты использования и несколько примеров для сканирования сетей.
Просто введите nbtscan в командной строке.
nbtscan
NBTscan version 1.5.1. Copyright (C) 1999-2003 Alla Bezroutchko.
This is a free software and it comes with absolutely no warranty.
You can use, distribute and modify it under terms of GNU GPL.
Usage:
nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|(<scan_range>)
-v verbose output. Print all names received
from each host
-d dump packets. Print whole packet contents.
-e Format output in /etc/hosts format.
-l Format output in lmhosts format.
Cannot be used with -v, -s or -h options.
-t timeout wait timeout milliseconds for response.
Default 1000.
-b bandwidth Output throttling. Slow down output
so that it uses no more that bandwidth bps.
Useful on slow links, so that ougoing queries
don't get dropped.
-r use local port 137 for scans. Win95 boxes
respond to this only.
You need to be root to use this option on Unix.
-q Suppress banners and error messages,
-s separator Script-friendly output. Don't print
column and record headers, separate fields with separator.
-h Print human-readable names for services.
Can only be used with -v option.
-m retransmits Number of retransmits. Default 0.
-f filename Take IP addresses to scan from file filename.
-f - makes nbtscan take IP addresses from stdin.
<scan_range> what to scan. Can either be single IP
like 192.168.1.1 or
range of addresses in one of two forms:
xxx.xxx.xxx.xxx/xx or xxx.xxx.xxx.xxx-xxx.
Examples:
nbtscan -r 192.168.1.0/24
Scans the whole C-class network.
nbtscan 192.168.1.25-137
Scans a range from 192.168.1.25 to 192.168.1.137
nbtscan -v -s : 192.168.1.0/24
Scans C-class network. Prints results in script-friendly
format using colon as field separator.
Produces output like that:
192.168.0.1:NT_SERVER:00U
192.168.0.1:MY_DOMAIN:00G
192.168.0.1:ADMINISTRATOR:03U
192.168.0.2:OTHER_BOX:00U
...
nbtscan -f iplist
Scans IP addresses specified in file iplist.
Основным способом запуска этого инструмента является предоставление ему диапазона IP-адресов.
В этом случае в сети есть только один компьютер, поэтому в качестве примера я приведу его IP-адрес.
nbtscan 172.16.1.102
Doing NBT name scan for addresses from 172.16.1.102
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.102 METASPLOITABLE <server> METASPLOITABLE 00:00:00:00:00:00
Здесь мы видим IP-адрес, отображаемое имя NetBIOS, сервер, если это применимо, пользователя и MAC-адрес целевого компьютера.
Обратите внимание, что машины с Samba иногда возвращают все нули в качестве MAC-адреса в ответ на запрос.
Мы можем получить немного больше информации, установив подробный вывод с флагом -v.
nbtscan 172.16.1.102 -v
Doing NBT name scan for addresses from 172.16.1.102
NetBIOS Name Table for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Name Service Type
----------------------------------------
METASPLOITABLE <00> UNIQUE
METASPLOITABLE <03> UNIQUE
METASPLOITABLE <20> UNIQUE
METASPLOITABLE <00> UNIQUE
METASPLOITABLE <03> UNIQUE
METASPLOITABLE <20> UNIQUE
__MSBROWSE__ <01> GROUP
WORKGROUP <00> GROUP
WORKGROUP <1d> UNIQUE
WORKGROUP <1e> GROUP
WORKGROUP <00> GROUP
WORKGROUP <1d> UNIQUE
WORKGROUP <1e> GROUP
Adapter address: 00:00:00:00:00:00
Мы можем увидеть некоторые службы и их виды.
Это своего рода путаница, которая подводит нас к следующему варианту, который будет выводить сервисы в удобочитаемой форме.
Используйте флаг -h вместе с опцией -v.
nbtscan 172.16.1.102 -vh
Doing NBT name scan for addresses from 172.16.1.102
NetBIOS Name Table for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Name Service Type
----------------------------------------
METASPLOITABLE Workstation Service
METASPLOITABLE Messenger Service
METASPLOITABLE File Server Service
METASPLOITABLE Workstation Service
METASPLOITABLE Messenger Service
METASPLOITABLE File Server Service
__MSBROWSE__ Master Browser
WORKGROUP Domain Name
WORKGROUP Master Browser
WORKGROUP Browser Service Elections
WORKGROUP Domain Name
WORKGROUP Master Browser
WORKGROUP Browser Service Elections
Adapter address: 00:00:00:00:00:00
----------------------------------------
Теперь мы можем увидеть немного больше информации, которая может оказаться полезной.
Мы также можем установить флаг -d для выгрузки содержимого всего пакета.
nbtscan 172.16.1.102 -d
Doing NBT name scan for addresses from 172.16.1.102
Packet dump for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Transaction ID: 0x00a0 (160)
Flags: 0x8400 (33792)
Question count: 0x0000 (0)
Answer count: 0x0001 (1)
Name service count: 0x0000 (0)
Additional record count: 0x0000 (0)
Question name: CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Question type: 0x0021 (33)
Question class: 0x0001 (1)
Time to live: 0x00000000 (0)
Rdata length: 0x0119 (281)
Number of names: 0x0d (13)
Names received:
METASPLOITABLE Service: 0x00 Flags: 0x0004
METASPLOITABLE Service: 0x03 Flags: 0x0004
METASPLOITABLE Service: 0x20 Flags: 0x0004
METASPLOITABLE Service: 0x00 Flags: 0x0004
METASPLOITABLE Service: 0x03 Flags: 0x0004
METASPLOITABLE Service: 0x20 Flags: 0x0004
__MSBROWSE__ Service: 0x01 Flags: 0x0084
WORKGROUP Service: 0x00 Flags: 0x0084
WORKGROUP Service: 0x1d Flags: 0x0004
WORKGROUP Service: 0x1e Flags: 0x0084
WORKGROUP Service: 0x00 Flags: 0x0084
WORKGROUP Service: 0x1d Flags: 0x0004
WORKGROUP Service: 0x1e Flags: 0x0084
...
Это обеспечивает пакетные данные, используемые в запросе. Обратите внимание, что это нельзя использовать с опциями -v или -h.
Если у вас есть список IP-адресов, которые вы хотите сканировать, которые хранятся в файле, можно использовать флаг -f, чтобы указать входной файл для чтения.
Опять же, в этом случае в сети есть только один компьютер, поэтому во время нашего сканирования появляется только один.
nbtscan -f addresses.txt
Doing NBT name scan for addresses from addresses.txt
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.102 METASPLOITABLE <server> METASPLOITABLE 00:00:00:00:00:00
И наоборот, если мы хотим сохранить результаты любого сканирования, просто добавьте имя файла, в который мы хотим записать результаты.
nbtscan 172.16.1.102 > scan.txt
Сканирование с помощью Nmap Scripting Engine
Nmap содержит удобный небольшой скрипт в составе механизма скриптов Nmap, который мы также можем использовать для обнаружения общих ресурсов NetBIOS.
Он имеет то преимущество, что его можно запускать с другими скриптами NSE, что в конечном итоге экономит время при перечислении множества различных вещей в сети.
Мы запустим Nmap обычным способом, и скрипт nbstat завершится в конце.
Здесь я использую опцию -sV для проверки портов для запущенных сервисов и их версии, а также флаг -v для подробного вывода.
Укажите скрипт
nmap -sV 172.16.1.102 --script nbstat.nse -v
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-14 14:12 CST
NSE: Loaded 44 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 14:12
Completed NSE at 14:12, 0.00s elapsed
Initiating NSE at 14:12
Completed NSE at 14:12, 0.00s elapsed
Initiating ARP Ping Scan at 14:12
Scanning 172.16.1.102 [1 port]
Completed ARP Ping Scan at 14:12, 0.05s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 14:12
Completed Parallel DNS resolution of 1 host. at 14:12, 13.00s elapsed
Initiating SYN Stealth Scan at 14:12
Scanning 172.16.1.102 [1000 ports]
...
Host script results:
| nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| Names:
| METASPLOITABLE<00> Flags: <unique><active>
| METASPLOITABLE<03> Flags: <unique><active>
| METASPLOITABLE<20> Flags: <unique><active>
| \x01\x02__MSBROWSE__\x02<01> Flags: <group><active>
| WORKGROUP<00> Flags: <group><active>
| WORKGROUP<1d> Flags: <unique><active>
|_ WORKGROUP<1e> Flags: <group><active>
Nmap запускает обычное сканирование, а затем ближе к концу мы наконец можем увидеть результаты скрипта.
Это похоже на одно из сканирований, которые мы выполняли ранее, но никогда не помешает быть осведомленным о различных способах выполнения одной и той же задачи.
Как предотвратить перечисление NetBIOS
К счастью для всех администраторов, существует довольно простое решение для защиты от несанкционированного сканирования общих ресурсов NetBIOS, а именно простое отключение NetBIOS.
Есть некоторые сценарии, в которых отключение этого может привести к поломке, например, когда определенные устаревшие приложения полностью зависят от него, но чаще всего будут доступны лучшие решения, и будет нормально отключить его полностью.
В некоторых версиях Windows C $ или ADMIN $ являются общими именами, и их следует избегать, если это возможно.
Завершение
В этом уроке мы узнали о службе NetBIOS и о том, как ее можно использовать для атаки.
Мы выполнили сканирование, чтобы перечислить открытые ресурсы с помощью NBTScan, простого инструмента командной строки, а затем узнали, как использовать скрипт Nmap для того же.
NetBIOS очень старая технология, но сегодня она все еще встречается в корпоративных средах.
Это зачастую может быть хорошей отправной точкой после разведки, поэтому всегда полезно знать, как ее идентифицировать.
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.