渗透测试实践-侦查

本文是我阅读《渗透测试实践指南·第二章·侦查》所做的笔记。

零、开始

如果我有六个小时砍一棵树,我会先花四个小时把斧头磨锋利。(亚伯拉罕·林肯)

优秀的信息收集者应同时具备以下几个身份:黑客、社会工程师和私家侦探。

侦查的主要任务:

  • 收集与测试目标有关的信息,越多越好
  • 分类所有收集的信息,创建可以进行攻击的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——GHDB1GHDB2

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
  • 多多练习

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

14 − 7 =