信息收集之枚举服务
前言
枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关信息。
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端口信息:
获取网络服务信息:
获取进程信息:
获取存储信息:
获取设备信息:
获取WEB服务信息:
如果安装其他软件还会有软件组件信息等。
SMTP枚举工具:smtp-user-enum
它是针对SMTP服务器的25端口,进行用户名枚举的工具,用来探测服务器已存在的邮箱账户。
1 | smtp-user-enum -M VRFY -U /[字典]/ -t [目标地址] |