标签:基础,漏洞,搜索,payloads,模块,使用,msf,msf6 From: https://www.cnblogs.com/sinosecurity/p/16618488.html
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 #退出已经选择的当前模块