Skip to content

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

Merged
merged 100 commits into from
Feb 8, 2020
Merged

Merge Develop to Master for Release v0.4.0-alpha #168

merged 100 commits into from
Feb 8, 2020

Conversation

ION28
Copy link
Owner

@ION28 ION28 commented Feb 7, 2020

User Level features

  • Monitor: this is a new feature that continuously monitors a Windows system for specific events. From there, BLUESPAWN can automatically launch hunts to take action against malicious activity.
  • New Mitigations:
    • M1025 - LSA Protection
    • M1042 - LLMNR
    • M1042 - NBT-NS
    • M1042 - Windows Script Host
    • V1153 - NTLMv2 is used
    • V63597 - Filter Privileged Tokens over the network (helps against T1075)
    • V63817 - Include Builtin Admin account in UAC
    • V63825 - Prompt for application installations
    • V63829 - UAC is enabled
    • V73519 - SMBv1 is disabled
  • New Hunts:
    • T1055 - Process Injection
    • T1183 - IFEO
  • Updated Hunts:
    • T1050 - Monitor for new services
    • T1100 - Web shells
  • New Reactions including SuspendProcess
  • Updates to the README & docs
  • Hunt Levels changed to Cursory, Normal, and Intensive now

Architecture Features

  • GitHub CI
    • Add x86 builds
  • Integration of PESieve Project
  • Performance improvements with Hunts
  • Major Registry module changes
  • Major Event Log module updates
  • File System module added

wtm99 and others added 30 commits January 23, 2020 12:51
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
Jack-McDowell and others added 7 commits February 7, 2020 14:27
Add filesystem module; Update hunt T1100 to use the new filesystem module; Update wrappers
* 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
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Repository owner deleted a comment from Jack-McDowell Feb 8, 2020
Clean up a few miscellaneous errors for merge to master
@Jack-McDowell Jack-McDowell self-requested a review February 8, 2020 21:35
* 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
Copy link
Owner Author

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
Copy link
Owner Author

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/)
Copy link
Owner Author

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.
Copy link
Owner Author

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);
Copy link
Owner Author

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>{};
Copy link
Owner Author

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) };
Copy link
Owner Author

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);
Copy link
Owner Author

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);
Copy link
Owner Author

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)
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ION28 ION28 merged commit 3b8c797 into master Feb 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants