By using this site, you agree to the Privacy Policy and Terms of Use.
Accept
Security Parrot - Cyber Security News, Insights and ReviewsSecurity Parrot - Cyber Security News, Insights and Reviews
Notification
Latest News
OpenAI may use Associated Press archive for AI training
July 14, 2023
EU users can hold conversations with Google Bard from training set
July 14, 2023
Aptos, the new default font for Microsoft Office
July 14, 2023
BlackLotus UEFI bootkit sources published on GitHub
July 14, 2023
Hackers from the XDSpy cyber-espionage group attacked Russian organizations on behalf of the Ministry of Emergency Situations
July 14, 2023
Aa
  • News
  • Tutorials
  • Security InsiderComing Soon
  • Expert InsightComing Soon
Reading: Analysis of Windows Active Directory environment using BloodHound
Share
Security Parrot - Cyber Security News, Insights and ReviewsSecurity Parrot - Cyber Security News, Insights and Reviews
Aa
Search
  • News
  • Tutorials
  • Security InsiderComing Soon
  • Expert InsightComing Soon
Follow US
Security Parrot - Cyber Security News, Insights and Reviews > Featured > Analysis of Windows Active Directory environment using BloodHound
Featured

Analysis of Windows Active Directory environment using BloodHound

Last updated: 2020/07/19 at 5:43 PM
Jim Koohyar Biniyaz Published July 18, 2020
Share
SHARE

This article examines the analysis of a Windows Active Directory environment using BloodHound .

Contents
Installation of BloodHoundBloodHound settingsLaunch BloodhoundBloodHound operation checkData collection with IngestorsSharpHoundUtilities that use BloodHound data

