女鬼水妖
- 关注

SMB 枚举
由于其复杂的实现和开放性,服务器消息块(SMB)协议的安全记录多年来一直很差。多年来,从Windows 2000和XP中未经验证的SMB空会话,到过多的SMB错误和漏洞。
尽管如此,SMB协议也在Windows操作系统发布的同时得到了更新和改进。
NetBIOS服务侦听TCP端口139以及几个UDP端口。需要注意的是,SMB(TCP端口445)和NetBIOS是两个独立的协议。NetBIOS是一个独立的会话层协议和服务,它允许本地网络上的计算机相互通信。
扫描 SMB服务
kali@kali:~$ nmap -v -p 139,445 -oG smb.txt 10.11.1.1-254
还有其他更专门的工具来专门识别NetBIOS信息,比如nbtscan,它将在下面的示例中使用。-r选项用于指定原始UDP端口为137,用于查询NetBIOS名称服务中有效的NetBIOS名称
kali@kali:~$ sudo nbtscan -r 10.11.1.0/24
Nmap SMB NSE 脚本
Nmap包含许多有用的NSE脚本,它们可用于发现和枚举SMB服务。这些脚本可以在/usr/share/nmap/script目录中找到:
kali@kali:~$ ls -1 /usr/share/nmap/scripts/smb*
为了检查已知的SMB协议漏洞,我们可以调用其中一个smb-vulnNSE脚本。我们将看看smb-vuln-ms08-067,它使用——脚本-args选项将参数传递到NSE脚本
如果我们将脚本参数设置为 unsafe=1,那么将运行的脚本几乎(或完全)保证会使易受攻击的系统崩溃。不用说,在启用这一论点时,要格外谨慎,特别是在扫描生产系统时。
kali@kali:~$ nmap -v -p 139,445 --script=smb-vuln-ms08-067 --script-args=unsafe=1 10.11.1.5
NFS 枚举
网络文件系统(NFS)是一种分布式文件系统协议,最初是由Sun微系统公司在1984年开发的。它允许客户端计算机上的用户通过计算机网络访问文件,就像它们是在本地挂载的存储器上一样。
NFS经常与UNIX操作系统一起使用,并且在其实现中主要是不安全的。安全地设置可能有些困难,所以NFS共享并不少见。这对于我们作为渗透测试人员来说是非常方便的,因为我们也许可以利用他们来收集敏感信息,提升我们的特权,等等。
扫描NFS服务
kali@kali:~$ nmap -v -p 111 10.11.1.1-254
Nmap NFS NSE 脚本
一旦我们发现NFS正在运行,我们就可以收集额外的信息,枚举NFS服务,并使用在/Usr/share/Nmap/script目录中找到的NSE脚本发现其他服务:
kali@kali:~$ ls -1 /usr/share/nmap/scripts/nfs*
在这种情况下,整个/home正在被共享,我们可以通过将其挂载到Kali虚拟机上来访问它。我们将使用 mount来做到这一点,以及-o nolock来禁用文件锁定,这是较旧的NFS服务器通常需要的:
kali@kali:~$ nmap -p 111 --script nfs* 10.11.1.70
...
Nmap scan report for 10.11.1.70
PORT STATE SERVICE
111/tcp open rpcbind
| nfs-showmount:
|_ /home 10.11.0.0/255.255.0.0
kali@kali:~$ mkdir home
kali@kali:~$ sudo mount -o nolock 10.11.1.70:/home ~/home/
kali@kali:~$ cd home/ && ls
Alice Amy file3 hello_freebuf
根据这个文件列表,我们可以看到在远程机器上有一些用于本地用户的主目录。深入挖掘,我们会发现一个吸引我们注意的文件名,所以我们试着查看它:
kali@kali:~/home$ cd hello_freebuf
kali@kali:~/home/hello_freebuf$ ls -la
total 24
drwxr-xr-x 2 1014 1014 4096 Jun 10 09:16 .
drwxr-xr-x 7 root root 4096 Sep 17 2015 ..
-rwx------ 1 1014 1014 48 Jun 10 09:16 creds.txt
kali@kali:~/home/marcus$ cat creds.txt
cat: creds.txt: Permission denied
看来我们没有权限查看这个文件。仔细查看文件权限,我们可以看到它的所有者的UUID为1014,并且对它进行读取(r)、写(w)和执行(x)权限。我们能利用这些信息做些什么呢?由于我们已经完全访问我们的Kali机器,我们可以尝试添加一个本地用户,将其UUID更改为1014,su到该用户,然后再次尝试访问文件:
kali@kali:~/home/stefan$ sudo adduser pwn
Adding user `pwn' ...
Adding new group `pwn' (1001) ...
Adding new user `pwn' (1001) with group `pwn' ...
Creating home directory `/home/pwn' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for pwn
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
根据上面的输出,我们可以看到新用户的UUID为1001,而这并不是我们真正需要的。我们可以使用sed将其更改为1014,并确认已经发生了更改。-i选项用于替换文件,-e选项执行脚本。在这种情况下,它恰好是‘s/1001/1014/g’,它将全局替换/etc/password文件中的UUID:
kali@kali:~/home/marcus$ sudo sed -i -e 's/1001/1014/g' /etc/passwd
kali@kali:~/home/marcus$ cat /etc/passwd | grep pwn
pwn:x:1014:1014:,,,:/home/pwn:/bin/bash
到现在为止让我们尝试向新添加的pwn用户,验证我们的UUID确实改变了,然后再尝试再次访问该文件。我们将使用su命令来更改当前登录会话的所有者。然后,我们将使用id来显示我们当前的用户ID。最后,我们将尝试再次访问该文件:
kali@kali:~/home/hello_freebuf$ su pwn
pwn@kali:/root/home/hello_freebuf$ id
uid=1014(pwn) gid=1014 groups=1014
pwn@kali:/root/home/hello_freebuf$ cat creds.txt
Welcome to the Freebuf !!! :)
SMTP 枚举
我们还可以从易受攻击的邮件服务器中收集有关主机或网络的信息。简单邮件传输协议(SMTP)
SMTP有趣的命令,VRFY和EXPN。VRFY请求请求服务器验证电子邮件地址,而EXPN请求服务器提供邮件列表的成员身份。
SNMP 枚举
多年来,我们经常发现,许多网络管理员并没有很好地理解简单网络管理协议(SNMP)。
SNMP基于UDP,这是一种简单的、无状态的协议,因此很容易受到IP欺骗和重放攻击。
此外,常用的SNMP协议1、2和2c不提供流量加密,这意味着SNMP信息和凭证可以很容易地通过本地网络被拦截。传统的SNMP协议也有较弱的身份验证方案,并且通常只配置默认的公共和私有社区字符串。
SNMP MIB 树
SNMP管理信息库(MIB)是一个数据库,通常包含与网络管理相关的信息。
扫描SNMP
要扫描打开的SNMP端口,我们可以运行nmap,如下示例所示。-sU选项用于执行UDP扫描,--open选项用于限制输出以仅显示打开的端口:
kali@kali:~$ sudo nmap -sU --open -p 161 10.11.1.1-254 -oG open-snmp.txt
Windows SNMP 枚举
我们可以使用SNMPwalk等工具来探测和查询SNMP值,只要我们至少知道SNMP只读社区字符串,它在大多数情况下是“公共的”。
枚举整一个MIB树
使用下面命令中提供的一些MIB值,我们可以尝试枚举它们对应的值。针对实验室中的已知机器尝试下面的示例,该机器有一个WindowsSNMP端口,并公开了社区字符串“公共”。此命令使用-c选项枚举整个MIB树来指定社区字符串,使用-v来指定SNMP版本号以及-t 10来将超时时间增加到10秒:
kali@kali:~$ snmpwalk -c public -v1 -t 10 10.11.1.14
iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: x86 Family 6 Model 12 Stepping 2 AT/AT COMPAT
IBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.311.1.1.3.1.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (2005539644) 232 days, 2:56:36.44
iso.3.6.1.2.1.1.4.0 = ""
...
枚举Windows用户
kali@kali:~$ snmpwalk -c public -v1 10.11.1.14 1.3.6.1.4.1.77.1.2.25
iso.3.6.1.4.1.77.1.2.25.1.1.3.98.111.98 = STRING: "bob"
iso.3.6.1.4.1.77.1.2.25.1.1.5.71.117.101.115.116 = STRING: "Guest"
iso.3.6.1.4.1.77.1.2.25.1.1.8.73.85.83.82.95.66.79.66 = STRING: "IUSR_BOB"
...
枚举正在运行的Windows进程
kali@kali:~$ snmpwalk -c public -v1 10.11.1.73 1.3.6.1.2.1.25.4.2.1.2
iso.3.6.1.2.1.25.4.2.1.2.1 = STRING: "System Idle Process"
iso.3.6.1.2.1.25.4.2.1.2.4 = STRING: "System"
iso.3.6.1.2.1.25.4.2.1.2.224 = STRING: "smss.exe"
iso.3.6.1.2.1.25.4.2.1.2.324 = STRING: "csrss.exe"
iso.3.6.1.2.1.25.4.2.1.2.364 = STRING: "wininit.exe"
iso.3.6.1.2.1.25.4.2.1.2.372 = STRING: "csrss.exe"
iso.3.6.1.2.1.25.4.2.1.2.420 = STRING: "winlogon.exe"
iso.3.6.1.2.1.25.4.2.1.2.448 = STRING: "services.exe"
iso.3.6.1.2.1.25.4.2.1.2.480 = STRING: "lsass.exe"
iso.3.6.1.2.1.25.4.2.1.2.488 = STRING: "lsm.exe"
枚举已打开的TCP端口
kali@kali:~$ snmpwalk -c public -v1 10.11.1.14 1.3.6.1.2.1.6.13.1.3
iso.3.6.1.2.1.6.13.1.3.0.0.0.0.21.0.0.0.0.18646 = INTEGER: 21
iso.3.6.1.2.1.6.13.1.3.0.0.0.0.80.0.0.0.0.45310 = INTEGER: 80
iso.3.6.1.2.1.6.13.1.3.0.0.0.0.135.0.0.0.0.24806 = INTEGER: 135
iso.3.6.1.2.1.6.13.1.3.0.0.0.0.443.0.0.0.0.45070 = INTEGER: 443
...
枚举已经安装的软件
kali@kali:~$ snmpwalk -c public -v1 10.11.1.50 1.3.6.1.2.1.25.6.3.1.2
iso.3.6.1.2.1.25.6.3.1.2.1 = STRING: "LiveUpdate 3.3 (Symantec Corporation)"
iso.3.6.1.2.1.25.6.3.1.2.2 = STRING: "WampServer 2.5"
iso.3.6.1.2.1.25.6.3.1.2.3 = STRING: "VMware Tools"
iso.3.6.1.2.1.25.6.3.1.2.4 = STRING: "Microsoft Visual C++ 2008 Redistributable - x86
9.0.30729.4148"
iso.3.6.1.2.1.25.6.3.1.2.5 = STRING: "Microsoft Visual C++ 2012 Redistributable (x86)
- 11.0.61030"
...
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
