Metasploit框架学习与使用(个人学习笔记)

仅用于交流学习!!!

Metasploit渗透测试框架介绍

1、Metasploit介绍

渗透测试平台,能够查找,利用和验证漏洞。

免费的,可下载的框架,这个框架自身带有数百个一直软件漏洞的专业级漏洞攻击工具。

Metasploit设计初衷就是打造一个攻击工具开发平台

官网:https://www.www.metasploit.com

2、版本

Metasploit Framework:开源的免费版本

Metasploit Pro:付费商业版,首次下载免费14天,一年20多万-30多万左右。功能很强,服务额外包括:License授权,Web APP测试,AV免杀,操作界面web/adv cmd,IDS/IPS绕过等等

3、Metasploit框架

1、基础库

metasploit基础库文件位于根目录下的libraries目录中,包括Rex,framework-core和framework-base三部分。

Rex库:是整个框架所以来的最基础的一些组件,比如包装的网络套接字,网络应用协议客户端与服务端实现,日志子系统,渗透攻击支持列子,PostgreSQL以及MySQL数据库支持等。

framework-core库:负责实现所有与各种类型的上层模块及插件的交互接口

framework-base库:扩展了framework-core,提供更加简单的包装例程,为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能即框架集成模块

2、模块

模块组织按照不同的用途分为7种类型模块(Modules)

1、辅助模块(Auxiliary)

辅助渗透:端口扫描,密码爆破,漏洞验证等等

渗透之前得到目标情报信息,发起更有效地攻击行为

比如:各种网站扫描与查点,漏洞扫描,口令爆破,模糊测试,爬虫遍历,数据提取等等

在辅助模块种,有一些无需加载的攻击载荷模块,比如拒绝服务攻击

命名规则:功能/服务/模块名称

例如:scanner/discovery/arp_sweep

辅助模块分为三个大类

1、admin

admin/HTTP模块

admin/MSSQL模块

admin/MySQL模块

admin/Postgres模块

admin/VMware模块

例子:

1、查找关于MySQL的辅助模块

2、选择auxiliary/admin/mysql/mysql_sql,并查看设置参数

3、设置目标主机,用户名和密码

4、执行,run/exploit都可以

其他的就不演示了

2、Scanner

dcerpc

discovery

ftp

http

imap

mssql

mysql

Netbios

pop3

smb

smtp

snmp

ssh

telnet

tftp

vmware

vnc

Scanner例子:

常用的扫描模块及功能

arp扫描

search arp

use auxiliary/scanner/discovery/arp_sweep

端口扫描

search portscan

use auxiliary/scanner/portscan/syn

密码嗅探

search sniffer

支持冲pcap抓包文件中提取密码

功能类似于dsniff

目前只支持pop3 imap fto http_get协议

SNMP扫描

SMB扫描

smb版本扫描 use auxiliary/scanner/smb/smb_version 扫描命令管道,判断smb服务零星(账号,密码) use auxiliary/scanner/smb/pipe_auditor smb共享枚举(账号,密码) use auxiliary/scanner/smb/smb_enumshares smb用户枚举(账号,密码) use auxiliary/scanner/smb/smb_enumusers sid枚举(账号,密码) use auxiliary/scanner/smb/smb_lookupsid

ssh扫描

ssh版本 use auxiliary/scanner/ssh/ssh_version ssh密码爆破 use auxiliary/scanner/ssh/ssh_login set userpass_file /usr/share/metasploit-framework/data/wordlists/root_userpass.txt set VERBOSE false run

ssh公钥登录 use auxiliary/scanner/ssh/ssh_login_pubkey set key_file di_rsa ser username root run

mssql扫描端口

TCP 1433(动态端口),UPD 1434(查询TCP端口号) use auxiliary/scanner/mssql/mssql_ping 爆破mssql密码 use auxiliary/scanner/mssql_login 远程代码执行 use auxiliary/admin/mssql/mssql_exec set cmd net user pass /add

ftp扫描

ftp版本扫描 use auxiliary/scanner/ftp/ftp_version ftp的匿名用户 use auxiliary/scanner/ftp/anonymous ftp爆破密码 use auxiliary/scanner/ftp/ftp_login

vnc扫描

vnc:虚拟网络控制台,是一款远程控制工具,基于unix和linux操作系统的免费开源软件。

vnc密码破解 use auxiliary/scanner/vnc/vnc_login vnc无密码访问 use auxiliary/scanner/vnc/vnc_none_auth

rdp扫描(远程桌面)

rdp远程桌面漏洞 use auxiliary/scanner/rdp/ms12_020_check 检查是不会造成doc攻击

设备后门

use auxiliary/scanner/ssh/juniper_backdoor use auxiliary/scanner/ssh/fortine_backdoor

http弱点扫描

