01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4ReadExcel.exe 是一款专为红队活动设计的工具,能够自动化地读取 Microsoft Excel 表格内容,该工具支持 XLS 和 XLSX 两种扩展名,可用于在内网环境中批量收集信息,快速查找敏感数据。
03使用方法
Sharp4ReadExcel.exe 主要用于打开和读取指定的 Excel 表格内容,支持指定路径及密码。
3.1 读取工作表名称
用户可以获取 Excel 文件中所有工作表的名称,便于快速定位所需数据。要读取 Excel 文件中的工作表名称,可以使用以下命令。
Sharp4ReadExcel.exe sheets 123.xlsx
例如,获取奖品发放情况_抽奖助手.xlsx表格的工作区名,如下图所示。
3.2 读取工作表内容
要读取特定工作区的内容,可以使用如下命令,其中,sheetName 为目标工作表名称,123.xlsx 为目标 Excel 文件,password 为工作表的密码(如果有)
Sharp4ReadExcel.exe read sheetName password 123.xlsx
例如,读取奖品发放情况_抽奖助手.xlsx表格的工作区内容,如下图所示。
04原理解析
我们来详细分析 Sharp4ReadExcel.exe 工具的代码,分为两个主要部分:获取工作表名称和读取工作表内容。
首先,通过Excel.Application xlApp = new Excel.Application(); 创建 Excel 应用实例,并使用 foreach 循环遍历所有工作表,并将名称输出到控制台
if (args[0].ToLower() == "sheets")
{
if (File.Exists(Path.GetFullPath(args[1])))
{
if (Path.GetExtension(args[1]).ToLower() == ".xls" || Path.GetExtension(args[1]).ToLower() == ".xlsx")
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(Path.GetFullPath(args[1]), Type.Missing, true);
String[] sheets = new string[xlWorkbook.Worksheets.Count];
int i = 0;
foreach (Excel.Worksheet wSheet in xlWorkbook.Worksheets)
{
Console.WriteLine("Sheet Name Found: " + (sheets[i] = wSheet.Name));
i++;
}
xlWorkbook.Close(false, null, null);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkbook);
Marshal.ReleaseComObject(xlApp);
System.Environment.Exit(0);
}
else
{
Console.WriteLine("Error...Did not provide an Excel Worksheet");
System.Environment.Exit(0);
}
}
}
随后,使用 xlApp.Workbooks.Open 方法打开文件,并提供密码进行保护解除,再通过PrintExcelGrid(xlRange, rowCount, colCount); 调用自定义函数输出工作表数据。
string pass = args[2].ToString();
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(Path.GetFullPath(args[3]), Type.Missing, true, Type.Missing, pass, pass);
xlWorkbook.Password = pass;
xlWorkbook.Unprotect(pass);
Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[args[1]];
xlWorksheet.Unprotect(pass);
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
PrintExcelGrid(xlRange, rowCount, colCount);
xlWorkbook.Close(false, null, null);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorksheet);
Marshal.ReleaseComObject(xlWorkbook);
Marshal.ReleaseComObject(xlApp);
System.Environment.Exit(0);
综上,Sharp4ReadExcel.exe 是一款功能强大的 Excel 数据读取工具,适合红队成员在执行渗透测试时使用。通过简单的命令行操作,用户可以快速获取 Excel 文件中的重要信息,提升信息收集的效率。
05.NET安全知识库
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题。
星球文化20+个专题栏目涵盖了点、线、面、体等知识面!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。