freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

OSCP | 第七章 主动信息收集 其他服务枚举
女鬼水妖 2022-04-14 16:22:10 170322
所属地 广东省

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"
...
# 渗透测试 # 黑客 # 网络安全 # 网络安全技术 # OSCP
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 女鬼水妖 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
入门OSCP
女鬼水妖 LV.3
Personal Blog English Edition: https://kelpie.top
  • 7 文章数
  • 8 关注者
OSCP | 第七章 主动信息收集 端口扫描
2022-04-11
OSCP | 第七章 主动信息收集 DNS
2022-04-11
OSCP | 第六章 被动信息收集
2022-04-11
文章目录