Exp 5 信息搜集与漏洞扫描 您所在的位置:网站首页 漏洞扫描图标是什么 Exp 5 信息搜集与漏洞扫描

Exp 5 信息搜集与漏洞扫描

2023-04-25 13:36| 来源: 网络整理| 查看: 265

一、实践目标

掌握信息搜集的最基础技能与常用工具的使用方法

各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标) 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)

二.实践内容 (一)各种搜索技巧的应用

(1)搜索网址目录结构 通俗的说网站目录就是根据不同类别,主题将站点归档到不同的目录下。 我们可以借助Metasploit中的brute_dirs、dir_listing、dir_scanner等辅助模块来进行敏感目录扫描。这些方法的原理是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。简单来说就是枚举法。

2.1.2 搜索网址目录结构

可以使用metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要的手段是暴力猜测。 brute_dirs 使用kali,依次输入如下指令:

msfconsole use auxiliary/scanner/http/dir_scanner set THREADS 30 set RHOSTS www.baidu.com exploit

image image ,dir_listing

use auxiliary/scanner/http/dir_listing set THREADS 30 set RHOST www.baidu.com exploit

image

dir_scanner:

msfconsole use auxiliary/scanner/http/dir_scanner set THREADS 50 set RHOSTS www.baidu.com exploit

image image 通过两种方式查询,可以看到百度的隐藏目录,得到的结果大致相同。

各http响应码含义如下:

1开头的http状态码 表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2开头的http状态码 表示请求成功 200 成功处理了请求,一般情况下都是返回此状态码; 201 请求成功并且服务器创建了新的资源。 202 接受请求但没创建资源; 203 返回另一资源的请求; 204 服务器成功处理了请求,但没有返回任何内容; 205 服务器成功处理了请求,但没有返回任何内容; 206 处理部分请求; 3xx (重定向) 重定向代码,也是常见的代码 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 4开头的http状态码表示请求出错 400 服务器不理解请求的语法。 401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 服务器拒绝请求。 404 服务器找不到请求的网页。 405 禁用请求中指定的方法。 406 无法使用请求的内容特性响应请求的网页。 407 此状态代码与 401类似,但指定请求者应当授权使用代理。 408 服务器等候请求时发生超时。 409 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 410 如果请求的资源已永久删除,服务器就会返回此响应。 411 服务器不接受不含有效内容长度标头字段的请求。 412 服务器未满足请求者在请求中设置的其中一个前提条件。 413 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 请求的 URI(通常为网址)过长,服务器无法处理。 415 请求的格式不受请求页面的支持。 416 如果页面无法提供请求的范围,则服务器会返回此状态代码。 417 服务器未满足”期望”请求标头字段的要求。 5开头状态码并不常见,但是我们应该知道 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。 2.1.3 利用搜索引擎的技巧

常用字段设置如下:

+:强制包含关键词 -:消除无关性 |:并行搜索 “”:精确匹配 《》:精确匹配/电影或小说 『』:查找论坛版块 intitle:把搜索范围限定在网页标题中 inurl:把搜索范围限定在url链接中 site:把搜索范围限定在特定站点中 filetype:专业文档搜索

image 设置了限制字段后,效果就会好很多 image 或者百度高级搜索设置 image image

2.1.4 路由侦查

由于虚拟机使用的是nat连接,traceroute返回的TTL exceeded消息无法映射到源IP地址、源端口、目的IP地址、目的端口和协议,因此无法反向NAT将消息路由传递回来。 image 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。 操作:

Windows: win+R打开cmd命令行,输入命令 tracert www.bilibili.com

image 这里出现的 www.a.shifen.com是百度防止黑客恶意攻击的一个手段,这个 shifen 就是baidu的竞价排名系统,名字就叫"十分系统" 。 输出的信息第一列代表了生存时间(每途经一个路由器结点自增1) 第二至第四列表示“三次发送的ICMP包返回时间(共计3个,单位为毫秒ms) 第五列表示“途经路由器的IP地址(如果有主机名,还会包含主机名) 带有星号(*)的信息表示该次ICMP包返回时间超时

(二)DNS IP注册信息的查询 2.2.1 whois查询

进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到

whois可进行域名注册信息查询,能够查询到3R注册信息:注册者姓名、组织和城市等。例如输入whois baidu.com image 可得到网站名称Domain Name:baidu.com,注册机构ID Registry Domain ID:11181110_DOMAIN_COM-VRSN,注册服务器Registrar WHOIS Server:whois.markmonitor.com等信息。

2.2.2 nslookup查询

nslookup可得到DNS解析服务器保存的Cache的结果,但结果不一定准确。

输入nslookup baidu.com image

2.2.3 dig域名查询

dig可从官方DNS服务器上查询精确的结果。输入dig baidu.com image 可以看到得到的结果与nslookup的结果基本相同,另外还可提供带关键字的查询选项

+[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。 +[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。 +[no]short:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。 +[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息 2.2.4 IP2Location地理位置查询

maxmind

在maxmind可以根据ip查询地理位置,首先通过ping www.blibli.com得到服务器的IP地址121.40.43.188,在网站中输入后可以看到地理位置 image image

2.2.5 IP2反域名查询

shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型

在shodan中输入www.blibli.com的IP image

(三)基本的扫描技术 2.3.1 主机发现 ping命令

ping命令用发送ICMP报文的方法检测活跃主机,cmd中输入命令ping www.baidu.com image 2. metasploit中的arp_sweep模块

使用ARP请求枚举本地局域网络中的所有活跃主机

msfconsole use auxiliary/scanner/discovery/arp_sweep set RHOSTS 192.168.111.130/24 //24表示子网掩码的位数 set THREADS 100 run

image image 3. metasploit中udp_sweep模块

udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息

msfconsole use auxiliary/scanner/discovery/udp_sweep set RHOSTS 192.168.111.130/24 set THREADS 100 run

image 4. nmap -sn

使用nmap -sn 192.168.111.130/24扫描本地局域网络中的所有活跃主机 image

2.3.2 端口扫描 nmap指令

扫描类型: -sT:TCP connect扫描 -sS:TCP syn扫描 -sF/-sX/-sN:通过发送一些标志位以避开设备或软件的检测 -sP:ICMP扫描 -sU:探测目标主机开放了哪些UDP端口 -sA:TCP ACk扫描 扫描选项: -Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃 -O:辨识操作系统等信息 -F:快速扫描模式 -p:指定端口扫描范围 使用nmap -PU 192.168.111.130/24命令,扫描UDP端口 image 使用nmap -sT -p 1-1024 192.168.111.130/24使用TCP connect扫描1-1024端口 image 2. msf 中的 portscan 模块

主要可以扫描以下几种端口:

ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测 ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举 syn:使用发送TCP SYN标志的方式探测开放的端口 tcp:通过一次完整的TCP链接来判断端口是否开放 xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤 对TCP端口进行探测

msfconsole use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.111.0/24 set THREADS 100 set PORTS 1-1024 run

image

2.3.3 OS及服务版本探测 nmap -O

可以通过nmap -O ip对操作系统进行识别,获取目标机的操作系统和服务版本等信息 image 这里查询到我主机系统为linux 2.4版本,实为win11版本

nmap -sV

可以通过nmap -sV ip查看操作系统详细信息 image

2.3.4具体服务的查点 Telnet服务扫描

telnet命令用于登录远程主机,对远程主机进行管理。

利用scanner进行Telent服务扫描

use auxiliary/scanner/telnet/telnet_version set RHOSTS 192.168.111.130/24 set THREADS 100 run

image 2. SSH服务

SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来

use auxiliary/scanner/ssh/ssh_version set RHOSTS 192.168.111.130/24 set THREADS 100 run

image

Oracle数据库服务查点 use auxiliary/scanner/oracle/tnslsnr_version set RHOSTS 192.168.111.130/24 set THREADS 100 run

image

(四)漏洞扫描

OpenVas安装 写在开头:我感觉此部分是整个实验中最麻烦的部分,如果装了几次还是失败后,可以直接拷贝。不过个人认为这部分实验内容对提高问题解决能力和英语水平有所帮助。

OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器,OpenVas从版本10开始已经改名GVM(Greenbone Vulnerability Management)。其功能包括未经身份验证和身份验证的测试,各种高级和低级互联网和工业协议,大规模扫描的性能调优以及用于实现任何类型的漏洞测试的强大内部编程语言。 扫描程序从具有较长历史记录和每日更新的源中获取用于检测漏洞的测试。 用户需要一种自动测试的方法,并确保正在运行一种最恰当的最新测试。OpenVAS包括一个中央服务器和一个图形化的前端。这个服务器准许用户运行几种不同的网络漏洞测试(以Nessus攻击脚本语言编写),而且OpenVAS可以经常对其进行更新。 部署GVM

部署GVM有两种方式,一种是部署在kali上,一种是单独下载安装GVM的镜像文件。

在kali上部署 kali升级三件套:

sudo apt-get update //软件库更新 sudo apt-get upgrade //软件升级 sudo apt-get dist-upgrade //升级系统 sudo apt-get clean //删除包缓存

更新过程大概需要半个多小时,更新完成后kali界面会变帅 查看版本信息uname -a(此处建议拍一份快照) image 安装gvm

sudo apt-get install gvm 初始化

sudo gvm-setup 这个时候报第一个错误: image 通过执行初始化命令后,发现有报错信息无法进行初始化配置。分析报错信息可知,主要原因是postgresql版本的问题导致无法进行初始化。

查看postgresql版本

通过dpkg -l | grep postgresql 可以查看当前系统中安装的postgresql是什么版本。

也可以通过查看 /etc/postgresql目录: image 通过查看可知,kali默认是在原有postgresql基础上进行更新,并且保留了历史版本。我这里有两个版本14、15,通过执行pg_lsclusters可以得知这两个版本的postgresql都在运行。新版本postgresql通过在默认5432这个端口的基础上进行累加从而避免端口占用。

通过上述情况来看可以分析,GVM在启动的时候会去使用postgresql的默认端口5432去连接它,并且通过这个连接来判断当前postgresql版本。如果版本低于15则无法正常启动,因为GVM是基于postgresql 15这个版本的。

解决方法

停止pg_clusters

sudo pg_dropcluster 14 main --stop sudo pg_dropcluster 15 main --stop. image

确认所有clusters已停止

sudo pg_lsclusters 3. 进行完整性检查 image 执行sudo gvm-check-setup,就会有具体的报错信息提醒该如何修复,按照提示信息输入对应命令修复即可,比如: image image image image 修复完一个继续执行sudo gvm-check-setup,一直执行到出现如下信息: image 通过上面检查结果可以看出,版本问题已解决,不再提示版本错误信息。这里的错误信息是说The Postgresql DB不存在,同时也给出了解决方法:“sudo runuser -u postgres -- /usr/share/gvm/create-postgresql-database”

我们继续修复。

启用V15版本postgresql并创建用户(在root中进行后续操作) pg_createcluster 15 main pg_ctlcluster 15 main start runuser -u postgres -- /usr/share/gvm/create-postgresql-database runuser -u _gvm -- gvmd --create-user=admin --password=123456 //用户名为admin,密码为123456 再次进行完整性检查gvm-check-setup

这时应该会出现这个错误: image 这好像是因为这个日志文件没有访问权限导致的,解决方法:

chmod 666 /var/log/gvm/openvas.log 6. 再次执行gvm-check-setup,直到出现以下信息: image 7. 启动gvm

gvm-start image

image 第一次登陆会显示不安全,直接无视风险坚持访问。

登录

输入用户名和密码,也就是admin那个

登录成功后是这个界面: image 9. 漏洞扫描

点击Scans选择Task,点击左边那个魔法棒,选择Task Wizard,输入一个IP号开始检查: image 出现报错:

Failed to find config ‘daba56c8-73ec-11df-a475-002264764cea’,这里忘记截图了。。

查看Scan Configs发现不为空: gvm-feed-update更新显示 cert data下载管道损坏

无法解决 换下载虚拟机方法

打开导入完成的虚拟机,输入用户名admin和密码123456,并记录ip image 出现选项,选择cancel(用键盘的方向键移动,回车确认)

等待一段时间后,出现界面,回车即可 显示如下界面即可 image 在主机中打开刚才的IP地址,无视提示继续连接 重复之前的操作 输入ip image

image 在经过极漫长的时间后,任务进度会从0加载到100%image 等任务扫描完毕后,点击任务即可查看结果: image 我们选择导航栏上的不同选项查看详细信息(这里以Ports为例) image image 可以发现主机的135端口确实开放了,关闭端口即可降低威胁,好在别的方面看起来还没啥隐患。

下载报告

在这里我们选择以pdf格式下载,打开后就是一份扫描报告,这也是我觉得比较牛的地方。 image 三、实践中的问题 实验过程中遇到的问题大都集中在漏洞扫描这块,具体问题及解决方法已在第二部分—实践内容中给出。此外就是回顾了一下计网中子网掩码的知识。

四、基础问题回答

1.哪些组织负责DNS,IP的管理。

答:全球根服务器均由美国政府授权的ICANN统一管理,负责DNS和IP地址管理。全球根域名服务器绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)

全球共有5个地区性注册机构:ARIN(北美地区),RIPE(欧洲地区),APNIC(亚太地区),LACNIC(拉丁美洲美洲),AfriNIC(非洲地区)

2.什么是3R信息。

答:注册人(Registrant) →注册商(Registrar) →官方注册局(Registry)

3.评价下扫描结果的准确性。

答:扫描结果大部分准确,不过有些端口还是扫不出来

五、实验总结与体会

本次实验前面都很顺利,就是gvm这部分较难 主要是gvm本来下载就要对kali配置很多东西,。GVM功能确实很强大,因为它的特征库每天都在更新,如果你长时间不更新Feed,也没法用了。但是下载过程它的特征库会丢失就很烦,我配置环境配了一天 结果下载下来的gvm还不能使用就心态崩了,好在下载了配置好gvm虚拟机这对这两种方式我都有了更多的理解。端口扫描确实是保护手机安全的很好的手段,可以从自身方面减少被入侵的概率。很好的降低了主机 的风险



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有