Fuzzing random programs without execve()原作者:lcamtuf
原文:https://lcamtuf.blogspot.com/2014/10/fuzzing-binaries-without-execve.html
对数据分析库进行fuzz的最常用方法就是找到一个能运行可疑函数的简单的二进制文件,并且让其保持一遍又一遍的运行————当然,每次运行过程中输入的随机变量都略有不同。在这样一种设置下,对库中明显的内存污染漏洞的检测就会很简单,像在子进程中使用waitpid()并核实其是否因为SIGSEGV,SIGABRT或其它相似的信号量而消亡。
安全研究员喜欢上述方案的原因有两个。首先,它不需要对文档深入研究,了解底层库提供的API,就能够以一个更加直观的方式编写自定义的代码对解析器进行压力测试。其次,它使得fuzz流程变得可重复并且具有鲁棒性:程序运行在一个分离的进程中并以每个输入文件重新开始,因此不必担心库中的随机内存损坏错误会破坏模糊测试器本身的状态,或是对随后测试工具的运行产生奇怪的副作用。
不幸的是,上述方案也会产生一个问题:对特别对简 ...
yara引擎调研规则通用性问题使用CS4.0生成如下的payload,其中powershell脚本10个,pe后门12个,dll文件2个,共计24个样本:
且这些样本的md5值均不一样,也就是所采用原始的拉黑md5方法是不可行的:
使用开源的CS yara规则(GitHub - chronicle/GCTI)对其进行扫描,可以看到所有的样本均检出了,且有一个样本被重复检出两次(beacon_server64.exe),最终的检出率为:100%=24/24:
静态的文本类特征在这种非混淆对抗的情况下通用性还是很高的,且是可以摆脱拉黑md5这种策略的局限性的。
如何内嵌到相应的产品引擎中基于yara官方的文档,可以有两种内嵌的方法:
直接通过命令行调用编译好的yara引擎;
使用yara C api来调用yara相关的api来进行病毒扫描;
这两种方法在调用上是一样的,因为官方给的编译的yara引擎也是基于yara C api实现的:
这里使用的样本案例和yara样例:
test.txt内容:
1111
test.yar内容:
12345678rule test{ ...
Merleau-Ponty AND The Crisis In Marxism(Foreword)Few people in English-speaking countries notice Merleau-Ponty’s political philosophy, which is especially surprising as many works have been devoted to his phenomenology and his contributions to theories of perception and language.
The writer limited himself to the central problem that Merleau-Ponty tried to resolve, the realization of the potentially universal class, the proletariat. The writer will show that the problem origins from Hegel’s phil ...
导论——概述存在意义的问题存在问题的必要性、结构和优先地位突出地重提存在问题的必要性我们的时代对“形而上学”(ontologia:研究存在的学问)问题遗忘已久:当它作为实际探索的专门课题就无人问津了。
根据希腊人对存在的最初阐释,使得对存在意义的追问变得多余了(这里应该指的是亚里士多德对实体的解释),存在变成了“大家都懂,懂得都懂”的东西。
以存在的范畴的意义(亚里士多德的范畴是存在不可定义的源泉)的充分性和适当性来重新澄清这些对存在的成见,分为了三个方面:
“存在”是“最普遍的”概念
人通过存在者去把握“存在”,这是有问题的。存在是超乎一切族类上的普遍性,用属加种差来界定存在的意义就是不对的。存在是最清楚的概念,不是说不需要讨论其概念,而是因为存在的意义超越范畴定义,具有类比的统一性。存在概念是最晦暗的概念。
“存在”这个概念是不可定义的
既然思维中定义存在物的方式都是范畴,而存在不在范畴,那么存在当然不能由属加种差的方式去定义——这里的结论就是存在不是类似存在物的东西。
“存在”是自明的概念
一切语言的描述中都有“存在”(being:是),这种说法无需深究,懂得都懂。 ...
研读文献————一种基于PE文件的信息隐藏方法的研究与实现(信息隐藏相关)研究原因目前在信息隐藏方面研究最深入成果最丰富的是基于图像的信息隐藏技术而对文本图形动画视频等其他多媒体中的信息隐藏技术研究得还比较少。PE文件是当前最常见的文件之一,使用范围非常广泛因而研究基于Windows下PE文件的信息隐藏有很大的实际意义。
PE文件结构解析在一个操作系统中,可执行代码在装入内存前是以文件的方式存储在磁盘上,而在装入内存时需要被程序装载器识别才能正常执行因而需要可执行文件满足特定的格式。在Windows NT6.X系列操作系统中,纯32位操作系统使用PE格式(Portable Executable File Format)。
在Windows系统中EXE和DLL都是PE文件两者惟一的区别是用一个字段来标识。另外在64位的Windows中. PE文件中的数据字段只是简单的扩展到64位与32位系统相比没有新的结构。论文主要讨论32位PE可执行文件。
PE文件格式把可执行文件分成若干个数据节(section),不同的资源被存放在不同的节中。一个典型的PE 文件中包含的节如下:
.text 由 ...
一些词语aventure——奇遇
avenir——未来
导言现象的观念近代思想把存在还原为一系列显露存在物的显象:这里应该还是从认识论的角度理解的,由黑格尔开始的一种思想,既然在认识活动中,不仅知识在发生变化,对象也在发生变化,原来没有的东西现在有了,原来不知道的东西现在知道了,那么也就意味着没有物自体。后续这里的存在物的显象也变成了意向之物的显象。
这样做的目的是为了消除一个二元论:显现和本质的二元论,康德的物自体。
假如这个本质只能被假定或者预感,而无法到达,那么这个本性同样不存在:这里的不存在应该只是只认识论层面的不存在,因为若是本体论层次的不存在,那么存在的敞开境域之外就是真的“无”了。
显现只表明自身和整个显象序列:这里似是用了现象学的方法,只从本身的角度去理解显象。
显象不返回到某个把存在物的存在整个吸收到自身的隐秘实在:存在物的显象敞开给认识的主体,显象表达自身。
如果存在物的存在就是自身的显现,那么无不就没了么。这里应该是糅合了无和在。
揭示了上述的表达都是现象学领域的探究:显象就是它自身的绝对的表达。(仅在认识论层次,亦或者说仅人能表达的层次?)
既然显象和本质的二元 ...
破解微信单项实例微信只能运行一个实在有点繁琐,所以简单爆破一下。
分析关键函数一般控制软件只运行单个实例会使用找进程名称(FindWindow),设置锁(CreateMutex)之类的函数,具体的在《加密与解密》中都有详细介绍了,这里就不赘述。
微信没加壳,直接IDA看WinMain函数,刚开始是一段查询系统版本以及检查程序更新的函数:
在往后就可以找到关键的函数,可以看到微信整体打开是调用WeChatWin.dll中的StartWachat函数的:
由于在Wechat.exe程序中没有找到有效的控制单个程序实例的函数,所以再看看WeChatWin.dll中的导入函数,可以看到导入了CreateMutexW函数以及FindWindow函数:
查看CreateMutexW函数上下文可以判断这个应该就是控制程序单个实例的关键函数:
而调用FindWindowW函数的上下文就更加明显了:
使用OD载入程序,在CreateMutexW下断点,触断后单步看。
设置的锁即控制单个实例的锁:
根据OD中最后三个字节”715”可以判断出这里的调用CreateMutexW就是上面的控制单个 ...
内存马插件测试文档测试目的使用腾讯云主机安全测试内存马检测情况,测试的范围包括在Java Web服务中注入内存马几类常见情况:
有文件落地型:通过上传并触发jsp在Web服务中注入内存马。
无文件落地型:通过利用漏洞在Web服务中注入内存马(恶意class)。
常见工具类:一些攻防场景中会用到的内存马,如:冰蝎、哥斯拉等。
测试环境
操作系统:Linux(Debian 10)
腾讯云主机安全产品版本:旗舰版
Web容器:tomcat
Java版本:jdk1.8.0_65
其他:漏洞环境依赖的库、JNDI-Injection-Exploit-Plus、冰蝎v4.0.6
测试步骤前期准备工作启动用于测试的Web容器:
在主机安全——入侵防御——高级防御——Java内存马——插件配置中将测试靶机的Java内存马插件启用:
有文件落地型有文件落地型的内存马即通过上传jsp文件到Web容器中,通过加载jsp,实例化恶意class,将内存马注入到目标jvm进程中,这里拿servlet型内存马论述。
一个有回显的servlet类型的内存马的jsp demo:
12345678910111 ...
pwn
未读简要分析漏洞存在在del这个函数,该函数将保存chunk的地址作为参数free掉:
123456789void del_4009DE(){ int index; // [rsp+Ch] [rbp-4h] putchar('>'); index = readnum_4008A7(); if ( index >= 0 && index <= 15 ) free(arr[2 * index]);}
free之后没有置NULL,存在UAF漏洞。
而malloc的chunk最大为(127+1+8)#16=144,控制chunk大小小于128,free掉的chunk就会link进fastbin,此时进行double free就会造成fastbin double free:
12345678910111213141516171819202122void add_40090A(){ signed int index; // [rsp+8h] [rbp-8h] int size; // [rsp+Ch ...
演讲的前因后果出自萨特的养女阿尔莱特·阿尔坎——这篇演讲的起因:
社会层面,《自由之路》出版背景下,媒体对其思想的断章取义导致公众对其思想的误会;
学术圈里,由于很多知识分子对萨特思想的误解而对其进行攻击,导致萨特身处基督徒和共产主义者的交叉火力下;
萨特想通过这篇演讲对上述的这些问题进行回复,以达成:
试图让民众真正理解自己的思想;
萨特作为马克思主义者,想用这篇演讲至少说服共产主义者中的马克思主义者;
简单来说就是对当时社会以及学术圈里对存在主义的误解的辩护。
存在主义是一种人道主义存在主义是一种使人生成为可能的学说(本己能在),真理和行动也因此包含客观环境和人的主观性(此在就在真)。萨特想强调的自由是一种基于本己能在筹划的面向可能性的自由,通过自己的选择筹划来让自身的可能性成形,但是当时社会缺用这种自由来为对自己的行为的不负责进行开脱(常人)。
既然因缘整体性的前提意蕴是在此在领会筹划中产生的,那么就必然不存在一条一定要去做的规则,于是法规教条,又或者是一些格言,它们就都是没有根基的东西了。没有目的性的世界似乎是让人恐慌的,但是这种恐慌的底下的畏正是召唤人来到本己能在面 ...