Kali信息收集

前言

  渗透测试最重要的阶段之一就是信息收集,需要收集关于目标主机的基本细腻些。渗透测试人员得到的信息越多,渗透测试成功的概率也就越高。

 

一、枚举服务

1.1 DNS枚举工具DNSenum

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

root@kali:~# dnsenum --enum baidu.com

输出信息显示了DNS服务的详细信息。其中,包括主机地址、域名服务地址和邮件服务地址。

使用DNSenum工具检查DNS枚举时,可以使用dnsenum的一个附加选项,如下所示:

--threads[number]: 设置用户同时运行多个进程数。
-r: 允许用户启用递归查询。
-d: 允许用户设置whois请求之间时间延迟数(单位秒)。
-o: 允许用户指定输出位置。
-w: 允许用户启用whois请求。

 

1.2 DNS枚举工具fierce

  fierce工具和DNSenum工具性质差不多,其fierce主要是对子域名进行扫描和收集信息的。使用fierce工具获取一个目标主机上所有IP地址和主机信息。

执行命令如下所示:

root@kali:~# fierce -dns baidu.com

 

1.3 SNMP枚举工具snmpwalk

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

 使用snmpwalk测试centos6 主机

centos主机启动snmp服务

yum -y install net-snmp net-snmp-devel net-snmp-utils
service iptables stop
service snmpd start

 

 

root@kali:~# snmpwalk -c public 192.168.244.132 -v 2c

 

 

1.4 SNMP枚举工具snmpcheck

  snmpcheck工具允许用户枚举SNMP设置的同时将结果以可读的方式输出。

root@kali:~# snmpcheck -t 192.168.244.132

 

1.5 SMTP枚举工具smtp-user-enum

https://tools.kali.org/information-gathering/smtp-user-enum

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

smtp-user-enum -M VRFY -U /tmp/users.txt -t 192.168.244.132

 

二、域名查询及路由跟踪

2.1 域名查询工具DMitry

  DMitry工具是用来查询IP或域名whois信息的。whois是用来查询域名是否已经被注册及已经注册域名的详细信息的数据库(如域名所有人和域名注册商)。使用该工具可以查到域名的注册商和过期时间等。

root@kali:~# dmitry -wnpb rzchina.net

 

 

 

  •  netmask工具将域名xxx转换成标准的子网掩码格式
root@kali:~# netmask -s rzchina.net

 

 

2.2 路由跟踪工具scapy

https://scapy.readthedocs.io/en/latest/usage.html

  scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。它提供多种类别的交互式生成数据包或数据包集合、对数据包进行操作、发送数据包、包嗅探、应答和反馈匹配等功能。

使用scapy实现多行并行跟踪路由功能。

(1)启动scapy工具。

root@kali:~# scapy

 

 (2)使用sr()函数实现发送和接受数据包。执行命令如下所示:

>>> ans,unans=sr(IP(dst="www.rzchina.net/30",ttl=(1,6))/TCP())

 

 执行以上命令后,会自动与www.rzchina.net建立连接。执行几分钟后,使用Ctrl+C终止接受数据包。从输出的信息中可以看到收到61个数据包,得到2个响应包及保留了22个包。

(3)以表的形式查看数据包发送情况。

>>> ans.make_table(lambda s,r: (s.dst, s.ttl, r.src))                                                                        
  180.178.61.80 
1 192.168.244.2 
>>> ans.make_table(lambda s,r: (s.dst, s.dport, r.sprintf("{TCP:%TCP.flags%}{ICMP:%IP.src% - %ICMP.type%}")))                
   180.178.61.80                 
80 192.168.244.2 - time-exceeded 

 

 

三、识别网络中活跃的主机

3.1 网络映射器工具NAMP

  Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(network Mapper)。该工具基本功能有三个,一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;三是可以推断主机所用的操作系统。通常,用户利用nmap来进行网络系统安全评估

 

3.2  使用NAMP识别活跃主机

root@kali:~# nmap -sP 192.168.244.132

 

 从输出的信息可以看到主机的域名、主机在线和MAC地址等

也可以使用nping(nmap套具)查看,能够获取更多详细信息

root@kali:~# nping --echo-client "public" echo.nmap.org

 

 输出的信息显示了与echo.nmap.org网站连接是数据的发送情况,如发送数据包的时间、接受时间、TTL值和往返时间等。

也可以发送一些十六进制数据到指定端口

