前言

枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关信息。

DNS枚举可以收集本地所有DNS服务和相关条目,可以帮助用户收集目标组织的关键信息,如用户名、计算机名和IP地址等,可以使用DNSenum工具来进行。

SNMP枚举可以帮助用户分析一个网络内SNMP信息传输,可以使用SnmpEnum工具。

DNS枚举

DNSenum

它是一个很强大的域名信息收集工具,可以通过Google或者字典猜测到可能存在的域名并对一个网段进行反向查询。它不仅可以查询网站主机地址信息、域名服务器和邮件交换记录,还可以在域名服务器上执行axfr请求然后通过Google脚本得到扩展域名信息,提取子域名并查询,最后计算C类地址并执行whois查询,执行反向查询,把地址写入文件。

1
dnsenum --enum [目标地址]

注:Google脚本查询需要进行科学上网,这里不做演示

baidu.com为例:

输出的信息显示了DNS服务器的相信信息,包括主机地址、域名服务地址和邮件服务地址,某些情况下还可以看到区域传输信息。

其他参数:

  • –threads [数字] 设置用户同时运行多个进程数
  • -r 允许用户启动递归查询
  • -d 允许用户设置whois请求之间的时间延迟,单位s
  • -o 指定输出位置
  • -w 启用whois请求

fierce

fierce主要对子域名进行扫描和收集信息。

1
fierce -dns [地址]

获取目标主机上所有的IP地址和主机信息:

输出的信息显示了所有baudu.com下所有的子域,也可以通过一个字典执行相同的操作:

1
fierce -dns [目标地址] -wordlist hosts.txt [输出路径]

SNMP枚举工具

Snmpwalk

它是一个SNMP应用程序,使用SNMP的GETNEXT请求,查询指定的所有OID (SNMP协议中的对象标识) 树信息,并输出。

使用 snmpwalk -h 查看命令帮助,了解参数。

普通测试主机:

1
snmpwalk -c public [目标地址] -v 2c

枚举安装软件:(以ftp为例)

1
snmpwalk -c public [目标地址] -v 1 | grep ftp

枚举目标主机打开的TCP端口:

1
snmpwalk -c public [目标地址] -v 1 | grep tcpConnState | cut -d "." -f6 | sort -nu

Snmpcheck

它允许用户枚举SNMP设备的同时将结果以可读的方式输出。

注:snmpcheck版本不同用法不同,命令格式也不同,在kali中甚至是两个软件,一个使用 snmpcheck 命令,一个使用 snmp-check 命令。

直接扫描主机:

1
snmp-check [目标地址]

或者加上相应时间参数,单位秒:

1
snmp-check -t [时间] [目标地址]

分析获得的数据

首先输出的是枚举运行信息:

获取系统信息,如主机名、操作系统类型及架构等:

获取用户账户信息:

获取网络信息,如TTL值、TCP段和数据元:

从上到下依次为:是否启用IP转发、默认TTL值、收到TCP段、发送TCP段、重发TCP段、输入数据元、传输数据元、输出数据元。

获取网络接口信息:

还有IP地址等信息:

获取路由信息:

获取监听的TCP端口:

获取监听UDP端口信息:

获取网络服务信息:

获取进程信息:

img

获取存储信息:

img

获取设备信息:

img

获取WEB服务信息:

img

如果安装其他软件还会有软件组件信息等。

SMTP枚举工具:smtp-user-enum

它是针对SMTP服务器的25端口,进行用户名枚举的工具,用来探测服务器已存在的邮箱账户。

1
smtp-user-enum -M VRFY -U /[字典]/ -t [目标地址]