Kail Linux高级渗透测试笔记
第二章 确定目标-被动侦查
2.1 侦查的基本原则
其实所谓的被动的侦查就是以常规的方式去访问侦查对象,之所以这样做是因为比起第三章讲的主动侦查,这样的侦查能减少被侦查对象发觉的可能性,如访问对应公司的官网,查看他们的网站信息,这样你的侦查就被隐藏在常规的访问中了,是不会引起对象怀疑的。
这里有一段书中的原话:
注定侦查涉及直接查询货其他交互活动(例如,目标网络的端口扫描)。这些活动会触发警报系统,被攻击的目标也能获取攻击者的IP地址和活动信息。在法律诉讼中,这些信息能够用来确认攻击者的身份,或抓捕攻击者。因此,测试者在主动侦查中需要额外技术手段来确保不被发现。
以上这段话就很明显的说明,先执行被动侦查,是为了主动侦查服务的,而且被动侦查,也不会像主动侦查一样造成被攻击系统的怀疑。
2.2 开源情报
其实也就是让你去百度,谷歌,必应等他们公开出来给公众的信息,而其中部分信息可能存在价值,比如你知道他们公司的法人代表叫张三,而公司名字叫灰鸟,那么法人代表的企业邮箱的账号可能就是:
zhangsan@huiniao.com / zhangsan@huiniao.cn
等等,这些信息都是有价值的信息。
根据书上的介绍,其中一些重要的信息来源如下:
- 政府,金融网站或其他公信类的管理网站,而在中国就是政府的一些网站,比如工商局注册网,在这上面你能看到很多诸如法人代表,公司名称,英文名称等重要信息。
- 招聘网站,这个是我根据书上的内容猜的,因为招聘一些技术类的职位,表明对应公司在这方面存在欠缺,比如缺数据库管理人员,说明现有的技术人员对数据库管理十分松懈,所以需要特意招聘该职位。以及可以的话,最好能确定现有技术人员或者曾经供职过的技术人员的技术水平,这样就可以根据他们的技术能力,推断被攻击对象系统存在的问题。
- 特定国家和语言的设计和商业网站,因为在这些设计网站上一般都有对应公司的人员信息,在中国就是微博,微信等,而国外一般是脸书等。当然如果对应公司的人员有写博客的习惯,那就更好了,因为其中涉及的信息就更多了,甚至包括技术部门采用的技术架构等信息。
- 这里推荐几个网站,都是显示DNS,路由器和服务器信息的
- www.dnsstuff.com
- www.serversniff.com
- www.netcraft.com
- myIPneighbors.com
- www.shodanhg.com,列出了可访问互联网的设备,且允许测试者搜索已知漏洞的设备
- 我上去看过,没看懂这个网站是干嘛的,慢慢琢磨吧
- 我试着登过这个网站,好像是各个人员把漏洞分享出来的,我不知道不翻墙能不能登
2.3 DNS侦查和路由映射
DNS侦查关心的是:识别谁拥有一个特定域或一系列IP地址,定义实际域名的DNS信息和识别目标的IP地址,以及在渗透测试员或攻击者与最终目标之间的路由。
简单来说就是这个域名是谁的,这个IP地址是谁的,通过哪个DNS进行转发的,中间的路由有哪些。下面的一些命令就是帮助你回答上述疑问的。
2.3.1 WHOIS
这个命令的其实就是看对应域名下的一些信息,比如:
whois baidu.com
接着就会显示一堆这个域名下的信息,基本就等于一个快捷搜索效果吧。
2.3.2 DNS侦查
攻击者通过下买呢的的方式利用DNS信息:
- 如果DNS设置为接收任何查询,并且是内部网络的DNS服务器的话,就可能泄漏内部网络的IP地址和主机名
- 寻找易受攻击的服务,比如某个服务器的文件上传端口是免费开放的,那么你就可以使用该服务器上传一些有趣的文件
- 根据对方的服务器配置了解对方对于安全的级别
常用DNS查询工具
dnsrecon
这个命令可以查询以下信息:
- SOA记录:主从DNS服务器之间的关系
- NS记录:域名到IP地址的映射关系记录
- MX(mail exchanger):负责一定区域的邮件服务的服务器
- SPF:SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。
- 该域名对应的所有ip地址
- 一个域名对应多个ip地址表明该域名设置有负载均衡
关于SOA和NS这两个记录的详细解释,推荐看这篇文章:SOA和NS的简单介绍
ipv6与ipv4
由于ipv6的用量现在较少,所以针对ipv6的安全设置相比于ipv4要低,其中就可能包含错误的配置,导致数据泄漏。
2.3.4 映射路由到目标
其实就是从本地发送请求后,经过了哪几个路由器,Kail下常用的工具是:
- tractroute:追踪-路由,就是将其间的ip地址显示出来
- hping3:这个也可以理解为ping的升级版,因为一些网站是屏蔽了ping命令的,但是hping3会把请求发送到80端口,这个端口一般用于web服务,一般不会阻塞的。
2.4 获取用户信息
2.4.1 收集姓名和电子邮件地址
- theharvester
类似于爬虫,但是是封装好了的爬虫,而且抓去的内容也是确定的,由于我装的Kail版本没有这个命令,所以没有试。
2.4.2 搜集文件元数据
文件元数据是附在文件上的一些信息,这些信息应用在创建和存储时,利用这些信息能管理文件。
常见的代表性元数据有:
- 创建文件应用的公司或者个人
- 文件作者的名字
- 创建文件的时间及日期
- 文件最近的打印时间或者修改时间
- 创建文件的计算机网络位置
- 照片,视频等还包含地理位置信息
在Kail中,可以使用以下命令来自动下载指定域名下的相关元数据:
- metagoofil
原理就是通过谷歌搜索到相关信息,接着下载相关的文件,再来解析对应文件,并将结果展示出来。
2.5 分析用户密码列表
首先用户可以下载常见的密码列表,将其存储在/usr/share/wordlists
中。
接着安装CUPP(Common User Passwrord Profiler):
git clone https://github.com/Mebus/cupp.git
这个会下载一段python脚本到本地,接着就可以使用python命令启动该脚本:
python cupp.py -i
会采用一段交互式的界面让用户输入特定的信息,生成针对一个用户的wordlist