温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用功能强大的轻量级可扩展主机检测分类SitRep工具

发布时间:2021-10-25 14:56:01 来源:亿速云 阅读:146 作者:iii 栏目:编程语言

本篇内容主要讲解“如何使用功能强大的轻量级可扩展主机检测分类SitRep工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用功能强大的轻量级可扩展主机检测分类SitRep工具”吧!

SitRep

SitRep旨在提供一个轻量级的、可扩展的主机分类替代方案。这个方案可以在运行时通过独立文件来动态加载检查机制,这将允许研究人员快速修改现有检查,或根据需要添加新检查。

这里的检查按类别分组,可以标记为OpSec safe/unsafe,并且只有在提供了/AllowUnsafe参数时才会进行不安全的检查。

方案所检测到的有意思的结果将使用“[*]”符号进行标记。

检查分类方案

SitRep的检查机制可以划分为各种不同的类别,这样可以更加有效地为研究人员提供可用信息。当前的SitRep提供了以下检查分类方案。

环境

CurrentUser.cs - 当前用户

DomainName.cs - 域名

HostName.cs - 主机名

LoggedOnUsers.cs - 显示所有已登录用户

OSVersion.cs - 操作系统版本信息

VirtualEnvironment.cs - 检查我们是否在虚拟化环境中运行

userEnvironmentVariables.cs - 获取应用于当前进程的环境变量

SystemEnvironmentVariables.cs - 从注册表(HKLM)获取系统环境变量

NameServers.cs - 获取每个网络接口的DNS服务器

防御

AVProcesses.cs - 检查是否有任何已知的AV进程正在运行

权限

Integrity.cs - 获取当前进程的完整性级别

LocalAdmin.cs - 检查我们是否是本地管理员

Privileges.cs - 列出我们目前的特权

UACLevel.cs - 获取UAC级别

UserDomainGroups.cs - 获取用户域组成员身份

ComputerDomainGroups.cs - 获取计算机所属的域组

软件

InstalledBrowsers.cs - 列出终端节点上安装的浏览器

凭证

CredentialManager.cs - 检索存储在Windows凭据管理器中的当前用户的凭证

下列检测当前不会被标记为OpSec safe:

CredentialManager.cs

ComputerDomainGroups.cs

UserDomainGroups.cs

如果有需要的话,你可以修改相关的配置并更新OpSec标签。

禁用某项检测

默认配置下,SitRep的所有检测都是自动启用的。到那时,由于所有的检测都是动态加载的,因此我们是可以根据需要来禁用某些检测的。

CheckBase中包含了一个名为“Enabled”的布尔值选项,该选项默认为True。我们可以通过添加构造函数来在派生类中进行自定义设置。下面的例子中我们将禁用当前用户的检测(CurrentUser.cs):

public CurrentUser()

{

    base.Enabled = false;

}

排除某项检测

由于检测是动态加载的,因此我们同样可以排除某项检测。最简单的方法就是在Visual Studio中,右键点击目标检测类,然后选择“exclude from project”。

使用样例

运行所有检测:

SitRep.exe /AllowUnsafe

仅进行OpSec safe检测(默认):

SitRep.exe

SitRep执行样例:

如何使用功能强大的轻量级可扩展主机检测分类SitRep工具

添加检测

SitRep的所有检测类都继承自CheckBase基类,并且实现了ICheck接口,这样可以强制实现动态监测加载的需求。当然了,我们也可以根据需要去调用其他的方法或增加其他的类。

ICheck接口暴露了下列属性和方法:

IsOpsecSafe (bool) - 表明检测是否为OpSec safe

DisplayOrder (int) - 在其显示组中显示此检查结果的顺序

Check() - 调用执行实际检测的方法

派生类必须重写CheckBase中定义的“ToString()”方法,并在显示每个检查的输出时调用此方法。

本地访问方法是通过“NativeMethods”目录中的类来提供的,每一个类都以它们需要交互的DLL来进行名命。

每一个检查都要自己负责处理自己的错误,整个检测方法都会封装在一个try-catch语句块中。

空的检测方法如下所示:

using SitRep.Interfaces;

using System;

 

namespace SitRep.Checks.Software

{

    class ExampleCheck : CheckBase, ICheck

    {

        public bool IsOpsecSafe => true;

 

        public int DisplayOrder => 1;

 

        public Enums.Enums.CheckType CheckType => Enums.Enums.CheckType.Credential;

 

        public void Check()

        {

            try

            {

                throw new NotImplementedException();

            }

            catch

            {

                Message = "Check failed [*]";

            }

        }

 

        public override string ToString()

        {

            throw new NotImplementedException();

        }

    }

}

到此,相信大家对“如何使用功能强大的轻量级可扩展主机检测分类SitRep工具”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI