20181313毕然《网络对抗技术》——Exp5 信息搜集与漏洞扫描
《网络对抗技术》——Exp5 信息搜集与漏洞扫描
目录
一、实践目标及实践内容
1. 实践目标
- 掌握信息搜集的最基础技能与常用工具的使用方法
2. 实践内容
- 各种搜索技巧的应用
- DNS IP注册信息查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
二、实践原理
1. 信息搜集
信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
- 间接搜集
- DNS记录扫描和枚举
- CorpWatch:auxiliary/gather/corpwatch_lookup_name
- 搜索引擎子域名搜集器auxiliary/gather/searchengine_subdomains_collector
- 在线搜索工具
- GHDB
- 设备搜索:shodan,censys,zoomeye
- viewdns
- 间接搜集
- 主机扫描:发现网络上的活动主机 modules/auxiliary/scanner/discovery
- 端口扫描:发现主机上的开放端口,通过 search portscan 命令查看MSF中的端口扫描模块
- 版本探测:探测端口上的运行服务
- SMB auxiliary/scanner/smb/smb_ 一种在 Microsoft Windows系统中使用网络文件共享的协议,已被证明是最容易被攻击的协议之一,它允许攻击者枚举目标文件和用户,甚至远程代码执行。
- SSH auxiliary/scanner/ssh 一个广泛使用的远程登录程序。
- FTP auxiliary/scanner/ftp
- SMTP auxiliary/scanner/smtp/smtp_
- SNMP auxiliary/scanner/snmp/snmp_enum用于管理网络设备的协议,比如监控设备的状态信息,接口信息,网络接口的数据吞吐量等,通过SNMP扫描器可以找到特定系统的大量信息。如果目标系统为Windows且配置了SNMP(通常是RO/RW团体字符串),我们可以提取系统重启时间,系统上的用户名,系统网络信息,运行的服务等各种有价值的信息。
- HTTPauxiliary/scanner/http/
- 漏洞探测:探测服务是否有相应漏洞
- NMAP:也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
- 社会工程学
- 漏洞扫描与Openvas
三、实践过程记录
1、各种搜索技巧的应用
搜索网址目录结构
- 实践原理
- 暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的字典,一个一个去枚举,理论上来说,只要字典足够庞大,枚举总是能够成功的。以 dir_scanner 模块为例,获取网站目录结构。
- 实践步骤
- msfconsole
- use auxiliary/scanner/http/dir_scanner
-
set THREADS 20
- set RHOSTS www.baidu.com
- exploit
利用搜索引擎搜索特定类型的文件
- 实践原理
- filetype 能对搜索结果的文件类型进行限定,格式为 检索词 filetype:文件类型
- - 能在检索结果中获取检索词的补集,格式为 检索词 - 词语
- site 能限制检索结果的来源,格式为 检索词 site:限制域名 (不要在“:”后的域名中输入“http:”和“www.”)
- inurl 能在网址中进行搜索,格式为 检索词inurl:检索词
- | 表示布尔逻辑中的或者(or)关系,使用格式为关键词1 | 关键词2
- 空格表示布尔逻辑中的交集(and)关系,使用格式为关键词1 关键词2
- 高级搜索界面:高级搜索界面的入口在搜索引擎首页右上角设置 -> 高级搜索
- 实践步骤1
- 搜索到xls格式的Excel表格 :在搜索框内输入site:edu.cn filetype:xls
-
- 点开一个网页,即可下载并查看检索到的文件的相关信息
- 实践步骤2
- 打开百度的高级搜索界面,具体步骤如下图
-
- 在弹出的搜索框内输入site:edu.cn filetype:xls 身份证号
-
- 修改搜索条件百度一下
-
- 即可查询到相关信息
使用traceroute命令进行路由侦查
- 实践原理
- traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
- traceroute是Linux和Mac OS等系统默认提供的路由追踪小程序,Tracert是Windows系统默认提供的路由追踪小程序。二者的功能相同,都能探测数据包从源地址到目的地址经过的路由器的IP地址。Traceroute/Tracert的实现都借助了TTL:通过向目的地址发送一系列的探测包,设置探测包的TTL初始值分别为1,2,3…,根据返回的超时通知(ICMP Time Exceeded Message)得到源地址与目的地址之间的每一跳路由信息。虽然两者输出结果一致,但在实现原理上还有着显著的差别。
- 实践步骤
- Windows中输入命令tracert www.baidu.com
-
- 分析:从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。其中带有星号(*)的信息表示该次ICMP包返回时间超时。
- 在kali中输入命令 traceroute www.baidu.com
-
- Traceroute/tracert路由追踪程序是用来追踪数据包到达网络主机所经过的路由信息的重要工具,虽然路由追踪效果一致,但实现原理略有不同:前者借助UDP协议,后者借助ICMP协议。
2、DNS IP注册信息的查询
whois查询
- 实践原理
- whois 用来进行域名注册信息查询。
- 进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
- 实践步骤
- 在终端中输入指令
-
- 查看域名的注册信息和3R注册信息
nslookup查询
- 实践原理
- nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。Nslookup(name server lookup)( 域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具。
- 实践步骤
- 在kali中输入 nslookup baidu.com
dig查询
- 实践原理
- Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。Dig可以让你有效地查询DNS,最常用的查询是A记录,TXT(文本注释),MX记录,NS记录,或者任意综合查询。
- 参考网址
- 实践步骤
- 输入dig baidu.com
-
- 此外,dig指令的更多种使用方法(以百度为例):
- dig baidu.com A +noall +answer查找baidu.com的A记录:(此处一定是域而不是主机)
- dig baidu.com MX +noall +answer查找baidu.com MX记录的列表
- ig baidu.com NS +noall +answer查找baidu.com的权威DNS
- dig baidu.com ANY +noall +answer查询上面所有的记录
- 除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识:
- +search使用搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
-
-
- +trace切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
- +identify当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
-
-
-
- +stats该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
-
LP2Location地理位置查询
- www.maxmind.com
- 根据IP地址查询地理位置
- 在Windows中输入ping www.baidu.com 获取百度的IP地址
-
- 打开网站,输入IP,查看IP信息
- IP-ADDRESS
- 查询更详细的关于某共有IP的信息
IP2反向域名查询
- shodan搜索引擎
- 反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型
3、基本的扫描技术
主机发现
- 使用ICMP Ping命令
- 在Windows中执行ping www.baidu.com
-
- 在Kali中执行ping www.baidu.com
- metasploit中的arp_sweep模块
- arp_sweep和udp_sweep都是metasploit中位于modules/auxiliary/scanner/discovery中的模块。arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机;udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息,执行命令如下:
- msfconsole
- use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
- set RHOSTS 172.30.3.0/21 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描
-
- 发现报错,于是重新输入指令sudo msfconsole ,其余指令同上。
- nmap探索活跃主机:在Linux下使用 nmap -sn 172.30.3.0/21 寻找该网段下的活跃主机
nmap的相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙; -sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口; -sP:发送ICMP echo探测; -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐; -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测; -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息; -sV:获取开放服务的版本信息;
OS及服务版本探测
- Nmap对目标的操作系统进行识别:nmap -O 172.30.3.175
端口扫描
- 使用-sS选项进行TCP SYN扫描:nmap -sS -Pn 172.30.3.175 。其中-sS 是TCP SYN扫描,-Pn 是在扫描之前,不发送ICMP echo请求测试目标
- 使用-sV查看目标机的详细服务信息:nmap -sV -Pn 172.30.3.175 。其中-sV 用来查看目标机子的详细服务信息
具体服务的查点
- Telnet服务扫描:telnet命令用于登录远程主机,对远程主机进行管理。
- msfconsole
- use auxiliary/scanner/telnet/telnet_version //进入telnet模块
- set RHOSTS 172.30.3.0/21 //扫描网段
- set THREADS 50 //提高查询速度
- run
- SSH服务:SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
- msfconsole
- use auxiliary/scanner/ssh/ssh_version //进入ssh模块
- set RHOSTS 172.30.3.175/24 //扫描网段
- set THREADS 50 //提高查询速度
- run
- Oracle数据库服务查点
- msfconsole
- use auxiliary/scanner/oracle/tnslsnr_version //进入tnslsnr模块
- set RHOSTS 172.30.3.175/24 //扫描网段
- set THREADS 50 //提高查询速度
- run
4、漏洞扫描
- 安装Openvas,指令如下(参考链接):
//环境准备(root权限下) apt-get update //更新软件库 apt-get upgrade //升级软件 apt-get dist-upgrade //升级系统 apt-get cleanapt-get install gvm //安装gvm
gvm-setup //初始化gvm
gvm-check-setup //安装完整性检测
-
- 在安装过程中遇到了如下问题:
- 虚拟机空间不足。在尝试网上的软链接、分区挂载的方法后均失败,于是迫不得已选择了另一台kali......
- 用户名、密码
- 在检查安装情况时报错,按照提示解决
- 安装成功!!!
- 输入gvm-start 运行
- 打开火狐浏览器,输入网址 https:\\127.0.0.1:9392 ,点击高级>>接受风险并继续
- 输入账号密码
- 新建任务,点击scans>>Tasks ,点击魔仙棒选择 Task Wizard
- 输入主机的IP地址,点击start scan
- 查看信息,分析扫描结果
- 选择 Full and fast ,可以看到很多的漏洞族,选择一个漏洞族进行查看
- 扫描到的漏洞结果无法显示,出错原因为:The SCAP database is required.
- 解决方法:在尝试各种解决方法之后均无效(无语...),于是最后拷贝了同学的虚拟机进行漏洞扫描。
- 主机IP地址变为192.168.43.59 ,具体步骤同上。
-
- 选择一个高风险的漏洞查看相关信息:
-
-
- Summary:该主机运行3CTftpSvc TFTP服务器,容易出现缓冲区溢出漏洞。
- Insight:该缺陷是由于加工过程中的边界误差造成的;TFTP读写请求报文类型。这可能会导致堆栈;通过发送一个具有过长的模式字段的特别制作的包来实现缓冲区溢出。
- Impact:成功的攻击将允许攻击者造成,应用程序崩溃,拒绝为合法用户提供进一步服务。
- Solution:解决方案类型:不会解决。自该漏洞被披露以来,至少有一年没有任何已知的解决方案可用。很可能再也不会提供了。一般的解决方案选项是升级到新版本,禁用各自的特性,删除产品或更换另一种产品。
- 选一个风险等级较低的漏洞分析:
-
-
-
- Summary:这个主机安装了AbsoluteFTP,并且易于缓冲区溢出漏洞。
- Insight:该缺陷是由于边界误差时,处理一个过度长命令列表。这可能会导致基于堆栈的缓冲区通过一个特别制作的FTP列表命令溢出。
- Impact:成功的利用可以允许远程攻击者执行应用程序上下文中的任意代码。攻击失败可能导致拒绝服务的条件。
- Solution:解决方案类型:不会解决。自消息披露以来,至少一年内都没有任何已知的解决方案。这个漏洞很可能再也不会提供了。一般的解决方案选项是升级到更新的
发布、禁用相应的功能、移除产品或用另一个产品替换该产品。
-
四、基础问题回答
- 哪些组织负责DNS,IP的管理?
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 什么是3R信息?
- 注册人(Registrant)
- 注册商(Registrar)
- 官方注册局(Registry)
- 评价下扫描结果的准确性?
- 结果比较准确,但各种扫描方式的侧重点不同,所呈现的扫描结果都不相类似。
五、实验总结与体会
这次的实验难点在于Openvas的安装,以及使用工具搜索信息、扫描漏洞后对得到信息的分析。在Openvas的安装过程中,遇到了很多困难,使用了三台虚拟机均安装失败,最后还是选择拷贝同学的虚拟机进行漏洞扫描。通过这次实践,我认识到了信息搜集的容易性和对个人隐私的巨大威胁,对信息安全有了更深入的理解。