-
Notifications
You must be signed in to change notification settings - Fork 171
Merge Develop to Master for Release v0.4.0-alpha #168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…yKey object causes an issue
Update Registry base
The levels are Cursory, Normal, and Intensive
…lly free data to fix a memory leak caused by the reaction framework not properly handling binary registry keys
Change Hunts to use new levels
Fix a memory leak
Add detections for T1183
Mitigate smb1
Create initial test base
Add Mitigation for V-63597
Client mitigate v1153
Add filesystem module; Update hunt T1100 to use the new filesystem module; Update wrappers
Updated Coverage
* Fix Codacy Issues with README, Update Coverage Maps * Fix typo in T1186, Update coverage map with Partials * Add Status icons for Platform and OS * Update link to attack navigator * Attempt to fix spacing for Codacy * Fix spaces
* Add Mitigation to disable NBT-NS to stop T1171 * Fix typo in comment
Add detections when a webshell is identified
Clean up a few miscellaneous errors for merge to master
* Microsoft's documentation and examples on the Windows API | ||
* The Department of Defense's Defense Information Systems Agency (DISA) for their great work in publishing STIGs and various other technical security guidance for Windows. | ||
* [@hasherezade](https://github.com/hasherezade)'s [PE Sieve](https://github.com/hasherezade/pe-sieve), which currently manages our process analytics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Red Canary's [Atomic Red Team Project](https://github.com/redcanaryco/atomic-red-team) which has been incredibly useful in helping to test the detections we are building | ||
* [@op7ic](https://github.com/op7ic)'s [EDR-Testing-Script](https://github.com/op7ic/EDR-Testing-Script) Project |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* The [MITRE's ATT&CK Project](https://attack.mitre.org/) which has put together an amazing framework for which to consider, document, and categorize attacker tradercraft | ||
* [Sean Metcalf](https://twitter.com/PyroTek3)'s Active Directory Security blog [ADSecurity](https://adsecurity.org/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Microsoft's documentation and examples on the Windows API | ||
* The Department of Defense's Defense Information Systems Agency (DISA) for their great work in publishing STIGs and various other technical security guidance for Windows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
using namespace Mitigations; | ||
|
||
MitigateM1042LLMNR* m1042llmnr = new MitigateM1042LLMNR(mitigationRecord); | ||
MitigateM1042NBT* m1042nbt = new MitigateM1042NBT(mitigationRecord); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
auto key = RegistryKey{ HKEY_LOCAL_MACHINE, L"System\\CurrentControlSet\\Services\\LanManServer\\Parameters" }; | ||
if(key.ValueExists(L"NullSessionPipes")){ | ||
auto values = *key.GetValue<std::vector<std::wstring>>(L"NullSessionPipes"); | ||
auto vGoodValues = std::vector<std::wstring>{}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
} | ||
|
||
if(ptr < size){ | ||
data[ptr] = { static_cast<WCHAR>(0) }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
template<> | ||
bool RegistryKey::SetValue(const std::wstring& name, LPCSTR value, DWORD size, DWORD type) const { | ||
return RegistryKey::SetRawValue(name, { PBYTE(value), strlen(value), AllocationWrapper::STACK_ALLOC }, type); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
template<> | ||
bool RegistryKey::SetValue(const std::wstring& name, LPCWSTR value, DWORD size, DWORD type) const { | ||
return RegistryKey::SetRawValue(name, { PBYTE(value), wcslen(value), AllocationWrapper::STACK_ALLOC }, type); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -35,7 +40,7 @@ class GenericWrapper { | |||
|
|||
public: | |||
|
|||
GenericWrapper(T object, void(*freeFunction)(T) = [](T object){ delete object; }, T BadValue = nullptr) | |||
GenericWrapper(T object, std::function<void(T)> freeFunction = [](T object){ delete object; }, T BadValue = nullptr) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User Level features
Architecture Features