一种数据混淆加密方法

文档序号:190872 发布日期:2021-11-02 浏览:26次 >En<

阅读说明:本技术 一种数据混淆加密方法 (Data confusion encryption method ) 是由 王力红 阚瑞超 夏玉明 于 2021-08-12 设计创作,主要内容包括:本发明公开了一种数据混淆加密方法,所述方法包括:数据发送端生成待传输的初始数据代码;利用异或运算加密初始数据代码,获得一次加密结果;将一次加密结果转化为字符串数组以完成二次加密并将所述字符串数组发送给数据接收端;数据接收端对字符串数组进行解密,还原为一次加密结果;数据接收端再次利用异或运算对一次加密结果解密获得初始数据代码,最终执行初始数据代码;本发明的优点在于:一些不希望进行特征检测的场合下避免数据被杀毒软件检测而无法正常进行下一步操作,提高数据传输的效率以及安全性。(The invention discloses a data confusion encryption method, which comprises the following steps: a data sending end generates an initial data code to be transmitted; encrypting the initial data code by utilizing an exclusive-or operation to obtain a primary encryption result; converting the primary encryption result into a character string array to complete secondary encryption and sending the character string array to a data receiving end; the data receiving end decrypts the character string array and restores the character string array into a primary encryption result; the data receiving end decrypts the primary encryption result by utilizing the XOR operation again to obtain an initial data code, and finally executes the initial data code; the invention has the advantages that: in some occasions where feature detection is not desired, the data is prevented from being detected by antivirus software and the next operation cannot be normally performed, and the efficiency and the safety of data transmission are improved.)

一种数据混淆加密方法

技术领域

本发明涉及计算机网络安全技术领域,更具体涉及一种数据混淆加密方法。

背景技术

当今杀软的主流技术通过特征码检测为主,究其原因,一是该技术研究最早,发展最为成熟;二是能够准确有效标识病毒,基于特征检测开发的引擎检测效率高,因此为大多数放毒软件厂商所采用。鉴于此,国内外逐步开展了基于特征码的免杀技术研究。目前研究成果有源码免杀、花指令免杀、shellcode分离加载、shellcode混淆、加商业壳,调用底层API、冷门语言编写木马、利用unhook等方式绕过杀软检测。

目前主流C2控制端利用Cobalt Strike工具实现远控,Cobalt Strike是一款基于Java编写的全平台多方协同后渗透攻击框架,也称为CS。早期版本依赖Metasploit框架,Cobalt Strike 3.0之后则是作为单独的平台使用。其支持多种通信协议,包括http、https、dns、smb等,同时集成了提权、凭据导出、端口转发、端口扫描、横向移动、Socks代理、钓鱼攻击等功能,且支持丰富的扩展插件,几乎可以覆盖APT攻击链所需的各个技术环节。木马生成方面也涵盖了大多数的平台和攻击场景,包括PE木马、ELF木马、网页木马、Office宏病毒木马等,而通过自带工具生成木马具备强特征,已被大多厂商所查杀,因此目前大多数具备强特征的木马或者数据在传输过程中能够被查杀,在一些不希望进行特征检测的场合下如何实现数据免杀成了新的研究热点。

中国专利公开号CN112052432A,公开了一种终端设备授权方法,所述方法包括加密流程、解密流程及终端认证流程,加密流程包括,将终端设备的MAC地址形成一个二维数组,将二维数组的元素与字符R进行异或运算处理得到密文字符串,然后写入密钥文件;解密流程包括将密钥文件的密文字符串读取出来与字符R进行异或运算,然后处理得到终端设备的MAC地址;终端认证流程包括终端设备的MAC地址是否在预设的终端设备白名单中以及判断密钥文件是否在有效期内,来判断是否对终端设备进行授权。该专利申请的有益效果在于:利用终端设备的物理地址信息,加密成密钥文件,对终端设备进行认证,使得各终端设备的加密不再需要硬件加密锁,大大节约成本,同时提高项目管理效率。但是该专利申请采用一次异或加密,两次异或的方式进行解密,部分杀毒软件对异或是有特殊监控规则的,当出现循环异或时,程序的信息熵和会增加,就会被杀毒软件认为可疑,因此该专利申请难以绕过杀毒软件的特征检测。

发明内容

本发明所要解决的技术问题在于现有技术数据混淆加密方法难以绕过杀毒软件的特征检测,导致一些不希望进行特征检测的场合下数据依然被杀毒软件检测而无法正常进行下一步操作,影响数据传输的效率以及安全性。

本发明通过以下技术手段实现解决上述技术问题的:一种数据混淆加密方法,所述方法包括:

步骤一:数据发送端生成待传输的初始数据代码;

步骤二:利用异或运算加密初始数据代码,获得一次加密结果;

步骤三:将一次加密结果转化为字符串数组以完成二次加密,并将所述字符串数组发送给数据接收端;

步骤四:数据接收端对字符串数组进行解密,还原为一次加密结果;

步骤五:数据接收端利用异或运算对一次加密结果解密获得初始数据代码,最终执行初始数据代码。

本发明利用异或运算加密初始数据代码,获得一次加密结果,将一次加密结果转化为字符串数组完成二次加密之后发送给数据接收端,多层混淆,实现静态免杀,避免在一些不希望进行特征检测的场合下数据依然被杀毒软件检测而无法正常进行下一步操作,提高数据传输效率的同时提高数据传输的安全性。

进一步地,所述步骤一中生成的待传输的初始数据代码为一段shellcode。

