Metasploit简介
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。
开启数据库:service postgresql strt
启动:msfconsole
初始化msf数据库:msfdb init
查看数据库连接状态:db_status
Metasploit基础
- 专业术语
msf框架由多个模块组成,各个模块及其具体的功能如下:
Auxiliaries(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试
Exploit(漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为
Payload(攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在msf框架中可以自由地选择、传送和植入如添加用户等
Post(后期渗透模块)
主要用于在取得目标系统远程控制权后,进行一系统的后渗透攻击动作,如获取敏感信息、实施跳板攻击等
Encoders(编码工具模块)
负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来 - 渗透攻击步骤
使用msf渗透测试时,可以综合使用以上模块,对目标系统进行侦察并发动攻击,步骤如下:
1.扫描目标系统,寻找可用漏洞
2.选择并配置一个漏洞利用模块
3.选择并配置一个攻击载荷模块
4.选择一个编码技术,用来绕过杀毒软件的查杀
5.渗透攻击
Metasploit指令
help/? 帮助
exit 退出msf
Back 返回
info 显示一个或者多个模块的信息
show 显示所给类型的模块
background 将当前操作在后台运行
use 选择使用模块
sessions 查看会话
简单的渗透攻击
主机扫描
扫描和收集信息是渗透测试中的第一步,其主要目标是尽可能多地发现有关目标机器的信息,获取的信息越多,渗透的概率就越大,主要关注目标机器IP地址、可用服务、开放端口等。
- 使用辅助模块进行端口扫描
辅助模块是msf的内置模块,首先利用search命令搜索有哪些可用端口模块
msf5 > search portscan
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
1 auxiliary/scanner/http/wordpress_pingback_access normal Yes Wordpress Pingback Locator
2 auxiliary/scanner/natpmp/natpmp_portscan normal Yes NAT-PMP External Port Scanner
3 auxiliary/scanner/portscan/ack normal Yes TCP ACK Firewall Scanner
4 auxiliary/scanner/portscan/ftpbounce normal Yes FTP Bounce Port Scanner
5 auxiliary/scanner/portscan/syn normal Yes TCP SYN Port Scanner
6 auxiliary/scanner/portscan/tcp normal Yes TCP Port Scanner
7 auxiliary/scanner/portscan/xmas normal Yes TCP "XMas" Port Scanner
8 auxiliary/scanner/sap/sap_router_portscanner normal No SAPRouter Port Scanner
可以看到可用的扫描器列表,其中包含了各种扫描类型。
输入use命令即可使用该漏洞利用模块,使用show options命令查看需要设置的参数
msf5 > use auxiliary/scanner/portscan/tcp
msf5 auxiliary(scanner/portscan/tcp) > show options
Module options (auxiliary/scanner/portscan/tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
CONCURRENCY 10 yes The number of concurrent ports to check per host
DELAY 0 yes The delay between connections, per thread, in milliseconds
JITTER 0 yes The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-900)
RHOSTS yes The target address range or CIDR identifier
THREADS 1 yes The number of concurrent threads
TIMEOUT 1000 yes The socket connect timeout in milliseconds
在Required列中,被标记为yes的参数必须包含实际的值,其中RHOSTS设置代扫描的IP地址、PORTS设置扫描端口范围、THREADS设置扫描线程,线程数量越高,扫描的速度越快,可以使用set命令设置相应的参数,也可以适应unset命令取消某个参数值的设置,然后我们run运行
msf5 auxiliary(scanner/portscan/tcp) > run
[+] 192.168.1.100: - 192.168.1.100:139 - TCP OPEN
[+] 192.168.1.100: - 192.168.1.100:135 - TCP OPEN
[+] 192.168.1.100: - 192.168.1.100:445 - TCP OPEN
[+] 192.168.1.100: - 192.168.1.100:1025 - TCP OPEN
[*] 192.168.1.100: - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
可以看到开放了135、139、445、1025端口
- 使用辅助模块进行服务扫描
在扫描目标上运行的服务时,有多种基于服务的扫描技术可供选择,例如VNC、FTP、SMB等,只需执行特定类型的扫描就可以发现服务,通过search命令搜索scanner可以发现大量的扫描模块,可以多尝试,了解其用法
小知识
setg和unsetg命令,二者用于在msf中设置或者取消设置全局性的参数值,从而避免重复输入相同的值