分类 权限维持 下的文章

Dll劫持
dll劫持原理:https://silic.wiki/%E4%B9%A0%E7%A7%91%E6%97%A7%E7%AB%99:dll%E5%8A%AB%E6%8C%81

简单来说就是win应用在执行过程中会调用一些处在系统中各个位置的动态链接文件(dll),而一般开发都不会将dll的文件使用绝对路径限制死,而是利用windows自带的DLL Search Order功能来自动查找相同名称的dll文件,并可以多应用共享dll,减少重复开发。
这样也会带来种种问题,search的过程是:
应用程序当前目录→系统目录→16位系统目录→windows目录→path环境目录
知道它的加载过程那么我们只要能够获取到应用程序都加载了哪些dll文件,替换/添加自己的dll不久可以执行了恶意dll了嘛?这样就完成了一次dll劫持攻击。
Dll劫持实例:
通常可以通过process monitor来查看软件加载了哪些dll文件。
图片4.png

在列表中看到了他查询了

C:\Users\123\AppData\Local\Notepad++\plugins\..dll
C:\Users\123\AppData\Local\Notepad++\...dll

图片5.png
其中查询结果都是NO SUCH FILE也就是说不存在该dll,但是notepad++也确实是读取了dll
那么问题来了,我们将自己的payload生成dll改名放到plugins中是否能够在运行notepad++的过程中执行payload呢?测试一下。
这里值得注意的是这个dll加载的路径是一个用户appdata的路径,也就是说123用户即可向其中可读可写可执行权限,这在win中排除了windows、program files中无法写入文件的问题。
图片6.png
这里为了展示下危害使用管理员权限打开notepad++
图片7.png
可以看到执行了dll,并且是以管理员权限打开的。因为只是演示,所以并没有完整的回调notepad++正常的dll,所以note在进程中存在。
COM对象劫持
有关com组建/对象的介绍和劫持内容可以看下倾旋表哥的文章
https://payloads.online/archivers/2018-12-22/1#0x06-%E4%BB%80%E4%B9%88%E6%98%AFcom
其中通俗易懂的介绍了com组建在渗透测试中的应用(pass uac/pass av/持久化后门)。
好吧我是不会承认我说不明白到底咋回事的。
过程就是hkcu-hkcr-hklm
三段映射,应用程序对于某些command命令执行会先寻找hkcu,不存在再去寻找hkcr,而我们的权限可以操作hkcu,这样的原理就和dll劫持很相似了。
过几天有时间的话可能会写几个pass uac的实例,以及如何批量在windows上寻找pass uac的切入点。

Invoke-PSImage bypass anti-virus

https://github.com/peewpw/Invoke-PSImage

通过对png的像素快中插入powershell代码来隐藏payload。在通过ps的功能将png中的payload读取并执行。
文章在网上有很多人已经写了如何使用以及原理,所以本文只是自己做记录,日后也能想起我到底都做了什么。

PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png


PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png -Web

图片1.png
Cs自带生成的ps1已经被查杀了。
存在两种使用方法,第一种是将生成的png上传到目标主机,然后再执行命令。
第二种是生成png后命令采取请求远程web服务器下载缓存图片并执行,可以实现无文件落地。

图片2.png
图片3.png
可以看到已经执行了payload,如果能够配合passuac的话,就可以通过无文件落地+管理员权限执行shell。
尽管是两年前的技术,但是还是能绕过大部分的国内杀毒。