Перейти к основному содержимому

139, 445 — SMB

:::tip Формат страницы

Порядок действий описан по‑русски. В методике сохранены заголовки (частично локализованы типовые термины), таблицы, иллюстрации и блоки кода: команды и параметры на английском, без перевода синтаксиса.

:::

Порядок действий

  1. Убедитесь, что целевой сервис и порт входят в согласованный scope.
  2. Выполните перечисление: версия, баннеры, доступные команды и скрипты.
  3. Проверьте типовые слабости и сценарии из раздела, документируя каждый шаг.
  4. Команды в блоках кода используйте без перевода синтаксиса.

Методика

SMB General Enumeration

nbtscan -r <NETWORK>/<MASK>
sudo nmap --script "smb-enum-*" -p139,445 <TARGET>
sudo nmap --script "smb2*" -p139,445 <TARGET>
sudo nmap --script "smb-vuln-*" -p139,445 <TARGET>
crackmapexec smb <IP|RANGE> -d <DOMAIN> -u '<USERNAME>' -p '[ <PASSWORD> ]' [--<Option>]
enum4linux -a [-u "username" -p "password"] <IP>enum4linux -A [-u "username" -p "password"] <IP>enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>

User enumeration

smbclient -N -L //<IP>/ [-U "[guest|anonymous]%[guest]"]
crackmapexec smb <IP|RANGE> -d <DOMAIN> -u '<USERNAMES.TXT>' -p '[ <PASSWORDS.TXT> ]'

rpcclient enumeration - port: 135

rpcclient -U '[<USERNAME>]' [-N] <TARGET>
> querydominfo
> querydispinfo
> getdompwinfo
> enumdomusers
> enumprinters
> querydispinfo
> netshareenum
> netshareenumall

RID CYCLING ATTACK

crackmapexec smb <IP> -d <DOMAIN> -u '<USERNAME>' -p '<PASSWORD>' {--rid-brute | --users}
lookupsid.py '<DOMAIN>/<USERNAME>%<PASSWORD>'@<TARGET> [-no-pass]

Shares enumeration

smbmap [-u "<USERNAME>" -p "[<PASSWORD>|<NTLM<_HASH>]"] -H <IP>
crackmapexec smb <IP|RANGE> -u '[<USERNAME>]' [-p '[<PASSWORD>]' | -H <NTLM_HASH> ] --shares
./checkSMBPermissions.sh <DOMAIN\\USER> <PASSWORD> <IP>
smbclient -L //<IP>/<SHARE> -U "[<USERNAME>]%[<PASSWORD>]"
# Recursive list
smbmap [-u "<USERNAME>" -p "<PASSWORD>"] -R [<SHARE>] -H <IP> [-P <PORT>]
# Non-Recursive list
smbmap [-u "<USERNAME>" -p "<PASSWORD>"] -r [<SHARE>] -H <IP> [-P <PORT>]
smbclient //IP/<SHARE> -U "[<USERNAME>]%[<PASSWORD>]"
# Manually
smb: \> get <FILE>
smb: \> put <LOCAL_FILE>
# Recursive download
smb: \> prompt
smb: \> recurse
smb: \> mget *
sudo apt-get install cifs-utils
mount -t cifs //<IP>/<SHARE> <LOCAL_FOLDER> -o 'user=,password='

Netbios Enumeration- Port 139

nmblookup -A IPnbtscan IP

LANMAN1 Error

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
client min protocol = LANMAN1
#### Networking ####