root@kali:~# nping -tcp -p 445 -data AF56A43D 192.168.244.129

 

 输出的信息显示了192.168.244.128与目标系统192.168.244.129之间TCP传输过程。通过发送数据包到指定端口模拟出一些常见的网络攻击,以验证目标系统对这些测试的防御情况。

 

四、 查看打开的端口

  对一个大范围的网络或活跃的主机进行渗透测试,必须要了解这些主机上所打开的端口号。在Kali Linux中默认提供了nmap和zenmap两个端口工具。

4.1 nmap端口扫描

root@kali:~# nmap 192.168.244.132

 

  •  指定扫描端口范围
root@kali:~# nmap -p 1-1000 192.168.244.132

 

  •  扫描特定端口

nmap工具可以指定一个特定端口号扫描

root@kali:~# nmap -p 22 192.168.244.0/24

 

  •  使用nmap工具还可以指定扫描端口结果的输出格式
root@kali:~# nmap -p 22 192.168.244.0/24 -oG /tmp/nmap22.txt

 

4.2 图形化TCP端口扫描工具Zenmap

 

 

五、系统指纹识别

5.1使用nmap工具识别系统指纹信息

 

使用nmap命令的-O选项启用操作系统测试功能

root@kali:~# nmap -O 192.168.244.132

 

5.2 指纹识别工具p0f

  https://tools.kali.org/information-gathering/p0f

  https://lcamtuf.coredump.cx/p0f3/

       https://lcamtuf.coredump.cx/p0f3/README

       https://github.com/p0f/p0f

   p0f是一款百分之百的被动指纹识别工具。该工具通过分支目标主机发出的数据包,对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙也没有问题。p0f主要识别的信息如下:

  • 操作系统类型
  • 端口
  • 是否允行防火墙之后
  • 是否运行于NAT模式
  • 是否运行于负载均衡模式
  • 远程系统已启动时间
  • 远程系统的DSL和ISP信息等。

kaili 中安装p0f

https://lcamtuf.coredump.cx/p0f3/releases/p0f-3.09b.tgz
http://www.tcpdump.org/release/libpcap-1.9.1.tar.gz

# configure: error: Neither flex nor lex was found.
apt-get install flex bison
# 解决如下报错
# .build-2160.c:1:10: fatal error: pcap.h: 没有那个文件或目录
tar xf libpcap-1.9.1.tar.gz
cd libpcap-1.9.1
./configure 
make
echo $?
make install

cd p0f-3.09b
/build.sh

# 解决报错
#  ./p0f: error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory

vim /etc/ld.so.conf    #在此文件中添加一行/usr/local/lib
/usr/local/lib

ldconfig    

启动p0f

cd p0f-3.09b
root@kali:~/下载/p0f-3.09b# ./p0f -i eth0

 

 

使用p0f分析Wireshark捕获一个文件。执行命令如下所示:

p0f -r /tmp/targethost.pcap -p p0f -result.log

 

六、服务指纹识别

  为了确保有一个成功的渗透测试,必须要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等。在kali中可以使用Nmap和Anmp工具识别指纹信息。

 

6.1 使用nmap工具识别服务指纹信息

nmap -sV 192.168.244.132

 

 

 

6.2 服务枚举工具Amap

   Amap是一个服务枚举工具。使用该工具能识别正在运行在一个指定端口或一个范围端口上的应用程序。

  https://www.kancloud.cn/haoyuanqiang/kali_linux_tools_documents/1060342

 

 

七、其他信息收集方式

7.1 Recon-NG框架

   Recon-NG是由Python编写的一个开源的Web侦查(信息收集)框架。Recon-NG框架是一个强大的工具,使用它可以自动的收集信息和网络侦查。

 

7.2 ARP侦查工具Netdiscover

   Netdicover是一个主动/被动的ARP侦查工具。该工具在不适用DHCP的无线网络上非常有用。使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求。

        https://github.com/netdiscover-scanner/netdiscover

  Netdiscover命令的语法格式如下所示:

netdiscover [-i device] [-r range | -l file | -p] [-m file] [-F filter] [-s time] [-c count] [-n node] [-dfPLNS]

参数含义如下所示:

-i device: 指定网络设备接口。
-r range: 指定扫描网络范围。
-l file: 指定扫描范围列表文件。
-p: 使用被动模式,不发送任何数据。
-s time: 每个ARP请求之间的睡眠时间。
-n node: 使用八字节的形式扫描。
-c count: 发送ARP请求的时间次数。
-f : 使用主动模式。
-d: 忽略配置文件
-S: 启用每个ARP情况之间抑制睡眠时间。
-P: 打印结果。
-L: 将捕捉信息输出,并继续进行扫描

