2017-2018-2 20155303『网络对抗技术』
Exp6:信息收集与漏洞扫描
————————CONTENTS————————
一.原理与实践说明
1.实践内容
本实践的目标是掌握信息搜集的最基础技能。具体有:
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
2.基础问题
-
问:哪些组织负责DNS,IP的管理?
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
- 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。
-
问:什么是3R信息?
- 注册人-注册商-官方注册局
- 注册人(Registrant) →注册商(Registrar) →官方注册局(Registry)
二.实践过程记录
1.信息收集
1.1通过DNS和IP挖掘目标网站的信息
『whois查询』
whois
用来进行域名注册信息查询。在终端输入whois gitee.com
可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。
注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
『nslookup,dig域名查询』
nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。dig可以从官方DNS服务器上查询精确的结果。
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
+[no]search
:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。+[no]trace
:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。+[no]identify
:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。+[no]stats
:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。- ......
『IP2Location 地理位置查询』
www.maxmind.com
该网址可以根据IP查询地理位置:
在IP-ADDRESS这个网站上,可以查询到更详细的关于某共有IP的信息,如:
继而可以查询到两个IP之间的距离,以及...
『IP2反域名查询』
在shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型:
除此之外,还可以在国内的站长工具进行相关查询。
1.2通过搜索引擎进行信息搜集
『Google Hacking』
Google提供了高级搜索功能。GHDB数据库包含了大量使用Google从事渗透的搜索字符串。其中包含了很多常用的模块,还有我们之前使用过的各个平台下的shellcode,也可以从这里获取。
『搜索网址目录结构』
自动化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。以dir_scanner为例,依次输入以下命令:
- msf >
use auxiliary/scanner/http/dir_scanner
- msf auxiliary(scanner/http/dir_scanner) >
set THREADS 50
- msf auxiliary(scanner/http/dir_scanner) >
set RHOSTS www.phpluntan.com
- msf auxiliary(scanner/http/dir_scanner) >
exploit
可以查询到网站的目录结构:
其中,如果服务器返回403,表明没有开放浏览权限。
『检测特定类型的文件』
有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找,比如百度site:edu.cn filetype:xls 直博
:
打开下载的文档,显示信息如下:
『使用traceroute命令进行路由侦查』
在Linux下使用traceroute www.baidu.com
对经过的路由进行探测:
由于虚拟机使用的是nat连接,traceroute返回的TTL exceeded消息无法映射到源IP地址、源端口、目的IP地址、目的端口和协议,因此无法反向NAT将消息路由传递回来。
改在Windows下使用tracert www.baidu.com
重新检测:
从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。其中带有星号(*)的信息表示该次ICMP包返回时间超时。
1.3活跃主机扫描
『ICMP Ping命令』
使用命令ping www.baidu.com
:
『metasploit中的模块』
位于modules/auxiliary/scanner/discovery 主要有 arp_sweep, ipv6_multicast_ping, ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probe,udp_sweep.
下面以arp_sweep为例,arp_sweep使用ARP请求枚举本地局域网的活跃主机,即ARP扫描器 udp_sweep 使用UDP数据包探测。
打开msfconsole
,依次输入:
- msf >
use auxiliary/scanner/discovery/arp_sweep
//进入arp_sweep 模块 - msf auxiliary(scanner/discovery/arp_sweep) >
show options
//查询模块参数 - msf auxiliary(scanner/discovery/arp_sweep) >
set RHOSTS 10.10.10.0/24
//用set进行hosts主机段设置 - msf auxiliary(scanner/discovery/arp_sweep) >
set THREADS 50
//加快扫描速度 - msf auxiliary(scanner/discovery/arp_sweep) >
run
//执行run进行扫描
扫描结果如下图所示:
1.4nmap的使用
1.探索活跃的主机
在Linux下使用nmap -sn 192.168.130.0/24
寻找该网段下的活跃主机:
使用-PU是对UDP端口进行探测,与udp_sweep模块功能相同。
2.使用-O选项让Nmap对目标的操作系统进行识别
在Linux下使用nmap -O 172.16.8.28
获取目标机的操作系统等信息:
3.使用-sS选项进行TCP SYN扫描
在Linux下使用nmap -sS -Pn 172.16.8.28
命令,其中-sS是TCP SYN扫描,-Pn是在扫描之前,不发送ICMP echo请求测试目标:
4.使用-sV查看目标机子的详细服务信息
在Linux下使用nmap -sV -Pn 172.16.8.28
命令,其中-sV用来查看目标机子的详细服务信息:
1.5网络服务扫描
1.Telnet服务扫描
- msf >
use auxiliary/scanner/telnet/telnet_version
//进入telnet模块 - msf auxiliary(telnet_version) >
set RHOSTS 192.168.130.0/24
//扫描192.168.130.0网段 - msf auxiliary(telnet_version) >
set THREADS 100
//提高查询速度 - msf auxiliary(telnet_version) >
run
2.SSH服务扫描
- msf >
use auxiliary/scanner/ssh/ssh_version
- msf auxiliary(ssh_version) >
show options
- msf auxiliary(ssh_version) >
set RHOSTS 192.168.130.0/24
- msf auxiliary(ssh_version) >
set THREADS 200
- msf auxiliary(ssh_version) >
run
3.Oracle数据库服务查点
- msf >
use auxiliary/scanner/oracle/tnslsnr_version
- msf auxiliary(scanner/oracle/tnslsnr_version) >
show options
- msf auxiliary(scanner/oracle/tnslsnr_version) >
set RHOSTS 192.168.130.0/24
- msf auxiliary(scanner/oracle/tnslsnr_version) >
set THREADS 200
- msf auxiliary(scanner/oracle/tnslsnr_version) >
run
4.口令猜测与嗅探
- msf > use auxiliary/scanner/ssh/ssh_login //进入ssh_login模块
- msf auxiliary(scanner/ssh/ssh_login) > set RHOSTS 192.168.130.0/24 //设置目标IP或IP段
- msf auxiliary(scanner/ssh/ssh_login) > set USERNAME root //设置目标系统的管理员账号
- msf auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/password.txt //设置破解的字典
- msf auxiliary(scanner/ssh/ssh_login) > set THREADS 200 //提高查询速度
- msf auxiliary(scanner/ssh/ssh_login) > run
其中,破解的字典可以去网上社工库下载。比如我下载的password.txt如下所示:
2.漏洞扫描
Step1:检查安装状态,开启VAS
首次使用openvas-check-setup
出现了以下错误:
按照FIX
的提示使用以下指令一步一步修正,每修正完一步执行一次openvas-check-setup
查看是否正常:
openvas-check-setup
openvasmd --migrate
openvas-manage-certs -a
openvas-manage-certs -a -f
openvasmd
openvas-check-setup
最终成功:
使用openvas-start
开启服务,会自动打开浏览器主页https://127.0.0.1:9392
:
注意:若第一次打开该主页时提示
该链接不安全
之类的错误,需要打开Advanced
,点击左下角,将https://127.0.0.1:9392
设置为可信任的站点,即可正常打开。
Step2:新建任务,开始扫描
在菜单栏选择Tasks
:
进入后点击Task Wizard
新建一个任务向导,在栏里输入待扫描主机的IP地址,并单击Start Scans
确认,开始扫描。
几分钟后,扫描完成:
Step3:查看并分析扫描结果
打开该扫描结果的详细信息,如下图所示:
点击Full and fast
:
以Buffer overflow
为例,点进去查看详细结果:
其中标注了危险等级。
点开一个危险等级较高的漏洞,详细描述如下:
如想了解每一个漏洞的详细信息,可以去微软技术中心进行查看。
三.实践总结及体会
- 本次实验主要学习并尝试使用了常用的信息收集、漏洞扫描等几种方式。信息收集作为渗透测试的第一步,往往起到了至关重要的奠基性作用。这些准备工作是必不可少的,只有收集了必要的信息,才能有的放矢进行下一步攻击。而对于自己的主机,漏洞扫描也非常重要,能让我们更深入了解自己主机存在的可能被人利用的缺陷,从而进行漏洞的修补。
- 实验过程中查询了大量的资料,除了给出的几种,又尝试了一些新的信息收集与漏洞扫描的方法。在惊叹于方法之多和信息收集角度之全面之外,也感受到了潜在的危险。也许自己主机的信息正在不为人知的时候悄悄被他人窃取......