渗透测试实践-侦查
本文是我阅读《渗透测试实践指南·第二章·侦查》所做的笔记。
零、开始
如果我有六个小时砍一棵树,我会先花四个小时把斧头磨锋利。(亚伯拉罕·林肯)
优秀的信息收集者应同时具备以下几个身份:黑客、社会工程师和私家侦探。
侦查的主要任务:
- 收集与测试目标有关的信息,越多越好
- 分类所有收集的信息,创建可以进行攻击的IP地址或者URL列表
侦查的分类:
- 主动侦查:与目标系统有直接交互
- 被动侦查:通过网络获取信息,不与目标系统直接交互
一、HTTrack:网站复制机
- HTTrack是用于创建与目标网站完全相同的脱机副本的工具
- 克隆网站动静很大,很容易引起目标警觉
- 重点关注:物理地址和位置、电话号码、电子邮箱、上班时间、商业关系(伙伴关系)、员工姓名、与社会化媒体的联系
- 新闻和公告也需要关注,这可能会泄露人事组织信息
- 通过招聘启事可以获知目标公司采用的技术
二、搜索
1.Google搜索
- 需自备梯子
- Google不区分大小写
- site:domain keyword(搜索范围限定在特定网站)
- intitle:keyword(标题中至少包含一个关键词)
- allintitle:index of(标题中包含所有关键词)
- inurl:admin(URL中包含关键词)
- cache:syngress.com(显示某网站快照)
- filetype:xlsx 学号(搜索特定后缀文件)
- 组合搜索指令,如:site:syngress.com allintitle:index of
- Google Dorks——GHDB1、GHDB2
2.其他搜索引擎
不要只用Google,还有其他搜索引擎
网络空间搜索:
社交网络搜索:
搜索引擎大集合:
3.其余常见信息泄露处
- 技术社区:技术社区的提问往往泄露关键信息
- 社交网络:Facebook、Twitter、微博、LinkedIn、知乎、豆瓣、人人
- 在线聊天:QQ、微信
- doc等文档的属性中往往有作者、机构等信息
三、公司域名邮箱
1.The Harvester:域名邮箱地址收集工具
Kali默认安装此工具。命令:
theharvester -d syngress.com -l 10 -b all
参数含义:
- -d:指定目标,域名或公司名
- -l:限定搜索引擎结果数目
- -b:指定数据源
“-l 10”会限定搜索引擎只搜索10条结果便可,至于这10条结果中能找到多少邮箱与域名就不好说了。
某些数据源需要自备梯子,某些数据源需要申请API。
在Kali默认安装的TheHarvester(Ver.2.7)的Usage中给出的数据源为:
-b: data source: google, googleCSE, bing, bingapi, pgp, linkedin,
google-profiles, jigsaw, twitter, googleplus, all
但阅读源码可知数据源不止Usage中给出的10个而是共有14个,没有列出的4个数据源是yandex、dogpilesearch、yahoo和baidu,其中是有百度的。不知是作者忘记更新Usage还是作者希望大家都能读一读源码,对不读源码的人的惩罚便是损失四个数据源。
2.从电子邮件服务器提取信息
向目标公司电子邮件服务器发送含有类似calc.exe这样非恶意但长得像恶意附件的邮件等待退信,收到退信后仔细检查,提取杀毒软件版本等信息。
另外,检查邮件头还可以提取出IP地址、软件版本、服务器品牌等信息。
四、域名、DNS与IP
关于域名,《The Complete Guide to Domain Names: What Are They and How Do They Actually Work》讲得比较全面,可以看一看。
1.whois命令和host命令
whois命令用于进行whois查询,查询域名注册信息:
whois syngress.com
host命令用于获得域名对应的IP地址:
host -a www.baidu.com
whois信息中需特别留意:Name Server和Registrar URL。
2.在线Whois查询
国内站:
国外站:
3.IP地理位置查询
4.IP反查域名与子域名查询
5.nslookup
root@kali:~# nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set type=any
> syngress.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
syngress.com nameserver = ns2.reedelsevier.com.
syngress.com nameserver = ns1.reedelsevier.com.
syngress.com nameserver = ns3.reedelsevier.com.
syngress.com mail exchanger = 10 syngress.com.inbound10.mxlogic.net.
syngress.com mail exchanger = 10 syngress.com.inbound10.mxlogicmx.net.
Name: syngress.com
Address: 207.24.42.235
syngress.com
origin = ns1.reedelsevier.com
mail addr = hostmaster.elsvier.co.uk
serial = 2014031114
refresh = 3600
retry = 900
expire = 2419200
minimum = 900
Authoritative answers can be found from:
6.dig
dig @target_ip
dig @target_ip target_domain -t AXFR
7.fierce
该工具会先进行区域传输,若失败,则进行穷举,命令如下:
fierce -dns werner.wiki
五、社会工程学
- 假装成客户和目标公司职员联系
- 在目标公司附近“遗失”装有病毒和U盘、光盘等
六、结尾
- 认真整理收集到的信息
- 试试大集成的Maltego
- 多多练习