使用Netdiscover工具扫描局域网指定主机

root@kali:~# netdiscover -r 192.168.244.0/24

 

 

7.3 搜索引擎工具Shodan

 

shodan网络搜索引擎偏向网络设备以及服务器的搜索,具体内容可上网查阅,这里给出它的高级搜索语法。
地址:https://www.shodan.io/

搜索语法
hostname:  搜索指定的主机或域名,例如 hostname:”google”
port:  搜索指定的端口或服务,例如 port:”21”
country:  搜索指定的国家,例如 country:”CN”
city:  搜索指定的城市,例如 city:”Hefei”
org:  搜索指定的组织或公司,例如 org:”google”
isp:  搜索指定的ISP供应商,例如 isp:”China Telecom”
product:  搜索指定的操作系统/软件/平台,例如 product:”Apache httpd”
version:  搜索指定的软件版本,例如 version:”1.6.2”
geo:  搜索指定的地理位置,例如 geo:”31.8639, 117.2808”
before/after:  搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:”11-11-15”
net:  搜索指定的IP地址或子网,例如 net:”210.45.240.0/24

7.4 谷歌/百度 hacker

allintext: 搜索文本,但不包括网页标题和链接
allinlikns: 搜索链接、不包括文本和标题
related: URL 列出于目录URL地址有关的网页
link: URL 列出到链接到目录URL的网页清单
使用“-”排除结果,例如site:baidu.com  –image.baidu.com
intext: 查找网页中含有xx关键字的网站,示例:管理员登录
intitle: 查找某个标题, 示例: inititle: 后台登录
filetype: 查找某个文件类型的文件  示例:数据挖掘 filetype: doc
inurl: 查找url中带有某字段的网站  示例:inurl: php?id=
site: 在某域名中查找信息

7.5 censys搜索引擎

censys搜索引擎功能与shodan类似,以下几个文档信息。
地址:https://www.censys.io/
搜索语法
默认情况下censys支持全文检索。
23.0.0.0/8 or 8.8.8.0/24  可以使用and or not
80.http.get.status_code: 200  指定状态
80.http.get.status_code:[200 TO 300]  200-300之间的状态码
location.country_code: DE  国家
protocols: (“23/telnet” or “21/ftp”)  协议
tags: scada  标签
80.http.get.headers.server:nginx  服务器类型版本
autonomous_system.description: University  系统描述
正则

7.6 fofa搜索引擎

FoFa搜索引擎偏向资产搜索。
地址:https://fofa.so
搜索语法
title=”abc” 从标题中搜索abc。例:标题中有北京的网站。
header=”abc” 从http头中搜索abc。例:jboss服务器。
body=”abc” 从html正文中搜索abc。例:正文包含Hacked by。
domain=”qq.com” 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站。
host=”.gov.cn” 从url中搜索.gov.cn,注意搜索要用host作为名称。
port=”443” 查找对应443端口的资产。例: 查找对应443端口的资产。
ip=”1.1.1.1” 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。
protocol=”https” 搜索制定协议类型(在开启端口扫描的情况下有效)。例: 查询https协议资产。
city=”Beijing” 搜索指定城市的资产。例: 搜索指定城市的资产。
region=”Zhejiang” 搜索指定行政区的资产。例: 搜索指定行政区的资产。
country=”CN” 搜索指定国家(编码)的资产。例: 搜索指定国家(编码)的资产。
cert=”google.com” 搜索证书(https或者imaps等)中带有google.com的资产。
高级搜索:
title=”powered by” && title!=discuz
title!=”powered by” && body=discuz
( body=”content=\”WordPress” || (header=”X-Pingback” && header=”/xmlrpc.php” && body=”/wp-includes/“) ) && host=”gov.cn”

7.7 钟馗之眼

钟馗之眼搜索引擎偏向web应用层面的搜索。
地址:https://www.zoomeye.org/
搜索语法
app:nginx  组件名
ver:1.0  版本
os:windows  操作系统
country:”China”  国家
city:”hangzhou”  城市
port:80  端口
hostname:google  主机名
site:thief.one  网站域名
desc:nmask  描述
keywords:nmask’blog  关键词
service:ftp  服务类型
ip:8.8.8.8  ip地址
cidr:8.8.8.8/24  ip地址段

7.8 后台查找

intitle:<%eval request(

 

posted @ 2018-05-09 15:15  hwlong  阅读(475)  评论(1编辑  收藏