Exp 5 信息搜集与漏洞扫描

发布时间 2023-04-19 14:43:08作者: 无响应trance少年

一、实践内容

(一)各种搜索技巧的应用

1.搜索网址目录结构

借助Metasploit中的brute_dirs、dir_listing、dir_scanner等辅助模块来进行敏感目录扫描。

各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 协议版本。
1.1 dir_scanner

使用kali,依次输入如下指令:

msfconsole

use auxiliary/scanner/http/dir_scanner

set THREADS 40

set RHOSTS www.baidu.com

exploit

1.2 dir_listing

输入以下指令:

use auxiliary/scanner/http/dir_listing

set THREADS 40

set RHOSTS www.baidu.com

exploit

1.3 brute_dirs

输入以下指令:

use auxiliary/scanner/http/brute_dirs

set THREADS 40

set RHOSTS www.baidu.com

exploit

2.检测特定类型的文件

百度高级搜索命令:

filetype:用于搜索特定文件格式。用法:检索词 filetype:文件类型

site:用来搜索某个域名下的所有文件。用法:检索词 site:限制域名

inurl:用于搜索查询呈现在url 中的页面。用法:检索词inurl:检索词

-:减号代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必需是空格,减号后面没有空格。用法:检索词 -词语

|:表示布尔逻辑中的或者(or)关系,用法:“关键词1 | 关键词2”

space:表示布尔逻辑中的交集(and)关系,用法:“关键词1 关键词2”

操作:

打开百度,点击右上角设置,点击高级搜索

3. 路由侦查

(3)路由侦查

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。

操作:

Windows打开cmdtracert www.baidu.com

从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。其中带有星号(*)的信息表示该次ICMP包返回时间超时。

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

1. whois查询

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

whois是个标准的互联网协议,可用于收集网络注册,注册域名,IP地址和自治系统的信息,whios数据库记录有该域名的DNS服务器信息和注册人的联系信息。

whois baidu.com

Domain Name: 域名

Registrar: 注册商

Referral URL:注册地址,就是为你提供注册域名的服务商网址

Name Server:解析该域名的DNS服务器

Status: clientDeleteProhibited (域名的状态)

Status: clientTransferProhibited(域名的状态)

Updated Date:已续费时间和域名操作更新时间

Creation Date: 注册时间

Expiration Date: 过期时间

2. nslookup查询

nslookup可得到DNS解析服务器保存的Cache的结果。

输入nslookup baidu.com

3. dig域名查询

dig是Domain Information Gopher的缩写,是一种DNS查找实用程序,用于探测DNS服务器并解决与DNS服务器相关的问题。

输入dig baidu.com

dig常用参数:
@ :指定进行域名解析的域名服务器
-t :指定要查询的DNS数据类型
-x:进行逆向域名查询
+noall:忽略全部,不进行输出
+answer:只输出结果,省略过程
-h:帮助信息
+search:使用搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
+trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
+identify:当启用 +short 选项时,显示提供应答的 IP 地址和端口号。
+stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。

dig baidu.com +search

dig baidu.com +trace

dig baidu.com +identify

4. IP2Location地理位置查询

4.1 www.maxmind.com

maxmind可以通过ip地址查询地理位置。

先通过cmd命令行获取所需网址ip。

ping www.baidu.com

进入maxmind网站,输入刚才的ip,即可得到IP的地理位置信息。

4.2 www.whatismyipaddress.com

这个网站可以查询到更详细的关于IP的信息。点击图中内容即可查看自身ip地址。

5. IP2反域名查询

www.shodan.io

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

输入www.baidu.com的ip

(三)基本的扫描技术

1. 主机发现

1.1 ping命令

ping命令用发送ICMP报文的方法检测活跃主机,

ping www.baidu.com

2. metasploit中的arp_sweep模块

metasploit 中提供了一些辅助模块可用于活跃主机的发现,这些模块位于Metasploit 源

码路径的modules/auxiliary/scanner/discovery/ 目录中。

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

msfconsole
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 192.168.136.129/24 
set THREADS 100
exploit

show options查看具体设置

3. metasploit中udp_sweep模块

udp.sweep通过发送UDP数据包探查指定主机是否舌跃,并发现主机上的UDP服务。

use auxiliary/scanner/discovery/udp_sweep
set RHOSTS 192.168.136.129/24
set THREADS 100
exploit

4. nmap -sn

nmap -sn 参数可以用来探测某网段的活跃主机

打开一个新的终端,输入命令nmap -sn 192.168.136.129/24

2. 端口扫描

2.1. nmap指令

nmap -PU参数是对UDP端口进行探测。

操作:在kali中打开root终端,输入命令nmap -PU 192.168.136.129/24

2.2 metasploit的端口扫描模块

msfconsole
use auxiliary/scanner/portscan/tcp 
set RHOSTS 192.168.136.129/24 
set THREADS 100
exploit

3. 版本探测

3.1 nmap -O

nmap -O选项让Nmap对目标的操作系统进行识别,获取目标机的操作系统和服务版本等信息。

在root模式下输入nmap -O 192.168.136.129

3.2 nmap -sV

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

输入命令nmap -sV 192.168.136.129

4. 具体服务的查点

4.1 Telnet服务扫描

Telnet命令是一种用于远程登录到另一台计算机的网络协议。

msfconsole
use auxiliary/scanner/telnet/telnet_version 
set RHOSTS 192.168.136.129/24 
set THREADS 100 
exploit

4.2 SSH服务

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

use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.136.129/24
set THREADS 100
exploit

4.3 Oracle数据库服务查点

use auxiliary/scanner/oracle/tnslsnr_version
set RHOSTS 192.168.136.129/24 
set THREADS 100
exploit

(四)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)

OpenVas安装

使用别人已经安装好feed的gvm镜像文件

镜像文件链接:https://pan.baidu.com/s/1V7fVbXhpzcOjoevkX-uZMQ

提取码:fjvi

用户名:admin 密码:123456

操作:下载好所需镜像文件后,打开VMWare,选择打开虚拟机

存储路径也放在同一文件夹,等待导入成功。

打开导入完成的虚拟机,输入用户名admin和密码123456,并记录ip 192.168.136.131

出现如下选项,选择cancel(用键盘的方向键移动,回车确认)

等待一段时间后,出现如下界面,回车即可

在主机中打开刚才的IP地址,无视提示继续连接

输入用户名密码后进入到如下界面

选择task,task wizard

输入主机的IP进行检测

开始扫描

扫描完成

点击查看成果,选择PORTS查看一下开放端口

在主机CMD命令行中用netstat -a -n查看端口,可以发现报告中的对应端口确实开放了

可以选择下载报告

二、实践中的问题

nmap -O选项让Nmap对目标的操作系统进行识别,获取目标机的操作系统和服务版本等信息时显示如下信息

这是端口未开放导致的

问题解决:

此时可以通过打开22端口解决。操作如下:

vim /etc/ssh/sshd_config

找到

#PasswordAuthentication yes  

#PermitRootLogin  no

将#去掉,并将no修改为yes

完成后保存文件,在终端输入/etc/init.d/ssh start

此时重新输入nmap -O 192.168.136.129即可探测到

三、基础问题回答

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

2.什么是3R信息。

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

四、实验总结与体会