前言

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

一、枚举服务

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(

Kali信息收集的更多相关文章

  1. ★Kali信息收集★8.Nmap :端口扫描

    ★Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html ★Kali信息收集~ 1.Google Hackin ...

  2. Kali信息收集系列:(都是我以前的笔记整理了一下,就没加水印,习惯就好)

    好几天没发微信公众号了,今天一起发下.(最近有点事情) 前些天老业界的一位朋友问我一些Safe新时代信息收集的问题 逆天虽然好多年不干老本行,但隔段时间都会关注一下 于是就花了点时间整理了一下,你们就 ...

  3. ★Kali信息收集~★6.Dmitry:汇总收集

    概述: DMitry(Deepmagic Information Gathering Tool)是一个一体化的信息收集工具.它可以用来收集以下信息: 1. 端口扫描 2. whois主机IP和域名信息 ...

  4. ★Kali信息收集~ 1.Google Hacking + Github Hacking

    一.google hacking site site:cnblogs.com 毒逆天 intitle intitle:login allintitle allintitle:index of alli ...

  5. ★Kali信息收集~4.DNS系列

    ★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询  host -t ns 域名 A记录和MX记录查询  host 域名(host - ...

  6. ★Kali信息收集~3.子域名系列

    ★3.1Netcraft :子域名查询  官网:http://searchdns.netcraft.com/ 输入要查询的域名,即可得知子域名 3.2Fierce :子域名查询 概述: fierce ...

  7. Kali信息收集-搜索引擎

    1.google hacking intext:搜索正文内容 intitile:网页标题中的内容 inurl:url中的关键字 site:目标站点下 filetype:文件类型 cache:缓存 li ...

  8. Kali信息收集工具-dimtry

    帮助文档 -s和-e参数需要用到google搜索 1.获取whois主机ip信息 2.扫描端口,根据banner信息判断服务  

  9. Kali信息收集-DNS

    1.whois查询 直接在终端输入whois 域名 2.查找dns服务器 (1)host (2)dig (3)nslookup 3.域传输 4.域名枚举 (1)dnsdict6 kali没有集成这款工 ...

随机推荐

  1. selenium打开指定Chrome账号

    selenium打开指定Chrome账号 获取User Data路径 打开目标Chrome,在搜索栏输入chrome://version,找到"个人资料路径". 这里获取到的路径为 ...

  2. [已解决] 含gorm、sqlite3包的go程序构建失败 C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1

    gorm官方文档教程实例,构建出现错误.C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit st ...

  3. Codeforces Round #754 (Div. 2), problem: (A) A.M. Deviation泪目 万万没想到狂wa是因为这

    Problem - A - Codeforces 题目 题意很简单每次操作可以使得a1 a2  a3任意两个数分别+1  -1 求最后使得a+c-2b绝对值的最小值 BUG就是最后忽略了-2和2这一点 ...

  4. 2021牛客暑期多校训练营3 J 思维

    传送门 J-Counting Triangles_2021牛客暑期多校训练营3 (nowcoder.com) 题目 Goodeat finds an undirected complete graph ...

  5. java使用poi生成excel

    使用poi生成excel通常包含一下几个步骤 创建一个工作簿 创建一个sheet 创建一个Row对象 创建一个cell对象(1个row+1个cell构成一个单元格) 设置单元格内容 设置单元格样式. ...

  6. 数据结构 - AVL 树

    简介 基本概念 AVL 树是最早被发明的自平衡的二叉查找树,在 AVL 树中,任意结点的两个子树的高度最大差别为 1,所以它也被称为高度平衡树,其本质仍然是一颗二叉查找树. 结合二叉查找树,AVL 树 ...

  7. 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用

    项目 要求 课程班级博客链接 20级数据班(本) 作业要求链接 Python第七周作业 博客名称 2003031121--浦娟--Python数据分析第七周作业--MySQL的安装及使用 要求 每道题 ...

  8. B+树能存多少数据?

    B+树能存多少数据? 图 MySQL B+树示意图 InnoDB页的大小默认是16KB: 假设一条记录大小为1KB,则一个数据页中可以存16条数据(忽略页中的其他数据结构) 假设主键为int,又指针大 ...

  9. CTO 说了,如果发现谁用 kill -9 关闭程序就开除

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 来源:blog.csdn.net/qq_33220089          正文    kil ...

  10. 一文详解 Ansible 自动化运维

    开源Linux 一个执着于技术的公众号 一.Ansible 概述 Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误 ...