2017-2018-2 20155314《网络对抗技术》Exp6 信息搜集与漏洞扫描
目录
实验目标
掌握信息搜集的最基础技能与常用工具的使用方法。
实验内容
各种搜索技巧的应用
DNS IP注册信息的查询
基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
实验环境
- 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
)
- Kali Linux - 64bit(攻击机,IP为
基础问题回答
- 哪些组织负责DNS,IP的管理。
- 全球根服务器均由美国*授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
- 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。
- 什么是3R信息。
- 3R即注册人(Registrant)、注册商(Registrar)、官方注册局(Registry)
- 3R注册信息分散在官方注册局或注册商各自维护数据库中,官方注册局一般会提供注册商和Referral URL信息,具体注册信息一般位于注册商数据库中。
- 评价下扫描结果的准确性。
预备知识
实验步骤
1 信息搜集
1.1 外围信息搜集
- 外围信息搜集又叫公开渠道信息搜集。
- 搜索引擎,公共信息库,目标门户网站等等都是很好的入手点。
- metasploit有一类“辅助模块”,可以帮助你进行信息搜集的工作,并且还集成了nmap等神器。
1.1.1 通过DNS和IP挖掘目标网站的信息
-
使用
whois
命令查询域名注册信息:注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
whois baidu.com
从图中可以得到**3R信息**,包括注册人的名字、组织、城市等信息! -
使用
nslookup
和dig
命令查询域名:- 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 通过搜索引擎进行信息搜集
-
Google Hacking
- Google提供了高级搜索功能。GHDB数据库包含了大量使用Google从事渗透的搜索字符串,
- http://www.exploit-db.com/google-dorks 可以在上述网址看GHDB的内容。
- 一些自动化的工具,SiteDigger ,Search Diggity,Gooscan,具体用法自行百度。
-
搜索网址目录结构:
首先可以手工测试一些常见的目录名,如 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文件,用以告诉搜索引擎哪些目录和文件不被抓取。
- 搜索特定类型的文件
有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找,
如Google,site:XXX.com filetype:xls。
- 搜索E-Mali
metasploit中有search_email_collector,进行针对性的搜集。
msf auxiliary(dir_scanner) > use auxiliary/gather/search_email_collector
-
搜索存在sql注入的页面以及后台登陆的页面:
Google:site:XXX.com inurl:login site:XXX.com inurl:.php?id=1
-
利用traceroute进行IP路由侦查:
traceroute www.baidu.com
1.2 主机探测和端口扫描——基于Armitage自动化实现
1.2.1 活跃主机扫描和操作系统辨别
- ICMP Ping命令
ping www.baidu.com
- 使用netdiscover探测私有网段存活主机:
netdiscover是基于ARP的网络扫描工具。ARP是将IP地址转化物理地址的网络协议。通过该协议,可以判断某个IP地址是否被使用,从而发现网络中存活的主机。Kali Linux提供的netdiscover工具,就是借助该协议实施主机发现。它既可以以被动模式嗅探存活的主机,也可以以主动模式扫描主机。用户还可以根据网络稳定性,调整发包速度和数量。
- Kali中使用命令
netdiscover
对私有网段进行主机探测: - 192.168.0-255.0/16
- 172.16
- 172.26
- Kali中使用命令
- 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数据包探测。 - 利用Armitage进行Nmap自动化探测
- 在Armitage中上方工具栏依次选择
Hosts
->Nmap Scan
->Quick Scan(OS detect)
:
- 填写靶机所在网段
10.211.55.0/24
:
- 给靶机扫出来!
- 在Armitage中上方工具栏依次选择
1.2.2 端口扫描与服务探测
扫描技术:TCP Connect ,TCP SYN, TCP ACK ,TCP FIN ,TCP IDLE
- metasploit的端口扫描模块:
用search portscan
命令找到相关模块 - 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辅助模块应用
-
首先我们需要以特定格式设置用户名和密码Hash(这里选择用MD5在线生成):
访问MD5在线加解密网站CMD5,在上方【密文】处输入一段字符串,下方【查询结果】处就立即显示出结果(只要不超过31位,否则会卡住233):
-
分别将不同用户名对应的密码经过MD5在线加密之后得到Hash值,获得下面这张表:
|用户名|密码|Hash|
|:--