进一步地,所述利用异或运算加密初始数据代码,获得一次加密结果的步骤包括:将初始数据代码与预设字符串进行异或运算以加密初所述始数据代码,获得一次加密结果。

进一步地,所述将一次加密结果转化为字符串数组以完成二次加密的步骤包括:利用转换函数将一次加密结果转化为MAC地址、IPv4地址、IPv6地址或UUID形式的字符串数组。

更进一步地,调用ntdll.dll库的转换函数RtlEthernetAddressToStringA()将一次加密结果转化为MAC地址形式的字符串数组。

更进一步地,所述数据接收端对字符串数组进行解密,还原为一次加密结果的步骤包括:数据接收端的加载器调用ntdll.dll库的函数RtlEthernetStringToAddressA()对字符串数组解密,还原为一次加密结果。

更进一步地,所述步骤五包括:数据接收端将步骤四还原后的一次加密结果与预设字符串进行异或运算,解密获得初始数据代码,最终执行初始数据代码。

更进一步地,所述方法还包括:在生成的待传输的初始数据代码之前插入自解密程序。

更进一步地,所述自解密程序的执行过程为:找到当前的IP寄存器值,利用找到的IP寄存器值与待传输的初始数据代码的距离找到待传输的初始数据代码的地址,逐字节地将步骤四还原后的一次加密结果与预设字符串进行异或运算。

更进一步地,所述步骤五还包括:返回步骤一,执行解码程序中的异或运算对步骤四中还原出的一次加密结果进行解密,获得初始数据代码,最终执行初始数据代码。

本发明的优点在于:

(1)本发明利用异或运算加密初始数据代码,获得一次加密结果,将一次加密结果转化为字符串数组完成二次加密之后发送给数据接收端,多层混淆,实现静态免杀,避免在一些不希望进行特征检测的场合下数据依然被杀毒软件检测而无法正常进行下一步操作,提高数据传输效率的同时提高数据传输的安全性。

(2)本发明在生成的待传输的初始数据代码之前插入自解密程序,通过插入的自解密程序对还原出的一次加密结果进行二次解密才能获得初始数据代码,所以内存中存储的并不是初始数据代码,通过查找内存的方式也无法找到初始数据代码,进一步提高数据传输的安全性。

附图说明

图1为本发明实施例所提供的一种数据混淆加密方法的算法流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,一种数据混淆加密方法,所述方法包括:

S1:数据发送端生成待传输的初始数据代码;本实施例中生成的待传输的初始数据代码为一段shellcode,shellcode是程序设计者根据需要设计的一段代码,该代码的作用不做特别限定,根据需要编写。本发明可以用于对数据进行加密传输以避免数据被破解或者用于不希望数据被杀毒软件检测而影响传输效率的问题,也可以用于攻防演练中攻击方对防守方进行攻击的时候发送特定代码以避免防守方查杀,通过攻防演练提升攻防双方的技能。

本实施例中,在生成的待传输的初始数据代码之前插入自解密程序,通过编写汇编代码转换为机器码并插入到异或加密shellcode之前,这段汇编代码的功能是:首先通过call pop技巧找到当前的ip寄存器值,然后利用找到的ip和shellcode的距离找到shellcode的地址,然后通过循环,逐字节异或进行解密恢复shellcode,然后执行程序。

S2:利用异或运算加密初始数据代码,获得一次加密结果;本实施例将初始数据代码与预设字符串进行异或运算以加密所述初始数据代码,获得一次加密结果,具体的,遍历shellcode字符串通过^运算符做异或运算,进行第一次加密。

S3:将一次加密结果转化为字符串数组以完成二次加密,并将所述字符串数组发送给数据接收端;本实施例中,利用转换函数将一次加密结果转化为MAC地址、IPv4地址、IPv6地址或UUID形式的字符串数组,其中,调用ntdll.dll库的转换函数RtlEthernetAddressToStringA()将一次加密结果转化为MAC地址形式的字符串数组,IPv4地址、IPv6地址或UUID与字符串数组之间的转换类似于MAC地址与字符串数组之间的转换,只是转换函数有所差别。

一次加密结果转化为MAC地址形式的字符串数组的程序过程如下:

RtlEthernetAddressToStringA((DL_EUI48*)bufptr,(PSTR)hptr);

\xFC\x48\x83\xE4\xF0\xE8====>FC-48-83-E4-F0-E8

S4:数据接收端对字符串数组进行解密,还原为一次加密结果;本实施例中,数据接收端的加载器调用ntdll.dll库的函数RtlEthernetStringToAddressA()对字符串数组解密,还原为一次加密结果,程序过程如下:

RtlEthernetStringToAddressA(S[i],(PCSTR*)hptr,(DL_EUI48*)hptr);

FC-48-83-E4-F0-E8====>\xFC\x48\x83\xE4\xF0\xE8

S5:数据接收端利用异或运算对一次加密结果解密获得初始数据代码,最终执行初始数据代码,具体过程为:返回S1,执行解码程序中的异或运算对S4还原后的一次加密结果与预设字符串进行异或运算,使得程序在内存中再次自解密,获得初始数据代码,最终执行初始数据代码。本实施例中,利用EnumWindows注册回调函数WNDENUMPROC执行shellcode,此时在内存中自异或解密,执行shellcode。

通过以上技术方案,本发明利用异或运算加密初始数据代码,获得一次加密结果,将一次加密结果转化为字符串数组完成二次加密之后发送给数据接收端,多层混淆,实现静态免杀,避免在一些不希望进行特征检测的场合下数据依然被杀毒软件检测而无法正常进行下一步操作,提高数据传输效率的同时提高数据传输的安全性。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:程序漏洞的上报方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类