
Herramienta de PowerShell que extrae artefactos de Active Directory mediante LDAP o ADWS y genera informes de Excel para auditoría, DFIR y pruebas de penetración.
Este repo contiene actualizaciones del concepto y código original de Prashant Mahajan (@prashant3535) mientras trabajaba en Sense of Security.
ADRecon es una herramienta que extrae y combina diversos artefactos (como se destaca a continuación) de un entorno AD. La información puede presentarse en un informe de Microsoft Excel con un formato especial que incluye vistas resumidas con métricas para facilitar el análisis y proporcionar una imagen holística del estado actual del entorno AD objetivo.
La herramienta es útil para diversas clases de profesionales de la seguridad como auditores, DFIR, estudiantes, administradores, etc. También puede ser una herramienta invaluable de post-explotación para un pentester.
Puede ejecutarse desde cualquier estación de trabajo conectada al entorno, incluso hosts que no son miembros del dominio. Además, la herramienta puede ejecutarse en el contexto de una cuenta no privilegiada (es decir, un usuario de dominio estándar). Fine Grained Password Policy, LAPS y BitLocker pueden requerir cuentas de usuario privilegiadas. La herramienta utilizará Microsoft Remote Server Administration Tools (RSAT) si está disponible; de lo contrario, se comunicará con el Domain Controller mediante LDAP.
La siguiente información es recopilada por la herramienta:
ADRecon fue presentado en: - Slidedeck
|
- Slidedeck
Estas instrucciones te permitirán obtener una copia de la herramienta y ponerla en funcionamiento en tu máquina local.
Features on Demand.
Si tienes git instalado, puedes comenzar clonando el repositorio:
git clone https://github.com/adrecon/ADRecon.git
De lo contrario, puedes descargar un archivo zip de la última versión. La intención es mantener siempre la rama master en un estado funcional.
Para ejecutar ADRecon en un host miembro del dominio.
PS C:\> .\ADRecon.ps1
Para ejecutar ADRecon en un host miembro del dominio como un usuario diferente.
PS C:\>.\ADRecon.ps1 -DomainController <IP or FQDN> -Credential <domain\username>
Para ejecutar ADRecon en un host no miembro usando LDAP.
PS C:\>.\ADRecon.ps1 -Method LDAP -DomainController <IP or FQDN> -Credential <domain\username>
Para ejecutar ADRecon con módulos específicos en un host no miembro con RSAT. (El OutputType predeterminado es STDOUT con el parámetro -Collect)
PS C:\>.\ADRecon.ps1 -Method ADWS -DomainController <IP or FQDN> -Credential <domain\username> -Collect Domain, DomainControllers
Para generar el ADRecon-Report.xlsx basado en la salida de ADRecon (archivos CSV).
PS C:\>.\ADRecon.ps1 -GenExcel C:\ADRecon-Report-<timestamp>
Cuando ejecutes ADRecon, se creará una carpeta ADRecon-Report-<timestamp> que contendrá ADRecon-Report.xlsx y una carpeta CSV con los archivos sin procesar.
-Method <String>
Which method to use; ADWS (default), LDAP
-DomainController <String>
Domain Controller IP Address or Domain FQDN.
-Credential <PSCredential>
Domain Credentials.
-GenExcel <String>
Path for ADRecon output folder containing the CSV files to generate the ADRecon-Report.xlsx. Use it to generate the ADRecon-Report.xlsx when Microsoft Excel is not installed on the host used to run ADRecon.
-OutputDir <String>
Path for ADRecon output folder to save the CSV/XML/JSON/HTML files and the ADRecon-Report.xlsx. (The folder specified will be created if it doesn't exist) (Default pwd)
-Collect <String>
Which modules to run (Comma separated; e.g Forest,Domain. Default all except ACLs, Kerberoast and DomainAccountsusedforServiceLogon)
Valid values include: Forest, Domain, Trusts, Sites, Subnets, SchemaHistory, PasswordPolicy, FineGrainedPasswordPolicy, DomainControllers, Users, UserSPNs, PasswordAttributes, Groups, GroupChanges, GroupMembers, OUs, ACLs, GPOs, gPLinks, GPOReport, DNSZones, DNSRecords, Printers, Computers, ComputerSPNs, LAPS, BitLocker, Kerberoast DomainAccountsusedforServiceLogon.
-OutputType <String>
Output Type; Comma seperated; e.g CSV,STDOUT,Excel (Default STDOUT with -Collect parameter, else CSV and Excel).
Valid values include: STDOUT, CSV, XML, JSON, HTML, Excel, All (excludes STDOUT).
-DormantTimeSpan <Int>
Timespan for Dormant accounts. (Default 90 days)
-PassMaxAge <Int>
Maximum machine account password age. (Default 30 days)
-PageSize <Int>
The PageSize to set for the LDAP searcher object. (Default 200)
-Threads <Int>
The number of threads to use during processing objects (Default 10)
-OnlyEnabled <Bool>
Only collect details for enabled objects.
-Log <Switch>
Create ADRecon Log using Start-Transcript
-Logo <String>
Which Logo to use in the excel file? (Default ADRecon)
Values include: ADRecon, CyberCX, Payatu.
Por favor, reporta todos los bugs, problemas y solicitudes de características en el issue tracker. O avísame (@prashant3535) directamente.
Los pull requests son siempre bienvenidos.
Gracias por el increíble trabajo de @_wald0, @CptJesus, @harmj0y, @mattifestation, @PyroTek3, @darkoperator, @ITsecurityAU Team, @CTXIS Team, @CxCyber Team, @payatulabs Team y otros.
ADRecon es una herramienta que recopila información sobre Active Directory y genera un informe que puede proporcionar una imagen holística del estado actual del entorno AD objetivo.
Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la GNU Affero General Public License tal como la publica la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulta la GNU Affero General Public License para más detalles.
Deberías haber recibido una copia de la GNU Affero General Public License junto con este programa. Si no, consulta http://www.gnu.org/licenses/.
Este programa toma y utiliza código de muchas fuentes. Se hacen todos los intentos por acreditar al autor original. Si encuentras que tu código se utiliza sin la debida acreditación, por favor envía un insulto a @prashant3535, Gracias.