kali渗透
- 1:被动信息收集
- 1.1:收集内容
- 1.2:信息用途
- 2:域名信息收集
- 2.1:nslookup
- 2.1.1:命令参数
- 2.1.2:示例 - 命令行
- 2.1.3:示例 - 交互式
- 2.2:dig
- 2.2.1:命令参数
- 2.2.2:示例
- 3:DNS 区域传输
- 4:域名字典爆破
- 4.1:fierce
- 4.2:dnsenum
- 4.3:dnsrecon
- 5:域名注册信息
- 5.1:相关网站
- 5.2:whois
- 6:搜索引擎
- 6.1:Shodan
- 6.2:Google
- 6.3:其他
- 7:相关工具
- 7.1:theHarvester
- 7.2:Maltego
- 7.3:Recon-NG
- 8:其他途径
- 8.1:社工字典
- 8.2:Metadata
- 8.3:Exif
这里只是起跑线而不是终点线。
本文以 kali-linux-2022.3-vmware-amd64 为例。
一些命令与工具只做简单介绍。其使用另见《安全工具手记》。
1:被动信息收集
被动信息收集指从公开渠道获取信息,主要是已经公开的信息。当然也不排除私密但是泄露的信息。
要点:
- 公开渠道可获得的信息。
- 与目标系统不产生直接交互(如扫描等)。
- 可以尽量避免留下一切痕迹。
1.1:收集内容
- IP 地址段
- 域名信息
- 邮件地址
- 文档图片数据
- 公司地址
- 公司组织架构
- 联系电话 / 传真号码
- 人员姓名 / 职务
- 目标系统使用的技术架构
- 公开的商业信息
1.2:信息用途
- 用所有已获得的信息来描述目标,还原目标真实情况。
- 通过分析描述中的目标来发现其弱点。
- 社会工程学攻击。
- 物理缺口(物理层面,这里就不介绍了)。
2:域名信息收集
域名(Domain Name)和完全限定域名(Fully Qualified Domain Name,FQDN):
-
域名(Domain Name)
是一个可用于标识网络上特定实体的人类可读的名称。
例如:example.com。 -
完全限定域名(Fully Qualified Domain Name,FQDN)
是一个更具体的域名表示形式,它提供了完整的域名层次结构路径,以确保在全球范围内唯一标识一个特定的网络资源。
例如:www.example.com。
可以说 FQDN 是域名的更具体形式,提供了完整的层次结构路径,以便准确定位和访问特定的网络资源。
需要注意的是,FQDN 不同于 URL(统一资源定位符),URL包含了更多的信息,如协议(http、https 等)和路径,用于标识和定位特定的网络资源。
2.1:nslookup
nslookup 常用于域名解析和网络故障排除。
nslookup 有两种操作模式,两种模式功能一致:
-
交互式模式
适用于在一个会话中执行多个查询或操作。 -
命令行模式
适用于执行一次性的简单查询或将其嵌入到脚本中。
2.1.1:命令参数
进入交互式:
nslookup
命令行模式:
nslookup 选项
常用选项:
参数 | 说明 | 例 |
---|---|---|
域名 | 要解析的主机名或域名。 | nslookup www.baidu.com |
-type=记录类型 | 指定要查询的记录类型。(默认为 A 记录) | |
-q=记录类型 | 与 -type 相同。 | nslookup 163.com -q=mx |
[server] IP地址 | 指定要使用的 DNS 服务器的 IP 地址或域名。 | nslookup 163.com server 8.8.8.8 |
-h | 显示帮助信息。 |
记录类型:
在 nslookup 中,记录类型(Record Type)用于指定要查询的特定DNS记录类型。
记录类型 | 说明 |
---|---|
any | 查询所有可用记录。返回与域名对应的全部 DNS 记录。 |
a | 查询 IPv4 地址记录。返回与域名对应的 IPv4 地址。(Address) |
aaaa | 查询 IPv6 地址记录。返回与域名对应的 IPv6 地址。(IPv6 Address) |
cname | 查询规范名称记录。返回域名的规范别名。(Canonical Name) |
ns | 查询名称服务器记录。返回负责处理特定域名的域名服务器信息。(Name Server) |
mx | 查询邮件交换器记录。返回与域名关联的邮件服务器信息。(Mail Exchanger) |
ptr | 查询指针记录。用于反向 DNS 查找,将 IP 地址解析为域名。(Pointer) |
2.1.2:示例 - 命令行
- 示例01:
操作
nslookup 163.com -type=any 8.8.8.8
结果
网站智能 DNS:
互联网上,网站使用智能 DNS 功能,能够根据用户终端环境不同,选择最近可满足服务的服务器位置。可以优化互联网流量。
所以用不同 DNS 服务器解析同一个域名时,可能获得不同 ip 地址。
2.1.3:示例 - 交互式
输入 nslookup
回车进入交互模式。
- 示例02:设置记录类型
set q=any
- 示例03:指定 DNS 服务器。
server 8.8.8.8
- 示例04:解析域名。
bilibili.com
2.2:dig
dig 是域名系统(DNS)查询工具,常用于域名解析和网络故障排除。比 nslookup 有更强大的功能。
2.2.1:命令参数
基本语法:
dig 选项
常用选项:
参数 | 说明 | 例 |
---|---|---|
域名 | 要解析的地址。 | dig sina.com |
@地址 | 指定使用的 DNS 服务器。 | dig sina.com @8.8.8.8 |
-f 文件 | 从文件中读取要查询的主机名或 IP 地址列表。 | dig -f hosts.txt |
记录类型 | 指定要查询的记录类型。(默认为 A 记录) | dig www.sina.com any |
-x IP地址 | 执行反向 DNS 查询。 | dig -x 8.8.8.8 |
+short | 只显示查询结果的摘要信息。 | dig www.sina.com +short |
+trace | 追踪 DNS 查询。从根服务器迭代查询到最终的授权服务器。 | dig +trace www.sina.com |
+noall | 不显示所有查询结果,只显示指定的记录类型。通常用于配合其他参数使用。 | |
+answer | 查询结果的回答部分。 | dig +noall +answer baidu.com |
记录类型详见:2.1.1:命令参数
2.2.2:示例
- 示例01:反向查询
dig +noall +answer -x 8.8.8.8
- 示例02:查询 DNS 服务器 BIND 版本信息
dig +noall +answer txt chaos version.bind @ns3.dnsv4.com
BIND(Berkeley Internet Name Domain)是一个常用的开源 DNS 服务器软件。BIND 提供了域名解析和 DNS 服务功能,并被广泛用于互联网上的许多 DNS 服务器。
BIND 版本信息指的是运行在特定 DNS 服务器上的 BIND 软件的版本号。据此可寻找其已知漏洞
记录类型 “ TXT ”,用于获取主机的文本记录。“ chaos ” 是一个特殊的 DNS 区域,用于存储系统信息和统计数据。
主机名 “ version.bind ”,它通常用于查询 DNS 服务器的软件版本信息。
- 示例03:
dig +trace www.sina.com
可以抓包查看其过程。
3:DNS 区域传输
区域传输(Zone transfer)是一种用于在不同的服务器之间复制和同步区域数据的机制。
为了确保安全性,要限制执行区域传输的 IP 地址,以避免未经授权的访问和潜在的数据泄漏风险。
可以通过以下两条命令尝试进行区域传输:
命令一:
dig @DNS服务器 域名 axfr
“ axfr ” 用于指定进行 DNS 区域传输(AXFR)操作。
dig 命令详见:2.2:dig
示例:
dig @ns1.example.com example.com axfr
该命令的含义是从 ns1.example.com 这个 DNS 服务器执行 DNS 区域传输操作,将 example.com 域名的完整区域数据传输到执行这个命令的主机上。
命令二:
host -T -l 域名 DNS服务器
这里简单介绍 host
命令参数:
参数 | 说明 |
---|---|
-T | 指定进行 DNS 枚举操作。 |
-l | 指定进行完整的区域传输操作。 |
示例:
host -T -l sina.com 8.8.8.8
该命令的含义是使用 DNS 枚举操作,从 8.8.8.8 这个 DNS 服务器获取 sina.com 域名的完整区域数据。
4:域名字典爆破
域名字典爆破通过尝试多个可能的域名来猜测有效的域名或子域名。
因此,字典爆破主要在于字典的选择与使用。一些 DNS 字典爆破命令都自带有字典,原理大致一样。
4.1:fierce
fierce 是开源的网络安全工具,用于进行域名扫描和子域名枚举。
A DNS reconnaissance tool for locating non-contiguous IP space.
基本语法:
fierce 选项
常用选项:
可以查看帮助信息,很全面。这里只简单贴一下。鉴于命令比较简单,这里不补充什么了。而且,不要惧怕英语。
options:
-h, --help show this help message and exit
--domain DOMAIN domain name to test
--connect attempt HTTP connection to non-RFC 1918 hosts
--wide scan entire class c of discovered records
--traverse TRAVERSE scan IPs near discovered records, this won't enter adjacent class c's
--search SEARCH [SEARCH ...]
filter on these domains when expanding lookup
--range RANGE scan an internal IP range, use cidr notation
--delay DELAY time to wait between lookups
--subdomains SUBDOMAINS [SUBDOMAINS ...]
use these subdomains
--subdomain-file SUBDOMAIN_FILE
use subdomains specified in this file (one per line)
--dns-servers DNS_SERVERS [DNS_SERVERS ...]
use these dns servers for reverse lookups
--dns-file DNS_FILE use dns servers specified in this file for reverse lookups (one per line)
--tcp use TCP instead of UDP
示例:
fierce --dns-servers 8.8.8.8 --domain sina.com.cn
4.2:dnsenum
dnsenum 是一个用于枚举域名信息的开源工具。通过执行多种 DNS 查询来收集与目标域名相关的信息。
基本语法:
dnsenum 选项
常用选项:
自己看帮助信息。(= ̄ω ̄=)喵了个咪
示例:
dnsenum -dnsserver 8.8.8.8 sina.com -o sina.xml
4.3:dnsrecon
dnsrecon 是一款用于进行域名枚举和信息收集的开源工具。
基本语法:
dnsrecon 选项
自我感觉不如前面两个好用。o(´^`)o。反正,这类工具只需熟悉一个即可。
5:域名注册信息
域名注册信息是与域名相关的注册和所有者信息。
这些信息通常包括域名所有者的名称、联系信息、注册日期、过期日期、域名服务器(DNS服务器)等。
查找和获取特定域名的 DNS 注册信息,有以下方法:
- 网站查询
whois
命令
5.1:相关网站
-
AFRINIC(African Network Information Center,非洲网络信息中心)
https://www.afrinic.net/ -
APNIC(Asia-Pacific Network Information Centre,亚太网络信息中心)
https://www.apnic.net/ -
ARIN(American Registry for Internet Numbers,美洲互联网数字资源注册局)
https://www.arin.net/ -
IANA(Internet Assigned Numbers Authority,互联网数字分配机构)
https://www.iana.org/ -
ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)
https://www.icann.org/ -
LACNIC(Latin America and Caribbean Network Information Centre,拉丁美洲和加勒比网络信息中心)
https://www.lacnic.net/ -
NRO(Number Resource Organization,数字资源组织)
https://www.nro.net/ -
RIPENCC(Réseaux IP Européens Network Coordination Centre,欧洲网络协调中心)
https://www.ripe.net/ -
Internic(Internet Network Information Center,互联网网络信息中心)
https://www.internic.net/
5.2:whois
whois 用于查询和获取域名的注册信息。可以查看与特定域名相关的注册商、域名所有者、注册日期、过期日期、DNS 服务器等信息。
基本语法:
whois 选项
常用选项:
使用 whois -h
查看。
示例:
whois -h whois.apnic.net 192.0.43.10
6:搜索引擎
合理使用搜索引擎可能会有意想不到的收获。
- 公司新闻动态
- 重要雇员信息
- 机密文档/网络拓扑
- 用户名密码
- 目标系统软硬件技术架构
6.1:Shodan
Shodan 专门用于搜索与互联网连接的设备和系统。它主要关注的是物联网设备、工业控制系统、服务器和其他网络设备等特定类型的联网设备。
链接:https://www.shodan.io/
登录后,可在首页查看筛选语法。
6.2:Google
Google 搜索引擎工作原理是通过自动化程序(爬虫)定期抓取互联网上的网页内容,并建立一个庞大的索引数据库。
善用 Google 的筛选语法也能有以外收获
除此以外,Exploit-DB 提供了一个广泛的漏洞利用数据库:
https://www.exploit-db.com/
Google Hacking Database(GHDB):
https://www.exploit-db.com/google-hacking-database
6.3:其他
- Yandex
Yandex 是俄罗斯最大的互联网搜索引擎和在线服务提供商之一。
- ZoomEye
ZoomEye 专门用于搜索与互联网上的网络设备和系统相关的信息。它被称为网络空间搜索引擎,与 Shodan 类似。
7:相关工具
7.1:theHarvester
theHarvester 能够在多个搜索引擎、DNS 服务器、互联网档案馆和其他公开数据源中搜索信息。如电子邮件地址、子域名、主机名、开放端口等。
theHarvester is used to gather open source intelligence (OSINT) on a company or domain.
基本语法:
theHarvester 选项
常用选项:
自己看帮助信息。(= ̄ω ̄=)
7.2:Maltego
Maltego 是一款用于数据挖掘和情报收集的可视化工具。
通过可视化关联,能帮助用户发现隐藏的信息、连接和模式,从而支持取证、网络侦查、情报分析和安全评估等任务。
Maltego 的核心概念是 “ 实体 ” 和 “ 变换 ”。
- 实体代表各种信息元素,例如人员、组织、域名、IP地址、电子邮件等。
- 变换是执行各种操作和查询的过程,用于获取、分析和展示实体之间的关系和属性。
通过点击图标或使用命令 maltego
打开工具。
初次使用需注册。
7.3:Recon-NG
Recon-NG 是一款开源情报收集和侦察框架(全特性 web 侦察框架)。它用于自动化和简化情报收集任务。其核心思想是通过模块化和插件化的方式,扩展其功能和数据源。
Recon-NG 它支持各种模块,包括搜索引擎、社交媒体、在线数据库、网络扫描工具等,用于执行各种查询和收集信息。用户可以根据自己的需求选择和配置适当的模块,将其组合成工作流程,并进行自动化执行。
其命令格式与 msf 类似。
通过点击图标或使用命令 recon-ng
打开工具。
8:其他途径
- 社交网络
- 工商注册
- 新闻/论坛
- 招聘网站
- https://archive.org/web/web.php :收集了历年网站页面。
8.1:社工字典
按个人信息生成专属的密码字典。
Common User Password Profiler(CUPP,通用用户密码探查器):
https://github.com/Mebus/cupp
8.2:Metadata
元数据(Metadata)是描述数据的数据,即关于数据的信息。通常包含有关数据的结构、格式、含义、来源、创建者、时间戳等信息。
常见领域中的元数据:
-
图像和音频
在图像和音频文件中,元数据可以包含有关拍摄设备、拍摄时间、分辨率、作者、版权信息等。 -
文档和文件
在文档和文件中,元数据可以包含有关创建者、最后修改时间、文档类型、关键字、版本历史等。 -
数据库
在数据库中,元数据描述了表、字段、索引、关系和约束等数据库结构信息,使得数据的组织和查询变得更加高效和准确。 -
网络和互联网
在网络和互联网中,元数据用于描述网页的标题、描述、关键字、链接关系等,以及用于搜索引擎索引和网页排名。 -
科学研究
在科学研究中,元数据可以描述实验数据的收集方法、实验条件、测量单位、数据质量等,使得其他研究人员可以理解和重现实验。
元数据可以手动添加,也可以由系统自动生成。
它能以各种格式存储,如标记语言(如XML、JSON)、数据库表、注释字段等。
8.3:Exif
Exif(Exchangeable Image File Format)是一种用于存储数字图像和音频文件元数据的标准格式。通常用于 JPEG、TIFF 和 RAW 图像文件中,用于记录与图像相关的信息。
Exif 提供了关于图像的拍摄参数、设备信息、拍摄时间等详细的元数据。
Kali 中,可以使用 exiftool
命令查看相关信息。
基本语法:
exiftool 图片
示例:
恶莫大于纵己之欲,祸莫大于言人之非。
——《格言联璧》(清)金缨