01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4Up 是一款功能强大的本地信息收集工具,专为安全研究和渗透测试人员设计,用于收集被控主机上的各种安全信息,本文将详细介绍 Sharp4Up 的功能、使用方法以及部分实现代码。
03使用方法
Sharp4Up 目前支持以下15个功能,如常见的进程劫持DLL和可劫持的路径等。
AlwaysInstallElevated:检查是否启用了 AlwaysInstallElevated 策略。
CachedGPPPassword:检查是否存在缓存的组策略首选项密码。
DomainGPPPassword:检查域内是否存在组策略首选项密码。
HijackablePaths:检查当前环境变量路径中是否存在可劫持的路径。
McAfeeSitelistFiles:检查是否存在 McAfee 的站点列表文件。
ModifiableScheduledTask:检查是否存在可修改的计划任务。
ModifiableServiceBinaries:检查是否存在可修改的服务二进制文件。
ModifiableServiceRegistryKeys:检查是否存在可修改的服务注册表键。
ModifiableServices:检查是否存在可修改的服务。
ProcessDLLHijack:检查当前进程是否可以被劫持的 DLL。
RegistryAutoLogons:检查注册表中是否存在自动登录配置。
RegistryAutoruns:检查注册表中是否存在自动运行配置。
TokenPrivileges:检查进程是否具有特权令牌。
UnattendedInstallFiles:检查是否存在无人值守的安装文件。
UnquotedServicePath:检查是否存在未加引号的服务路径
3.1 ProcessDLLHijack
运行下面命令后,Sharp4Up 会检查系统中当前进程是否存在可被劫持的 DLL 文件
Sharp4Up.exe audit ProcessDLLHijack
3.2 HijackablePaths
运行下面命令后,Sharp4Up 会扫描系统环境变量中的路径,检查是否存在可被劫持的目录。
Sharp4Up.exe audit HijackablePaths
04编码实现
以下是 HijackablePaths 功能的实现代码,用于检查环境变量路径中的可劫持目录,原理上通过检查读取保存在注册表内的绝对路径权限,如果发现可修改的目录则输出相应的结果。具体实现的代码如下所示。
public class HijackablePaths : VulnerabilityCheck
{
public HijackablePaths()
{
this._name = "Modifiable Folders in %PATH%";
string path = RegistryUtils.GetRegValue("HKLM", HijackablePaths._regPath, HijackablePaths._regName);
bool flag = string.IsNullOrEmpty(path);
if (flag)
{
this._isVulnerable = false;
}
else
{
string[] pathFolders = path.Split(new char[] { ';' });
foreach (string folder in pathFolders)
{
bool flag2 = FileUtils.CheckModifiableAccess(folder, false);
if (flag2)
{
this._isVulnerable = true;
this._details.Add(folder);
}
}
}
}
private static string _regPath = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
private static string _regName = "Path";
}
代码首先初始化 HijackablePaths 对象,并检查环境变量路径中的可劫持目录,使用 RegistryUtils.GetRegValue 方法读取注册表中的 Path 值。将读取到的路径值拆分为多个目录,并使用 FileUtils.CheckModifiableAccess 方法检查每个目录是否可修改。如果发现可修改的目录,则将其标记为脆弱。
通过这些功能,Sharp4Up 能够帮助攻击者快速识别系统中的潜在安全问题。
05.NET安全星球
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。