本节书摘来自异步社区《Nmap渗透测试指南》一书中的第9章9.10节SNMP安全审计,作者 商广明,更多章节内容可以访问云栖社区“异步社区”公众号查看。
9.10 SNMP安全审计
表9.11所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——SNMP服务安全审计。
简单网络管理协议(SNMP)由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(Internet Engineering Task Force,IETF)定义的Internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
Nmap的snmp-netstat脚本可以识别并自动添加新的目标进行扫描,通过该脚本可以查询SNMP协议,可以获取目标主机的网络状态。
操作步骤
使用命令“nmap -sU -p 161 --script=snmp-netstat 目标”即可获取目标主机网络连接状态。
root@Wing:~# nmap -sU -p 161 --script=snmp-netstat 192.168.121.3
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-28 20:55 CST
Nmap scan report for 192.168.121.3 (192.168.121.3)
Host is up (0.000068s latency).
PORT STATE SERVICE
161/udp open snmp
| snmp-netstat:
| TCP 0.0.0.0:21 0.0.0.0:2256
| TCP 0.0.0.0:80 0.0.0.0:8218
| TCP 0.0.0.0:135 0.0.0.0:53285
| TCP 0.0.0.0:389 0.0.0.0:38990
| TCP 0.0.0.0:445 0.0.0.0:49158
| TCP 192.168.121.3:389 192.168.121.1:1045
| TCP 192.168.121.3:389 192.168.121.1:1048
| UDP 192.168.121.3:137 *:*
| UDP 192.168.121.3:138 *:*
| UDP 192.168.121.3:389 *:*
|_ UDP 192.168.121.3:464 *:*
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
root@Wing:~#
分析
从以上信息可以看到目标主机192.168.121.3的网络连接情况,目标主机192.168.121.3通过389端口与主机192.168.121.1的1045端口建立了TCP连接。
进程是指在系统中正在运行的一个应用程序,线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务,如果结束掉一个进程则相对应的程序也会被强制关闭。在Nmap中snmp-processes脚本可以通过SNMP服务协议枚举运行的系统进程。
root@Wing:~# nmap -sU -p 161 --script=snmp-processes 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-28 21:03 CST
Nmap scan report for 192.168.121.1
Host is up (0.0018s latency).
PORT STATE SERVICE
161/udp open snmp
| snmp-processes:
| 1:
| Name: System Idle Process
| 4:
| Name: System
| 256:
| Name: smss.exe
| Path: \SystemRoot\System32\
| 308:
| Name: csrss.exe
| Path: C:\WINDOWS\system32\
| Params: ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserS
| 332:
| Name: winlogon.exe
| 380:
| Name: services.exe
| Path: C:\WINDOWS\system32\
| 392:
| Name: lsass.exe
|_ Path: C:\WINDOWS\system32\
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
root@Wing:~#
从以上信息可以得知目标主机运行的进程名称、进程号、进程路径等信息。获得信息的多少取决于目标系统运行程序的多少。Nmap中的snmp-win32-services脚本可以获得Windows服务器的服务。
root@Wing:~# nmap -sU -p 161 --script=snmp-win32-services 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-28 21:09 CST
Nmap scan report for 192.168.121.1
Host is up (0.0013s latency).
PORT STATE SERVICE
161/udp open snmp
| snmp-win32-services:
| Apache Tomcat
| Application Experience Lookup Service
| Application Layer Gateway Service
| Automatic Updates
| COM+ Event System
| COM+ System Application
| Computer Browser
| Cryptographic Services
| DB2 - DB2COPY1 - DB2
| DB2 Management Service (DB2COPY1)
| DB2 Remote Command Server (DB2COPY1)
| DB2DAS - DB2DAS00
|_ DCOM Server Process Launcher
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
root@Wing:~#
Snmp服务的密码一旦被破解对服务器的威胁是非常大的,如何避免这种情况的产生?Nmap中的snmp-brute的脚本可以对目标服务器的Snmp服务进行口令审计。
root@Wing:~# nmap -sU -p 161 --script snmp-brute 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-28 21:14 CST
Nmap scan report for 192.168.121.1
Host is up (0.0013s latency).
PORT STATE SERVICE
161/udp open snmp
| snmp-brute:
|_ admin - Valid credentials
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
root@Wing:~#
从输出的结果得知目标服务器Snmp服务的密码为admin。若没有得到满意的结果还可以使用snmp-brute.communitiesdb选项指定一个字典进行破解。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。