CN116775147B - 一种可执行文件处理方法、装置、设备及存储介质 - Google Patents

一种可执行文件处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116775147B
CN116775147B CN202310677889.6A CN202310677889A CN116775147B CN 116775147 B CN116775147 B CN 116775147B CN 202310677889 A CN202310677889 A CN 202310677889A CN 116775147 B CN116775147 B CN 116775147B
Authority
CN
China
Prior art keywords
target
executable file
sub
shellcode
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310677889.6A
Other languages
English (en)
Other versions
CN116775147A (zh
Inventor
米竞
王栋
郭勇生
张黎元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202310677889.6A priority Critical patent/CN116775147B/zh
Publication of CN116775147A publication Critical patent/CN116775147A/zh
Application granted granted Critical
Publication of CN116775147B publication Critical patent/CN116775147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种可执行文件处理方法、装置、设备及存储介质,所述方法包括:首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。

Description

一种可执行文件处理方法、装置、设备及存储介质
技术领域
本公开涉及数据处理领域,尤其涉及一种可执行文件处理方法、装置、设备及存储介质。
背景技术
渗透测试是一种评估计算机***、网络或应用程序安全性的方法旨在模拟攻击者的行为,评估计算机***、网络或应用程序的安全性。
在渗透测试场景中,在Linux主机上执行可执行文件时,通常会留下进程记录,导致可执行文件在执行过程中不够隐蔽。因此,如何提升可执行文件在执行过程中的隐蔽性,成为亟需解决的一个技术问题。
发明内容
为了解决上述技术问题,本公开实施例提供了一种可执行文件处理方法。
第一方面,本公开提供了一种可执行文件处理方法,所述方法包括:
接收可执行文件执行请求;其中,所述可执行文件执行请求用于请求在目标进程中执行目标可执行文件;
将目标壳代码shellcode注入到所述目标进程中;
基于所述目标shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述将目标壳代码shellcode注入到所述目标进程之前,且在所述接收可执行文件执行请求之后,还包括:
记录所述目标进程的执行进度信息;
相应地,所述方法还包括:
在接收到针对所述目标shellcode的执行结束信号时,基于所述执行进度信息恢复执行所述目标进程。
一种可选的实施方式中,所述基于所述目标shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件,包括:
调用所述目标shellcode中的预设加载单元,为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述基于所述目标shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件,包括:
调用所述目标shellcode中的预设函数标识对应的目标函数,并利用所述目标函数调用目标加载器;
利用所述目标加载器为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述预设函数标识包括预设函数地址,所述预设函数地址为基于所述目标进程的内存映射确定。
一种可选的实施方式中,所述目标可执行文件为可执行可链接文件格式ELF文件。
一种可选的实施方式中,所述可执行文件处理方法应用于渗透测试场景中。
第二方面,本公开提供了一种可执行文件处理装置,所述装置包括:
接收模块,用于接收可执行文件执行请求;其中,所述可执行文件执行请求用于请求在目标进程中执行目标可执行文件;
注入模块,用于将目标壳代码shellcode注入到所述目标进程中;
创建模块,用于基于所述目标shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
第三方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现上述的方法。
第四方面,本公开提供了一种可执行文件处理设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的方法。
第五方面,本公开提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的方法。
本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
本公开实施例提供了一种可执行文件处理方法,首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种可执行文件处理方法的流程图;
图2为本公开实施例提供的另一种可执行文件处理的示意图;
图3为本公开实施例提供的一种可执行文件处理装置的结构示意图;
图4为本公开实施例提供的一种可执行文件处理设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
下面就本公开提到的一些关键术语进行解释:
Linux:全称GNU/Linux,是一套***和自由传播的类Unix操作***,是一个基于POSIX(Portable Operating System Interface of UNIX,可移植操作***接口)的多用户、多任务、支持多线程和多CPU(Central Processing Uni,中央处理器)的操作***。
可执行文件:是一种计算机文件,包含了一组计算机指令,可以被计算机直接执行。通常情况下,可执行文件是由编译器将源代码编译成机器语言后生成的二进制文件,可以在特定的操作***和硬件平台上运行,可以直接***作***解析并执行其中的代码,从而产生进程,对于Linux操作***而言,可执行文件通常的格式为ELF(Executable andLinkable Format,可执行可链接文件格式),相应的,Linux操作***中的可执行文件也可称为ELF文件。
Linux操作***解析执行ELF文件的流程是由***调用函数execve的***调用实现,而本公开可以使用目标shellcode中的预设加载单元或目标加载器实现对ELF文件的解析和加载,并执行其代码。在此过程中,无需产生新的进程,从而ELF文件的运行更加隐蔽。
进程:是一个程序(可执行文件)经过操作***解析加载形成的一个程序运行的状态,代表一个可执行文件正在被执行,其表现形式是拥有一定的内存空间和CPU时间,每一个可执行文件被***执行时都会产生至少一个进程。
注入:是指通过特殊手段,使正在运行的进程暂停并加载执行额外的代码。
壳代码Shellcode:是指一段可以实现特定功能的汇编指令,用于直接替换当前进程的执行流程。
Glibc:是指Linux平台最常见的C运行库,通常每个Linux进程都会加载该库。
Ptrace(Process trace,进程跟踪):是指Linux***调用,用于接管并控制一个目标进程,对其进行调试,本公开使用该调用注入shellcode,并最终恢复目标进程的运行。
shellcode的执行结束信号:可以由软件生成,本公开中的中断信号可用于与预设程序通信,以告知shellcode执行结束。
渗透测试:是指使用真实的黑客攻击手段对目标网络进行测试,用以检测目标是否存在可以被利用的安全问题。
在渗透测试过程中,测试人员通常需要在Linux主机上执行可执行文件时,通常有隐蔽性需求。
为了提升可执行文件在执行过程中的隐蔽性,本公开提供了一种可执行文件处理方法、装置、设备及存储介质。
具体地,首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
基于此,本公开实施例提供了一种可执行文件处理方法,参考图1,为本公开实施例提供的一种可执行文件处理方法的流程图,该方法包括:
S101:接收可执行文件执行请求。
其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件。
一种可选的实施方式中,接收可执行文件执行请求可以为:操作***接收到的可执行文件执行请求,也可以为应用程序接收到的可执行文件执行请求,以执行一个可执行文件。
具体地,该可执行文件执行请求可以由用户发起,也可以由程序发起,本公开实施例在此不做任何限定,例如用户双击一个可执行文件发起可执行文件执行请求,或者程序通过***调用来执行一个可执行文件执行请求。
本公开实施例提供的可执行文件处理方法可以应用于渗透测试场景中。
为便于理解,本公开实施例以渗透测试场景为例进行介绍。
一种可选的实施方式中,目标可执行文件可以为可执行可链接文件格式ELF文件。
具体地,目标可执行文件可以为任一ELF文件,本公开实施例对此不做任何限定。
本公开实施例中,可执行文件执行请求可以为针对Linux主机中的目标进程执行目标可执行文件的请求。
S102:将目标壳代码shellcode注入到目标进程中。
其中,目标进程可以为预先设置的任一进程,本公开实施例在此不做任何限定。
本公开实施例中,可以利用Ptrace将目标shellcode注入到目标进程中。
具体地,首先查找目标进程的内存空间,以确定要注入Shellcode的位置,然后在目标进程的内存空间中分配一段可执行的内存,以便将Shellcode注入目标进程的内存空间中。
另外,为了在不影响目标进程的情况下执行目标可执行文件,在将目标shellcode注入到目标进程之前,且在接收可执行文件执行请求之后,一种可选的实施方式中,记录目标进程的执行进度信息,以基于执行进度信息恢复执行目标进程。
具体地,针对记录目标进程的执行进度信息,以基于执行进度信息恢复执行目标进程的具体描述可参考下述实施例,本公开实施例在此不做任何赘述。
S103:基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。
本公开实施例中,基于目标shellcode为目标进程创建子进程,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
一种可选的实施方式中,调用目标shellcode中的预设加载单元,为目标进程创建子进程,以及利用子进程执行目标可执行文件。
其中,预设加载单元可以为包含在目标shellcode中的具有为目标进程创建子进程,以及利用子进程执行目标可执行文件功能的单元。
本公开实施例中,在将目标shellcode注入到目标进程中之后,开始执行目标shellcode,具体地,利用目标shellcode包括的预设加载单元,创建一个子进程,作为目标进程的子进程,以在该子进程中执行目标可执行文件,以使目标可执行文件可以在独立的进程空间(即子进程)中运行,从而防止目标可执行文件在执行过程中对目标进程的正常运行产生影响。
另一种可选的实施方式中,调用目标shellcode中的预设函数标识对应的目标函数,并利用目标函数调用目标加载器,利用目标加载器为目标进程创建子进程,以及利用子进程执行目标可执行文件。
其中,预设函数标识用于唯一标识一个函数,一种可选的实施方式中,预设函数标识可以为预设函数地址,相应地,预设函数地址为基于目标进程的内存映射确定。
本公开实施例中,假设目标进程加载了Glibc运行库,首先,读取目标进程的内存映射,查找Glibc运行库所在的内存区域,如该内存区域的起始地址、结束地址、偏移量等信息,以计算Glibc运行库中用于调用目标加载器的预设函数地址。
在确定预设函数地址之后,将该预设函数地址填充至目标shellcode中相应的地址值,并设置相应的调用参数(如目标加载器的路径),从而可以基于目标shellcode中的预设函数地址(即预设函数标识),调用目标shellcode中的预设函数地址(即预设函数标识)对应的目标函数,以利用该目标函数调用目标加载器,从而利用目标加载器为目标进程创建子进程,并利用该子进程执行目标可执行文件。
本公开实施例提供的可执行文件处理方法中,首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
基于此,本公开实施例还提供了一种可执行文件处理方法,参考图2,为本公开实施例提供的另一种可执行文件处理的示意图,该方法包括:
S201:接收可执行文件执行请求。
其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件。
需要说明的是,步骤201与上述步骤101相同,具体参见对步骤101的描述,此处不再详述。
S202:记录目标进程的执行进度信息。
其中,执行进度信息用于恢复执行目标进程。
本公开实施例中,目标进程的执行进度信息可以为目标进程的当前运行状态,具体地,可以通过Ptrace记录目标进程的执行进度信息,并将该执行进度信息保存至预设程序的内存空间中,以便在接收到针对目标shellcode的执行结束信号时,可以基于预设程序的内存空间保存的执行进度信息恢复执行目标进程,即可以在不影响目标进程的情况下执行目标可执行文件。
其中,预设程序可以为下述实施例中的初始程序。
S203:将目标壳代码shellcode注入到目标进程中。
S204:基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。
需要说明的是,步骤203-204与上述步骤102-103相同,具体参见对步骤102-103的描述,此处不再详述。
S205:在接收到针对目标shellcode的执行结束信号时,基于执行进度信息恢复执行目标进程。
其中,目标shellcode的执行结束信号可以为目标shellcode执行结束时触发的中断信号。
示例性地,如果目标shellcode包含十条指令,则目标shellcode在十条指令执行结束时触发的中断信号即为目标shellcode的执行结束信号。
本公开实施例中,预设程序在接收到针对目标shellcode的执行结束信号,利用Ptrace将预设程序中存储的执行进度信息进行恢复,以便目标进程继续按照执行进度信息所指示的运行状态恢复执行。
本公开实施例提供的可执行文件处理方法中,首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,记录目标进程的执行进度信息,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件,在接收到针对目标shellcode的执行结束信号时,基于执行进度信息恢复执行目标进程。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
另外,通过本公开实施例可以在不影响目标进程的情况下执行目标可执行文件。
在上述实施例的基础上,本公开实施例还提供了一种可执行文件处理方法,具体如下:
假设在Linux主机中拥有普通用户权限,可以读取并执行一个ELF文件。
本公开实施例中,提供一个初始程序(相当于目标shellcode注入器),在初始程序的运行过程中,利用Ptrace将目标shellcode注入到目标进程中,假设目标进程加载了Glibc运行库。
首先,接收可执行文件执行请求,读取目标进程的内存映射,查找Glibc运行库所在的内存区域,如该内存区域的起始地址、结束地址、偏移量等信息,以计算Glibc运行库中用于调用目标加载器的预设函数地址。
在确定预设函数地址之后,将该预设函数地址填充至目标shellcode中相应的地址值,并设置相应的调用参数(如目标加载器的路径)。
利用Ptrace接管目标进程,记录目标进程的执行进度信息(如目标进程的当前运行状态),并保存至初始程序的内存空间中。
将目标shellcode注入到目标进程中,开始执行目标shellcode。
基于目标shellcode中的预设函数地址,调用目标shellcode中的预设函数地址对应的目标函数,以利用该目标函数调用目标加载器。
利用目标函数调用目标加载器,以利用目标加载器为目标进程创建子进程,以及利用子进程执行目标可执行文件,至此,目标可执行文件已正常运行。
目标shellcode的执行结束抛出执行结束信号,被初始程序接收,初始程序将先前保存的目标进程的当前运行状态恢复,使之继续运行。
可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
另外,通过本公开实施例可以在不影响目标进程的情况下执行目标可执行文件。
实际应用中,渗透测试人员试图在一台已获取权限的Linux主机上执行工具程序(即目标可执行文件),但直接执行该工具程序会留下较可疑的进程记录。于是本公开实施例提供了一个初始程序,使得该工具程序可以经由初始程序的目标shellcode和后续加载操作进入一个已存在于该主机上的目标进程中,并以目标进程的子进程的形式正常运行,在此过程中,目标进程没有受到破坏,可以继续运行,需要执行的工具程序也没有经过***执行而留下任何可疑的进程记录。
基于上述方法实施例,本公开还提供了一种可执行文件处理装置,参考图3,为本公开实施例提供的一种可执行文件处理装置的结构示意图,所述装置包括:
接收模块301,用于接收可执行文件执行请求;其中,所述可执行文件执行请求用于请求在目标进程中执行目标可执行文件;
注入模块302,用于将目标壳代码shellcode注入到所述目标进程中;
创建模块303,用于基于所述目标shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述装置还包括:
记录模块,用于记录所述目标进程的执行进度信息;
相应地,所述装置还包括:
恢复模块,用于在接收到针对所述目标shellcode的执行结束信号时,基于所述执行进度信息恢复执行所述目标进程。
一种可选的实施方式中,所述创建模块具体用于:
调用所述目标shellcode中的预设加载单元,为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述创建模块303包括:
调用子模块,用于调用所述目标shellcode中的预设函数标识对应的目标函数,并利用所述目标函数调用目标加载器;
创建子模块,用于利用所述目标加载器为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
一种可选的实施方式中,所述预设函数标识包括预设函数地址,所述预设函数地址为基于所述目标进程的内存映射确定。
一种可选的实施方式中,所述目标可执行文件为可执行可链接文件格式ELF文件。
一种可选的实施方式中,所述可执行文件处理方法应用于渗透测试场景中。
本公开实施例提供的可执行文件处理装置中,首先,接收可执行文件执行请求,其中,可执行文件执行请求用于请求在目标进程中执行目标可执行文件,将目标壳代码shellcode注入到目标进程中,然后基于目标shellcode为目标进程创建子进程,以及利用子进程执行目标可执行文件。可见,本公开实施例中,通过将目标shellcode注入到目标进程的方式,在执行目标shellcode的过程中,将目标可执行文件隐藏在目标进程的子进程中执行,提升了可执行文件在执行过程中的隐蔽性。
除了上述方法和装置以外,本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现本公开实施例所述的可执行文件处理方法。
本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本公开实施例所述的可执行文件处理方法。
另外,本公开实施例还提供了一种可执行文件处理设备,参见图4所示,可以包括:
处理器401、存储器402、输入装置403和输出装置404。可执行文件处理设备中的处理器401的数量可以一个或多个,图4中以一个处理器为例。在本公开的一些实施例中,处理器401、存储器402、输入装置403和输出装置404可通过总线或其它方式连接,其中,图4中以通过总线连接为例。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行可执行文件处理设备的各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置403可用于接收输入的数字或字符信息,以及产生与可执行文件处理设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现上述可执行文件处理设备的各种功能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种可执行文件处理方法,其特征在于,所述方法包括:
接收可执行文件执行请求;其中,所述可执行文件执行请求用于请求在目标进程中执行目标可执行文件;
将目标壳代码shellcode注入到所述目标进程中;
基于所述目标壳代码shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件;
所述基于所述目标壳代码shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件,包括:
调用所述目标壳代码shellcode中的预设函数标识对应的目标函数,并利用所述目标函数调用目标加载器;
利用所述目标加载器为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述将目标壳代码shellcode注入到所述目标进程之前,且在所述接收可执行文件执行请求之后,还包括:
记录所述目标进程的执行进度信息;
相应地,所述方法还包括:
在接收到针对所述目标壳代码shellcode的执行结束信号时,基于所述执行进度信息恢复执行所述目标进程。
3.根据权利要求1所述的方法,其特征在于,所述预设函数标识包括预设函数地址,所述预设函数地址为基于所述目标进程的内存映射确定。
4.根据权利要求1所述的方法,其特征在于,所述目标可执行文件为可执行可链接文件格式ELF文件。
5.根据权利要求1所述的方法,其特征在于,所述可执行文件处理方法应用于渗透测试场景中。
6.一种可执行文件处理装置,其特征在于,所述装置包括:
接收模块,用于接收可执行文件执行请求;其中,所述可执行文件执行请求用于请求在目标进程中执行目标可执行文件;
注入模块,用于将目标壳代码shellcode注入到所述目标进程中;
创建模块,用于基于所述目标壳代码shellcode为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件;
所述创建模块,包括:
调用子模块,用于调用所述目标壳代码shellcode中的预设函数标识对应的目标函数,并利用所述目标函数调用目标加载器;
创建子模块,用于利用所述目标加载器为所述目标进程创建子进程,以及利用所述子进程执行所述目标可执行文件。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-5任一项所述的方法。
8.一种可执行文件处理设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5任一项所述的方法。
CN202310677889.6A 2023-06-08 2023-06-08 一种可执行文件处理方法、装置、设备及存储介质 Active CN116775147B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310677889.6A CN116775147B (zh) 2023-06-08 2023-06-08 一种可执行文件处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310677889.6A CN116775147B (zh) 2023-06-08 2023-06-08 一种可执行文件处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116775147A CN116775147A (zh) 2023-09-19
CN116775147B true CN116775147B (zh) 2024-03-15

Family

ID=87992280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310677889.6A Active CN116775147B (zh) 2023-06-08 2023-06-08 一种可执行文件处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116775147B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468985A (zh) * 2010-11-01 2012-05-23 北京神州绿盟信息安全科技股份有限公司 针对网络安全设备进行渗透测试的方法和***
CN105512548A (zh) * 2015-12-02 2016-04-20 湘潭大学 基于隐藏可执行镜像并注入dll保护镜像代码的方法
CN107122656A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种通过自调试防止外部调试的方法和装置
CN110837644A (zh) * 2019-10-15 2020-02-25 深圳开源互联网安全技术有限公司 一种***渗透测试方法、装置及终端设备
CN111581645A (zh) * 2020-04-17 2020-08-25 北京墨云科技有限公司 一种基于ai的自动化渗透测试***的迭代攻击方法
CN114297655A (zh) * 2021-12-31 2022-04-08 科来网络技术股份有限公司 一种基于Linux***的进程动态注入方法、装置及存储介质
CN115174221A (zh) * 2022-07-06 2022-10-11 哈尔滨工业大学(威海) 一种工控ot网络多目标渗透测试方法及***
CN116015881A (zh) * 2022-12-27 2023-04-25 北京天融信网络安全技术有限公司 渗透测试方法、装置、设备及存储介质
CN116055165A (zh) * 2023-01-10 2023-05-02 国家电网有限公司信息通信分公司 一种恶意流量数据检测方法及***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468985A (zh) * 2010-11-01 2012-05-23 北京神州绿盟信息安全科技股份有限公司 针对网络安全设备进行渗透测试的方法和***
CN105512548A (zh) * 2015-12-02 2016-04-20 湘潭大学 基于隐藏可执行镜像并注入dll保护镜像代码的方法
CN107122656A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种通过自调试防止外部调试的方法和装置
CN110837644A (zh) * 2019-10-15 2020-02-25 深圳开源互联网安全技术有限公司 一种***渗透测试方法、装置及终端设备
CN111581645A (zh) * 2020-04-17 2020-08-25 北京墨云科技有限公司 一种基于ai的自动化渗透测试***的迭代攻击方法
CN114297655A (zh) * 2021-12-31 2022-04-08 科来网络技术股份有限公司 一种基于Linux***的进程动态注入方法、装置及存储介质
CN115174221A (zh) * 2022-07-06 2022-10-11 哈尔滨工业大学(威海) 一种工控ot网络多目标渗透测试方法及***
CN116015881A (zh) * 2022-12-27 2023-04-25 北京天融信网络安全技术有限公司 渗透测试方法、装置、设备及存储介质
CN116055165A (zh) * 2023-01-10 2023-05-02 国家电网有限公司信息通信分公司 一种恶意流量数据检测方法及***

Also Published As

Publication number Publication date
CN116775147A (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
EP2704004B1 (en) Computing device having a dll injection function, and dll injection method
CN107330320B (zh) 应用进程监控的方法和装置
US20070113291A1 (en) Method for administrating the function access
CN104008340A (zh) 病毒查杀方法及装置
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN109388946B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN110737892B (zh) 一种针对apc注入的检测方法和相关装置
CN111967017A (zh) 生成依赖关系的方法、装置、终端设备及存储介质
CN113391874A (zh) 一种虚拟机检测对抗方法、装置、电子设备及存储介质
CN114417335A (zh) 一种恶意文件检测方法、装置、电子设备及存储介质
CN116502220A (zh) 一种对抗性Java内存马的检测方法及处理方法
CN115688106A (zh) 一种Java agent无文件注入内存马的检测方法及装置
CN115017505A (zh) 一种pe病毒检测方法、装置、电子设备及存储介质
CN109472135B (zh) 一种检测进程注入的方法、装置及存储介质
CN113536242A (zh) 动态库调用方法、装置、终端设备以及存储介质
CN116775147B (zh) 一种可执行文件处理方法、装置、设备及存储介质
JP4643201B2 (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN113609478A (zh) 一种ios平台应用程序篡改检测方法及装置
CN106897588B (zh) 一种标签函数的处理方法及装置
CN117150487A (zh) 一种动态链接库文件注入检测方法及装置
CN116010946A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115185568A (zh) 一种函数Hook更新方法、装置、电子设备及存储介质
CN118227486A (zh) 发行版本的调试方法、调试装置、电子设备及存储介质
CN117034278A (zh) 漏洞检测方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant