20181207朱涛《网络对抗技术》Exp5 信息搜集与漏洞扫描
前导知识
ZoomEye
- ZommEye是一个搜索引擎,搜索对象是网络空间中的“web服务组件”和“网络设备”。这是基于长期积累的安全研究能力,为白帽子黑客和极客服务的。
OpenVas
- OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。
实践原理
- 为什么要做信息收集
- 发现目标
- 筹备攻击行动“先发制人”
- 网络安全性评估“攻防对抗”
- 追踪攻击行为“后发制人”
- 优化防御策略 增强网络安全
- 信息收集需要做什么
- 发现目标:对象名称和主机域名、IP地址
- 关键信息
- 网络拓扑结构
- 操作系统
- 防护机制
- 网络服务
- 安全漏洞
- 其他:地理位置、联系方式
- 网络信息手机方式
- 网络搜索:搜索引擎、电驴、Foxy共享软件、博客以及论坛、扫描、监听
- 社会工程学
- 网络信息收集技术
- 网络踩点(Footprinting)
- Web搜索与挖掘
- DNS和IP查询
- 网络拓扑侦查
- 网络扫描
- 主机扫描
- 端口扫描
- 系统类型探查
- 漏铜扫描
- 网络差点
- 旗标抓取
- 网络服务差点
实践内容概述
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
实验内容
任务一:各种搜索技巧的应用
-
搜索网址目录结构
-
原理:暴力破解一般就是穷举法,它的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。从理论上来说,只要字典足够庞大,枚举总是能够成功哒(本实验以dir_scanner模块为例,获取网站目录结构)
-
方法
msfconsole use auxiliary/scanner/http/dir_scanner set THREADS 20 set RHOSTS www.baidu.com exploit
可以找到下面的目录:(返回值均为200,代表成功处理了请求;但我的kali中显示的结果并不是全为200的情况)
-
-
使用traceroute命令进行路由侦查
-
traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。
-
TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
-
本实验以侦查百度为例,输入命令
tracert www.baidu.com
-
第一列表示生存时间,每途经一个路由器结点自增1
-
第二、三、四列表示三次发送的ICMP包返回时间,共计3个,单位为毫秒ms,其中带有星号(*)的信息表示该次ICMP包返回时间超时。
-
第五列表示途经路由器的IP地址,如果有主机名,还会包含主机名
-
-
-
检测特定类型的文件
-
原理:
filetype
能对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”-
能在检索结果中获取检索词的补集,格式为“检索词 -词语”site
能限制检索结果的来源,格式为“检索词 site:限制域名”(不要在“:”后的域名中输入“http:”和“www.”)inurl
能在网址中进行搜索,格式为“检索词inurl:检索词”|
表示布尔逻辑中的或者(or)关系,使用格式为“关键词1 | 关键词2”- 空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
- 高级搜索界面,高级搜索界面的入口在搜索引擎首页右上角“设置”->“高级搜索”
-
方法:
- 使用
site:edu.cn filetype:xls 身份证号
在搜索框中查询,但是很遗憾已经查不到任何信息了。有可能是百度也意识到这样会泄露访客的个人隐私。
- 使用
- 接着输入
site:edu.cn filetype:xls
,结果如下:
- 我选择双击“工程硕士”词条,网页便会自动下载xls文件到本地端,打开该文件,内容如下:
-
-
使用搜索引擎
-
-
利用GOOGLE提供的搜索功能查找黑客们想找到的信息。一般是查找网站后台,网管的个人信息,也可以用来查找某人在网络上的活动。
-
使用:左侧边栏选中
SHELLCODES
可以看到发布的shellcode
-
-
-
ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。
-
使用:
-
输入
apache +country:"CN"
查找中国地区的apache -
注意:先注册,需绑定手机号之后登录,才能看到查询具体信息。
-
应该是可以看到各个IP的详细信息,如下图:
-
-
- `全球视角`中可以看到apache的分布,相比之下西欧国家更为密集
-
任务二:DNS IP注册信息的查询
-
whois
-
使用
whois
用来进行域名注册信息查询。 -
在Kali终端输入
whois gitee.com
可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。 -
注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
-
-
nslookup,dig域名查询
-
nslookup
-
nslookup
可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。 -
在终端输入
nslookup gitee.com
-
-
dig
-
dig
可以从官方DNS服务器上查询精确的结果。 -
在终端输入
dig gitee.com
- 可以看到前两行的版本信息
Got answer
可以看到从DNS返回的技术信息ANSWER SECTION
显示出查询的结果gitee.com的IP为212.64.62.183
- 最后一段默认输出包含了查询的统计数据
-
-
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
-
+[no]search
:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。 -
+[no]trace
:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。 -
+[no]identify
:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。 -
+[no]stats
:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
-
-
-
IP2Location地理位置查询
-
www.maxmind.com
网站可以根据IP查询地理位置。 -
利用
ping www.baidu.com
查看百度的IP地址为110.242.68.3
-
打开网站网页www.maxmind.com,在网站下方输入IP并点击前往查看结果(该网站还可以查询当前主机的地理位置)
- www.ip-adress.com这个网站可以查询到更详细的关于IP的信息
- 网页在左上角的框框里可以输入想要查询的IP(这里显示我个人的位置为美国,我猜测可能是因为此时我正开热点,且手机为苹果手机,苹果手机预留IP地址可能处于美国,所以才会出现这样的情况。不管什么原因,我觉得这个软件还是不太靠谱啦~)
-
-
IP2反域名查询
-
shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型
-
打开网站,输入IP地址,可以看到地理位置,端口号和提供的服务具体信息
- 我们这里以百度为例,查看一下(由上文可知,百度的IP地址为
110.242.68.4
)
- 我们这里以百度为例,查看一下(由上文可知,百度的IP地址为
-
任务三:基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- 主机发现
-
PING
-
ping命令用发送ICMP报文的方法检测活跃主机
-
输入命令
ping www.baidu.com
-
-
metasploit中的arp_sweep模块和udp_sweep模块
-
arp_sweep
和udp_sweep
都是metasploit中位于modules/auxiliary/scanner/discovery
中的模块 -
arp_sweep
使用ARP请求枚举本地局域网络中的所有活跃主机; -
下图分别展示了设置虚拟机IP地址和设置主机IP地址
- sudo msfconsole //不加sudo,会出现下图报错 - use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块 - show options //查询模块参数 - set RHOSTS 192.168.141.130/24 //用set进行hosts主机段设置,此处的IP地址为建议为主机IP地址 - set THREADS 50 //加快扫描速度 - run //执行run进行扫描
-
udp_sweep
模块除了可以探测到存活主机之外,还可以获得主机名称信息- msfconsole - use auxiliary/scanner/discovery/udp_sweep //进入udp_sweep 模块 - show options //查询模块参数 - set RHOSTS 192.168.141.130/24 //用set进行hosts主机段设置 - set THREADS 50 //加快扫描速度 - run //执行run进行扫描
-
-
nmap -sn
-
可以用来探测某网段的活跃主机(下图分别展示探测虚拟机IP和主机IP)
-
nmap的相关参数如下
-sS:TCP SYN扫描,可以穿透防火墙; -sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口; -sP:发送ICMP echo探测; -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐; -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测; -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息; -sV:获取开放服务的版本信息;
-
-
端口扫描
-
nmap -PU(注意,要使用root权限)
-
nmap -PU
命令是对UDP端口进行探测,与udp_sweep模块功能相同。 -
输入命令
nmap -PU 192.168.141.130/24
(虚拟机)或nmap -PU 172.20.10.12/24
(主机) -
下图分别展示探测虚拟机和主机IP:
-
在没关闭主机防火墙时,扫描结果如下图所示:
关闭主机防火墙后,再次进行扫描,结果依然没什么大变化,如下图所示:
-
nmap -sS(注意,要使用root权限)
-
nmap -sS
选项让Nmap对目标的操作系统进行识别,获取目标机的操作系统和服务版本等信息 -
输入命令
nmap -sS 172.20.10.12
-
-
-
版本扫描
-
nmap -O(注意,要使用root权限)
-
nmap -O
选项让Nmap对目标的操作系统进行识别,获取目标机的操作系统和服务版本等信息 -
输入命令
nmap -O 172.20.10.12
-
-
nmap -sV(注意,要使用root权限)
-
nmap -sV
查看目标主机的详细服务信息 -
输入命令
nmap -sV 192.168.141.130
,其中-Pn是在扫描之前,不发送ICMP echo请求测试目标
-
-
-
具体服务的查点
-
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]login(进行口令探测攻击)命名。
-
Telnet服务扫描
telnet命令用于登录远程主机,对远程主机进行管理。
msfconsole use auxiliary/scanner/telnet/telnet_version //进入telnet模块 set RHOSTS 192.168.141.130/24 //扫描192.168.141.130网段 set THREADS 50 //提高查询速度 run
-
SSH服务
SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
msfconsole use auxiliary/scanner/ssh/ssh_version //进入ssh模块 set RHOSTS 192.168.141.130/24 //扫描网段 set THREADS 50 //提高查询速度 run
-
Oracle数据库服务查点
msfconsole use auxiliary/scanner/oracle/tnslsnr_version show options set RHOSTS 192.168.141.130/24 set THREADS 200 run
-
任务四:漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
-
安装OpenVAS
- 安装完成后会自动生成管理员账号和密码
- 使用 gvm-check-setup 来检查是否安装完成,若安装成功会出现下图字样
- 我在安装过程中遇到了下图报错,按照Fix后的指令安装待完善的部分即可
- 我的虚拟机容量为20G,小容量依然可以创造出大奇迹!大家千万不要在没尝试之前就放弃哦~
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install openvas sudo apt install gvm sudo gvm-setup // 这步时间非常非常非常长,找个网好的地方装,网千万别断,很容易出bug sudo gvm-feed-update //建议安装
-
通过命令
sudo gvm-start
开启这个软件,我第一次开启的时候没有成功,报错如下图;解决方式为输入命令
sudo gvm-stop
暂定运行gvm后,尝试重启。 -
启动成功的截图如下:
-
输入username、password,界面如下:
注意:如若觉得输入密码过于繁琐,此处可以重新创建用户,选用自己喜欢的用户名和密码,命令如下:
sudo runuser -u _gvm – gvmd --user=admin --new-password=123456
-
登陆之后,点击
scan->Tasks
,而后选择左侧魔法棒的图标选择Task Wizard
,输入主机IP地址,点击start scan
-
查看信息(此处我点击Name栏下方的内容,出现Target、Scanner等信息),再次点击Full and fast能够查看细节
-
点击
NTV Families
->任意漏洞(以Buffer overflow为例) 来查看具体漏洞信息 -
点击
SecInfo
->NTVs,在一次扫描中出现了478个高危风险漏洞以及103个中风险漏洞。双击那个饼状图的红色部分,查看危险等级较高的漏洞,
- Summary是对该漏洞的概述,"This host is running 3CTftpSvc TFTP Server and is prone to buffer overflow vulnerability",即说明该漏洞位于该主机运行3CTftpSvc TFTP的服务器中,容易出现缓冲区溢出漏洞。
- Impact是描述该漏洞的而解决方法:“Successful exploitation will allow attackers to cause the
application to crash, denying further service to legitimate users.”说明漏洞可以使应用无法正常运转,并拒绝合法用户的访问。 - Solution给出解决方法:"No known solution was made available for at least one year since the disclosure of this vulnerability. Likely none will be provided anymore. General solution options are to upgrade to a newer release, disable respective features, remove the product or replace the product by another one.",指明该漏洞至少一年没有提供任何已知的解决方案。很可能再也不会提供任何援助了。通用解决方案选项包括升级到新版本,禁用各自的特性,删除产品或是用另一个产品替换该产品。
-
查看一下其他的漏洞,选中下图中的红框框漏洞:
- Summary中说明远程主机缺少通过引用的安全通知宣布的更新。
- Insight中说明Apache HTTP服务器是一种流行的web服务器。在Apache HTTP服务器处理范围HTTP头的方式中发现了一个缺陷。远程攻击者可利用此漏洞通过具有巧尽心思构建的范围标头的HTTP请求,导致httpd使用过多的内存和CPU时间。(CVE-2011-3192)所有httpd用户都应该升级到这些更新包,其中包含一个后端口补丁来纠正这个问题。安装更新的包之后,必须重新启动httpd守护进程,更新才能生效。
- Solution中说明运行yum更新系统即可解决
基础问题回答
- 哪些组织负责DNS,IP的管理。
- ICANN(互联网名称与数字地址分配机构)是一个非营利性的国际组织,负责在全球范围内对互联网唯一标识符系统及其安全稳定的运营进行协调,包括互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
- 全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
- 全球一共有5个地区性注册机构:
- ARIN主要负责北美地区业务
- RIPE主要负责欧洲地区业务
- APNIC主要负责亚太地区业务
- LACNIC主要负责拉丁美洲美洲业务
- AfriNIC负责非洲地区业务
- 什么是3R信息。
- 注册人(Registrant) 、注册商(Registrar) 、官方注册局(Registry)
- 评价下扫描结果的准确性。
- 任何扫描器都有误判或者漏判的可能,但是相对来说,扫描检测的比较精准,能够发现网络等等问题,原因、不良后果以及解决方法,具体详见实验过程。
实验感想
这次实验前几个任务相对而言比较容易,最艰难的应该是任务四中OpenVas的安装过程。连接图书馆的网络连续装了2个小时才完成安装过程,但是在第一次check的时候在step4出现了报错。按照报错中的提示,我修复了文文件,这个过程又持续了近2小时,gvm才可以启动。很遗憾的是,后续又出现了“scap database is required”的问题,经过和身边的同学们讨论后,我们参考了https://6iit.com/3418博客,可是问题仍然没有得到解决。