
免杀
文章平均质量分 64
番茄酱料
耐心沉淀,努力向前
展开
-
c#加载shellcode
两个方法,命名空间注意和项目一致,一个loader类,一个Main类,Main调用loader类中的test方法。得到a.txt文件改名为config.txt(这里改名不改名都可以,因为后面资源文件名字改掉就好)是匹配的才可以,所以结合之前的config(资源名字)匹配就可以资源加载了。这里项目需要通过添加资源文件,因为是从资源文件中读取的shellcode。新建完之后先修改名称为之前代码中的config,也就是和下面这块。添加进来即可,这里命名空间都是对的都是项目的命名空间。原创 2024-11-15 18:08:08 · 799 阅读 · 0 评论 -
父进程隐藏——ConsoleApplication903项目
代码主要实现部分为上面红框内,伪造父进程最重要的一个 api 就是 InitializeProcThreadAttributeList,另外还有个重要的结构体 STARTUPINFOEXA。父进程伪造细节——https://www.wangan.com/p/7fygfy13b72f6be2。首先我发现用calc来做进程隐藏实验是失败的,父进程一直都是svhost.exe。以上我们是直接获得的pid,那么我们将他修改成通过进程名去获得对应pid。那么我用我自己生成的cs木马beacon903.exe试试。原创 2023-11-29 00:51:25 · 322 阅读 · 0 评论 -
寻找Windows API 原始字节(x64dbg)
首先我们将我们的木马移入x64dbg。原创 2023-10-22 02:32:39 · 503 阅读 · 0 评论 -
c++踩坑点,类型转换
const char *” 类型的实参与 “WCHAR *” 类型的形参不兼容。但是在我们这里不适用,因为加了类型转换后,找不到相应pid了。std::string转换到PVOID的方式如下。那么我们修改方法传参为万能的LPCWSTR。原创 2023-10-22 02:04:59 · 437 阅读 · 0 评论 -
修改ConsoleApplication17_2项目实现oss上线
这段代码在ConsoleApplication17_2的基础上进行更改,请求方式从之前的ip和端口和文件名改成了一个url实现。可以看到能成功上线但是有个问题就是占用cpu大小为9%左右,这里我用的是腾讯云oss实现的,用阿里云oss实现也是9%左右。首先创建号oss,上传文件,复制临时链接。我再次进行url的aes加密。原创 2023-10-22 01:54:42 · 282 阅读 · 0 评论 -
syscall函数(调用底层,非windowsAPI)去执行shellcode
首先使用github提供的项目https://github.com/klezVirus/SysWhispers3。ConsoleApplication3.c:(该payload是弹出计算器,还需要后续去改成上线cs)因为syscall特征非常明显,静态特征就很容易被识别到。syscalls_mem.h也是需要编译的,也是默认的。其他三个都是自动生成的,位置放好相应路径即可。因为这个文件要生成,所以不需要做下面的改动。然后我放到360杀毒中,会报毒。应该是检测到了syscall。可以看到成功弹出计算器。原创 2023-08-30 00:58:51 · 565 阅读 · 0 评论 -
DLL加载器-远程线程注入(常规dll注入)
注入思路先获取到LoadLibrary的函数地址,之后使用CreateRemoteThread加载这段地址即可简单例子:D:\VS项目\Dll3\x64\Debug\Dll3.dllkernel.dll加载的地址在所有进程都是一样的https://zhuanlan.zhihu.com/p/599915628?utm_id=0DLL进程注入dll注入器生成dll-2-1.exe这里注入的exe是notepad++,找到其进程,注入的dll是我cs生成的beacon.dll主要思路是:原创 2023-08-30 00:52:02 · 1970 阅读 · 0 评论 -
自实现getprocaddress(名称查找或者序号查找)
那么这里来总结下,总共四步骤1.导出表2.导出函数名称表3.导出函数名称序号表4.导出函数地址表/*WINBASEAPI //导出不需要使用,那么我们注释掉*/FARPROCWINAPI//NT头//导出表项,获得RVA RVA并不是真正的导出表项需要转VA,转VA需要加上image_base(也就是加载地址)//导出表//这个才是真正的VA,真正的导出表项,因为RVA在内存中是没有的*///导出函数名称表//导出函数名称序号表//导出函数地址表。原创 2023-08-29 01:09:07 · 1036 阅读 · 1 评论 -
ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)
纤程Fiber的概念:纤程是比线程的更小的一个运行单位。但是纤程是通过用户模式的代码来实现的,是程序员自己写的算法,内核不知道纤程的实现方式,而是你自己定义的调度算法,因此纤程是“非抢占”的调度方式。手法是在ConsoleApplication15项目上改动的,之前项目是VEH Hook Load加载的方式,在此加载方式上修改由线程变成纤程Fiber。Fiber是纤程免杀,VEH是异常报错,hook使用detours来hook VirtualAlloc和sleep,通过异常报错调用实现主动hook。原创 2023-08-28 21:29:45 · 1010 阅读 · 0 评论 -
ConsoleApplication815项目(直接加载+VEH Hook Load)
上线图ConsoleApplication815.cpp#include <iostream>#include<Windows.h>#include "detours.h"#include "detver.h"#pragma comment(lib,"detours.lib")#pragma warning(disable:4996)LPVOID Beacon_address;SIZE_T Beacon_data_len;DWORD Beacon_Mem原创 2023-08-28 18:08:46 · 1548 阅读 · 0 评论 -
AES+base64+远程加载----ConsoleApplication811项目免杀
我们接下来写文件内容加密和解密,因为是二进制文件,那么第一步先给他在服务端base64加密了,然后再木马中再进行解密,我们先来把他用base64打印出来,发现控制台看不到,那么我们写到一个文件看看。到这里我们的url达到了一个方式,就是AES下载beacon811.bin文件成功,既然请求地址成功AES+base64编码解码且成功下载了了,那么这一功能完成了,但是到这里我发现我傻了,这样和base64根本没有关系,因为我调用的exec指针执行,还是之前内存中的东西,而不是base64编码后的进入内存,原创 2023-08-28 17:51:56 · 286 阅读 · 0 评论 -
调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件
【代码】调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件。原创 2023-08-28 17:33:47 · 807 阅读 · 0 评论 -
反射注入dll-修改实现免杀过360
getAdvapi32()函数也是LoadLibrary(“advapi32.dll”)的变形,和getKernel32作用一样,只不过是函数所在的dll不同,写成汇编形式避免检测,但是使用getAdvapi32()生成会无法注入(具体原因不清除,之后再研究吧),那么我这里注释掉,仅仅用了getKernel32函数。获得的pCFA就是原始的CreateFileA函数了,只不过被我们定义成了自己的,这样就会规避检测了,那么剩下的三处也是同样方法修改,具体参考上面给的代码。原创 2023-07-05 22:53:52 · 1326 阅读 · 1 评论