2019-2020-2《网络对抗技术》 Exp5 信息搜集与漏洞扫描

实践目标

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

回答实践问题

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

    • 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。ICANN理事会是ICANN的核心权利机构,它设立三个支持组织,分别是:

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

      全球一共有5个地区性注册机构:

      ARIN主要负责北美地区业务
      RIPE主要负责欧洲地区业务
      APNIC主要负责亚太地区业务
      LACNIC主要负责拉丁美洲美洲业务
      AfriNIC主要负责非洲地区业务。

  • 2.什么是3R信息。

    • Registrant:注册人
      Registrar:注册商
      Registry:官方注册局
  • 3.评价下扫描结果的准确性。

    • 使用msf不同的模块扫描时,会有不同结果,速度、效率也会有所不同。nmap扫描更快速。OpenVAS 的 NVT 库一周至少要更新一次,否则就会落后。

实践过程

各种搜索技巧的应用

使用搜索引擎

  • GHDB

    包含了大量使用Google从事渗透的搜索字符串,拥有很多常用的模块,还有我们之前使用过的各个平台下的shellcode,也可以在SHELLCODES模块里面获取。

  • ZoomEye

    针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息 。

搜索网址目录结构

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

以下模块的启用均在 msfconsole 中。

  • dir_scanner 模块。

    use auxiliary/scanner/http/dir_scanner
    show options
    set RHOSTS www.baidu.com
    set THREADS 50
    exploit
    
  • dir_listing 模块。

    use auxiliary/scanner/http/dir_listing
    show options
    set RHOSTS www.baidu.com
    exploit
    
  • brute_dirs 模块。

    use auxiliary/scanner/http/brute_dirs
    show options
    set RHOSTS www.baidu.com
    set THREADS 100
    exploit
    

检测特定类型的文件

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

  • 百度搜索 site:edu.cn filetype:xls 课设

  • 百度已经提供了相应的搜索工具。

路由侦查

  • Windows 下 tracert 命令进行路由侦查。

    PowerShell 中输入以下命令, DNS解析会自动将其转换为IP地址并探查出途经的路由器信息 。

    tracert www.baidu.com
    
    • 从左到右的5条信息分别代表了:

      • “生存时间”,每途经一个路由器结点自增1;

      • “三次发送的ICMP包返回时间”,共计3个,单位为毫秒ms 。

        其中带有星号(*)的信息表示该次ICMP包返回时间超时;

      • “途经路由器的IP地址”,如果有主机名,还会包含主机名。

  • Linux 下 traceroute命令进行路由侦查。

    traceroute -n -m 20 -q 4 -w 3 www.baidu.com
    
    • -n:显示 IP 地址,不查主机名;
    • -m:设置跳数;
    • -q:每个网关发送的数据包个数
    • -w:设置对外发探测包的等待响应时间(秒)
    • 还可以使用 -p 设置探测的 UDP 端口。

DNS IP 注册信息的查询

whois 查询域名注册信息

通过whois查询可以获得它的ip地址、注册人信息、域名信息、子域信息、服务器位置信息等。

  • whois yogile.icu :whois 我的个人网站,可以看到我的 “注册人信息”:

    •   Registrant Organization: YaoMingYu
        Registrant State/Province: si chuan
        Registrant Country: CN
      

nslookup、dig域名查询

nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。dig可以从官方DNS服务器上查询精确的结果。

  • Linux 终端:nslookup yogile.icu

  • Linux 终端:dig yogile.icu

    •   ; <<>> DiG 9.11.16-2-Debian <<>> yogile.icu
        ;; global options: +cmd
      

      显示 dig 命令的版本和输入的参数

    •   ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15365
        ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
      

      显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。

    •   ;; QUESTION SECTION:
        ;yogile.icu.                    IN      A
      

      显示我们要查询的域名。

    •   ;; ANSWER SECTION:
        yogile.icu.             562     IN      A       39.97.109.216
      

      查询到的结果.

    •   ;; Query time: 4 msec
        ;; SERVER: 192.168.3.1#53(192.168.3.1)
        ;; WHEN: 四 4月 23 12:46:20 CST 2020
        ;; MSG SIZE  rcvd: 44
      

      本次查询的一些统计信息

IP2Location 地理位置查询

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

    • 可以看到:网站对应云服务器的地址在杭州,由阿里巴巴运行。

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

基本的扫描技术

活跃主机扫描

  • nmap

    • 输入 nmap -sn 192.168.3.101/24 扫描当前局域网的活跃主机(IP 地址为 kali IP 地址)。
    • 也可以指定 IP 。
  • udp_sweep使用UDP数据包探测

    msfconsole下进行。

    use auxiliary/scanner/discovery/udp_sweep
    show options
    set RHOSTS 192.168.3.0/24
    set THREADS 100
    run
    

端口扫描

  • metasploit的端口扫描模块

    • msfconsole下进行。
    use auxiliary/scanner/portscan/tcp
    set RHOSTS 192.168.3.4
    exploit
    
  • Nmap端口扫描

    • 输入指令nmap -sT -p 0-1024 192.168.3.4表示使用TCP connect扫描目标 IP 的 0-1024的端口

    扩展:

    • -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描
    • -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况
    • -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态
    • --scanflags : 定制TCP包的flags
    • -sI : 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
    • -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况
    • -sO: 使用IP protocol 扫描确定目标机支持的协议类型
    • -b : 使用FTP bounce scan扫描方式

OS及服务版本探测

  • 操作系统侦测

    Nmap拥有丰富的系统数据库nmap-os-db,目前可以识别2600多种操作系统与设备类型,侦测用于检测目标主机运行的操作系统类型及设备类型等信息。

    • Linux 终端输入:sudo nmap -O 192.168.3.4 ,指定Nmap进行OS侦测。
  • 版本侦测

    用于确定目标主机开放端口上运行的具体的应用程序及版本信息。

    • Linux 终端输入:nmap -sV -Pn 192.168.3.4 ,版本侦测。
      • -sV: 指定让Nmap进行版本侦测
        version-intensity : 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
        version-light: 指定使用轻量侦测方式 (intensity 2)
        version-all: 尝试使用所有的probes进行侦测 (intensity 9)
        version-trace: 显示出详细的版本侦测过程信息。

具体服务的查点

  • Telnet服务扫描

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

    use auxiliary/scanner/telnet/telnet_version
    info
    set RHOSTS 192.168.3.0/24
    set THREADS 100
    run
    
    • 可以看到宿主机23端口连接超时。
  • SMB网络服务扫描

    SMB (Server Message Block,服务器消息块) 提供了 Windows 网络中最常用的远程文件与打印机共享网络服务。

    msfconsole下进行。

    use auxiliary/scanner/smb/smb_version 
    info
    set RHOSTS 192.168.3.0/24
    set THREADS 100
    run
    
  • NetBios网络服务扫描

    NetBIOS (Network Basic Input/Output System,网络基本输入输出) 为局域网内 Windows 系统上的应用程序实现会话层之间的通信提供基本支持。

    msfconsole下进行。

    use auxiliary/scanner/netbios/nbname
    info
    set RHOSTS 192.168.3.0/24
    set THREADS 100
    run
    
  • SSH服务扫描

    msfconsole下进行。

    use auxiliary/scanner/ssh/ssh_version
    set RHOSTS 192.168.3.0/24
    set THREADS 200
    run
    
  • Oracle数据库服务查点

    msfconsole下进行。

    use auxiliary/scanner/oracle/tnslsnr_version
    set RHOSTS 192.168.3.0/24
    set THREADS 100
    run
    

漏洞扫描

由于最近 kali 的镜像源都开始更新,尝试过后无法下载或更新软件。由于我已经在 Ubuntu 上安装了 docker ,所以我使用 Docker 运行 OpenVAS 容器实现。

运行 OpenVAS 的 Docker 容器

  • Docker 安装:

  • 拉取 OpenVAS 镜像,你也可以拉取其他镜像。

    docker pull mikesplain/openvas
    

  • 输入 docker 命令,运行容器:

    • 自行改变 PUBLIC_HOSTNAME= 后面的 IP 地址为你 docker 所在主机 IP 。
    sudo docker run -d -p 443:443 -p 9090:9090 -v $(pwd)/data:/var/lib/openvas/mgr/ -e OV_PASSWORD=567678 -e PUBLIC_HOSTNAME=192.168.3.21 --name openvas mikesplain/openvas
    

  • 运行容器 bash 。

    docker exec -it openvas bash
    
  • 在容器中修改用户名密码,可自行更改:

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

  • 到此, OpenVAS 的 Docker 容器已经运行。

OpenVAS 容器进行漏洞扫描

  • 打开浏览器,输入:

    • 注意是运行容器命令中的设置的 PUBLIC_HOSTNAME 值。
    https://192.168.3.21/
    或
    https://192.168.3.21/omp
    

  • 输入用户名和密码成功登录。

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

  • 点击 Task Wizard 新建任务向导,输入要扫描的宿主机 IP 。

    • 我的 kali 虚拟机是桥接模式。
    • 需等待一段时间。

  • 扫描完成。

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

  • 点击 Full and fast

  • 选择第二项 Amazon Linux Local Security Checks 。

  • 选择标签为 ALAS-2011-16 的 严重程度 值为 10 且标红的一项。

  • 可以看到如下信息:

    • Summary:Amazon Linux本地安全检查。
    • Vulnerability Insight:在Linux内核中发现了多个缺陷。请参阅参考资料以获取更多信息。
    • Solution:运行yum update kernel更新系统。您需要重新引导系统才能运行新内核。

实验总结与体会

  • 通过本次实验,初步掌握了如何进行信息的搜集,在利用各种技术来实践收集并分析信息的过程中,让我不断掌握了漏洞的扫描和分析的基本方法。

  • 其实在前面我都不应该公布我的服务器包括 IP 地址在内的信息,虽然都可以通过现有工具查到。只是这个服务器只是我用于测试的服务器,并且将于不久后过期,才在实验中使用。

posted @ 2020-04-23 20:16  Yogile  阅读(268)  评论(0编辑  收藏  举报