175210 《网络对抗技术》 Exp5 信息搜集与漏洞扫描

一、实践过程

1.各种搜索技巧的应用

1.1 搜索网址目录结构

使用 metasploit 的 brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。原理是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的。

  • dir_scanner 模块

    use auxiliary/scanner/http/dir_scanner
    set RHOST 47.94.47.203
    set RPORT 8080
    set THREADS 50 // 设定扫描线程数
    exploit
    

  • dir_listing 模块

    use auxiliary/scanner/http/dir_listing
    set RHOST 47.94.47.203
    set RPORT 8080
    set THREADS 50 
    exploit
    

  • brute_dirs 模块

    use auxiliary/scanner/http/brute_dirs
    set RHOST 47.94.47.203
    set RPORT 8080
    set THREADS 50 
    exploit
    

1.2 检测特定类型的文件

有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找。

  • 解释:

    • site能限制检索结果的来源,格式为“检索词-词语”
    • filetype对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
  • 在浏览器中输入 site:edu.cn filetype:xls 身份证号

    点击搜索结果可下载 excel 文件(涉及个人信息,就不放图了)

1.3 路由侦察

  • Windows 使用 tracert 命令进行路由侦查

    tracert www.baidu.com

    从左到右分别代表了:

      生存时间,每途经一个路由器结点自增1;
    
      三次发送的ICMP包返回时间,共计3个,单位为毫秒ms。其中带有星号(*)的信息表示该次ICMP包返回时间超时;
    
      途经路由器的IP地址,如果有主机名,还会包含主机名。
    
  • linux 下使用 traceroute 命令进行路由侦查

    traceroute -n -m 20 -q 4 -w 3 www.baidu.com
    

    参数的意义如下:

      -n:显示 IP 地址,不查主机名;
      -m:设置跳数;
      -q:每个网关发送的数据包个数
      -w:设置对外发探测包的等待响应时间(秒)
    

2.DNS IP 注册信息的查询

2.1 whois 查询

whois 就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)

  • 输入 whois cnblogs.com 即可查询

2.2 nslookup、dig域名查询

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

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

dig 命令还有查询选项

+ [no]search:使用[不使用]搜索列表或resolv.conf中的域伪指令(如果有的话)定义的搜索列表。

+[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。

+[no]identify:当启用+short选项时,显示[不显示]提供应答的IP地址和端口号。

+[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等。确定显示查询统计信息。

2.3 IP2Location 地理位置查询

  • 到网站 maxmind 即可通过 ping 得的 IP 地址,查询地理位置

    可以看到,我这台服务器的地址在杭州,由阿里巴巴运行

  • 也可以到 shodan 进行反域名查询

    查出来的信息还是相当多的,系统版本,nginx 服务都查出来了

3.基本的扫描技术

3.1 主机发现

  • nmap

    输入 nmap -sn 192.168.131.129/24 扫描当前局域网的活跃主机

  • metasploit的 arp_sweep 模块和 udp_sweep 模块

    • udp_sweep使用UDP数据包探测,除了可以探测到存活主机之外,还可以获得主机名称信息
    • arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机

    命令:

    use auxiliary/scanner/discovery/xxx_sweep
    show options
    set RHOSTS 192.168.131.129/24
    set THREADS 100
    run
    
    • udp_sweep

    • arp_sweep:

      扫描的是虚拟机所在的网段

3.2 端口扫描

  • nmap 相关参数如下:

      -sS:TCP SYN扫描,可以穿透防火墙;
      -sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口;
      -sP:发送ICMP echo探测;
      -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐;
      -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测;
      -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息;
      -sV:获取开放服务的版本信息;
    

    namp -PU 为例,是对UDP端口进行探测,与udp_sweep模块功能相同

    此时我打开了另一台虚拟机,可以看到 192.168.131.130 的扫描结果

  • metasploit的端口扫描模块

    use auxiliary/scanner/portscan/tcp
    set RHOSTS 192.168.131.129
    exploit
    

    并没有扫描到开放端口

3.3 版本探测

  • 操作系统侦测

    输入 sudo nmap -O 192.168.131.129,指定 nmap 进行 OS 探测

  • 服务侦测

    nmap -sV 查看目标主机的详细服务信息

    输入 nmap -sV -Pn 192.168.131.129

    只看到 apache 服务

3.4 具体服务的查点

  • telenet 服务扫描

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

    发现这个网段里的机器 23 端口都无法连接

  • SSH 服务扫描

    use auxiliary/scanner/ssh/ssh_version
    set RHOSTS 47.94.47.203 
    run
    

    我扫描的是我的阿里云主机,可以看到 ssh 服务的信息和系统的版本

4.漏洞扫描

4.1 docker 安装 OpenVAS

sudo docker pull mikesplain/openvas

sudo docker run -d -p 443:443 -p 9090:9090 -v $(pwd)/data:/var/lib/openvas/mgr/ -e OV_PASSWORD=xxxxxx -e PUBLIC_HOSTNAME=192.168.131.129 --name openvas mikesplain/openvas

// PUBLIC_HOSTNAME 填自己主机ip
// 数据映射到了 /var/lib/openvas/mgr/ 位置
// OV_PASSWORD 可以设置admin密码

su root // 下面操作使用 sudo 会出错

docker exec -it openvas bash // 运行容器 bash

openvasmd --user=admin --new-password=admin

4.2 新建扫描任务

  • 浏览器输入 https://${你的主机ip}/,输入上文设定的用户名及密码,登录 OpenVAS

  • 点击顶部菜单栏 Scans 中的 Tasks

  • 点击 Task Wizard 新建任务向导,输入要扫描的IP,我扫描的是我的阿里云服务器

  • 扫描结束

    我的服务器高危…………

4.3 扫描结果分析

  • 点击 Name 下名称,查看扫描的详细信息。点击 Full and fast

  • 选择第二项 Amazon Linux Local Security Checks

  • 选择一个严重程度为 10 的

    Amazon Linux Local Check: ALAS-2011-16

    可以看到

      - Vulnerability Insight:在Linux内核中发现了多个缺陷
      - Solution:运行yum update kernel更新系统,并重启
    
  • 再选择一个 10 级严重的

    Amazon Linux Local Check: ALAS-2012-111

    大致概括一下。这是 OpenJPEG ( jpeg 编码器 )存在的输入认证缺陷,会导致堆溢出。攻击者可以发送一个经过特殊处理的图片,以导致应用程序崩溃,或获得用户权限。

    解决办法是升级 OpenJPEG

  • 再看一个 10 级严重的

    Amazon Linux Local Check: ALAS-2012-140

    libproxy 处理代理配置文件 pac 时存在的缓冲区溢出漏洞。中间人攻击者,托管 pac 文件的恶意服务器可以利用这个漏洞导致使用 libproxy 的程序崩溃

    解决方法是更新 libproxy

  • 我发现,这些 10 级漏洞大多都挺古老,升级就可以解决问题

二、实验问答

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

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

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

五个地区性注册机构:

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

2、什么是3R信息

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

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

扫描结果大体上还是准确的。但nmap -O 并未准确探测出操作系统。

三、实验体会

我的服务器被扫出大量 9,10 级漏洞。其实 apt dist-upgrade 就可以解决绝大多数问题,最新版本大都修复了这些漏洞

这次实验貌似是最简单的一次,也算是对以前接触的各种工具的一个总结

posted @ 2020-04-25 22:54  175210闵天  阅读(318)  评论(2编辑  收藏  举报