网络渗透与防御策略解析
1. 网络侦察工具概述
在网络渗透与防御的过程中,侦察是至关重要的一步。一些工具能够利用 NULL 会话来收集账户数据,例如 DumpSec、Enum 和 UserDump 等。这些工具可以在未经身份验证的空会话中,对用户、组、策略、服务和权限(包括文件系统权限)进行编目。
1.1 Windows NT/2000 系统侦察工具
以下是一些可用于从 Windows NT/2000 系统收集账户和权限侦察信息的工具:
| 工具 | 作者 | 来源 | 描述 |
| — | — | — | — |
| DumpSec | Somarsoft | http://www.somarsoft.com | 可枚举文件/文件共享权限(DACLs)、审计设置(SACLs)、打印机共享、注册表设置、服务、用户、组和复制信息 |
| Enum | Bindview Razor Team | http://www.bindview.com | 基于控制台的 Win32 信息枚举实用程序,使用空会话可检索用户列表、机器列表、共享列表、名称列表、组/成员列表、密码和 LSA 策略信息,还能对单个账户进行基本的暴力字典攻击 |
| GetAcct | Urity | http://www.securityfriday.com | 绕过 “RestrictAnonymous = 1”,通过枚举目标系统的 SID 和 “遍历” RID 值来详细列出账户信息 |
| Legion | Rhino9 | http://packet-stormsecurity.org | NetBIOS 扫描器,扫描网络中是否存在未受保护或保护不佳的文件共享,可尝试暴力破解共享密码 |
| NetBIOS Auditing Tool (NAT) | Andrew Tridgell | ftp://ftp.secnet.com/pub/tools/nat10/nat10bin.zip | 枚举 Windows 文件共享,并可对 Windows 共享密码进行字典攻击。通过 TCP 139 枚举共享信息,可使用空会话(如果可用)或尝试猜测密码以建立到目标服务器的身份验证会话 |
| nbtdump | David Litchfield | http://www.atstake.com/research/tools/nbtdump.exe | 创建空会话并枚举共享、用户和系统密码策略 |
| nbtscan | Alla Bezroutchko | http://www.iNetcat.org/software/nbtscan.html | 使用 “nbtstat” 审计一系列系统或整个网络上的 NetBIOS 名称表,NetBIOS 名称表可能包含系统名称、服务名称、域名和账户名称 |
| Nete | Sir Dystic | http://pr0n.newhackcity.net/~sd/netbios.html | 使用 NULL 会话从目标系统获取各种信息,包括文件/文件共享、用户、组、磁盘、系统、复制信息、会话、服务和受信任的域 |
| UserDump | Tim Mullen | http://www.hammerofgod.com/download.htm | 与 GetAcct 类似,通过枚举目标系统的 SID 和 “遍历” RID 值来详细列出账户信息,可枚举目标域中的所有用户,能绕过 RestrictAnonymous = 1 |
| UserInfo | Tim Mullen | http://www.hammerofgod.com/download.htm | 通过 TCP 端口 139 从 Windows NT 和 2000 系统检索用户信息,可返回 SIDs、主组成员身份、登录限制、特殊组成员身份、密码策略等,能绕过 RestrictAnonymous = 1 |
| Walksam | Todd Sabin | http://razor.bindview.com/tools/ | 允许通过命名管道(TCP 139、445)或其他协议序列从 SAM 数据库中导出用户信息,也可通过 IIS 代理遍历 SAM 数据库 |
| Winfo | Arne Vidstrom | http://www.ntsecurity.nu | 使用空会话检索用户账户、工作站信任账户、域间信任账户、服务器信任账户和文件/打印共享(包括隐藏共享),还能识别内置的管理员和来宾账户 |
1.2 工具使用流程示例
以 Enum 工具为例,其使用流程如下:
1. 确保工具已正确下载和安装。
2. 打开命令行界面。
3. 输入相应的命令,利用空会话进行信息检索,例如:
enum -u <目标系统 IP>
此命令可用于检索目标系统的用户列表。
2. 网络信息服务(NIS)侦察
2.1 NIS 概述
网络信息服务(NIS)由 Sun Microsystems 开发,用于在联网的 UNIX 系统中提供一个中央存储库,以维护和分发关键配置文件。如果能够建立 NIS 存在、嗅探 NIS 客户端流量或攻破 NIS 客户端或服务器,未经授权的用户就可以获取大量的用户、组和主机配置信息。
NIS 可以将关键文件(如 /etc/passwd、/etc/hosts 等)的配置维护集中在单个系统(或一组系统)上。中央系统上的 NIS 数据库会复制到选定的从服务器,并由 NIS 客户端使用数据库 “映射” 进行查询。为了提高效率,支持 NIS 的网络可以组织成 NIS 域,其中 “域” 是使用相同 NIS 数据库的一组系统。
2.2 NIS 域数据库信息
NIS 域数据库可能包含以下信息:
| NIS 映射 | 描述 |
| — | — |
| bootparams | 列出无盘客户端的名称以及它们在启动时所需文件的位置 |
| ethers.byaddr | 列出工作站的以太网地址及其对应的名称 |
| ethers.byname | 列出工作站的名称及其对应的以太网地址 |
| group.bygid | 以组 ID 为键,提供组的成员信息 |
| group.byname | 以组名称为键,提供组的成员信息 |
| hosts.byaddr | 以地址为键,列出工作站的名称和地址 |
| hosts.byname | 以名称为键,列出工作站的名称和地址 |
| mail.aliases | 列出命名空间中的邮件别名以及属于它们的所有工作站 |
| mail.byaddr | 以地址为键,列出命名空间中的邮件别名 |
| netgroup | 以组名称为键,包含网络组信息 |
| netgroup.byhost | 以工作站名称为键,包含命名空间中网络组的信息 |
| netgroup.byuser | 以用户为键,包含网络组信息 |
| netid.byname | 包含工作站和用户的安全远程过程调用(RPC)网络名称,以及它们的用户 ID 和组 ID |
| netmasks.byaddr | 以地址为键,包含用于 IP 子网划分的网络掩码 |
| netmasks.byhost | 包含命名空间中网络的名称和地址,以及它们的 Internet 地址 |
| networks.byname | 以名称为键,包含命名空间中网络的名称和地址 |
| passwd.byname | 以用户名作为键,包含密码信息 |
| passwd.byuid | 以用户 ID 作为键,包含密码信息 |
| protocols.byname | 列出使用的网络协议 |
| protocols.bynumber | 列出使用的网络协议,但以协议编号作为键 |
| publickey.byname | 包含用于安全 RPC 的公钥和密钥 |
| rpc.bynumber | 列出已知的 RPC 程序名称和编号 |
| services.byname | 列出可用的 Internet 服务 |
| ypservers | 列出命名空间中的 NIS 服务器及其 IP 地址 |
2.3 NIS 攻击与漏洞
NIS 通过 RPC 交换数据,这使其容易受到与 RPC 相同的一些攻击和利用。除非使用安全 RPC 来交换 NIS 数据,否则 NIS 映射数据可能会从网络中被嗅探到,并且可能会伪造 NIS 客户端或服务器的存在,以获取 NIS 映射或映射数据。
2.3.1 攻击流程
如果攻击者能够伪造受信任客户端的地址,就可以使用常规的 NIS 命令(如 ypbind 和 ypcat)向 NIS 服务器提交查询:
domainname nisdomain.com
ypbind
ypcat passwd.byname
2.3.2 常见攻击方式
- 账户破解 :如果攻击者能够通过 NIS 从系统中获取账户/密码映射,就可以尝试对目标系统上的账户进行离线破解。如果攻击者在系统上有本地权限,还可以使用 ypcat 尝试破解加密密码。
- 客户端和服务器欺骗 :由于 NIS 交换基于 RPC,且默认情况下 NIS RPC 通信不进行身份验证,攻击者可以伪造 NIS(客户端)请求或 NIS(服务器)回复,以获取侦察信息或向客户端填充错误数据。
- 有限的密码加密 :NIS 在许多 UNIX 平台(如 Linux)上使用 8 字符的有限 DES 密码加密,这使得攻击者更容易通过 NIS 破解加密密码。
- NIS 漏洞 :NIS 中发现了缓冲区溢出和其他可利用的漏洞,目前许多或所有这些漏洞都可以通过打补丁来修复。
- 侦察 :许多 NIS 映射文件包含敏感的拓扑或用户数据,根据 NIS 配置,远程用户或攻击者有可能获取 NIS 映射。
- RPC 漏洞 :RPC 有一些记录在案的漏洞,攻击者可以利用这些漏洞访问 NIS 客户端或服务器,或操纵客户端 - 服务器交换。
- Ypserv 替换 :如果攻击者能够替换 NIS 服务器上的 ypserv 服务,就可以向 NIS 客户端分发伪造的 NIS 数据,从而扩大其在网络上的存在并攻破其他(客户端)系统。
2.4 NIS 黑客工具
以下是一些常见的 NIS 黑客工具:
| 工具 | 位置 | 描述 |
| — | — | — |
| Ypfake | ftp://ftp/usenet/comp.archives/internet/yp/ypfake | 生成伪造的 NIS 响应数据的 NIS 黑客工具 |
| Ypghost | http://us1.unix.geek.org.uk/~arny/progs/ypghost/ypghost.html | NIS 欺骗工具 |
2.5 NIS 攻击流程 mermaid 图
graph LR
A[攻击者] -->|伪造客户端地址| B[NIS 服务器]
B -->|响应查询| C[攻击者获取信息]
A -->|使用 Ypfake 或 Ypghost| B
B -->|返回伪造数据| D[NIS 客户端]
3. SNMP 侦察
3.1 SNMP 概述
SNMP 相关的黑客攻击和侦察收集在之前有过详细讨论。默认情况下,Windows NT 和 Windows 2000 系统不安装 SNMP;然而,某些 Linux 实现会在操作系统安装时安装 SNMP 服务,所有版本的 Solaris(直到 Solaris 2.8)都会默认安装利用 SNMP 的服务。
3.2 Solaris 2.8 默认安装的 SNMP 服务
以下是 Solaris 2.8 默认安装的一些 SNMP 服务:
snmpdx 808 root 4u inet 0xf61c8418 0t0 UDP *:snmp (Idle)
snmpdx 808 root 5u inet 0xf61c8568 0t0 UDP *:33037 (Idle)
snmpdx 808 root 6u inet 0xf6459c70 0t0 UDP *:33038 (Idle)
snmpXdmid 815 root 0u inet 0xf61c84f8 0t0 UDP *:33031 (Idle)
snmpXdmid 815 root 1u inet 0xf6459f80 0t0 TCP *:32792 (LISTEN)
snmpXdmid 815 root 6u inet 0xf6459d50 0t0 UDP *:33033 (Idle)
snmpXdmid 815 root 7u inet 0xf6459ce0 0t0 UDP *:6500 (Idle)
3.3 Solaris 2.6 版本的漏洞
Jeremy Rauch 在 1998 年的一篇论文中记录了 Sun Solaris 2.6 版本的一系列漏洞:
-
侦察漏洞
:这是许多 SNMP 实现共有的漏洞,在 Solaris 2.6 版本中,由于一系列 MIB 扩展(如 /var/snmp/mib/sun.mib 中的 sunProcesses),使得列出正在运行的进程、用户等变得更加容易,从而加剧了该漏洞。
-
MIB 操作
:Sun Solaris 2.6 提供了三个社区 —— public、private 和 all - private。all - private 对整个 MIB 具有写访问权限,这为对主机系统进行重大 SNMP 更新提供了可能性。
-
MIB 代理操作
:Sun Solaris 2.6 使用了一个 MIB 子代理 —— mibiisa,攻击者可以通过 “all private” 社区使用它来执行设置操作。通过识别 mibiisa 用于接受更新的端口,攻击者有可能更新系统配置。
3.4 SNMP 侦察工具
如果攻击者能够嗅探、猜测或暴力破解 SNMP 社区字符串,或者使用 “public” 等默认社区字符串来保护 SNMP 配置,就可以使用 SNMP 侦察工具(如 snmpwalk、snmputil 和 SolarWinds)来检索有用的账户和权限侦察数据。
以下是一些 SNMP 侦察工具:
| 工具 | 描述 |
| — | — |
| snmpwalk | 用于遍历 SNMP MIB 树,获取设备的各种信息 |
| snmputil | 可用于与 SNMP 代理进行交互,执行各种操作 |
| SolarWinds SNMP 浏览器 | 可通过不安全的 SNMP 配置收集侦察数据 |
3.5 SNMP 攻击流程 mermaid 图
graph LR
A[攻击者] -->|嗅探/猜测/暴力破解社区字符串| B[SNMP 设备]
B -->|返回信息| A
A -->|使用侦察工具| B
4. 网络信任关系利用
网络系统(操作系统或应用程序组件)之间的信任关系常常被攻击者利用,以扩展对网络和其他联网系统的访问权限。以下是一些常见的利用技术:
-
获取或伪造身份验证凭据
:在账户数据库跨系统或权限域共享的情况下,攻击者可能会获取或伪造身份验证凭据,以操纵系统/网络信任关系。
-
捕获/劫持、伪造或模拟身份验证/授权令牌
:攻击者可以捕获、劫持、伪造或模拟身份验证/授权令牌,以伪装成受信任的主机身份或应用程序组件。
5. 其他攻击技术
5.1 账户破解
账户破解技术在之前有过讨论。如果身份验证方案容易被破解,账户破解技术对账户域和其他集中式身份验证机制尤其有效。
5.2 IP 欺骗
IP 欺骗技术也有相关介绍。依赖 IP 地址进行主机身份验证的服务(如 UNIX “R” 服务和 NFS)特别容易受到 IP 欺骗的攻击。一旦攻击者成功伪造 IP 地址,就可能能够侵入基于 IP 的登录机制或文件共享设备,以扩大对其他联网系统的访问。
5.3 令牌捕获和模拟
会话 ID/令牌捕获和欺骗也有提及。攻击者可以通过捕获和模拟令牌来获取系统的访问权限。
综上所述,在网络安全领域,了解这些侦察和攻击技术对于防御者来说至关重要。只有充分认识到潜在的威胁,才能采取有效的措施来保护网络系统的安全。同时,对于攻击者而言,这些技术也可以帮助他们更好地评估目标系统的安全性,寻找潜在的漏洞。在实际应用中,无论是防御还是攻击,都需要谨慎操作,遵守法律法规。
6. 网络侦察与攻击技术总结
6.1 技术对比
为了更清晰地了解不同侦察和攻击技术的特点,下面对前面介绍的内容进行对比总结:
| 技术类型 | 主要工具 | 攻击目标系统 | 攻击方式 | 主要风险 |
| — | — | — | — | — |
| 基于 NULL 会话的侦察 | DumpSec、Enum、UserDump 等 | Windows NT/2000 系统 | 利用 NULL 会话收集账户数据 | 泄露用户、组、权限等信息 |
| NIS 侦察与攻击 | Ypfake、Ypghost | 联网的 UNIX 系统(使用 NIS) | 伪造请求或回复、破解密码等 | 泄露敏感配置信息、篡改数据 |
| SNMP 侦察 | snmpwalk、snmputil、SolarWinds SNMP 浏览器 | 安装 SNMP 服务的系统(如部分 Linux、Solaris) | 嗅探、猜测社区字符串 | 泄露系统运行信息、可篡改系统配置 |
| 网络信任关系利用 | 无特定工具 | 存在信任关系的系统 | 获取或伪造凭据、令牌 | 扩大网络访问范围 |
| 账户破解 | 无特定工具 | 各类系统 | 离线破解、暴力破解 | 账户被盗用 |
| IP 欺骗 | 无特定工具 | 依赖 IP 认证的服务(如 UNIX “R” 服务、NFS) | 伪造 IP 地址 | 侵入系统或共享设备 |
| 令牌捕获和模拟 | 无特定工具 | 各类系统 | 捕获和模拟令牌 | 非法获取系统访问权限 |
6.2 技术关联 mermaid 图
graph LR
A[基于 NULL 会话的侦察] -->|信息关联| B[网络信任关系利用]
C[NIS 侦察与攻击] -->|数据关联| B
D[SNMP 侦察] -->|信息关联| B
E[账户破解] -->|权限关联| B
F[IP 欺骗] -->|访问关联| B
G[令牌捕获和模拟] -->|身份关联| B
B -->|扩大攻击范围| H[更多系统和服务]
7. 防御策略建议
7.1 针对侦察工具的防御
- 限制 NULL 会话使用 :对于 Windows NT/2000 系统,可通过设置 “RestrictAnonymous = 1” 等方式,限制利用 NULL 会话的侦察工具获取信息。
- 及时更新系统和工具 :保持系统和相关工具的最新版本,以修复已知的漏洞,防止被工具利用。
7.2 针对 NIS 的防御
- 使用安全 RPC :在 NIS 数据交换中使用安全 RPC,防止 NIS 映射数据被嗅探和伪造。
- 定期检查和更新 NIS 服务器 :及时发现并修复 NIS 服务器中的漏洞,如缓冲区溢出等问题。
- 限制 NIS 客户端访问 :严格控制 NIS 客户端的访问权限,避免未授权的客户端获取敏感信息。
7.3 针对 SNMP 的防御
- 更改默认社区字符串 :避免使用 “public” 等默认社区字符串,设置复杂且安全的社区字符串。
- 限制 SNMP 服务访问 :通过防火墙等手段,限制对 SNMP 服务的访问,只允许特定的 IP 地址进行通信。
- 及时更新 SNMP 相关软件 :修复已知的漏洞,防止被攻击者利用。
7.4 针对网络信任关系的防御
- 严格管理身份验证凭据 :对账户数据库进行安全存储和管理,定期更换密码,避免凭据泄露。
- 加强令牌管理 :采用安全的令牌生成和验证机制,防止令牌被捕获和模拟。
7.5 通用防御策略
- 安装入侵检测系统(IDS)和入侵防御系统(IPS) :实时监测网络流量,及时发现和阻止异常的侦察和攻击行为。
- 进行安全培训 :提高用户和管理员的安全意识,避免因人为疏忽导致安全漏洞。
- 制定应急响应计划 :在发生安全事件时,能够迅速采取措施,减少损失。
8. 实际案例分析
8.1 案例一:NIS 攻击导致系统数据泄露
某公司的 UNIX 系统采用 NIS 进行配置管理。攻击者通过嗅探 NIS 客户端流量,获取了 NIS 社区字符串,并利用该字符串向 NIS 服务器发送伪造的请求。攻击者成功获取了系统的账户/密码映射,并进行离线破解,导致多个重要账户被盗用,公司的敏感数据泄露。
案例分析
- 漏洞原因 :NIS 配置未使用安全 RPC,且社区字符串未进行加密保护,容易被嗅探和猜测。
- 防御建议 :采用安全 RPC 进行 NIS 数据交换,设置复杂的社区字符串,并定期更换。
8.2 案例二:SNMP 漏洞导致系统被篡改
某企业的服务器安装了 SNMP 服务,使用默认的 “public” 社区字符串进行保护。攻击者利用 snmpwalk 工具,通过猜测社区字符串,获取了服务器的运行信息,并利用 MIB 操作漏洞,篡改了服务器的配置,导致服务器无法正常运行。
案例分析
- 漏洞原因 :使用默认社区字符串,未对 SNMP 服务进行严格的访问控制,且服务器存在 MIB 操作漏洞。
- 防御建议 :更改默认社区字符串,通过防火墙限制 SNMP 服务的访问,及时更新服务器软件以修复漏洞。
9. 未来趋势展望
9.1 攻击技术的发展
- 自动化攻击工具的兴起 :未来可能会出现更多自动化的攻击工具,能够快速扫描和利用多个系统的漏洞,提高攻击效率。
- 人工智能在攻击中的应用 :攻击者可能会利用人工智能技术,分析系统的安全漏洞和防御策略,制定更有效的攻击方案。
9.2 防御技术的发展
- 零信任架构的普及 :零信任架构将不再信任任何内部或外部的设备和用户,需要进行严格的身份验证和授权,以提高网络的安全性。
- 基于大数据和人工智能的安全分析 :通过收集和分析大量的网络安全数据,利用人工智能技术实时监测和预测安全威胁,及时采取防御措施。
9.3 法律法规的完善
随着网络安全问题的日益严重,各国将加强对网络攻击和犯罪的立法和执法力度,对攻击者进行更严厉的惩罚。
在未来的网络安全领域,攻击与防御技术将不断发展和对抗。无论是企业还是个人,都需要不断学习和更新安全知识,采取有效的防御措施,以应对日益复杂的网络安全威胁。同时,遵守法律法规,共同维护网络空间的安全和稳定。
超级会员免费看
2955

被折叠的 条评论
为什么被折叠?



