kali中信息收集的一些常用工具
这里只是代表个人所见,所以肯定会有其他的没提到,希望大家体谅
前言
信息收集分为主动和被动的
主动就是通过自己的机器去和对方比如通信后获得的数据
被动是指不是在自己这里获取的,可以是第三方平台获取到的,与目标没有通信
被动
OSINT工具
whatsmyname
whatsmyname
可以在全网搜索用户名,不过现在该组织暂停使用
网址https://www.osintcombine.com/tools
spiderfoot
使用kali中的工具spiderfoot
可进行信息收集,包括主动和被动以及目标的所有信息,不过其中的一些模块是需要API的,有免费有商业的。
spiderfoot -l 127.0.0.1:5001
在本地创建一个web界面的,端口为5001,类似于aws扫描
这时候使用浏览器访问即可
DNS查询
DNSRecon
DNSRecon 工具用于查询 DNS 记录
dnsrecon -d www.baidu.com
-D
指定一个文件,文件中是域名-t
指定模式-d
指明域名-b
是bing
搜索枚举-g
使用Google进行搜索枚举-y
是yandex
进行搜索枚举-k
是采用crt.sh
中扫描,也就是证书-w
再加上whois
进行检测并反解析--csv
后接csv
文件路径即可输出保存--xml
与上面一样,这里保存为xml
格式
dnsrecon -g -w -d smartfinancial.com --csv /var/output.csv
dig
dig 获取有关给定域的信息
Dig 仅查询 A 记录类型,而 Nslookup 同时查询 A 和 AAAA 记
dig www.baidu.com
dig www.baidu.com mx //获取电子邮件服务器(邮件交换器 [MX] 记录)
dig skillsforall.com any或ns
dig cisco.com AAAA 指定查询AAAA记录
反向 DNS (rDNS) 查找使用 IP 地址查询解析到该地址的服务的主机名
使用 -x 选项输入 dig 命令
dig -x 72.163.1.1
根据返回记录可以知道
主机名为 hsrp-72-163-1-1,因此它可能是分配给 HSRP 路由器配置的默认网关地址
whois
Whois 工具轻松识别域技术和管理联系人。许多组织将其注册详细信息保密,而是使用域注册商组织联系人。例如,让我们看看 h4cker.org 的技术和管理联系人
whois cisco.com
whois cisco.com | grep '@cisco.com'//显示技术和管理电子邮件联系人
nslookup
简答的nslookup可以获取域名解析信息,但是,使用具体命令可以获得更深的信息
nslookup //进入
>set type=ns或mx或any等
>cisco.com //这就会显示域名解析的详细信息
>server 8.8.8.8 //指定域名解析服务器
>cisco.com
host
使用 Host 实用程序执行 rDNS 查找,反查
host hsrp-72-163-1-1.cisco.com
输出仅包含 IP 地址
fierce命令
这个是很强大的收集
fierce --domain baidu.com
amass命令
enum
使用枚举方式收集
-d
指定域名
-oA
全部保存在文本文件中
amass enum -d baidu.com
还有intel
amass intel -d baidu.com
dnsenum命令
dnsenum --noreverse baidu.com
不反解析该域名
加密缺陷(证书)
在侦查阶段,攻击者通常可以检查安全套接字层 (SSL) 证书,以获取有关组织、潜在加密缺陷和弱实现的信息。您可以在数字证书中找到很多信息:证书序列号、使用者公用名、分配给它的服务器的统一资源标识符 (URI)、组织名称、在线证书状态协议 (OCSP) 信息、证书吊销列表 (CRL) URI 等。
TIP证书吊销是使数字证书失效的行为。例如,如果应用程序已停用或分配给此类应用程序的证书已泄露,则应吊销该证书并将其序列号添加到 CRL。OCSP 和 CRL 用于验证证书是否已被颁发机构吊销(即失效)。
证书显示颁发证书的组织(在本例中为 Let’s Encrypt letsencrypt.org)序列号、有效期和公钥信息,包括算法、密钥大小等。攻击者可以使用此信息来揭示任何弱加密配置或实现。
crt.sh
crt.sh
能够获取有关任何给定域的详细证书透明度信息.
crt.sh 是迄今为止最详细的。它查找其他工具看不到的子域。
SSL/TLS 证书提供两大功能。首先,它们提供了一种方法,使访问网站的人可以验证网站的所有权。其次,它们提供了一种对客户端和服务器之间的通信进行加密的方法,以便未经授权的各方无法读取或更改它。它们还提供浏览器通过 HTTPS 协议创建与 Web 站点的安全加密连接所需的信息。证书在用户浏览 Internet 时在后台使用。在大多数情况下,用户并不知道他们正在使用中。如果证书缺失、过期或配置错误,用户就会注意到它们。
证书信息可以揭示有关组织的详细信息,包括域和子域名、颁发日期和到期日期以及证书公有密钥。此外,某些版本的软件(如 OpenSSL)具有可被广泛利用的漏洞,包括 heartbleed 漏洞。此外,某些证书可能会使用弱加密算法。
证书的存位置
Microsoft Windows 有一个安全管理应用程序,它是 Microsoft 管理控制台的一部分。在搜索框中输入 certmgr.msc,然后按 Enter 键将其打开。
在 Kali 中,您可以在 /usr/share/ca-certificates/mozilla 文件夹中找到存储的证书。右键单击证书,然后选择 Open With ‘ViewFile’ (打开方式:使用 'ViewFile) 以访问证书的信息。
还有几种可用的 CT 监控工具,例如 CertSpotter 和 Censys
kali中的几种ssl
工具
sslscan
sslscan 是一种 Kali 工具侦察,它将收集有关与域关联的 SSL 证书的信息
应用程序 aha 创建一个标准 HTML 文件,该文件将终端命令的输出捕获到标准 HTML 文件中。Aha 捕获命令输出的任何颜色编码和基本格式。它还具有命令行选项,允许您指定自己的格式,例如背景颜色、要应用的样式表和自动换行等设置。
apt-get install aha
sslscan skillsforall.com
红色背景文本 – NULL 密码。未使用加密
红色 – 密码损坏(小于或等于 40 位)、易受攻击或损坏的协议(如 SSLv2 或 SSLv3)或损坏的证书签名算法(如 MD5)。
黄色 – 弱密码(小于或等于 56 位)或弱签名算法,例如 SHA-1。
紫色 – 匿名密码,例如 ADH 或 AECDH。
虽然 sslscan 提供了以文本或 XML 文件格式输出结果的选项,但 HTML 的可读性和颜色编码的保留由 aha 提供。要使用 aha,请将 sslscan 命令的输出通过管道传输到 aha,然后将 aha 的输出重定向到 HTML 文件。
sslscan skillsforall.com | aha > sfa_cert.html
过去信息查询
密码转存
h8mail 是一个允许您查找以前泄露中暴露的电子邮件地址和密码的工具示例
使用 pip3 install h8mail 命令安装 h8mail
可进行泄露的搜索
- WhatBreach: https://github.com/Ekultek/WhatBreach
- LeakLooker: https://github.com/woj-ciech/LeakLooker
- Buster: https://github.com/sham00n/buster
- Scavenger: https://github.com/rndinfosecguy/Scavenger
- PwnDB: https://github.com/davidtavarez/pwndb
h8mail 和 WhatBreach 等工具利用了 haveibeenpwned.com 和 snusbase.com 等网站的泄露数据存储库
元数据文件
可以从图像、Microsoft Word 文档、Excel 文件、PowerPoint 文件等文件中的元数据中获取大量信息。例如,可交换图像文件格式 (Exif) 是一种规范,它定义了数码相机、移动电话、扫描仪和其他处理图像和声音文件的系统使用的图像、声音和补充标签的格式
文件元数据可以为黑客提供对组织和人员的见解。例如,图像文件中的元数据可以显示用于创建图像的设备。这可以揭示可用于确定设备是否可能易受攻击的信息。某些文件具有元数据,包括注释、作者姓名、用户名、操作系统或文件的创建位置。元数据因文件类型和创建元数据的设备而异。黑客可以使用此信息拼凑出攻击手段。
在kali工具官网中找到libimage-exiftool-perl ,按照说明安装
几个工具可以显示 Exif 详细信息。其中最流行的一个 ExifTool
exiftool -listf 命令以查看 ExifTool 可以分析的文件类型
exiftool 【图片】
会显示图片详细信息
exiftool -csv > /path/to/out.csv <File Or Dir>
在 Internet 上,研究您在文件中找到的一些值。例如,标记 CREATOR: gd-jpeg v1.0 表示图像是由 PHP GD 库版本 1.0 生成的。在 Internet 上搜索 PHP GD 漏洞以了解更多信息。
google搜索语法
当然其他搜索引擎也是可以的
- Filetype:
**文件类型:**指示 Google 仅在特定类型文件的文本中进行搜索(例如,filetype:xls) - Inurl:
**网址:**指示 Google 仅在文档的指定 URL 内进行搜索(例如,inurl:search-text) - Link:
**链接:**指示 Google 在超链接中搜索特定术语(例如,link:www.domain.com) - Intitle:
**标题:**指示 Google 在文档标题中搜索术语(例如,intitle: “Index of /etc”)
https://www.exploit-db.com/google-hacking-database/
谷歌搜索存储库
GHDB 具有以下搜索类别:
- Footholds 立足点
- Files containing usernames 包含用户名的文件
- Sensitive directories 敏感目录
- Web server detection Web 服务器检测
- Vulnerable files 易受攻击的文件
- Vulnerable servers 易受攻击的服务器
- Error messages 错误消息
- Files containing juicy info 包含多汁信息的文件
- Files containing passwords 包含密码的文件
- Sensitive online shopping info 敏感的网上购物信息
- Network or vulnerability data 网络或漏洞数据
- Pages containing login portals 包含登录门户的页面
- Various online devices 各种在线设备
- Advisories and vulnerabilities 公告和漏洞
Google Advanced Search 执行被动侦察。
- Part 1: Google Advanced Searches (Dorking)
第 1 部分:Google 高级搜索 (Dorking) - Part 2: The Google Hacking Database
第 2 部分:Google 黑客数据库 - Part 3: The Wayback Machine
https://web.archive.org/
第 3 部分:Wayback Machine
在 Google 上搜索 **GHDB。**返回的第一个页面应该是 The Google Hacking Database。
在 GHDB 主页上,单击窗口右上角的 Filters 按钮。
这允许您按 Category 或 Author 筛选数据库结果。还有一个快速搜索。
网站存档/缓存
最受欢迎的存储库之一是 Internet Archive (https://archive.org/web) 的“Wayback Machine”。
Wayback Machine 可让您在 Internet 上回到过去
公共源代码存储库
GitHub 和 GitLab 等公共源代码存储库中获取极其有价值的信息。我们今天使用的大多数应用程序和产品都使用这些公共存储库中免费提供的开源软件
主动
nmap端口扫描
***扫描***是一种主动扫描,其中扫描工具将各种类型的探测发送到目标 IP 地址,然后检查响应以确定服务是否真的在侦听。例如,使用 Nmap SYN 扫描时,该工具会将 TCP SYN 数据包发送到它正在探测的 TCP 端口。此过程也称为半开扫描,因为它不会打开完整的 TCP 连接。如果响应是 SYN/ACK,则表示端口实际上处于侦听状态。如果对 SYN 数据包的响应是 RST (reset),则表示端口已关闭或未处于侦听状态。如果 SYN 探测不到任何响应,Nmap 将其标记为 filtered,因为它无法确定端口是打开还是关闭
TCP 连接扫描 (-sT)
SYN连接扫描(-sS)
UDP 扫描 (-sU)
TCP FIN 扫描 (-sF)
主机发现扫描 (-sn)
计时选项 (-T 0-5)其实就是速度激进程度,越高越快,也可能会漏扫。默认是3
-A
输出目标所有信息
-O
输出目标的操作系统
-sV
探测目标端口来确定服务/版本信息
-v
输出的时候更详细
--open
仅报告打开或可能打开的端口
-p
是指定端口,若没有,则自主扫描常见的1000个端口,或者使用-p-
扫描全部端口
-sP
是用ping
测试目标主机是否在线
-Pn
是不用ping
进行主机探测
--script
是指定脚本进行扫描
-sC
选项根据在目标系统上发现的打开的端口运行最常见的 NSE 脚本
扫描是否含有漏洞
nmap -sV --script vulners --script-args mincvss=4 10.6.6.23
枚举
SMB枚举
如当知道对方smb
服务开启,可以使用脚本smb-enum-users.nse
进行枚举
当获取成功,后,可以指定脚本smb-enum-groups.nse
进行组的枚举
nmap --script smb-enum-groups.nse --script-args smbusername=vagrant,smbpass=vagrant 192.168.56.3
网络共享枚举
nmap --script smb-enum-shares.nse -p 445 <host>
使用 enum4linux
等工具枚举 Samba 共享,包括用户帐户、共享和其他配置
这个工具很好用
有一个基于 Python 的 enum4linux 实现,称为 enum4linux-ng,可以从https://github.com/cddmp/enum4linux-ng
*下载。
./enum4linux-ng.py -As 192.168.88.251
smbclient
来枚举运行 SMB 的系统中的共享资源和其他信息
smbclient -L \\\192.168.88.251
web应用程序枚举
Nmap 工具实际上有一个 NSE 脚本,可用于暴力破解 Web 应用程序的目录和文件路径。它配备了常见 Web 应用程序使用的已知文件和目录列表,并在服务器中探测列表中的每个项目
nmap -sV --script=http-enum <target>
Nikto 是一个开源的 Web 漏洞扫描程序,它提供了许多扫描选项,包括对需要用户名和密码的 Web 应用程序进行身份验证的功能
nikto -h 192.168.88.251
服务枚举
***服务枚举***是识别运行在远程系统上的服务的过程,它是 Nmap 作为端口扫描器的主要关注点。
如SMB服务
Nmap smb-enum-processes NSE 脚本列举 Windows 系统上的服务,它通过使用有权读取正在运行的服务状态的用户的凭证来实现。这是一个方便的工具,用于远程查询 Windows 系统以确定正在运行的服务的确切列表
nmap --script smb-enum-processes.nse --script-args smbusername=<username>, smbpass=<password> -p445 <host>
目录枚举
对于web网站中,如果使用目录型结构,则可以使用一些工具来进行枚举
dirb
该工具是kali默认具有的,并且提供内置字典,可以直接使用命令
dirb http://ip/
会使用内置的字典进行目录爆破,并且支持代理
dirbuster
具有图形化界面,直接在终端输入该工具名称,即可调用图形界面,需要自己指定字典,具体可以去查看,因为图形化可读性很高
gobuster
需要使用指令安装
apt-get install gobuster
该工具是由go语言编写,速度很快,并且支持其他类型的爆破,不止目录,如dir 、dns 、tftp
等,可通过help
查看具体选项,
如,爆破网站目录
gobuster dir -u http://ip -w 字典路径
这个指定字典,可以在kali的/usr/share/wordlists
目录找到众多字典,其中一个rockyou.txt.gz
字典,有很多密码
ffuf
该工具也是使用go语言编写的,并且可以指定爆破位置,比如
ffuf -c -u http://xx.xx.xx.xx/~FUZZ -w 字典路径 -fc 403 -e .txt,html
参数解释
-c 结果用颜色显示,可明显的区别不同
-w 指定字典
-u 需要爆破的地址,主要这里需要爆破的目录要使用FUZZ关键字进行标记
然后字典就会把每个值在FUZZ处测试
-fc 过滤某状态码
-e 用于在每一行爆破字典的基础上,在每一行字典后加上后缀名
如: -e .txt,html
就会在每一行使用字典后加上 .txt或.html进行爆破测试
整句解释
这里就会使用字典遍历FUZZ所在位置,前面的 ~ 是我设定的前置
假设字典中的一个值匹配FUZZ成功,加上前置~ 和 扩展的话,如pe,那么完整路径就是
http://xx.xx.xx.xx/~pe.txt
或者
http://xx.xx.xx.xx/~pe.html
数据包制造枚举
谈到通过数据包制作和生成进行枚举时,Scapy 是渗透测试人员最喜欢的工具和框架之一
使用 ls() 函数列出所有可用的格式和协议
ls(TCP)、ls(DNS)、ls(IP)
等
使用 explore() 函数来导航 Scapy 层和协议。
显示了使用 explore(“dns”) 函数的 scapy.layers.dns 中包含的数据包。
启动 Scapy 交互式 shell 就像从终端窗口键入 sudo scapy
使用 malicious_payload 作为发送到目标主机 192.168.88.251 的有效负载,构建一个简单的 ICMP 数据包。
>>> send(IP(dst="192.168.88.251")/ICMP()/"malicious_payload")
使用 Scapy 发送 TCP SYN 数据包
>>> ans, unans = sr(IP(dst='192.168.88.251')/TCP(dport=445,flags='S'))
tshark 数据包捕获工具用于捕获构建的 ICMP 数据包。
sudo tshark host 192.168.78.142
Scapy 可用于捕获和显示网络流量,类似于 tcpdump 或 tshark 数据包收集。
使用 sniff()
函数
使用 summary() 函数查看捕获的流量。a=_ 分配变量 a 来保存 sniff() 函数的输出。Python 中的下划线 ( _ ) 用于临时保存上次执行的函数的输出。
>>> a=_
>>> a.summary()
>>> a[2] //查看有关该系列中特定数据包的详细信息
捕获并保存特定接口上的流量
使用**sniff(iface=“interface name”)
检查收集的数据包
使用与 10.6.6.1 (br-internal) 关联的接口 ID 捕获在内部虚拟网络上发送和接收的 10 个 ICMP 数据包。
语法为sniff(iface=“interface name”, filter = “protocol”, count =integer)
使用 wrpcap() 函数将捕获的数据保存到 pcap 文件中,该文件可由 Wireshark 和其他应用程序打开。语法为 wrpcap(“filename.pcap“,变量名称)
,在此示例中,您存储输出的变量是 ”a”。