本文将讨论以下问题: (1)Windows可执行程序会从哪些目录下加载DLL. (2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE同一目录. (3)可执行程序加载了不该加载的DLL. (4)Win7,Win8下,"\Windows\System32"中的可执行程序无法加载DLL. (1) 当启动一个可执行程序时,如果该程序需要加载其他DLL,那么当DLL的路径不是完整路径时,会先从当前目录下查找,找不到会再搜索系统目录,还是找不到的话,则依次搜索环境变量path的目录.这…
最近也是学习了一下有关shellcode进程注入的操作,简单分享一下通过golang进行实现shellcode加载器的免杀思路. 杀软的查杀方式 静态查杀:查杀的方式是结合特征码,对文件的特征段如Hash.文件名.函数名.敏感字符串等进行匹配. 动态查杀:主要针对于软件运行后的行为进行查杀,杀软可能会监控内存.注册表.敏感程序以及各种API等.如果程序在运行之后进行了危险操作比如说修改了注册表,那就会杀软查杀. 当然还有云查杀.沙箱这些技术.这里主要还是总结了对于CS.MSF生成的shellco…
免杀之:Python加载shellcode免杀 目录 免杀之:Python加载shellcode免杀 1 Python 加载Shellcode免杀 使用Python可以做一些加密.混淆,但使用Python编译生成的exe文件普遍比较大 1 Python 加载Shellcode免杀 生成CS的Python类型Shellcode 将生成的Payload中"号中的内容拷贝到下面的脚本中 本地用脚本 #!/usr/bin/python import ctypes buf = b"shellco…
0x001 原理 采用分离法,即将ShellCode和加载器分离.方法较LOW但免杀. 本文主要将ShellCode转成HEX,再通过加载器执行ShellCode. PS: 何为SC加载器,即专门用于加载所提供ShellCode的工具. 如同HTTP发包工具,支持提交HTTP,写死参数最多只能叫EXP. 再详细点,打个比方,你只会炒一个菜,你敢说你是厨师吗? 0x002 ShellCode免杀 CS可生成很多种格式的ShellCode,具体该用哪一种呢? 由于部分杀软会查杀ShellCode文件…
首发先知: https://xz.aliyun.com/t/7170 自己还是想把一些shellcode免杀的技巧通过白话文.傻瓜式的文章把技巧讲清楚.希望更多和我一样web狗也能动手做到免杀的实现. 文中我将shellcode免杀技巧分为  "分离"."混淆"两个大类,通过不同技巧针对不同检测方式,也就是常听到的特征检测.行为检测.云查杀. 个人能力有限,文中出现错误还请斧正.轻喷. 0x01 那些shellcode"分离"免杀 首先来看看关于…
ShellCode免杀的骚姿势 常见的免杀手法: shellcode(攻击代码)和加载程序的分离: Lolbins白利用加载shellcode(白名单利用): shellcode混淆.编码解码: shellcode(攻击代码)和加载程序的分离 生成一个C语言的playload做测试实验: 本质上生成c的payload就是16进制的代码,这些代码插入目标主机的内存中,就能触发CS远控: 这里我们在来看下官方的定义: shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制…
Python 加密 shellcode 免杀 环境准备:   Windows7 32 位系统: Shellcode 使用 kali linux Metasploit 生成 shellcode Windows7 需要安装的软件:    Python2.7,  pip install pyinstaller pywin32-217.win32-py2.7.exe  VCForPython27.msi 制作流程:  首先查看自己的kali  ip 作为shell反弹的服务器  2. Kalilinux…
本文是Matt Pietrek在1999年9月的MSJ杂志上发表的关于Windows加载器与模块初始化方面的文章.作者深入分析了LdrpRunInitialize璕outines例程的作用,用C语言写出了此函数的伪代码,并剖析了模块初始化的整个过程,对于想了解Windows加载器的读者来说是不可多得的资料. 在最近的MSJ专栏(1999年六月)中,我讨论了COM类型库和数据库访问层,例如ActiveX荻韵螅ˋDO)和OLE DB.MSJ专栏的长期读者可能认为我已经不行了(写不出技术层次比较高…
https://www.cnblogs.com/theseventhson/p/13194646.html  分享了shellcode 的基本原理,核心思路是动态获取GetProcAddress和LoadLibrary函数地址,再通过这两个函数获取其他windows dll提供的函数地址:需要注意的是shellcode不能有全局变量和字符串,只能用局部变量和字符数组替代,这样才能在函数执行时在栈动态分配存储空间,不会和目标进程现有的空间冲突. 实战中,通过这种方式生成shellcode技术上可行…
装过多个系统,然后又删除掉了,系统启动引导时,又把以前的废弃的系统引导给带了出来,试过多种方式,以下方法是最好的. 开始->运行->cmd bcdedit /v 查看要删除的"Windows 旧 os 加载器"下边的标识符ID bcdedit /delete {xxxxxxxxxxxxx} -f…