本节书摘来自异步社区《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选项指定一个字典进行破解。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关资源:Nmap渗透测试指南.pdf