Всем привет! В этой статье речь пойдет о таком протоколе как SMB.
В таком деле, как тестирование на проникновение значительную роль играют порты и протоколы, их знание и понимание значительно облегчат вам жизнь при решении какой либо задачи связанной с пентестом.
Принцип работы SMB.
Протокол SMB (Server Message Block) работает на прикладном и представительском уровне модели OSI. И используется для удаленного доступа к файлам, принтерам, Serial-портам, а так же к другим сетевым взаимодействиям между узлами в локальной сети.
Советую прочесть все это в развернутом виде т.к. я коснулся только основ.
Приступим к изучению SMB.
Необходимо узнать поддерживает ли сканируемый хост протокол SMB.
Обнаружение протокола SMB 2.0
> use auxiliary/scanner/smb/smb2
> msf exploit (smb2)>set rhosts 192.168.0.XXX
> msf exploit (smb2)>set rport 445
> msf exploit (smb2)>exploit
После выполнения команды exploit видим информацию об открытом SMB протоколе.
Определение версии SMB.
Вводим последовательно следующее:
> use auxiliary/scanner/smb/smb_version
> msf exploit (smb_version)>set rhosts 192.168.0.ХХХ
> msf exploit (smb_version)>exploit
Получаем информацию о работающей версии SMB, на нашем хосте.
SMB Share Enumeration
Данный модуль определяет, куда обеспечивается общий доступ службой SMB и что доступно для чтения/записи. Он так же собирает информацию о типах доступа, файлах, каталогах, временных отметках и т.д. По умолчанию запрос делается для того, чтобы получить информацию об общем доступе, но если это не получится, то можно вернуться к работе с SRVSVC.
Используем:
> use auxiliary/scanner/smb/smb_enumshares
> msf exploit (smb_enumshares)>set rhosts 192.168.0.104
> msf exploit (smb_enumshares)>set smbuser Anon
> msf exploit (smb_enumshares)>set smbpass 3257395756
> msf exploit (smb_enumshares)>exploit
По результату видны названия моих дисков, директорию в которую установлена ОС, есть общий доступ к стандартным ресурсам. И работает специальный ресурс IPC$ (Inter Process Communication) который предназначен для создания именованных каналов, которые компьютеры в сети используют для обмена различной служебной информацией (кроме того, именованные каналы применяются для дистанционного управления сервером).
SMB User Enumeration (SAM EnumUsers)
Определяем, какие существуют локальные пользователи с помощью службы SAM RPC
> use auxiliary/scanner/smb/smb_enumusers
> msf exploit (smb_enumusers)>set rhosts 192.168.0.ХХХ
> msf exploit (smb_enumusers)>set smbuser Anon
> msf exploit (smb_enumusers)>set smbpass 3288575983
> msf exploit (smb_enumusers)>exploit
Здесь видно, что он один.
SMB SID User Enumeration (LookupSid)
Этот модуль позволит определить какие пользователи существуют путем брутфорсинга SID lookups. Он перечисляет как локальные, так и учетные записи домена, установив ACTION в LOCAL и DOMAIN. (Тут речь идет о значениях реестра)
> use auxiliary/scanner/smb/smb_lookupsid
> msf exploit (smb_lookupsid)>set rhosts 192.168.0.104
> msf exploit (smb_lookupsid)>set smbuser Anon
> msf exploit (smb_lookupsid)>set smbpass 3838983983
> msf exploit (smb_lookupsid)>exploit
Этим способом вы можете найти даже тех пользователей, о существовании которых вы не знали.
Теперь, можно просканировать удаленный хост с помощью Nmap. Результат покажет, что порт, на котором работает SMB, открыт, он находится под номером 445. Используя его, мы собрали всю информацию.
> nmap -sV 192.168.0.104
Открытые порты 445 и 139 являются самыми атакуемыми, на них чаще всего обращаются зараженные машины.
Вывод: Понимание принципов работы портов позволит глубже понять уязвимую систему, принципы работы на ней приложений, даст информацию об иерархии пользователей и так далее. Сбор информации с порта, даст эксплуататору, особые привилегии для манипуляции системой. Таким образом, понимание, что такое порт и как можно его использовать, а так же, как найти информацию о нем на нашем удаленном хосте, существенно поможет нам улучшить навыки тестирования на проникновение, так как выше приведенная информация, является одной из основ.
Продолжение следует…
В таком деле, как тестирование на проникновение значительную роль играют порты и протоколы, их знание и понимание значительно облегчат вам жизнь при решении какой либо задачи связанной с пентестом.
Принцип работы SMB.
Протокол SMB (Server Message Block) работает на прикладном и представительском уровне модели OSI. И используется для удаленного доступа к файлам, принтерам, Serial-портам, а так же к другим сетевым взаимодействиям между узлами в локальной сети.
Советую прочесть все это в развернутом виде т.к. я коснулся только основ.
Приступим к изучению SMB.
Необходимо узнать поддерживает ли сканируемый хост протокол SMB.
Обнаружение протокола SMB 2.0
> use auxiliary/scanner/smb/smb2
> msf exploit (smb2)>set rhosts 192.168.0.XXX
> msf exploit (smb2)>set rport 445
> msf exploit (smb2)>exploit
После выполнения команды exploit видим информацию об открытом SMB протоколе.
Определение версии SMB.
Вводим последовательно следующее:
> use auxiliary/scanner/smb/smb_version
> msf exploit (smb_version)>set rhosts 192.168.0.ХХХ
> msf exploit (smb_version)>exploit
Получаем информацию о работающей версии SMB, на нашем хосте.
SMB Share Enumeration
Данный модуль определяет, куда обеспечивается общий доступ службой SMB и что доступно для чтения/записи. Он так же собирает информацию о типах доступа, файлах, каталогах, временных отметках и т.д. По умолчанию запрос делается для того, чтобы получить информацию об общем доступе, но если это не получится, то можно вернуться к работе с SRVSVC.
Используем:
> use auxiliary/scanner/smb/smb_enumshares
> msf exploit (smb_enumshares)>set rhosts 192.168.0.104
> msf exploit (smb_enumshares)>set smbuser Anon
> msf exploit (smb_enumshares)>set smbpass 3257395756
> msf exploit (smb_enumshares)>exploit
По результату видны названия моих дисков, директорию в которую установлена ОС, есть общий доступ к стандартным ресурсам. И работает специальный ресурс IPC$ (Inter Process Communication) который предназначен для создания именованных каналов, которые компьютеры в сети используют для обмена различной служебной информацией (кроме того, именованные каналы применяются для дистанционного управления сервером).
SMB User Enumeration (SAM EnumUsers)
Определяем, какие существуют локальные пользователи с помощью службы SAM RPC
> use auxiliary/scanner/smb/smb_enumusers
> msf exploit (smb_enumusers)>set rhosts 192.168.0.ХХХ
> msf exploit (smb_enumusers)>set smbuser Anon
> msf exploit (smb_enumusers)>set smbpass 3288575983
> msf exploit (smb_enumusers)>exploit
Здесь видно, что он один.
SMB SID User Enumeration (LookupSid)
Этот модуль позволит определить какие пользователи существуют путем брутфорсинга SID lookups. Он перечисляет как локальные, так и учетные записи домена, установив ACTION в LOCAL и DOMAIN. (Тут речь идет о значениях реестра)
> use auxiliary/scanner/smb/smb_lookupsid
> msf exploit (smb_lookupsid)>set rhosts 192.168.0.104
> msf exploit (smb_lookupsid)>set smbuser Anon
> msf exploit (smb_lookupsid)>set smbpass 3838983983
> msf exploit (smb_lookupsid)>exploit
Этим способом вы можете найти даже тех пользователей, о существовании которых вы не знали.
Теперь, можно просканировать удаленный хост с помощью Nmap. Результат покажет, что порт, на котором работает SMB, открыт, он находится под номером 445. Используя его, мы собрали всю информацию.
> nmap -sV 192.168.0.104
Открытые порты 445 и 139 являются самыми атакуемыми, на них чаще всего обращаются зараженные машины.
Вывод: Понимание принципов работы портов позволит глубже понять уязвимую систему, принципы работы на ней приложений, даст информацию об иерархии пользователей и так далее. Сбор информации с порта, даст эксплуататору, особые привилегии для манипуляции системой. Таким образом, понимание, что такое порт и как можно его использовать, а так же, как найти информацию о нем на нашем удаленном хосте, существенно поможет нам улучшить навыки тестирования на проникновение, так как выше приведенная информация, является одной из основ.
Продолжение следует…
Последнее редактирование: