139,445 - Pentesting SMB
Порт 139
_Система базового введення-виведення мережі (NetBIOS)** - це програмний протокол, призначений для забезпечення взаємодії додатків, ПК та робочих станцій в локальній мережі (LAN) з мережевим обладнанням та сприяння передачі даних по мережі. Ідентифікація та місцезнаходження програмних додатків, що працюють в мережі NetBIOS, досягається за допомогою їх імен NetBIOS, які можуть бути довжиною до 16 символів і часто відрізняються від імені комп'ютера. Сеанс NetBIOS між двома додатками ініціюється, коли один додаток (який діє як клієнт) видає команду "викликати" інший додаток (який діє як сервер), використовуючи TCP-порт 139.
Порт 445
Технічно порт 139 відомий як "NBT через IP", тоді як порт 445 ідентифікується як "SMB через IP". Акронім SMB означає "Server Message Blocks", який також сучасно відомий як Common Internet File System (CIFS). Як протокол мережевого рівня додатків, SMB/CIFS використовується в основному для забезпечення спільного доступу до файлів, принтерів, послідовних портів та полегшення різних форм комунікації між вузлами в мережі.
Наприклад, в контексті Windows відзначається, що SMB може працювати безпосередньо через TCP/IP, усуваючи необхідність у NetBIOS через TCP/IP, за допомогою використання порту 445. Навпаки, на різних системах спостерігається використання порту 139, що вказує на те, що SMB виконується разом з NetBIOS через TCP/IP.
SMB
Протокол Server Message Block (SMB), який працює в моделі клієнт-сервер, призначений для регулювання доступу до файлів, каталогів та інших мережевих ресурсів, таких як принтери та маршрутизатори. В основному використовується в серії операційних систем Windows, SMB забезпечує зворотню сумісність, дозволяючи пристроям з новішими версіями операційної системи Microsoft безперешкодно взаємодіяти з тими, що працюють на старіших версіях. Крім того, проект Samba пропонує безкоштовне програмне забезпечення, що дозволяє реалізувати SMB на системах Linux та Unix, тим самим сприяючи міжплатформенній комунікації через SMB.
Ресурси, що представляють довільні частини локальної файлової системи, можуть надаватися сервером SMB, роблячи ієрархію видимою для клієнта частково незалежною від фактичної структури сервера. Списки керування доступом (ACL), які визначають права доступу, дозволяють здійснювати деталізований контроль над дозволами користувачів, включаючи атрибути, такі як виконання
, читання
та повний доступ
. Ці дозволи можуть бути надані окремим користувачам або групам, на основі ресурсів, і відрізняються від локальних дозволів, встановлених на сервері.
Ресурс IPC$
Доступ до ресурсу IPC$ можна отримати через анонімну порожню сесію, що дозволяє взаємодіяти з послугами, викладеними через іменовані канали. Утиліта enum4linux
корисна для цієї мети. Правильно використовуючи її, можна отримати:
Інформацію про операційну систему
Деталі про батьківський домен
Компіляцію локальних користувачів та груп
Інформацію про доступні ресурси SMB
Ефективну політику безпеки системи
Ця функціональність є критичною для мережевих адміністраторів та фахівців з безпеки для оцінки стану безпеки служб SMB (Server Message Block) в мережі. enum4linux
надає всебічний огляд середовища SMB цільової системи, що є важливим для виявлення потенційних вразливостей та забезпечення належного захисту служб SMB.
Вищезазначена команда є прикладом того, як enum4linux
може бути використаний для виконання повної переліку проти цілі, вказаної target_ip
.
Що таке NTLM
Якщо ви не знаєте, що таке NTLM або ви хочете знати, як воно працює і як його можна зловживати, вам буде дуже цікаво цю сторінку про NTLM, де пояснено, як працює цей протокол і як ви можете з нього скористатися:
pageNTLMПерелік серверів
Сканування мережі для пошуку хостів:
Версія сервера SMB
Для пошуку можливих вразливостей у версії SMB важливо знати, яка саме версія використовується. Якщо ця інформація не відображається в інших використовуваних інструментах, ви можете:
Використовувати допоміжний модуль MSF _auxiliary/scanner/smb/smb_version
Або цей скрипт:
Пошук експлойту
Можливі Облікові дані
Ім'я користувача | Загальні паролі |
(порожній) | (порожній) |
guest | (порожній) |
Administrator, admin | (порожній), password, administrator, admin |
arcserve | arcserve, backup |
tivoli, tmersrvd | tivoli, tmersrvd, admin |
backupexec, backup | backupexec, backup, arcada |
test, lab, demo | password, test, lab, demo |
Brute Force
Інформація про середовище SMB
Отримання інформації
Вибір користувачів, груп та ввімкнених користувачів
Цю інформацію вже повинно було зібрати з enum4linux та enum4linux-ng
Вибір користувачів локально
Однорядковий
Metasploit - Вибір локальних користувачів
Перелік LSARPC та SAMR rpcclient
pagerpcclient enumerationGUI підключення з linux
У терміналі:
xdg-open smb://cascade.htb/
У вікні файлового браузера (nautilus, thunar, тощо)
smb://friendzone.htb/general/
Перелік загальних папок
Перелік загальних папок
Завжди рекомендується перевірити, чи ви можете отримати доступ до чого-небудь, якщо у вас немає облікових даних, спробуйте використати нульові облікові дані/гостьовий користувач.
Підключення/Перелік спільної теки
Command to list shared folders:
Command to connect to a shared folder:
Ручна перерахунок спільних ресурсів Windows та підключення до них
Можливо, вам заборонено відображати будь-які спільні ресурси на комп'ютері-хості, і коли ви намагаєтеся їх перелічити, здається, що немає жодних ресурсів для підключення. Тому варто спробувати вручну підключитися до ресурсу. Для ручного переліку ресурсів вам слід шукати відповіді, такі як NT_STATUS_ACCESS_DENIED та NT_STATUS_BAD_NETWORK_NAME, коли використовуєте дійсну сесію (наприклад, нульову сесію або дійсні облікові дані). Це може вказувати на те, чи існує ресурс та ви не маєте до нього доступу, або ресурс зовсім не існує.
Загальні назви спільних ресурсів для цілей Windows:
C$
D$
ADMIN$
IPC$
PRINT$
FAX$
SYSVOL
NETLOGON
(Загальні назви спільних ресурсів з Оцінка безпеки мережі 3-ї редакції)
Ви можете спробувати підключитися до них за допомогою наступної команди
або цей скрипт (використовуючи нульову сесію)
Приклади
Перерахувати ресурси з Windows / без сторонніх інструментів
PowerShell
Консоль CMD
MMC Snap-in (графічний)
explorer.exe (графічний), введіть \\<ip>\
щоб побачити доступні невидимі ресурси.
Підключення спільної теки
Завантаження файлів
Прочитайте попередні розділи, щоб дізнатися, як підключитися за допомогою облікових даних/Pass-the-Hash.
Команди:
mask: вказує маску, яка використовується для фільтрації файлів у каталозі (наприклад, "" для всіх файлів)
recurse: перемикає рекурсію (за замовчуванням: вимкнено)
prompt: перемикає запитання про імена файлів (за замовчуванням: увімкнено)
mget: копіює всі файли, що відповідають масці, з хоста на клієнтську машину
(Інформація з man-сторінки smbclient)
Пошук спільних папок домену
Snaffler****
CrackMapExec павук.
-M павук_плюс [--share <ім'я_ресурсу>]
--шаблон txt
Особливо цікавими з ресурсів є файли з назвою Registry.xml
, оскільки вони можуть містити паролі для користувачів, налаштованих на автовхід через політику групи. Або файли web.config
, оскільки вони містять облікові дані.
Ресурс SYSVOL доступний для читання всіма автентифікованими користувачами в домені. Там ви можете знайти багато різних пакетів, VBScript та PowerShell скриптів. Вам слід перевірити скрипти всередині нього, оскільки ви можете знайти чутливу інформацію, таку як паролі.
Читання реєстру
Ви можете читати реєстр за допомогою виявлених облікових даних. Impacket reg.py
дозволяє вам спробувати:
Після експлуатації
Стандартна конфігурація сервера Samba зазвичай знаходиться в /etc/samba/smb.conf
і може містити деякі небезпечні налаштування:
Налаштування | Опис |
| Дозволити перегляд доступних ресурсів у поточному ресурсі? |
| Заборонити створення та зміну файлів? |
| Дозволити користувачам створювати та змінювати файли? |
| Дозволити підключення до служби без використання пароля? |
| Дотримуватися привілеїв, призначених конкретному SID? |
| Які дозволи повинні бути призначені для новостворених файлів? |
| Які дозволи повинні бути призначені для новостворених каталогів? |
| Який скрипт потрібно виконати при вході користувача? |
| Який скрипт повинен бути виконаний після закриття скрипта? |
| Де потрібно зберігати вивід магічного скрипта? |
Команда smbstatus
надає інформацію про сервер та про підключених користувачів.
Аутентифікація за допомогою Kerberos
Ви можете аутентифікуватися до Kerberos за допомогою інструментів smbclient та rpcclient:
Виконання команд
crackmapexec
crackmapexec може виконувати команди, зловживовуючи будь-яким з mmcexec, smbexec, atexec, wmiexec, де wmiexec є методом за замовчуванням. Ви можете вказати, який варіант ви бажаєте використовувати за допомогою параметра --exec-method
:
Обидва варіанти створять новий сервіс (використовуючи \pipe\svcctl через SMB) на комп'ютері жертви та використовуватимуть його для виконання чогось (psexec завантажить виконавчий файл на розділ ADMIN$ та smbexec вказатиме на cmd.exe/powershell.exe та вставить у аргументи полезне навантаження --техніка без файлів-). Додаткова інформація про psexec та smbexec. У kali він розташований за адресою /usr/share/doc/python3-impacket/examples/
Використовуючи параметр -k
, ви можете аутентифікуватися проти kerberos замість NTLM
wmiexec/dcomexec
Потайно виконайте оболонку команд без звертання до диска або запуску нової служби, використовуючи DCOM через порт 135. У kali він розташований на /usr/share/doc/python3-impacket/examples/
Використовуючи параметр -k
, ви можете аутентифікуватися проти kerberos замість NTLM.
Виконайте команди через Планувальник завдань (використовуючи \pipe\atsvc через SMB). У kali він розташований за адресою /usr/share/doc/python3-impacket/examples/
Посилання на Impacket
https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/
Перебір облікових даних користувачів
Це не рекомендується, ви можете заблокувати обліковий запис, якщо перевищите максимально допустиму кількість спроб
Атака перехоплення SMB
Ця атака використовує інструментарій Responder для захоплення сеансів аутентифікації SMB внутрішньої мережі та їх пересилання на цільову машину. Якщо сеанс аутентифікації успішний, вас автоматично перенесе до командного рядка системи. Додаткова інформація про цю атаку тут.
SMB-Trap
Бібліотека Windows URLMon.dll автоматично намагається аутентифікуватися на хості, коли сторінка намагається отримати доступ до деякого контенту через SMB, наприклад: img src="\\10.10.10.10\path\image.jpg"
Це відбувається за допомогою функцій:
URLDownloadToFile
URLDownloadToCache
URLOpenStream
URLOpenBlockingStream
Які використовуються деякими браузерами та інструментами (наприклад, Skype)
SMBTrap за допомогою MitMf
Крадіжка NTLM
Аналогічно до пастки SMB, розміщення зловмисних файлів на цільовій системі (через SMB, наприклад) може викликати спробу аутентифікації SMB, що дозволяє перехопити хеш NetNTLMv2 за допомогою інструмента, такого як Responder. Хеш потім можна розшифрувати офлайн або використовувати в атаках пересилання SMB.
Автоматичні команди HackTricks
Last updated