如何实现高效免杀?小白也能轻松上手!玩的就是一个降本增效!
2023-4-18 10:42:56 Author: 一颗好韭菜(查看原文) 阅读量:36 收藏

免责声明

由于传播、利用此文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任。切勿用于未授权测试!本文主要来自日常学习记录

简介

在日常工作中低成本,高效率的制作仍然很重要。Dll-Hijack工具用于辅助白加黑免杀,当然选择其他的工具也一样。

低成本第一步(白文件的来源)

我们通过 APT 样本可以拿到样本,或者通过 卡饭论坛获取最新的样本,这样是不是减少了时间成本?但是有一个问题白样本 x64 的很少,大多都 x32。(效率+1)

低成本第二步(制作免杀)

Dll-Hijack 工具可以用于获取 DLL 的导出函数生成 GO DLL 模版亦或者 C++ DLL 模版。在使用 Go 的时候经过查询发现 Go 存在一个隐藏函数 “Init”

//在Go语言中,init函数是一个特殊的函数,它可以被定义在任何包中,且会在程序执行之前被自动调用。//init函数的定义格式如下:func init() {    // 函数体}//需要注意的是,init函数不能被显式地调用,而且没有参数和返回值。

而相对于 c++,在某种程度上可以说Go语言中的init函数和C++中的DLL_PROCESS_ATTACH事件是类似的,因为它们都在模块(在Go中可以是包,在Windows DLL中可以是模块)加载时被调用,并且可以用于执行一些初始化工作。C++ 中你也可以选择在DLLMain函数,但存在一些问题有的 DLL不会触发DLL_PROCESS_ATTACH事件

而Go init函数会在程序运行时自动被调用。(效率+1) 利用这一特性,可以定义好 DLL 的导出函数以及 Init 函数 看操作:工具使用起来也很方便

指定了样本的 DLL 后,会在当前路径下自动生成一个 DLL.txt

我们只需要粘贴到 Go 的 DLL 源码里面去即可(GitHub 版本这样的,新版本后面发上去) 整体代码

package main
import "C"import "golang.org/x/sys/windows"
//export DllCanUnloadNowfunc DllCanUnloadNow() {}
//export DllGetClassObjectfunc DllGetClassObject() {}
//export DllRegisterServerfunc DllRegisterServer() {}
//export DllUnregisterServerfunc DllUnregisterServer() {}
func init() { //定义代码区域 windows.MessageBox(0, windows.StringToUTF16Ptr("initd"), windows.StringToUTF16Ptr("init"), 0)}
func main() {}

编译后和白样本丢在一起测试看看

测试成功了,对于免杀的话代码可以搬运,毕竟它是白文件,免杀不需要大费周章。(效率+1)

总结

效率提高了,免杀嘎嘎乱杀。但其实仔细思考一下白加黑并不局限于免杀这块使用,话说到这里了,自己思考一下呗,就不说了(核心技术-1)。

工具地址:https://github.com/Arks7/Dll-Hijack


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTc5NjI4NA==&mid=2247484650&idx=1&sn=70dc8610831df7db8a8d5c1436f55f49&chksm=f9d4eb39cea3622f58f5206f205c9dcd860fc40d023732a29508dc74567ffd22220521938c53#rd
如有侵权请联系:admin#unsafe.sh