BloodHound ( https://github.com/BloodHoundAD/BloodHound ) is a tool for clarifying unintended relationships in the Active Directory environment based on graph theory. This allows you Domain Adminsto discover paths for migrating to other users or groups, such as elevating privileges to low-privileged users.

Installation of BloodHound

Here, Kali Linux 2020.1with respect to BloodHound Version: 3.0.2you through the installation of apt BloodHound can be installed using the package management command . The command syntax is, apt-get install bloodhoundis. In advance, apt-get updateand apt-get dist-upgraderun the command, you must have the system up-to-date state.

root@kali:~$ sudo apt-get install bloodhound
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  neo4j
The following NEW packages will be installed:
  bloodhound neo4j
0 upgraded, 2 newly installed, 0 to remove and 501 not upgraded.
Need to get 154 MB of archives.
After this operation, 350 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling/main amd64 neo4j all 3.5.3-0kali1 [98.1 MB]
Get:2 http://linux3.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling/main amd64 bloodhound amd64 3.0.2-0kali1 [55.5 MB]
Fetched 154 MB in 18s (8,640 kB/s)                                                            
Selecting previously unselected package neo4j.
(Reading database ... 255564 files and directories currently installed.)
Preparing to unpack .../neo4j_3.5.3-0kali1_all.deb ...
Unpacking neo4j (3.5.3-0kali1) ...
Selecting previously unselected package bloodhound.
Preparing to unpack .../bloodhound_3.0.2-0kali1_amd64.deb ...
Unpacking bloodhound (3.0.2-0kali1) ...
Setting up neo4j (3.5.3-0kali1) ...
Setting up bloodhound (3.0.2-0kali1) ...
Processing triggers for kali-menu (2020.1.7) ...

BloodHound settings

BloodHound relies on Neo4j ( https://neo4j.com/ ). Neo4j is a graph database management system. Is installed with apt-get install bloodhound command syntax . After the installation with the command is completed, configure Neo4j. First, at the command syntax, to start the Neo4j.BloodHound Version: 3.0.2neo4j 3.5.3 aptsudo neo4j console

times @ times: ~ $ sudo neo4j console
Active database: graph.db
Directories in use:
  home:         /usr/share/neo4j
  config:       /usr/share/neo4j/conf
  logs:         /usr/share/neo4j/logs
  plugins:      /usr/share/neo4j/plugins
  import:       /usr/share/neo4j/import
  data:         /usr/share/neo4j/data
  certificates: /usr/share/neo4j/certificates
  run:          /usr/share/neo4j/run
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
2020-02-29 12: 39: 25,465 + 0000 INFO ======== Neo4j 3.5.3 ========
2020-02-29 12:39:25.538+0000 INFO  Starting...
2020-02-29 12:39:34.831+0000 INFO  Bolt enabled on 127.0.0.1:7687.
2020-02-29 12:39:40.123+0000 INFO  Started.
2020-02-29 12:39:44.086+0000 INFO  Remote interface available at http://localhost:7474/

Next, access http://localhost:7474/ with a browser. After entering the default password ( neo4j / neo4j ), you will be prompted to change the password. Follow the instructions to enter a new password. The account entered here will also be used to log in to BloodHound.

This section uses the following settings.

Database URL: bolt://localhost:7687 DB Username: neo4j DB Password: blood

Launch Bloodhound

From a terminal, bloodhoundexecute a command and launch it (must be open in the background).

times @ times: ~ $ bloodhound

BloodHound operation check

A DBCreator.pyscript to create random test data is provided to confirm the operation of BloodHound ( https://github.com/BloodHoundAD/BloodHound-Tools/tree/master/DBCreator ).

Use the following command syntax to duplicate a repository.

times @ times: ~ $ git clone https://github.com/BloodHoundAD/BloodHound-Tools
Cloning into 'BloodHound-Tools'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 111 (delta 0), reused 0 (delta 0), pack-reused 110
Receiving objects: 100% (111/111), 1.59 MiB | 552.00 KiB/s, done.
Resolving deltas: 100% (46/46), done.

pip In command, neo4j-driverto install.

$ sudo apt install python-pip
$ pip -V
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)

$ pip install neo4j-driver
Collecting neo4j-driver
  Downloading https://files.pythonhosted.org/packages/0e/96/bc81664d87975948713f7e4d3d4c3a21a3a6a813d03a161637573a587817/neo4j-driver-1.7.6.tar.gz
Collecting neobolt~=1.7.15 (from neo4j-driver)
  Downloading https://files.pythonhosted.org/packages/0d/b2/eb7c33e1f02cd7bbaf4c237619dd8dc43fa6081f331c2d35b28deb78e259/neobolt-1.7.16.tar.gz (183kB)
    100% |████████████████████████████████| 184kB 1.2MB/s 
Collecting neotime~=1.7.1 (from neo4j-driver)
.
.
.
Successfully built neo4j-driver neobolt neotime
Installing collected packages: neobolt, pytz, neotime, neo4j-driver
Successfully installed neo4j-driver-1.7.6 neobolt-1.7.16 neotime-1.7.4 pytz-2019.3

DBCreator.py The script is python2 described in. Therefore, specify python2 and execute explicitly .

kali@kali:~$ cd BloodHound-Tools/
kali@kali:~/BloodHound-Tools$ ls
bloodhoundanalytics.pbix  bloodhoundanalytics.py  DBCreator  LICENSE  README.md
kali@kali:~/BloodHound-Tools$ cd DBCreator/
kali@kali:~/BloodHound-Tools/DBCreator$ python2 DBCreator.py
================================================================
BloodHound Sample Database Creator
================================================================

Documented commands (type help <topic>):
========================================
clear_and_generate  connect   exit      help       setnodes
cleardb             dbconfig  generate  setdomain

(Cmd)

DBCreator.py dbconfig Executes commands according to the script’s user interface . neo4jEnter your credentials.

(Cmd) dbconfig
Current Settings:
DB Url: bolt://localhost:7687
DB Username: neo4j
DB Password: neo4jj

Enter DB URL [bolt://localhost:7687] 
Enter DB Username [neo4j] 
Enter DB Password [neo4jj] blood

New Settings:
DB Url: bolt://localhost:7687
DB Username: neo4j
DB Password: blood

Testing DB Connection
Database Connection Successful!

**DBCreator.py generate ** Executes commands according to the script’s user interface . Generate test data.

(Cmd) generate
Starting data generation with nodes=500
Populating Standard Nodes
Adding Standard Edges
Generating Computer Nodes
Creating Domain Controllers
Generating User Nodes
Generating Group Nodes
Adding Domain Admins to Local Admins of Computers
Creating 25 Domain Admins (5% of users capped at 30)
Applying random group nesting
Adding users to groups
Calculated 7 groups per user with a variance of - 6
Adding local admin rights
Adding RDP/ExecuteDCOM/AllowedToDelegateTo
Adding sessions
Adding Domain Admin ACEs
Creating OUs
Creating GPOs
Adding outbound ACLs to 3 objects
Marking some users as Kerberoastable
Adding unconstrained delegation to a few computers
Database Generation Finished!

After Bloodhound you create the test data and log on, BloodHound draws a group named “Domain Admins” and shows the valid users belonging to that group.

In the [Database Info] tab on the left corner, you can see the statistics of the registered data. The information that can be confirmed on the tab is as follows.

[Database Info]

  • Users – Users on the network extracted from Active Directory
  • Computers – various endpoints on networks, servers, workstations and other devices
  • Groups- Various AD groups extracted from Active Directory
  • Sessions- The amount of user sessions on computers on the network extracted by Ingestors
  • ACL -access control list, various permissions and access for users and groups
  • Relationships -Group memberships, users, user sessions, other relevant information, etc.

In the [Queries] tab in the left corner, you can see the display with some prepared analytic queries.

[Queries] > [Pre-Built Analytics Queries] > [Shortest Paths to High Value Targets] Screen when a query is selected.

Data collection with Ingestors

So far, BloodHound and neo4j have been installed and configured. From here, we will use BloodHound to analyze the data of the target network.

Use “ Ingestors “ on the target system or domain . Ingestors queries the domain controller and Active Directory to retrieve all trust relationships, group policy settings, and Active Directory objects.

The BloodHound git repository ( https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors ) contains two different Ingestors.

  • SharpHound.exe: A program written in C #
  • Invoke-BloodHound: PowerShell script that loads C # binaries by reflection

SharpHound

SharpHound.exe Data is collected using a program that is BloodHound’s Ingestors . Here, Https://Github.Com/BloodHoundAD/BloodHound/tree/master/Ingestors

SharpHound.exe Use to collect data from Active Directory. First, powershell launch Then, SharpHound.exe run 🙂

The collected data is compressed in ZIP format ( 20200306061240_BloodHound.zip) SharpHound.exeand created in the folder where the was executed.

PS C:\Tools> .\SharpHound.exe -c all -d active.htb --domaincontroller 10.10.10.100
----------------------------------------------
Initializing SharpHound at 6:12 AM on 3/6/2020
----------------------------------------------

Resolved Collection Methods: Group, Sessions, LoggedOn, Trusts, ACL, ObjectProps, LocalGroups, SPNTargets, Container

[+] Creating Schema map for domain ACTIVE.HTB using path CN=Schema,CN=Configuration,DC=ACTIVE,DC=HTB
[+] Cache File not Found: 0 Objects in cache

[+] Pre-populating Domain Controller SIDS
Status: 0 objects finished (+0) -- Using 19 MB RAM
Enumeration finished in 00:02:52.3983535
Compressing data to .\20200306061240_BloodHound.zip
You can upload this file directly to the UI

SharpHound Enumeration Completed at 6:16 AM on 3/6/2020! Happy Graphing!

*20200306061240_BloodHound.zip Load the collected data ( ) with BloodHound. From the BloodHound GUI screen [Upload Data], select the menu on the right and load the generated ZIP file. Data can also be read by dragging and dropping a ZIP file onto the BloodHound GUI screen.

Utilities that use BloodHound data

  • CypherDog, https://github.com/SadProcessor/CypherDog
  • GoFetch, https://github.com/GoFetchAD/GoFetch
  • ANGRYPUPPY, https://github.com/vysecurity/ANGRYPUPPY
  • gt-generator, https://github.com/audrummer15/gt-generator

Weekly Updates For Our Loyal Readers!

Jim Koohyar Biniyaz July 18, 2020
Share this Article
Facebook Twitter Email Copy Link Print

Archives

  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • February 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020

You Might Also Like

Google-Chrome
FeaturedNews

28 dangerous extensions detected for Google Chrome and Microsoft Edge

December 18, 2020
Critical Infrastructure Warning! Millions of PLCs, switches, IoT devices are under threat
FeaturedNews

Critical Infrastructure Warning! Millions of PLCs, switches, IoT devices are under threat

December 18, 2020
ids-ips
FeaturedNews

Why Is It Important To Have Intrusion Detection And Prevention ?

November 24, 2020
FeaturedNews

The risk is real: attacks on OT infrastructure

November 11, 2020

© 2022 Parrot Media Network. All Rights Reserved.

  • Home
  • Parrot Media Group
  • Privacy Policy
  • Terms and Conditions
Join Us!

Subscribe to our newsletter and never miss our latest news, podcasts etc..

Zero spam, Unsubscribe at any time.

Removed from reading list

Undo
Go to mobile version
Welcome Back!

Sign in to your account

Lost your password?