Exp5 信息搜集与漏洞扫描 20181308邵壮

Exp5 信息搜集与漏洞扫描

一、实践原理

信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息

image

网络踩点(Footprinting)

1.Web搜索与挖掘

  • 公开渠道信息收集
  • Google基本搜索
  • Google高级搜索
  • Google Hacking:通过网络搜索引擎查找特定安全漏洞或私密信息的方法

2.DNS和IP查询

  • DNS服务器和查询机制
    • 权威DNS服务器:提供原始DNS映射信息
    • 递归缓存DNS服务器:ISP提供接入用户使用
    • 分布式缓存与递归查询的机制
  • DNS查询工具:nslookup/dig

3.网络拓扑侦查

  • Traceroute——路由跟踪
    • 探测网络路由路径,可用于确定网络拓扑
    • 主机发送TTL从1开始逐步增1的IP包,网络路径上路由器返回ICMP TIME_EXECEEDED
    • UNIX/Linux:traceroute
    • windows:tracert
    • 穿透防火墙:traceroute -S -p53 TSRGET_IP
    • 图形化界面工具:VisualRoute,NeoTrace,Trout
  • 网络侦察防范措施
    • 路由器配置:只允许特定系统响应ICMP/UDP数据包
    • 网络入侵检测系统/网络入侵防御系统:Snort
    • 虚假响应信息:RotoRouter

网络扫描(Scanning)

1.主机扫描-找出IP段内活动主机

  • ping扫描:
    • 传统ICMP ping扫描
    • ACK ping扫描
    • SYN ping扫描
    • UDP ping扫描
  • ping扫射:同时扫描大量的IP地址段,以发现某个IP地址是否绑定活跃主机的扫描

2.端口扫描-找出某台主机开放的网络服务

  • 连接目标主机的TCP和UDP端口,确定哪些服务正在运行即处于监听状态的过程

3.系统类型探查-决定攻击手段

  • 通过各种不同操作系统类型和版本实现机制上的差异
  • 明确操作系统类型和版本是进一步进行安全漏洞发现和渗透攻击的必要前提

4.漏洞扫描-找到破解通道

网络查点(Enumeration)

1.旗标抓取
2.网络服务查点

二、实践步骤

主要实践内容:

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

1.各种搜索技巧的应用

1.1搜索网址目录结构

$$
暴力破解即穷举、枚举,原理就是使用攻击者自己的用户名和密码字典一个一个去尝试能否登录,理论上只要字典足够大,暴破是一定能成功的。
$$

可以使用metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要的手段是暴力猜测。

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

image

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

image

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

根据https://www.cnblogs.com/cjwxf/p/6186287.html 可知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.2检测特定类型的文件

$$
有些网站会链接特定通讯录、订单等敏感的文件,可以进行针对性的查找,如Google,site:XXX.com filetype:xls
$$

  • 原理:
    • filetype对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
    • -能在检索结果中获取检索词的补集,格式为“检索词 -词语”
    • site能限制检索结果的来源,格式为“检索词-词语”
    • inurl能在网址中进行搜索,格式为“检索词 inurl:检索词”
    • |表示布尔逻辑中的或者(or)关系,使用格式为“关键词1|关键词2”
    • 空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
  • 操作:
    • 在浏览器中输入site:edu.cn filetype:xls 身份证号
    • 点开任意一条搜索结果(使用百度搜索的结果可能会很少,可以使用必应搜索或搜狗搜索等),会自动下载一个excel文件
    • 打开这个文件,你会发现如下内容(出于隐私考虑,对学号、姓名等信息应做打码处理):
      image

1.3路由侦察

使用tracert www.baidu.com命令对www.baidu.com经过的路由进行探测

image

2.DNS IP注册信息的查询

2.1whois查询

$$
原理:whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
$$

  • 直接在kali中输入whois cnblogs.com即可查询,也可以在网上找到域名服务商网页进行查询
  • 这里网址不加“www”,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。

image

2.2nslookup,dig域名查询

nslookup

原理:nslookup可以得到DNS解析服务器保存的Cache的结果,但并不一定是准确的

image

