2017-2018-2 20155314《网络对抗技术》Exp6 信息搜集与漏洞扫描

目录

返回目录

实验目标

掌握信息搜集的最基础技能与常用工具的使用方法。

返回目录

实验内容

  1. 各种搜索技巧的应用

  2. DNS IP注册信息的查询

  3. 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点

  4. 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞

返回目录

实验环境

  • macOS本机
  • macOS下Parallels Desktop虚拟机中(网络源均设置为共享网络模式):
    • Kali Linux - 64bit(攻击机,IP为10.211.55.10
    • Windows 7 - 64bit(靶机,IP为10.211.55.14
    • Windows XP Professional Version 2002 Service Pack 3(靶机,IP为10.211.55.16

返回目录

基础问题回答

  1. 哪些组织负责DNS,IP的管理。

    • 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
    • 全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
    • 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。
  2. 什么是3R信息。
    • 3R即注册人(Registrant)、注册商(Registrar)、官方注册局(Registry)
    • 3R注册信息分散在官方注册局或注册商各自维护数据库中,官方注册局一般会提供注册商和Referral URL信息,具体注册信息一般位于注册商数据库中。
  3. 评价下扫描结果的准确性。

返回目录

预备知识

返回目录

实验步骤

1 信息搜集

1.1 外围信息搜集

  • 外围信息搜集又叫公开渠道信息搜集。
  • 搜索引擎,公共信息库,目标门户网站等等都是很好的入手点。
  • metasploit有一类“辅助模块”,可以帮助你进行信息搜集的工作,并且还集成了nmap等神器。
1.1.1 通过DNS和IP挖掘目标网站的信息
  • 使用whois命令查询域名注册信息:

    注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。

    whois baidu.com




    从图中可以得到**3R信息**,包括注册人的名字、组织、城市等信息!

  • 使用nslookupdig命令查询域名:

    • nslookup:

    nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。

      ```
    nslookup
    > set type=A
    > baidu.com
    ```
    <img src="https://images2018.cnblogs.com/blog/1071508/201805/1071508-20180509102241289-531264022.png" width="100%" />
    • dig:

    dig可以从官方DNS服务器上查询精确的结果。

     ```
    dig @dns.baidu.com baidu.com
    ```
    其中dns.baidu.com为DNS服务器
    <img src="https://images2018.cnblogs.com/blog/1071508/201805/1071508-20180509102308600-787167060.png" width="100%" />
  • 使用www.maxmind.com根据IP查询地理位置信息:

  • 使用netcraft提供的信息查询服务,能获取到更多的更详细的信息:

  • 使用IP2进行反域名查询:

    可以通过http://www.ip-adress.com/reverse_ip/查询和定位:





    国内的也可以用http://www.7c.com/进行查询,结果更准确。

返回目录

1.1.2 通过搜索引擎进行信息搜集
  1. Google Hacking

    • Google提供了高级搜索功能。GHDB数据库包含了大量使用Google从事渗透的搜索字符串,
    • http://www.exploit-db.com/google-dorks 可以在上述网址看GHDB的内容。
    • 一些自动化的工具,SiteDigger ,Search Diggity,Gooscan,具体用法自行百度。
  2. 搜索网址目录结构:

    首先可以手工测试一些常见的目录名,如 admin,login等等。

    用Google查询:parent directory site:XXX.com 来查找目录。一般对拓展名为inc,bak,txt,sql的文件要特别留意。

    inc:可能包含网站的配置信息。

    bak:通常是文本编辑器留下的备份文件。

    txt or sql:包含网站运行的sql脚本。

自动化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。以dir_scanner为例:

msf > use auxiliary/scanner/http/dir_scanner。

具体的辅助模块需要百度自行查找。

一些网站还会在根目录下放置robots.txt文件,用以告诉搜索引擎哪些目录和文件不被抓取。

  1. 搜索特定类型的文件

有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找,

如Google,site:XXX.com filetype:xls。

  1. 搜索E-Mali

metasploit中有search_email_collector,进行针对性的搜集。

msf auxiliary(dir_scanner) > use auxiliary/gather/search_email_collector
  1. 搜索存在sql注入的页面以及后台登陆的页面:

    Google:site:XXX.com inurl:login site:XXX.com inurl:.php?id=1

  2. 利用traceroute进行IP路由侦查:

    traceroute  www.baidu.com

返回目录

1.2 主机探测和端口扫描——基于Armitage自动化实现

1.2.1 活跃主机扫描和操作系统辨别
  1. ICMP Ping命令
ping www.baidu.com
  1. 使用netdiscover探测私有网段存活主机:

    netdiscover是基于ARP的网络扫描工具。ARP是将IP地址转化物理地址的网络协议。通过该协议,可以判断某个IP地址是否被使用,从而发现网络中存活的主机。Kali Linux提供的netdiscover工具,就是借助该协议实施主机发现。它既可以以被动模式嗅探存活的主机,也可以以主动模式扫描主机。用户还可以根据网络稳定性,调整发包速度和数量。

    • Kali中使用命令netdiscover对私有网段进行主机探测:
    • 192.168.0-255.0/16
    • 172.16
    • 172.26

  2. metasploit中的模块

    位于modules/auxiliary/scanner/discovery 主要有 arp_sweep, ipv6_multicast_ping, ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probe,udp_sweep.

    arp_sweep 使用ARP请求枚举本地局域网的活跃主机,即ARP扫描器

    udp_sweep 使用UDP数据包探测。
  3. 利用Armitage进行Nmap自动化探测
    • 在Armitage中上方工具栏依次选择Hosts->Nmap Scan->Quick Scan(OS detect)

    • 填写靶机所在网段10.211.55.0/24

    • 给靶机扫出来!

返回目录

1.2.2 端口扫描与服务探测

扫描技术:TCP Connect ,TCP SYN, TCP ACK ,TCP FIN ,TCP IDLE

  1. metasploit的端口扫描模块:

    search portscan命令找到相关模块
  2. Armitage下Nmap端口扫描和探测详细服务信息:
    • 选中靶机10.211.55.16,右键选择Services,查看靶机上开启的端口和相应服务:



      可见靶机的139端口开启了netbios-ssn服务,445端口开启了microsoft-ds服务~
    • 选中靶机10.211.55.16,右键选择Scan,Armitage会调用Metasploit的漏洞扫描模块,定向扫描靶机,寻找存在的漏洞,为下一步确定攻击方法提供参考依据:



      可见类似前几次实验在Metasploit中手动配置主机号、端口号等设置现在统统直接自动化了!

      返回目录

1.3 服务扫描和查点——基于Armitage自动化实现

metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名

可输入 search name:_version查看所有服务查点模块

  • 在Armitage中就更简单了!我们选中靶机10.211.55.16,右键选择Scan,Armitage会调用Metasploit的漏洞扫描模块,定向扫描靶机,寻找存在的漏洞,为下一步确定攻击方法提供参考依据:



    可见类似前几次实验在Metasploit中手动配置主机号、端口号等设置现在统统实现自动化~
1.3.1 网络服务扫描
  • telent服务扫描
    use auxiliary/scanner/telent/telent_version
  • SSH服务扫描
    use auxiliary/scanner/ssh/ssh_version
  • Oracle数据库服务查点
    msf auxiliary(ssh_version) > use auxiliary/scanner/oracle/tnslsnr_version
  • 开放代理探测 open_proxy模块
    msf auxiliary(tnslsnr_version) > use auxiliary/scanner/http/open_proxy

返回目录

1.3.2 口令猜测与嗅探

具体可参考我的上一篇实验博客:2017-2018-2 20155314《网络对抗技术》Exp5 MSF基础应用 - John the Ripper_linux口令破解模块:Armitage下Auxiliary辅助模块应用