
रेड टीमों के लिए विस्तार योग्य होस्ट ट्राएज टूल, जो Windows एंडपॉइंट्स से execute-assembly के माध्यम से उपयोगकर्ता, डोमेन, विशेषाधिकार और क्रेडेंशियल जानकारी एकत्र करने के लिए OpSec-जागरूक जांचों को गतिशील रूप से लोड करता है।
विस्तार योग्य, कॉन्फ़िगर करने योग्य होस्ट ट्राइएज।
SitRep एक हल्का, विस्तार योग्य होस्ट ट्राइएज विकल्प प्रदान करने के लिए है। जांचें रनटाइम पर स्टैंड-अलोन फ़ाइलों से गतिशील रूप से लोड की जाती हैं। यह ऑपरेटरों को मौजूदा जांचों को जल्दी से संशोधित करने, या आवश्यकतानुसार नई जांचें जोड़ने की अनुमति देता है।
जांचें श्रेणी के अनुसार समूहित की जाती हैं और OpSec सुरक्षित/असुरक्षित के रूप में चिह्नित की जा सकती हैं। असुरक्षित जांचें केवल तब लोड की जाती हैं जब /AllowUnsafe फ़्लैग प्रदान किया जाता है।
दिलचस्प परिणामों को "[*]" से हाइलाइट किया जाता है।
जांचें श्रेणियों में विभाजित की गई हैं। यह उन्हें उपयुक्त समूहों में प्रदर्शित करने की अनुमति देता है। वर्तमान में निम्नलिखित जांचें उपलब्ध हैं:
पर्यावरण
सुरक्षा
अनुमतियाँ
सॉफ़्टवेयर
क्रेडेंशियल्स
निम्नलिखित जांचें वर्तमान में OpSec सुरक्षित नहीं के रूप में चिह्नित हैं:
आपको इस कॉन्फ़िगरेशन की समीक्षा करनी चाहिए और आवश्यकतानुसार OpSec टैग अपडेट करने चाहिए।
सभी जांचें डिफ़ॉल्ट रूप से सक्षम हैं। हालांकि, चूंकि जांचें गतिशील रूप से लोड की जाती हैं, उन्हें अक्षम करना संभव है।
एक जांच को अक्षम करना
CheckBase में एक बूलियन "Enabled" गुण शामिल है, जो डिफ़ॉल्ट रूप से true होता है। इसे एक कंस्ट्रक्टर जोड़कर व्युत्पन्न वर्ग में सेट किया जा सकता है। नीचे दिया गया उदाहरण CurrentUser जांच (CurrentUser.cs) को अक्षम करता है:
public CurrentUser()
{
base.Enabled = false;
}
बिल्ड से जांचों को बाहर करना
चूंकि जांचें गतिशील रूप से लोड की जाती हैं, बिना अन्य संशोधनों के बिल्ड से एक जांच को बाहर करना संभव है। ऐसा करने का सबसे आसान तरीका Visual Studio में जांच वर्ग पर राइट-क्लिक करें और "exclude from project" चुनें। जांच को उसी संदर्भ मेनू से "include in project" चुनकर पुनः जोड़ा जा सकता है।
इस दृष्टिकोण का लाभ यह है कि यह संकलित आर्टिफैक्ट से कोड को हटा देता है।
सभी जांचें चलाएं
SitRep.exe /AllowUnsafe
केवल OpSec सुरक्षित जांचें चलाएं (डिफ़ॉल्ट)
SitRep.exe
SitRep को execute-assembly (या समतुल्य) के माध्यम से निष्पादित करने के लिए डिज़ाइन किया गया है

जांचें CheckBase से इनहेरिट करती हैं और ICheck इंटरफ़ेस को लागू करती हैं। यह गतिशील जांच लोडिंग के लिए आवश्यक पैटर्न को लागू करता है। आवश्यकतानुसार अन्य विधियाँ और वर्ग जोड़े जा सकते हैं।
ICheck इंटरफ़ेस निम्नलिखित गुणों और विधियों को उजागर करता है:
व्युत्पन्न वर्गों को CheckBase में परिभाषित "ToString()" विधि को ओवरराइड करना होगा। प्रत्येक जांच के आउटपुट को प्रदर्शित करते समय यह विधि कॉल की जाती है।
मूल विधियों तक पहुंच "NativeMethods" फ़ोल्डर में वर्गों के माध्यम से प्रदान की जाती है। प्रत्येक वर्ग का नाम उस dll के नाम पर रखा गया है जिसके साथ वह इंटरैक्ट करता है।
जांचें अपनी स्वयं की त्रुटि प्रबंधन प्रदान करने के लिए जिम्मेदार हैं। वर्तमान जांचें पूरे "check" विधि को 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();
}
}
}
PRs का स्वागत है। कृपया सुनिश्चित करें कि जांचें स्वतंत्र हों (अर्थात अन्य जांचों के आउटपुट पर निर्भर न हों)। जहां तक संभव हो, जांचें स्व-निहित होनी चाहिए, जिसमें सभी एकल-उपयोग कोड जांच वर्ग के भीतर मौजूद हो।
क्या आपने कभी डोमेन-जॉइन्ड Windows एंडपॉइंट का मॉक बनाने की कोशिश की है? इसलिए।
SitRep Seatbelt, SharpUp और यादृच्छिक StackOverflow पोस्ट्स से कोड का उपयोग करता है। जहां उपयुक्त हो वहां क्रेडिट जोड़े गए हैं।