其中:Non-authoritative answer意为“未证实回答”,表示该域名的解析是从local DNS的cache中直接读出来的,而不是向真正负责这个域名的name server问来的

dig

原理:dig可以从官方DNS服务器上查询精确的结果。

image

可以看到得到的结果与nslookup的结果基本相同,另外还可提供带关键字的查询选项

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

2.3IP2Location 地理位置查询

通过www.maxmind.com网站可以根据IP查询地理位置

方法如下:

  • 对你要查询的网站进行ping操作来获取其ip地址,如ping www.cnblogs.com
  • 打开www.maxmind.com,在下方输入ip并查看结果

image

2.4 IP2反域名查询

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

image

3.基本的扫描技术

3.1主机发现

3.1.1 ping命令

输入命令ping www.cnblogs.com

image

3.1.2 metasploit的arp_sweep模块

arp_sweep和udp_sweep都是metasploit中位于modules/auxiliary/scanner/discovery中的模块。arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机;udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息

msfconsole
use auxiliary/scanner/discovery/arp_sweep 
set RHOSTS 192.168.72.0/24 
set THREADS 100
run

image

3.1.3metasploit中udp_sweep模块

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

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

image

3.2 端口扫描

nmap -sP

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

image

3.3版本探测

3.3.1 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.72.0命令,扫描UDP端口

image

使用nmap -sT -p 1-1024 192.168.72.0/24使用TCP connect扫描1-1024端口

image

3.3.2 msf中的portscan模块

对TCP端口进行探测

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

image

3.4具体服务的查点

3.4.1 Telnet服务扫描

利用scanner进行Telent服务扫描

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

image

3.4.2 SSH服务扫描

image

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

image

4.漏洞扫描——安装OpenVAS

注意:openvas软件很大,而因为学校优秀的网络质量,一定要注意热点流量使用和kali的内存问题。

首先使用sudo gvm-setup进行安装

sudo gvm-check-setup检验完整性,有问题后sudo gvm-setup

在检验完整性时看到

It seems like your GVM-20.8.0 installation is OK.

这就代表我们成功了。

image

安装的末尾会出现用户名和密码,密码比较复杂。如果我们因为着急check没有注意的话,可以通过sudo runuser -u _gvm -- gvmd --user=admin --new-password=123456进行修改

安装成功后gvm会自动启动,所以我们先要通过使用gvm -stop将它停止。然后再使用 gvm -start启动,开始运行。

运行结束后应该会浏览器弹窗如下窗口,没有的话就打开浏览器输入上面最后一行的网址

image

输入用户名admin密码123456后登录

点击scans进入task,然后点击”魔法棒“,选择Task Wizard

在弹出的页面输入主机的ip号开始检查

image

等待一段时间,当0显示done已完成时,扫描结束

image

点击扫描结果可以查看更详细的信息,点击full and fast。

image

随便点击一条,如 FTP 查看结果,显示的结果标注了漏洞的危险等级。

image

如图是3D TFP Client Directory Traversal Vulnerability的详细信息,包括介绍、受到影响的软件或操作系统以及解决方案等

三、实验问题回答

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

全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。

  • 地址支持组织(ASO)负责IP地址系统的管理
  • 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
  • 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配

五个地区性注册机构:

  • ARIN(北美地区)
  • RIPE(欧洲地区)
  • APNIC(亚太地区)
  • LACNIC(拉丁美洲美洲)
  • AfriNIC(非洲地区)

2.什么是3R信息

  • Registrant注册人
  • Registrar注册商
  • Registry官方注册局

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

前文有的地方提到过因为搜索引擎的运用所以结果可能不太准确。在实地对结果的分析中发现我能发现的结果还是比较准确的

四、实验体会和总结

这次实验其实并不是很难,但是过程却遇到了很多的挫折。其实主要的困难都集中在gvm上。后来发现gvm出现的问题多数都可以通过多次stop|start来解决。最后也算是比较圆满地完成了这次实验,感觉以后真的是不想再触碰这么让人恼怒的东西了,或者至少也要配置个内存大点的虚拟机,再搞个好点的网络环境。

posted @ 2021-04-24 17:30  无知丶  阅读(232)  评论(0编辑  收藏  举报