过期证书 use auxiliary/scanner/http/cert 显示目录及文件 use auxiliary/scanner/http/dir_listing use auxiliary/scanner/http/files_dir WEBDAV Unicode编码身份验证绕过 IIS的webDAV功能在解析URI并发送回数据时没有正确的处理Unicode令牌环,远程攻击者可以通过提交恶意HTTP GET请求绕过受口令保护的文件夹认证,或在受口令保护的WEBDAV目录中列出,下载,上传文件 use auxiliary/scanner/http/dir_webdav_unicode_bypass

tomcat管理登录界面

use use auxiliary/scanner/http/tomcat_mgr_login

基于http方法身份验证绕过

use auxiliary/scanner/http/tomcat_auth_login

wordpress密码爆破

use auxiliary/scanner/http/wordpress_login_enum

wmap web应用扫描器

这个工具是专门扫描wordpress的漏扫工具

telnet爆破

use auxiliary/scanner/telnet/telnet_login

端口扫描:

协议

描述

模块

ACK

通过ack扫描的方式多防火墙上位屏蔽的端口进行探测

ack防火墙扫描use auxiliary/scanner/portscan/ack

ftpbounce

通过ftpbounce攻击的原理对tcp服务进行枚举,一些新的ftp服务器软件能供很好的防御ftpbounce攻击,但是旧的Solaris及FreeBSD系统的ftp服务中,此类的工具方法还是可以被利用的

ftp端口扫描use auxiliary/scanner/portscan/ftpbounce

syn

使用发送tcp syn标志的方式探测开放端口

use auxiliary/scanner/portscan/syn

tcp

通过一次完整的tcp连接判断端口是否开放,这种扫描方式最准确,但是速度慢

use auxiliary/scanner/portscan/tcp

xmas

更隐秘的扫描方式,通过发送fin,osh,和urg标志能够躲避高级tcp标记检测器的过滤

use auxiliary/scanner/portscan/xmas

TCP端口扫描:auxiliary/scanner/portscan/tcp

扫描借宿172.16.12.11开放端口

ack防火墙扫描:auxiliary/scanner/portscan/ack

用ACK扫描会分段发送数据包扫描,才能够绕过一些防火墙设备,而不是windows防火墙!!!windows自带防火墙是阻断一切进入连接,所以windows把防火墙关闭,如果打开就会阻断连接,所以windows防火墙开启,ack是扫描不出来的。

ftp端口扫描:auxiliary/scanner/portscan/ftpbounce

syn端口扫描:auxiliary/scanner/portscan/syn

tcp端口扫描时通过syn数据包进行的,用于扫描目标机器端口上是否存在程序监听,普通个人机器某个端口如果程序监听的话,那么它就是系统漏洞,tcp是一个有连接的可靠协议,所以使用三次握手建立连接,三次握手,报文分别是syn,ack syn,ack。进行端口扫描时,首先向对方主机某一个端口发送syn报文,如果对方这个端口有程序在监听(或者说存在漏洞),则恢复syn ack报文,否则恢复rst报文,通过这个总方式可以判断是否有程序在监听,或者是否存在漏洞。

xmas端口扫描:auxiliary/scanner/portscan/xmas

常见的网络扫描服务

1、telnet服务扫描

上面返回结果,显示172.16.12.11主机开放23端口即telnet服务开放了,通过返回标签x0alogin,可以仅以看到用户名和密码

2、ssh服务扫描

3、server

捕获模块

渗透攻击模块(Exploits):

包含主流的漏洞利用脚本,可以针对某些可能存在的漏洞目标进行漏洞利用

命令规则:操作系统/各种应用协议分类

利用漏洞和传递有效载荷的模块,利用发现安全漏洞或配置弱点对远程目标系统进行攻击,植入和运行攻击载荷,获得目标系统访问控制权

比如:远程漏洞利用,本地漏洞利用,权限提升漏洞利用,客户端漏洞利用,web应用程序漏洞利用等等

后渗透攻击模块(Post):

漏洞利用成功以后获得meterpreter之后,向目标发送一些功能性指令,比如:提权等等

例如:凭证/哈希存储,本地提权,后门安装,敏感数据提取,网络流量隧道(代理),键盘记录,屏幕抓取,摄像头利用等等

攻击载荷模块(payloads):

攻击成功后在目标机器执行代码,比如返回shell代码

在利用期间执行操作的模块,攻击载荷是在渗透成功后在目标系统运行一段植入代码,是渗透攻击者打开的目标系统上的控制会话连接

比如:建立meterpreter会话,反向shell,执行命令,下载和执行程序等等

编码器模块(Encoders):

包含各种编码工具,对payload进行编码加密,绕过入侵检测和过滤系统

用于有效负载和加密模块,比如:base64,xor等等,规避防病毒或NIDS(网络入侵检测系统),EDR(断电检测和响应)等等

空指令模块(Nops):

空操作,提高payload稳定性和维持大小

