首页 > 其他分享 >msf基础

msf基础

时间:2022-08-24 07:22:06浏览次数:59  
标签:基础 漏洞 搜索 payloads 模块 使用 msf msf6


msf中的模块:
exploits,auxiliary,post,payloads,encoders,nops,evasion

exploits:漏洞渗透模块。绝大多数人在发现漏洞之后,往往不知道接下来如何利用这个漏洞。漏洞模块本身就是解决这个文件的,每个模块对应一个漏洞,在发现目标的漏洞之后,无需知道漏洞是如何参生的,甚至无需掌握编程技术,只需要知道漏洞的名字,然后执行对应的漏洞模块,就可以实现对目标的渗透。
此模块是针对特定漏洞编写的
auxiliary:辅助模块,用于信息收集,包括一些信息侦查,网络扫描的工具。

post:后渗透攻击模块,当我们成功取得目标的控制权之后,就是这类模块大显身手的时候了,可以帮我们提供控制权限,获取敏感信息,进行跳板攻击。

payloads:攻击载荷模块,可以理解为被控端模块。它可以帮我们在目标上完成远程控制操作,通常这些模块可以单独执行,也可以和exploits模块一同使用

encoders:编码工具模块,负责免杀,防止被杀毒应用程序,防火墙,IDS,等类似的安全应用检测出来

nops:空指令模块,为了在执行过程中出现随机地址或返回地址错误,可以添加一些空指令。

evasion:反杀软模块,通过此模块可以轻松的创建反杀毒应用程序的被控端程序。


exploits和payloads:
漏洞模块是针对特定的漏洞编写的,而攻击载荷则是为了实现我们的目标(例如远程控制目标)而编写的。
在一次渗透过程中,我们发现目标,就需要使用渗透模块,该模块可以讲payloads(攻击载荷)传输到目标并执行


payloads可以分为3种:
1,single:独立型,这种攻击载荷可以直接传输到目标上执行
2,stagers:传输型,这种攻击载荷通常比较小,主要用来建立攻击者和目标系统的连接通道,之后可以利用该通道传输stages类型的攻击载荷。stagers类型攻击载荷分为reversn(反向)和bind正向。
3,stages:传输体,这种攻击可以用来实现对目标的控制,比如常见的shell和meterpreter都属于这两种类型。

在使用payloads的时候,我们通常会选择stagers类型的,因为比较小,不容器被发现。之后通过stagers建立的通道传输stages类型的payload

编码工具模块:
编码工具模块主要用来实现对攻击载荷进行编码,生成一个新的二进制文件,进行这个文件后,msf编码器会将原始程序解码到内存中并运行。这样就可以在不影响程序运行的前提下绕过目标系统的检查机制(主要是杀毒应用程序)
msf6 > show encoders

最优秀的是x86\shikata_ga_nai,它是一种多态性编码,也就是说每一次使用86\shikata_ga_nai后得到的结果都是不同的,所有杀毒软件很难根据特征进行查杀。
而且我们可以使用86\shikata_ga_nai编码多次,这样就更难被查杀,但是也可能导致程序无法运行。


msf的搜索命令:msf6 > search name:ftp
msf6 > search -h
search命令可以和grep命令进行结合使用,进行结果的过滤
aka:使用别名搜索模块
author:使用作者名搜索
arch:使用架构搜索模块
bid:使用bugtraq ID进行扫描
cve:使用cve ID进行搜索
edb:使用exploit-db ID搜索模块
check:查找支持‘check'方法的模块
data:使用日期进行搜索
description:使用描述信息进行搜索
fullname:使用全名进行搜索
mod_time:使用修改日期进行搜索
name:使用名称搜索
path:使用路径进行搜索
platform:使用运行平台进行搜索
port:使用端口进行搜索
rank:使用漏洞等紧进行搜索
ref:使用编码进行搜索
reference:使用参考消息进行搜索
target:使用目标搜索模块
type:使用类型搜索模块


一个特殊情况是模块不能正常运行,我们可以使用edit命令进行修改:
msf6 > use exploit/windows/smb/ms08_067_netapi
msf6 exploit(windows/smb/ms08_067_netapi) > edit
使用 :wq! 退出编辑

msf6 exploit(windows/smb/ms08_067_netapi) > back #退出已经选择的当前模块

标签:基础,漏洞,搜索,payloads,模块,使用,msf,msf6
From: https://www.cnblogs.com/sinosecurity/p/16618488.html

相关文章

  • 网络基础
    目录协议分层与网络模型应用层传输层网络层数据链路层协议分层与网络模型七层网络模型,即开放式系统互联模型(OpenSystemInterconnectionModel,缩写:OSI;简称为OSI......
  • JS基础:数组、函数、对象
    字符串要用英文双引号括起来。字符串与其他类型数据之间用加号+连接起来//--------------------------------------------------------JS中定义声明变量是用关键字var,J......
  • koa基础框架
    constkoa=require('koa')//引入koa构造函数constapp=newkoa()//创建实例constrouter=require('koa-router')()//引入并执行koa-routerconststatic=req......
  • Spark基础入门(01)—RDD
    1,基本概念RDD(ResilientDistributedDataset):弹性分布式数据集它是Spark中最基本的数据抽象,是编写Spark程序的基础。简单的来讲,一个Spark程序可以概括为:<输入>=>[转......
  • k8s-Pod基础
    制作镜像第一个pod搭建Harbor仓库重启策略启动命令pod基本命令设置环境变量数据持久化和共享-hostPath数据持久化和共享-emptyDirJSON格式编写pod文件ConfigMap......
  • java基础知识
    1.数据类型 1.18种基本的数据类型: boolean、byte、short、int、long、float、double、char、简单类型booleanbytecharshortIntlongfloatdoublevoid二......
  • 计算机网络基础
    计算机网络基础计算机网络的定义和功能计算机网络是利用通信设备和线路,将分布在地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件(网络通信协议及......
  • 【Java基础】数组中的异常:下标越界和空指针异常
    编译时都不会报错。1.数组下标越界java.lang.ArrayIndexOutOfBoundsException//下标越界int[]arr=newint[]{1,2,3,4,5};for(inti=0;......
  • 【Java基础】操作数组的工具类Arrays
    1.常用方法方法描述booleanequals(int[]a,int[]b)判断两个数组是否相等,顺序不一样也返回falseStringtoString(int[]a)输出数组信息voidfill(int[]......
  • 【Java基础】数组中的常见算法:二分查找算法
    1.实现二分查找算法要求数组必须是有序的。把中间的值和要查询的值进行比较,相等则返回索引下标arr[middle]>number,则让尾索引等于middle-1,arr[middle]<number,则让开始......