2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp5 信息搜集与漏洞扫描
2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp5 信息搜集与漏洞扫描
一、实践目标
掌握信息搜集的最基础技能与常用工具的使用方法
二、实践内容
(1)各种搜索技巧的应用
(2)DNS IP注册信息的查询
(3)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
(4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
三、实践原理
信息搜集: 渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
间接收集
-
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团体字符串),我们可以提取系统重启时间,系统上的用户名,系统网络信息,运行的服务等各种有价值的信息。
- HTTP(auxiliary/scanner/http/)
-
漏洞探测:探测服务是否有相应漏洞
-
NMAP:也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
社会工程学
漏洞扫描与Openvas
四、实验步骤
任务一:各种搜索技巧的应用
(一)检测特定类型的文件
- 根据搜索引擎的特性可以进行相关搜索,比如在百度中输入
site:edu.cn filetype:xls 考号
,能够搜索到xls格式的Excel表格,而且与考号信息相关
将其下载后,通过 excel 打开,发现其中包含了姓名和准考证号等信息,而我在搜索时需要的正是考号信息
- 通过上面这个情况,细思极恐,而且这种事在以前也很多,就是如果我搜索的时候,输入身份证号,那么可以搜到很多身份信息,特别是在以前,需要身份证号的时候,很多人都这么做过,可见信息是很容易泄露的
(二)搜索网络目录结构
-
就是使用暴力模块进行暴力破解。而暴力破解一般就是指穷举法,一个一个去枚举。这里以dir_scanner为例
-
在命令行依次输入以下命令:
msfconsole
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS www.baidu.com
exploit
- 可以看到以下这些目录
(三)使用IP路由侦查工具traceroute
关于traceroute命令
-
traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
-
在windows中输入命令:
tracert www.baidu.com
- 在kali中输入命令:
traceroute www.baidu.com
- 由于虚拟机的连接方式,无法反向NAT将消息路由传递回来,所以显示都是*号
任务二:DNS IP注册信息的查询
(一)whois域名注册信息查询
-
whois用来进行域名注册信息查询
-
在 kali 中输入命令
whois baidu.com
可以查到注册人姓名、组织等注册信息(注意:这里查询试需要去掉www的前缀)
(二)nslookup,dig域名查询
使用nslookup
-
nslookup可以得到DNS解析服务器保存的Cache的结果
-
在 kali 中输入命令
nslookup baidu.com
得到DNS解析结果,但并不是一定准确的(注意:这里去掉了www的前缀)
使用dig
-
dig可以从官方DNS服务器上查询精确的结果
-
在 kali 中输入命令
dig baidu.com
得到从官方DNS服务器上查询精确的结果(注意:这里去掉了www的前缀)
- 除此之外,dig命令还有很多查询选项,可以在关键字前加前缀+进行标示:
+[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
+[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
+[no]identify:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
+[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
- 尝试命令
dig baidu.com +trace
切换为待查询名称从根名称服务器开始的代理路径跟踪
- 尝试命令
dig baidu.com +identify
(这里需要先输入命令dig baidu.com +short
)显示提供应答的 IP 地址和端口号
(三)IP2Location地理位置查询
www.maxmind.com
网站可以根据IP查询地理位置
- 首先在Windows命令提示符中输入
ping www.baidu.com
获取百度的 IP地址
- 进入
www.maxmind.com
网站,在网站中输入IP地址(183.232.231.172)可以查看到百度的IP信息
- 还可以登录网站IP-ADDRESS,在这里可以查询到更详细的关于百度的IP地址(183.232.231.172)的信息
- 除此之外,还可以上纯真输入IP地址(183.232.231.172)进行查询
任务三:基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
(一)主机发现
使用Ping命令
- 在 Windows 命令提示符中输入命令
ping www.baidu.com
- 在 kali 终端中输入命令
ping www.baidu.com
metasploit中的arp_sweep模块
-
arp_sweep 是 metasploit 中位于
modules/auxiliary/scanner/discovery
中的模块,它使用ARP请求枚举本地局域网络中的所有活跃主机 -
在 kali 中执行以下命令:
msfconsole
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 192.168.11.0/24
set THREADS 50
run
metasploit中的udp_sweep模块
-
udp_sweep 是 metasploit 中位于
modules/auxiliary/scanner/discovery
中的模块,udp_sweep 模块除了可以探测到存活主机之外,还可以获得主机名称信息 -
在 kali 中执行以下命令:
msfconsole
use auxiliary/scanner/discovery/udp_sweep
set RHOSTS 192.168.11.0/24
set THREADS 50
run
使用nmap
- 关于nmap,其相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙;
-sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口;
-sP:发送ICMP echo探测;
-sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐;
-sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测;
-O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息;
-sV:获取开放服务的版本信息;
- 在 kali 终端中的管理员权限下输入命令
nmap -sn 192.168.11.0/24
(二)端口扫描
nmap -PU
- 在 kali 终端中的管理员权限下输入命令
nmap -PU 192.168.11.0/24
(三)版本探测
nmap -O
- 先尝试一个,在 kali 终端中的管理员权限下输入命令
nmap -O 192.168.0.103
- 在 kali 终端中的管理员权限下输入命令
nmap -O 192.168.11.1
nmap -sV
- 在 kali 终端中的管理员权限下输入命令 nmap -sV -Pn 192.168.11.1`
- 其中-sV 用来查看目标机子的详细服务信息,而-Pn 是在扫描之前,不发送ICMP echo请求测试目标
(四)具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
Telnet服务扫描
-
telnet命令用于登录远程主机,对远程主机进行管理
-
执行命令如下:
msfconsole
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 192.168.11.0/24
set THREADS 50
run
SSH服务
-
SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来
-
执行命令如下:
msfconsole
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.11.0/24
set THREADS 50
run
Oracle数据库服务查点
- 执行命令如下:
msfconsole
use auxiliary/scanner/oracle/tnslsnr_version
set RHOSTS 192.168.11.0/24
set THREADS 50
run
任务四:漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
安装Openvas
在kali终端管理员权限下依次输入以下命令进行安装(这其中碰到的问题太多了,全部放到实验中遇到的问题中说明):
apt-get update
apt-get dist-upgrade
apt-get install openvas
openvas-setup
- 安装完成后,通过openvas-check-setup 检测安装是否成功,如果出现It seems like your OpenVAS-9 installation is OK 表示安装成功,否则继续加油吧(反正这里我弄了两天...)...
添加新的用户名和密码
openvasmd --create-user=20175218 --role=Admin 创建用户20175218
openvasmd --user=20175218 --new-password=jy5218 设置新密码
登录
- 输入命令
openvas-start
启动服务,这里提示关联存在问题无法打开,需要手动在浏览器中输入网址https://127.0.0.1:9392
进入,然后输入刚刚设置的用户名和密码
进行扫描
- 登录成功后,进行新建任务,通过在菜单栏 Scan 中选择 Tasks ,点击界面左上角的魔法棒选择 Task Wizard,填入待扫描的IP地址 192.168.11.1 ,点击 Start Scans
- 等待一段时间后,可以得到扫描完成的结果
- 点击扫描完成后的结果中的IP地址,可以查看到扫描结果的详细信息
- 选择 Full and fast 可以看到很多的漏洞族,选择一个漏洞族进行查看(这里选择思科CISCO进行查看)
- 在漏洞族中在任意选择一个漏洞,可以查看漏洞的影响以及补救方法(这里选择思科CISCO进行查看)
五、实验中遇到的问题
问题一
首先是安装Openvas时,通病,一般都会遇到的问题,这里当然我也遇到了,就是下载是连接断了或者连接错误
解决方法: 可以换手机热点,不推荐移动,推荐使用联通(这里仅在我这里得到验证,我家宽带是移动的,下载时非常容易段,用移动号码开热点也容易断,换联通卡就好了很多,基本上很少断,如果断了可以尝试把手机开启关闭飞行模式刷一下网),反复重新输入命令直到所有都下载成功
经过这次,我也得到一次教训,每次做实验前,可以先给虚拟机拍摄一个快照,这样如果出错了还可以回到实验前的状态
问题二
安装时错误了,建议不要多次进行apt-get dist-upgrade更新,因为这个我损失了一台虚拟机...
解决方法: 下载时,我多次进行apt-get dist-upgrade,结果不知道怎么把系统中一些文件替换删除了,导致很多文件都没有了,而且连接不上网,VM tool也不好使了,然后我就放弃了这台虚拟机。幸好这学期还有一门课程,当时把kali进行了克隆,然后就用了克隆的这台机器(幸好veil是安装好了的!!!否则需要使用时重新安装又得费很大麻烦,真是不幸中的万幸)
在安装Openvas后,进行 openvas-check-setup 检测时,通常问题都可以通过它给的FIX提示进行解决,比如: greenbone-scapdata-sync 、 greenbone-certdata-sync 这里我就不说了,主要说的是FIX没有给出比较具体靠谱的提示的问题
问题三
解决方法: 这个问题足足困了我半天,上网查阅了很多资料都没解决,看到有同学博客遇到同样的问题,尝试她的解决方法,通过 vim /var/run/redis-openvas/redis-server.sock 改文件,发现我打开的是一个空文件,而且这个文件不能保存,没有权限,保存也只是只能为可读,而且有错误。真的头疼啊,弄了好久都没能解决这一个问题(虽然其他问题解决时间也很长,但那方法可靠,而且也只是下载时间长,这个连可靠解决方法都没有...)。后来想了很久,尝试将几种方法集中起来,发现解决了,以下是具体操作:
首先,进入redis安装目录/etc/redis/,通过 vim redis.conf
打开文件,然后编辑,将下面两个参数注释打开
unixsocket /var/run/redis/redis-server.sock
unixsocketperm 700
然后将 unixsocket /var/run/redis/redis-server.sock 修改为其他路径,因为在/var或/etc这些目录下是没有权限进行写文件的,所以可以在外面的文件夹下进行写文件,比如我的是 /home/kali/wlgf/exp5/redis.sock
然后打开 /etc/openvas/ ,通过 vim openvassd.conf
打开文件,然后编辑,发现最后面有一行路径了,可以不用管,只需要在最后面添加一行,地址跟unixsocket的要一样即 kb_location = /home/kali/wlgf/exp5/redis.sock
然后当然不可能设置一个路径却没有文件吧,我们还是得在 /home/kali/wlgf/exp5/ 下写一个 redis.sock 文件,内容为:
port 0
unixsocket /var/run/redis-openvas/redis-server.sock
unixsocketperm 700
timeout 0
最后重启,运行 openvas-check-setup 发现问题已解决
六、实践思考
问题一
哪些组织负责DNS,IP的管理。
答:ICANN(互联网名称与数字地址分配机构)。ICANN 理事会设立三个支持组织:
- 地址支持组织(ASO)负责IP地址系统的管理。
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理。
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配。此协议是允许计算机在因特网上相互交换信息,管理通讯的技术标准。
问题二
什么是3R信息。
答:即注册人(Registrant)、注册商(Registrar)、官方注册局(Registry)
问题三
评价下扫描结果的准确性。
答:对于扫描结果的准确性,我觉得还是比较好,但是不是非常好。这里不是说扫描工具不行,我想的是可能是扫描环境的不同,对扫描结果的准确性影响比较大。对于此,我觉得我的电脑是比较迷的,很多同学实验都碰不到的问题我就遇到了,这样不单是只能靠自己去想办法解决,而且还让我觉得我的电脑对我太不友好了...为啥别人能这么顺利,我却要碰到这么多问题,所以我感觉在扫描结果准确性上,这也是有影响的,所以我觉得这个准确性还是稍微差一点点的,主要是经历的事情已经让我不相信我的虚拟机或者电脑了...
七、实验收获与感想
这次实验,总的来说不是很困难,但是做得不是很顺利,整个实验做下来,大概花了将近三天,最后总结下来就是,心态一定要好!!!这次实验中,前面倒是没啥,就是安装Openvas和进行 openvas-check-setup 检测,真的是很容易让人心态崩掉啊,不只是问题多,而且解决问题还很困难。下载速度非常慢,有时你放着让它自己下,回来发现,竟然断掉连接了,不知道白白浪费多长时间,就像晚上睡觉前挂着下载,没准第二天醒来一看也就下来两三个结果断了,一晚上就白费。遇到困难直接给出可靠解决方法还行,如果没有,还得自己去摸索,摸索来摸索去,废了好长时间,结果发现还没能解决,这是最让人头疼的事,在这一次实验中又一次体验到了(之前有实验也是这样)。做完实验,突然发现实验的最大收获竟然不是掌握了信息搜集的最基础技能与常用工具的使用方法,而是再一次磨练了心态...