evasion(躲避模块又称免杀模块):

用来生成免杀payload

用于规避防御模块,比如,防病毒,applocker绕过,软件限制策略(SRP)绕过等等

Metasploit路径

1、目录作用

data目录:存放可编辑文件,包含metasploit存储某些漏洞,图像数据,二进制文件

documentation目录:提供框架介绍文档

plugins:存放插件

lib:库文件

script:脚本文件

tools:命令行实用程序

modules:模块文件

Metasploit名词解释

POC:Proof of Conecpt,概念证明,用来证明漏洞存在的一段代码,没有攻击性

EXP:eXploit,利用,利用系统漏洞进行攻击动作,方法,方式,具有攻击性

Payload:有效载荷,指的是在Exploit执行成功后,系统进行执行代码或命令

shellcode:一段用于利用漏洞而执行的代码,为16进制的机器码,由于建立正向/反向shell得名

MSF控制台

1、MSF版本及更新

msfconsole -v:查看版本信息

sudo apt-get update:更新包列表

sudo apt-get upgrade:升级所有已安装的包

sudo apt-get dist-upgrade:自动处理依赖包的安装和删除

sudo apt-get autoremove:清理不在需要的包

sudo apt-get clean:清理本地仓库缓存

sudo apt-get install metasploit-framework:安装MSF

2、MSF基本使用

1、MSF启动

初始化msf数据库 ┌──(root㉿laozhang-kali)-[~] └─# msfdb init [+] Starting database [i] The database appears to be already configured, skipping initialization 启动msf ┌──(root㉿laozhang-kali)-[~] └─# msfconsole

msfconsole是metasploit框架用户接口(控制台),通过接口使用metasploit中的所有模块

msfconsole主要管理数据库,管理会话,配置启动模块

查看msf版本信息 ┌──(root㉿laozhang-kali)-[~] └─# msfconsole -v Framework Version: 6.4.9-dev 启动时,不显示banner信息 ┌──(root㉿laozhang-kali)-[~] └─# msfconsole -q msf6 >

查看帮助信息

当打开msfconsole后,可以看到标记了Metasploit所有的利用模块,payload,post模块等等

2、控制台命令

msf6 > banner 显示提示信息

msf6 > color 模块是否显示颜色

msf6 > show 显示功能模块

msf6 > search 搜索命令

msf6 > help search 使用帮助

msf6 > use 通过名称,条款或者索引使用模块

msf6 > info 查看模块信息

msf6 > edit [file/to/edit] 编辑脚本文件

msf6 > back 返回上一级

3、常用命令

show exploits:查看所有可用的渗透攻击程序代码

show auxiliary:查看所有可用的辅助攻击工具

show options/advanced:查看该模块可用选项

show payloads:查看模块使用的攻击载荷

show targets:查看模块使用的攻击目标类型

search xxx:根据关键字搜索xxx模块

info:查看某个模块详细信息

use xxx:使用xxx渗透模块

back:返回上一级

set/unset:设置/禁用模块某个参数

setg/unsetg:设置/禁用适用于所有模块的全局参数

exit:退出

reload:重载

save:保存

基本命令:

?:帮助菜单

search:搜索

use:使用

back:返回上一级

banner:显示一个msf的banner信息

color:颜色转换

connect:连接一个主机

exit:退出msf

info:显示详细信息

jobs:显示和管理进程

kill:杀死一个进程

quit:退出msf

load:加载一个插件

version:显示msf和控制台版本

session:查看会话,即已经建立的连接

run/exploit:相同作用,都用于执行

4、SQL相关

db_status:查看数据库状态

db_rebuild_cache:将所有模块信息缓存到数据库里面,通过数据库去检索

db_nmap:扫描主机信息,调用nmap模块

db_disconnect:断开连接

db_connect:连接指定数据库

db_import:导入

db_export:导出

db_remove:移除

db_save:保存

5、Exploit模块命令

RHOST:目标主机IP

RPORT:目标端口

Payload:有效载荷,成功会返回shell

LHOST:攻击者IP

LPORT:攻击者端口

3、MSF数据库与扫描

1、查看数据库连接

2、Workspace工作平台

1、workspace

可以查看目前工作组,扫描的结果,历史文件等等

2、查看当前工作平台

目前只有一个default的工作平台,同时也是默认工作平台

3、创建和删除一个工作平台

创建gazi工作平台,现在默认工作平台是gazi

删除gazi工作平台,默认平台变为default

重命名工作平台gazi为gazitougou

5、与数据库有关的操作

1、历史文件导入

如果之前利用扫描工具进行了扫描,可以使用db_import查看扫描结果

2、在msf中直接使用db_nmap命令调用nmap

3、扫描记录显示

在模块中使用-R可以将索引到的记录添加为目标

4、services,查看服务信息

5、CSV导出

6、Creds

用于管理数据库中目标发现和使用的凭据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值