首页 > 其他分享 >web安全之MSF学习

web安全之MSF学习

时间:2023-01-13 17:38:44浏览次数:57  
标签:web 数据库 db 学习 exploit 模块 msf MSF payload

Metasploit官网 :​​www.metasploit.com​​​

安装metasploit:
在Linux上安装需要先下载ruby(一种简单快捷的面向对象(面向对象程序设计)脚本语言)

kali自带msf不用安装,推荐使用kali
更新metasploit:

1.先运行metasploit:msfconsole
在进入msf后输入svn update
2.msfupdate

总结使用metasploit的步骤:
1.查找cve公布的漏洞
2.查找对应的exploit模块
3.配置模块参数
4.添加payload后妈
5.执行exploit

msf反弹shell后保存在后台
exploit -j
显示后台所有会话
sessions
进入会话
sessions -i ID号

将当前会话保存在后台
background

查看帮助
sessions -h
清除会话
sessions -K 清除全部会话
sessions -k ID号 清除选定会话

msf exploit:
RHOST 远程主机IP地址
LPORT 本地端口
RPORT 远程主机端口
exploit 启动
Ctrl+z 把会话放到后台
sessions 列出正在后台运行的会话
sessions -i 进入正在后台运行的会话
sessions -h 查看sessions的所有选项
一个完整的exploit过程:exploit--nop(可选)--payload

核心命令中的connect命令:
connect命令主要用于远程连接主机。一般用于内网安全,比较常用的命令就是“connect”

metasploit主要命令: (查看有关命令的详细信息+ -h)
? 帮助菜单
back 从当前环境返回(相当于Windows的返回键)
cd 切换目录(Linux上的大部分命令在msf上同样可用)
color 颜色转换(有true和Flase两个选项 分别是开和关)
connect 连接一个主机
exit 退出msf
info 显示一个或多个模块的详细信息
irb 进入ruby脚本模式
jobs 显示和管理作业(相当于Windows的任务管理器)
kill 杀死一个作业(相当于任务管理器上的关闭程序 kill+程序编号)
load 加载一个插件(msf中有很多插件 load+插件名)
unload 卸载一个模块
loadpath 在一个路径搜索并加载插件
resource 运行存储在一个文件中的命令
route 查看一个会话的路由信息
save 保存动作(操作)
search 搜索模块名和描述
set 给一个变量赋值
setg 把一个值赋给全局变量
unset 解除一个或多个变量
unsetg 解除一个或多个全局变量
show 显示所给类型的模块 或所有模块
sleep 在限定的秒数内什么也不做
use 通过名称选择一个模块
version 显示msf和控制台库版本号

-----------------------msfconsole接口-----------------------------------------


(进入msf操作)

Exploits module: (针对不同的已知漏洞的利用程序)
show exploits 输入后显示3列 分别为 exploit名称,等级(rank 代表好用程度),漏洞描述
exploit命名规则 操作系统/服务/模块名称
info 模块名 查看exploit详细信息(例如:info exploit windows/wins/ms04_045_wins)
use 模块名 选择一个exploit
show options 列出exploit设置选项(options中required选项如果是yes则是必须设定的选项)
show targets 列出所有目标类型
set option 值 如:set RHOST 192.168.0.1
set TARGET 编号 如:set TARGET 2

payloads module: (payloads也就是shellcode(利用软件漏洞而执行的代码) 就是在漏洞利用成功后所要做的事情)
show payloads 查看当前exploit可以用哪些payloads(要在exploit设置完成后)
payloads命名规则 操作系统/类型/名称 如:windows/shell/bind_tcp
payloads主要类型:
shell 得到一个shell
DLLinject 上传DLL并注入到进程
Patchup* 修补漏洞
Upexec 上传并执行一个文件
Meterpreter 高级payload
vncinject 高级payload
Passivex 高级payload、
Payloads名称命名规则:
shell_find_tag 在一个已建立的连接上创建一个shell
shell_reverse_tcp 反向连接到主机并创建一个shell
bind_tcp 监听一个tcp连接
reverse_tcp 反向建立tcp连接
reverse_http 通过HTTP隧道通信并创建一个新用户添加到管理组
add_user 创建一个新用户并添加到管理组
xxx_ipv6_tcp 基于ipv6
set PAYLOAD payload_name 设置payload(与exploit一样)
show options 与exploit一样
set RHOST 192.168.0.1 与exploit一样

注:exploit和payload设置完毕  可以对目标主机进行利用了
payloads需要被编码并且变化nop用于躲避IDS或IPS检测 通常nop在payloads前面

----------------------------msfcli接口-----------------------------


(直接在终端运行 不需要进入msf 可理解为msfconsole的快捷方式)
说明:
msfcli接口允许用户从命令行直接执行利用 而不需要先启动msfconsole 适合迅速发动exploit

msfcli -h 查看帮助
S 显示模块信息
P 显示可用payloads
O 显示所有选项
T 列出目标
E 执行利用

例如:
msfcli <exploit_name> S
msfcli <exploit_name> P
msfcli <exploit_name> PAYLOAD=<payload_name> O
msfcli <exploit_name> PAYLOAD=<payload_name> option=value T
msfcli <exploit_name> PAYLOAD=<payload_name> option=value target=number E

------------------------------msfweb接口--------------------------


(msf的网页版)
说明:直接输入msfweb 给出一个msf网页版网址 进入浏览器输入网址就进入了msfweb

网页版模块:
exploits 利用模块 提供搜索功能
auxiliarys 辅助程序模块
payloads payloads模块
console 基于web的控制台 相当于msfconsole
sessions 会话模块 当前的会话信息
options 风格设定
about msfweb版本信息

-------------------------------msfd命令接口-----------------------


msfd工具打开一个网络接口到msfconsole,他可以被指定的IP地址执行,并且监听端口等待进入
的连接,允许一个或多个用户从远程系统连接进msf。

实例:
如下命令将执行msfd监听IP 192.168.0.14和端口55554
msfd -a 192.168.0.14 -p 55554
这时可以从远程系统连接进去,比如Windows系统用NC
nc 192.168.0.14 55554

------------------------msfpayload和msfencode-------------------


msfpayload: (使用户可以在命令行修改现有的payload 需要选定一个特定payload)
-h 列出可用选项
S 显示具体payload的信息
C 输出c程序的格式
P 输出Perl脚本的格式
R 输出Raw格式
CMD 创建在成功利用后要执行的特定命令
实例:(以设置一个dir命令并输出Perl脚本为例)
msfpayload windows/exec(payload名称) CMD=dir P
msfencode: (一个可以直接访问payload编码器的框架)
-l 列出可用编码器
-h 列出可选项

注:用msfpayload是生成raw格式payload的一个简单方法,并可以通过管道输出,直接传递给msfencode
或从文件中读取他,编码确保不良字符不会出现在payload,最终也改进了躲避IDS的能力。

--------------------------数据库后台命令---------------------------


(msf可以支持多种不同的数据库,包括MySQL等,用于探测目标的漏洞和自动利用,并且支持加载amap
,nmap或Nessus扫描报告后,根据目标系统开放端口和可能存在的漏洞进行自动尝试利用)

以下命令均可输入help查看

数据库命令:
db_connect 连接到数据库
db_create 创建数据库
db_destroy 删除数据库
db_disconnect 与数据库断开连接
db_driver 数据库类型
db_add_host 添加一个或多个主机到数据库
db_add_note 添加一个注释到主机
db_add_port 添加一个端口到主机
db_del_host 从数据库删除一个或多个主机
db_del_port 从数据库删除一个端口
db_hosts 列出数据库所有主机
db_nmap 执行Nmap并记录输出 (例如db_nmap -A 192.168.1.15)
db_notes 列出数据库中所有注释
db_services 列出数据库中所有服务
db_vulns 列出数据库中的所有漏洞
db_workspace 转换数据库工作区
db_import_ip_list 引入一个IP列表文件
db_import_nessus_xml 引入一个nessus扫描结果文件
db_import_nmap_xml 引入一个nmap扫描结果文件(-oX)

--------------------------autopwn命令---------------------


(相当于msf exploit的自动操作)
db_autopwn 【选项】:
-h 显示帮助
-t 显示所有匹配的利用模块
-x 选择基于漏洞的模块
-p 选择基于开放端口的模块
-e 运行所有匹配目标的利用程序
-r 用一个反向连接的shell(reverse)
-b 用一个随机端口的绑定shell(bind)
-q 禁用利用程序输出
-l(范围) 只对此范围内的主机进行利用
-X(范围)永远排除此范围内的主机
-PI(范围)只对开放这些的端口的主机进行利用
-PX(范围)永远排除对开放这些端口的主机
-m(范围)只运行名字与正则表达式匹配的模块

-------------------------meterpreter payload--------------------


(meterpreter真正的妙处在于他可以把自身注入到远程系统的漏洞进程,这样可以避免Antivirus检查和取证)

核心命令:
? 帮助菜单
background 当前会话抛到后台
channel 显示动态频道的信息
close 关闭一个频道
exit 终止meterpreter会话
interact 频道交互
irb IRB脚本模式
migrate 转移meterpreter到其他进程
read 从频道读取数据
run 执行一个meterpreter脚本
use 加载一个或多个扩展
write 向频道写数据

文件系统命令:
(与Linux相同)
cat
cd
del
download 下载一个文件或目录
edit 编辑一个文件
。。。。

系统命令:
clearev 清除事件日志
execute 执行一个命令
getpid 取得当前进程ID
getuid 取得服务器运行用户
kill 杀死一个进程
ps 列出进程列表
reboot 重启远程计算机
reg 修改远程注册表
shell 返回一个cmdshell
shutdown 关闭远程系统
sysinfo 取得远程系统的信息

密码数据库命令:
hashdump 获得账号密码

meterpreter命令详细参考:​​http://www.mo60.cn/post-49.html​

标签:web,数据库,db,学习,exploit,模块,msf,MSF,payload
From: https://blog.51cto.com/u_15941183/6006331

相关文章

  • SpringMVC轻松学习-环境搭建(二)
    基于spring2.5的采用XML配置的springMVC项目注:本项目全部基于XML配置。同时,集成了hibernate。采用的是:springMVC+hibernate+spring的开发架构。1.      建立web项......
  • SpringMVC轻松学习-注解的使用(三)
    我们采用sprngMVC开发项目时,通常都会采用注解的方式,这样可以大大提高我们的开发效率。实现零配置。下面我们从零开始重新做一个springMVC的配置。这个项目完全采用注解的......
  • 算法学习笔记(2): 逆元及其应用
    #逆元[TOC]##定义逆元素,是指一个可以取消另一给定元素运算的元素具体来说,对于实际的一些应用,如:当我们想要求`(11/3)%10`时 明显可以看出,是没有办法直接算的,这时就......
  • angular学习-入门基础
    angular所有用到的库,全部用的CDN:运行下面代码<scriptsrc="http://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script><scriptsrc="http://cdn.bootcss.com/an......
  • 经典机器学习算法总结
    一,KNN算法1.1,k值的选取1.2,KNN算法思路二,支持向量机算法2.1,支持向量机简述2.2,SVM基本型2.3,对偶问题求解三,K-means聚类算法3.1,分类与聚类算法3.2,K-mea......
  • Alan的Docker容器学习笔记
    (本文的内容主要来源于Google、百科和学过的一些专栏,目前没有实际的企业级应用容器化部署经验,写的比较浅薄见笑了)为什么会接触到Docker运维同学使用k8s将业务迁移上云时遇到......
  • Python函数的学习总结
    (Python进阶11-函数)1函数的创建和调用1.1函数创建创建函数即定义函数使用关键字def实现语法:deffname([pname]): ["comm"] [fuc]说明:def:定义函数的,固定......
  • cs231n学习笔记——Lecture7 Training Neural Networks
    该博客主要用于个人学习记录,部分内容参考自:CS231n笔记七:训练神经网络3(优化方法)、局部最小值(localminima)和鞍点(saddlepoint)一、更好地优化FancierOptimization1......
  • JavaScript学习笔记—循环
    JS三种循环语句while语句do-while语句for语句通常编写一个循环,需要有三个条件:(1)初始化表达式(2)条件表达式(3)更新表达式1.while循环语法while(condition){......
  • cs231n学习笔记——Lecture11 Detection and Segmentation
    该博客主要用于个人学习记录,部分内容参考自:CS231n笔记九:图像目标检测和图像分割、2017CS231n笔记_S11分割,定位,检测一、语义分割SemanticSegmentation目标:输入图像,并对......