:::info

:::

枚举

  1. sudo nmap -sT -sU -sV -p135,137,138,139,445 --open <IP>

nmap 脚本

  1. # Enumerate shares
  2. nmap --script smb-enum-shares -p 445 <IP>
  3. # OS Discovery
  4. nmap --script smb-os-discovery -p 445 <IP>
  5. # Enumerate Users
  6. nmap --script=smb-enum-users -p 445 <IP>
  7. # All
  8. nmap --script=smb-enum-users,smb-enum-shares,smb-os-discovery -p 139,445 <IP>

NULL/ Anonymous Login

  1. # On some configuration omitting '-N' will grant access.
  2. smbclient -U '' -L \\\\<IP>
  3. smbclient -U '' -N -L \\\\<IP>
  4. smbclient -U '%' -N -L \\\\<IP>
  5. smbclient -U '%' -N \\\\<IP>\\<Folder>
  6. smbmap -H ip -u anonymous
  7. # Enter a random username with no password and try for anonymous login.
  8. crackmapexec smb <IP> -u 'anonymous' -p ''
  9. crackmapexec smb <IP> -u '' -p ''
  10. crackmapexec smb <IP> -u '' -p '' --shares

Download Files

  1. smbclient '\\<IP>\<Share>' -N -c 'prompt OFF;recurse ON; mget *'
  1. #WIP
  2. smbclient -U '' -L \\\\<IP> | awk '{print $1}' | grep -v 'Sharename\|Reconnecting\|Unable\|-\|Enter\| '

Crackmapexec

  1. crackmapexec smb <IP> -u <User> -p <Password> --rid-brute | grep '(SidTypeUser)' # 用户&组枚举
  2. crackmapexec smb <IP> -u <User> -p <Password> --lsa
  3. crackmapexec smb <IP> -u <User> -p <Password> --sam
  4. crackmapexec smb <IP> -u <User> -p <Password> --pass-pol
  5. crackmapexec smb <IP> -u <User> -p <Password> --local-groups
  6. crackmapexec smb <IP> -u <User> -p <Password> --groups
  7. crackmapexec smb <IP> -u <User> -p <Password> --users
  8. crackmapexec smb <IP> -u <User> -p <Password> --sessions
  9. crackmapexec smb <IP> -u <User> -p <Password> --disks
  10. crackmapexec smb <IP> -u <User> -p <Password> --loggedon-users
  11. crackmapexec smb <IP> -u <User> -p <Password> --loggedon-users --sessions --users --groups --local-groups --pass-pol --sam --rid-brute 2000

Metasploit

  1. use auxiliary/scanner/smb/smb_enumusers

内网渗透

IPC$

可以查看下面这一篇:

【内网安全-横向移动】IPC$连接—->计划任务—->上线_黑色地带(崛起)的博客-CSDN博客

简单来说就是一个共享命名管道资源,IPC$ 连接使用的是 445 端口。

下面我们使用一个实例:

VulnNet: Roasted

  1. $ smbmap.py -H 10.10.32.212 -u anonymous 1 9s
  2. [+] Guest session IP: 10.10.32.212:445 Name: 10.10.32.212
  3. Disk Permissions Comment
  4. ---- ----------- -------
  5. ADMIN$ NO ACCESS Remote Admin
  6. C$ NO ACCESS Default share
  7. IPC$ READ ONLY Remote IPC
  8. NETLOGON NO ACCESS Logon server share
  9. SYSVOL NO ACCESS Logon server share
  10. VulnNet-Business-Anonymous READ ONLY VulnNet Business Sharing
  11. VulnNet-Enterprise-Anonymous READ ONLY VulnNet Enterprise Sharing

在该实例中我们对于 IPC$ 具有 READ ONLY,这时候我们可以枚举目标系统用户:

  • 这时候我们可以使用 Impacket 工具包的 lookupsid.py 来枚举用户
  • 使用 crackmapexec 进行枚举
  • 或者其他脚本

ADMIN$

原因未知

我们使用这个实例进行解释:

VulnNet: Roasted

  1. $ smbmap.py -H 10.10.4.44 -u 'a-whitehat' -p 'bNdKVkjv3RR9ht'
  2. [+] IP: 10.10.4.44:445 Name: 10.10.4.44
  3. [\] Work[!] Unable to remove test directory at \\10.10.4.44\SYSVOL\XFBWSGNTRQ, please remove manually
  4. Disk Permissions Comment
  5. ---- ----------- -------
  6. ADMIN$ READ, WRITE Remote Admin
  7. C$ READ, WRITE Default share
  8. IPC$ READ ONLY Remote IPC
  9. NETLOGON READ, WRITE Logon server share
  10. SYSVOL READ, WRITE Logon server share
  11. VulnNet-Business-Anonymous READ ONLY VulnNet Business Sharing
  12. VulnNet-Enterprise-Anonymous READ ONLY VulnNet Enterprise Sharing

我们在这个用户的枚举中发现: ADMIN$具有 READ, WRITE 我们可以利用此来转储 hash ,进而实现 PTH

  • 使用 Impacket 的 secretsdump.py

参考

Ports 139 | 445 | SMB - Pentest Everything