DLL 攻击漫谈 || 什么是 DLL 攻击 ? DLL 攻击利用过程

Andrew2020-10-26 11:05:26

动态链接库(DLL)的方式以及Windows API指示使用它们的方式都可以用作任意代码执行的接口,并协助恶意行为者实现其目标。

动态链接库是Microsoft实施共享库的产品。

这些库通常具有文件扩展名DLL,并且它们也是PE文件,与exe文件完全一样。

DLL可以包含PE文件可以包含的任何类型的内容,这些内容可能与代码,资源或数据的任何组合不同。

DLL主要用于在系统上的应用程序和进程之间共享此内容,以便在为Windows创建应用程序时为程序员提供高度的灵活性。

DLL以相同的访问权限在调用过程的内存中执行。这意味着,如果DLL包含任何异常,则不会为调用EXE提供任何保护。恶意攻击者可以通过使用诸如DLL劫持或DLL代理之类的方法来执行其恶意代码来利用这一事实。

DLL搜索顺序简介

在整个日常工作中,我们将大量流程加载到我们的系统中。使用Windows操作系统时,进程加载算法的关键步骤包括将动态链接库(DLL)加载到内存中,以利用其功能并满足其进程与DLL之间的依赖关系。每当启动进程时,都会发生此操作。

Windows操作系统可能包含同一DLL的大量版本。由于一个系统可能承载可能需要同一个DLL的许多进程这一事实,因此应采用一种系统来确保从正确的路径加载所需的DLL,同时确保已找到该DLL的最相关版本。

应用程序制造商通过使用LoadLibraryExA或LoadLibraryA函数来使用加载特定库的操作。这些函数接收一个路径参数,该参数导致所请求的DLL,并向调用过程返回模块的句柄。

1.当前目录

2.启动过程的目录

3.C:\ Windows \ System32

4.C:\ Windows \ System

5.C:\ Windows

6.“ PATH”的SYSTEM环境变量中包含的目录

7.USER环境变量“ PATH”中包含的目录

DLL攻击

DLL包含要由加载过程执行的代码,这会造成一种情况,即可以利用丢失的DLL或以不安全的方法实现的DLL来诱骗正在运行的系统执行恶意有效负载,在这种情况下,它利用本机DLL搜索顺序。恶意行为者可能会使用此技术来加载自己的DLL,该DLL可能包含任何类型的代码。

攻击利用过程

当我们确定某个进程按某个搜索顺序搜索DLL,并且缺少DLL 或者错误实现的DLL的进程之后,才能够进行下一步攻击

第一步:确定DLL

首先,我们从Sysinternals设置ProcMon来筛选未找到以DLL结尾的路径的任何操作:

ProcMon下载:https://docs.microsoft.com/en-us/sysintern...

我们可以看到“ Bginfo64.exe”找不到的对应DLL。

第二步:查找DLL和利用

在查找这些DLL时,得出的结论是Riched32.DLL是非本地DLL,因此,注册表中没有该DLL的默认搜索路径。但是如果我们正确配置它,系统最终也会加载它。

现在所需要做的就是在请求的路径中创建该DLL:

那么我们在请求路径中创建该DLL(Riched32.dll),为了方便演示,我们的DLL

如果执行了,就弹窗 hello HBT黑白天 来证明我们的DLL可以执行命令

#define WIN32_LEAN_AND_MEAN

我们把这个DLL命名为Riched32.dll放进Bginfo64.exe的dll文件夹中。

然后重新打开进程“ Bginfo64.exe。

出现该消息框,并且我们可以观察到该进程加载了DLL:

那如果我们的DLL中包含恶意代码呢。是不是可以继承Bginfo64.exe执行命令??

最后一步:拿一个shell

确定了进程和易受攻击的路径之后,所缺少的就是创建我们希望执行的DLL有效负载。

我们可以使用一个“ DLLicious”的工具(https://github.com/J3wker/DLLicous-MaliciousDLL)来快速编译包含的shell的DLL

用法

用法非常简单,只需使用Python3或“。\ DLLicous.py”运行脚本

我们可以使用

1.用C语言将反向Shell编写DLL

2.Base64nc.exe 对NC二进制文件进行编码和解码,然后将其写入
DLL的工作目录中,然后从该目录中发起攻击。另一个新功能是:nc.exe在DLL中也包含base64代码,而不是从Web下载或从SMB服务器复制它。

通过使用PowerShell和DLL代码中包含的NetCat的反向Shell

并尝试与kali上的侦听器联系,然后使用PowerShell打开shell

我们可以看到执行劫持的进程后,将加载DLL并打开shell:

https://www.cynet.com/attack-techniques-ha...

https://github.com/J3wker/DLLicous-Malicio...

https://docs.microsoft.com/en-us/sysintern...

原创:李木 黑白天
原文链接:https://mp.weixin.qq.com/s/Wp3345NNCZUsgCu...

httpsshell
本作品采用《CC 协议》,转载必须注明作者和本文链接
下载dll,并添加至ext中在php.ini 中添加该扩展修改configure.ini;?具体步骤通过phpinfo获取扩展信息,根据不同的加密扩展进行尝试利用默认密钥进行加密,通过访问webshell来判断密钥是否正确,当然,这种方法其实只能用于权限维持需要拿到权限后获取扩展文件破解后,才能稳定获取密钥,进而加密webshell
Bughound是一款开源的静态代码分析工具,可以帮助广大研究人员分析自己的代码,并将结果发送至Elasticsearch和Kibana,以更好地审查代码中潜在的安全漏洞。
最近的研究表明,中非和西非超过 85% 的金融机构多次遭受包括盗取信息、盗窃用户身份、转账欺诈和用虚假支票取款等多重网络攻击。DangerousSavanna 迅速加入了恶意攻击的趋势。
shellcode动态注入!
2023-01-24 10:15:10
声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大
Ceye DNS:DNS oob平台 http://ceye.io/. TLS证书信息查询Censys:https://censys.io. 网络空间搜索Fofa:https://fofa.info/
Ceye DNS:DNS oob平台 http://ceye.io/. TLS证书信息查询Censys:https://censys.io. 网络空间搜索Fofa:https://fofa.info/
到达客户现场后第一时间告知负责网络相关的人员请勿对被篡改文件进行删除或修改,这样做的原因是方便后续对入侵途径进行溯源分析。发生安全事件的服务器为Windows还是Linux或者其他的操作系统,确认好操作系统类型方便取证工作。是否为用户误操作所导致触发告警。Windows系统下:使用“MD5校验器”打开原有文件与疑似篡改文件,获得MD5值后进行比对,如果两文件MD5不一样证明该文件被篡改。
防守方工具包集合
2022-06-27 06:25:50
蓝队工具包集合??企业安全之做好这三点,护网没在怕!
今天给大家安利几个不错的在线安全工具,无需安装配置即可使用,在实际工作中能够帮助我们提升效率,顺序的话,就根据渗透的顺序来。
ICMP隧道攻击
2022-04-27 21:50:29
ICMP一般用于检测网络的可通性
Andrew
暂无描述