作者归档:admin

pfSense目录遍历漏洞分析

pfSense是一个基于FreeBSD,专为防火墙和路由器功能定制的开源版本。

在本文中,我们将向大家介绍在pfSense的2.1.3以及更低版本中的CVE-2014-4690漏洞;对于更高的版本来说,pfSense已经修复了这个漏洞。

0×01 pkg_mgr_install.php脚本中的LFI漏洞

首先,让我们来看一下来自/usr/local/www/pkg_mgr_install.php脚本中的一段代码:

   if ($_GET) {    $pkgname = str_replace(array(", ">", ";", "&", "'", '"'), "",    htmlspecialchars_decode($_GET['pkg'], ENT_QUOTES |  NT_HTML401));    switch($_GET['mode']) {    case 'showlog':    if (strpos($pkgname, ".")) {    update_output_window(gettext("Something is wrong on the  equest."));    } else if (file_exists("/tmp/pkg_mgr_{$pkgname}.log"))  pdate_output_window(@file_get_contents("/tmp/pkg_mgr_{$pkgname}.log"));    else    update_output_window(gettext("Log was not retrievable."));    break;    case 'installedinfo':    if (file_exists("/tmp/{$pkgname}.info")) {    $status = @file_get_contents("/tmp/{$pkgname}.info");    update_status("{$pkgname} " . gettext("installation completed."));    update_output_window($status);    } else    update_output_window(sprintf(gettext("Could not find %s."),  pkgname));    break;    default:    break;    }    }

你可能已经注意到了,上面的代码需要接收两个GET参数,即mode和pkg。首先,参数mode在接收后会传递给switch语句,其中支持的参数值为showlog或installedinfo。第二个参数是pkg,它在接收后会被读入到变量pkgname中,并会除掉输入字符串中的、;、&、'、"六种字符。

由于执行替换的语句并没有对特殊字符.和/进行检查,这就给攻击者留下了遍历服务器中各个目录的机会。从上述代码中还可以看到,参数pkg的值竟然与/tmp/{$pkgname}.info串联了起来,这也是非常不安全的做法。因为,如果我们利用参数pkg传递的值为../usr/local/info/gettext的话,那么代码读取到的完整路径就会是/tmp/../usr/local/info/gettex.info,而这是磁盘上已有的一个文件。好了,让我们看看如下所示的一个请求。

图1  利用GET参数pkg进行目录遍历

需要注意的是,这个文件的开头部分“This is a gettext.info”被放入到了web页面的输出中了,具体如下图所示。

图2  一个展示请求的文件的响应

继续阅读

中国电信某系统sql注入漏洞

http://118.123.221.76:7001/report/Gxqgl_jsl?orgType=sgs&org_id=762

http://118.123.221.76:7001/report/Gzqjsl?orgType=sgs&org_id=762

http://118.123.221.76:7001/report/Pfwjh_cuseng?orgType=sgs&org_id=762

http://118.123.221.76:7001/report/Pgzls?orgType=sgs&org_id=762

http://118.123.221.76:7001/report/Pgzxx?orgType=sgs&org_id=762

存在注入

跑了下,数据太多,没怎么跑了

继续阅读

一次针对Sogou某服务器的安全测试(getshell+简单内部探测)

之前端午的时候SGSRC送了粽子 感觉泪流满面 于是这几天打算对Sogou进行一次渗透测试, 虽然成功漫游内网 但是蛋疼的环境和后来被发现了 所以就不继续了:( [我SGSRC的号忘记了 23333]

一开始发现了一个sogou的bbs http://mt.sogou.com/bbs/ 虽然没有弱口令啥的 但是有IIS7的解析漏洞 在前台上传了一张图片 然后成功拿下

继续阅读

反向Shell与Windows多媒体中心远程执行漏洞(CVE-2015-2509)利用

在本文中,我们会简单介绍反向shell和Windows Media Center 漏洞(CVE-2015-2509)漏洞,最后详细介绍该漏洞的方法。

0×01 反向shell

所谓shell,大家并不陌生,无非就是一个命令行接口罢了。如果把它按平台分类的话,基本上大体可以分为两大类:针对web级别的和针对系统级别的。此外,按照连接方式,分为主动连接和被动连接,主动连接是Bind Shell,被动连接是Reverse Shell,也就是本文所说的反向shell,具体如后文所示。

下面我们来说说主动连接和被动连接的区别。Bind Shell是用户用BSAH,将shell绑定到一个本地端口上,这样任何人都可以在本地网络中发送命令。反向shell的工作方式是远程计算机将自己的shell发送给特定的用户,而不是将shell绑定到一个端口上。当远程机器处在防火墙等其它东西后面时,反向shell这种技术会变得非常有用。

许多时候,攻击者入侵了一台服务器后,他们会设置一个反向shell,将来他们就能通过这个shell轻松的访问这台远程计算机了,通俗的说,就是留了一个后门。

0×02 CVE-2015-2509漏洞

该漏洞是在 Windows Media Center 中发现的,下面是引自微软公司对该漏洞的介绍:

· 如果 Windows Media Center 打开经特殊设计的引用恶意代码的Media Center link (.mcl)文件,此漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以获得与当前用户相同的用户权限。与拥有管理用户权限的客户相比,帐户被配置为拥有较少系统用户权限的客户受到的影响更小。

· 如果 Windows Media Center 打开引用了恶意代码的经特殊设计的Media Center 链接 (.mcl)文件,则此漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以获得与当前用户相同的用户权限。那些帐户被配置为拥有较少用户权限的用户比具有管理用户权限的用户受到的影响要小。

· 要利用此漏洞,攻击者必须诱使用户在本地计算机上安装 .mcl 文件。然后,可能从受攻击者控制的位置执行 .mcl 文件引用的恶意代码。此安全更新通过更正处理 Media Center 链接文件的方式来修复该漏洞。

好了,下面开始我们介绍该漏洞的具体利用方法。

0×03 搭建漏洞利用环境

下面是本文所要用到的一些必要工具:

• Virtualbox

• Kali Linux,运行于Virtualbox之中

• Windows 7系统,运行于Virtualbox之中

需要注意的是,在连接Kali 和Windows 7的时候,连接方式应该选择“Host Only Adapter”。
0×04 测试漏洞

若想测试该漏洞的话,只需要在Windows系统上打开记事本程序,然后输入下列内容:
 run=”c: windows system32 calc.exe”>

然后,保存文件,注意,扩展名应该选择.mcl,也就是说类型为Media Center link (.mcl)文件。
 

图1:新建名为calc.mcl的文件

对于像作者这样的懒人来说,还有一个更省劲的方法,就是到exploit-db下载一个相应的Python脚本,然后运行它就能得到这个POC文件了。好了,下面我们聊一聊具体步骤。

这个Python脚本的下载地址为:https://www.exploit-db.com/exploits/38151/

如果运行这个文件的话,就会生成一个名为Music.mcl的文件,不过其内容跟我们前面用记事本创建的文件是一样一样的。
 

图2:利用python脚本创建Music.mcl文件

好了,现在我们来运行这个文件,马上会弹出一个计算器,具体如下图所示。
 

图3:运行calc.mcl

0×05 弹出shell

下面,我们介绍如何利用这个漏洞。根据微软的说法,要利用此漏洞,攻击者必须诱使用户在本地计算机上安装 .mcl 文件。然后,可能从受攻击者控制的位置执行 .mcl 文件引用的恶意代码。

这是成功利用这个漏洞所需的具体步骤:

1. 攻击者必须创建一个恶意的可执行文件;

2. 这个文件必须能够通过UNC路径供恶意mcl文件下载;

3. 创建一个恶意的.mcl文件,然后将其发送给受害者;

4. 建立一个侦听程序;

5. 当受害者打开这个.mcl文件时,我们就会得到一个shell。

因此,首先要做的就是在我们的机器上创建一个恶意文件,并且使其能够通过UNC路径访问,这样的话,我们的恶意mcl文件才能下载它,并且在它被执行时返回一个反向shell。

需要注意的是,为了创建返回反向shell的恶意可执行文件,我们可以使用msfvenom的“windows/shell_reverse_tcp”有效荷载,它会侦听443端口。

此外,我还在自己的机器上(用来发动攻击的那台)创建了一个SMB共享文件。

下面展示的是将要传递给受害者的exploit.mcl文件的最终版本。
 

我们需要设法将这个exploit.mcl投送到被害者手里,并想办法让他打开这个文件。

配置Netcat使其侦听443端口,因为我们的有效荷载使用的就是这个端口。

图4:令Netcat侦听443端口

完成上述工作后,打开exploit.mcl文件,如下图所示。

图5:运行exploit.mcl文件

这样的话,就会在我们的Windows系统上得到一个反向shell,如下图所示。

图6:得到的反向shell

我们得到的shell所具备的权限,完全等同于该登录用户所具备的权限,就本例而言,为Administrator权限。

除了Netcat之外,我们还可以使用任何其他侦听程序,这就要看你们自己的喜好了。如果你喜欢Metasploit的话,则需要按下列步骤进行操作。

图7:利用Metasploit侦听程序收到的反向shell

如果你不喜欢Netcat的明文通信方式,那么可以选择使用ncat。

图8:使用ncat侦听程序收到的反向shell

为了将上述整个过程全部自动化,Metasploit专门为此提供了一个模块,其下载地址如下所示:
https://www.exploit-db.com/exploits/38195/http://www.rapid7.com/db/modules/exploit/windows/fileformat/ms15_100_mcl_exe

反向shell和CVE-2015-2509漏洞利用

0×00 导言  

在本文中,我们会简单介绍反向shell和CVE-2015-2509漏洞,最后详细介绍该漏洞的方法。

0×01 反向shell

所谓shell,大家并不陌生,无非就是一个命令行接口罢了。如果把它按平台分类的话,基本上大体可以分为两大类:针对web级别的和针对系统级别的。此外,按照连接方式,分为主动连接和被动连接,主动连接是Bind Shell,被动连接是Reverse Shell,也就是本文所说的反向shell,具体如后文所示。

下面我们来说说主动连接和被动连接的区别。Bind Shell是用户用BSAH,将shell绑定到一个本地端口上,这样任何人都可以在本地网络中发送命令。反向shell的工作方式是远程计算机将自己的shell发送给特定的用户,而不是将shell绑定到一个端口上。当远程机器处在防火墙等其它东西后面时,反向shell这种技术会变得非常有用。

继续阅读

Django 安全配置(setting.py)详解

1. 必须配置:0×01. PASSWORD_HASHER

这个配置是在使用 Django 自带的密码加密函数的时候会使用的加密算法的列表.默认如下:

  PASSWORD_HASHERS = (      'django.contrib.auth.hashers.PBKDF2PasswordHasher',      'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',      'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',      'django.contrib.auth.hashers.BCryptPasswordHasher',      'django.contrib.auth.hashers.SHA1PasswordHasher',      'django.contrib.auth.hashers.MD5PasswordHasher',      'django.contrib.auth.hashers.CryptPasswordHasher',  )

默认使用第一个条目的加密算法,即 PBKDF2 算法.

继续阅读