Este repositorio pretende tener dos propósitos. En primer lugar, proporciona un buen conjunto de comandos básicos de conciencia situacional implementados en un archivo de objetos Beacon (BOF). Esto le permite realizar algunas comprobaciones en un host antes de comenzar a ejecutar comandos que pueden ser más invasivos.
Su objetivo más amplio es proporcionar un ejemplo de código y un flujo de trabajo para que otros comiencen a crear más BOF. Es un documento complementario de la publicación del blog realizada aquí: https://www.trustedsec.com/blog/a-developers-introduction-to-beacon-object-files/
Si desea utilizar el mismo flujo de trabajo que este repositorio, sus pasos básicos son los siguientes:
De manera realista, esto podría comprimirse en un script auxiliar, pero esos pasos no se tomaron para este esfuerzo.
Comandos | Uso | Notas |
---|---|---|
adcs_enum | adcs_enum | Enumerar CA y plantillas en AD usando funciones de Win32 |
adcs_enum_com | adcs_enum_com | Enumere las CA y las plantillas en el AD utilizando el objeto COM ICertConfig |
adcs_enum_com2 | adcs_enum_com2 | Enumere las CA y las plantillas en el AD utilizando el objeto COM IX509PolicyServerListManager |
adv_audit_policies | adv_audit_policies | Recuperar políticas de auditoría de seguridad avanzadas |
arpía | arpía | Listar tabla ARP |
cacls | cacls [ruta de archivo] | Enumere los permisos de usuario para el archivo especificado, se admiten comodines |
directorio | dir [directorio] [/s] | Listar archivos en un directorio. Admite comodines (por ejemplo, "C:WindowsS*") a diferencia del comando CobaltStrike ls |
conductores | conductores | Enumere los servicios instalados Imagepaths para verificar el certificado de firma con proveedores AV/EDR conocidos. |
enum_filter_driver | enum_filter_driver [opción:computadora] | Enumerar los controladores de filtro |
enumeraciónLocalSessions | enumeraciónLocalSessions | Enumerar las sesiones de usuario actualmente conectadas, tanto locales como a través de RDP |
ambiente | ambiente | Listar variables de entorno de proceso |
encontrarmódulo cargado | findLoadedModule [partedelmódulo] [opt:procnamepart] | Encuentre en qué procesos se cargan *modulepart*, buscando opcionalmente solo *procnamepart* |
get_password_policy | get_password_policy [nombre de host] | Obtenga la política de contraseñas y los bloqueos configurados del servidor o dominio de destino |
ipconfig | ipconfig | Enumere la dirección IPv4, el nombre de host y el servidor DNS |
ldapbúsqueda | ldapsearch [consulta] [optar: atributo] [optar: límite_resultados] [optar: nombre de host de DC o IP] [optar: nombre distinguido] | Ejecute búsquedas LDAP (NOTA: especifique *,ntsecuritydescriptor como parámetro de atributo si desea que todos los atributos + ACL codificada en base64 de los objetos, esto se pueda resolver usando BOFHound. Posiblemente podría romper la paginación, aunque todo parecía estar bien durante las pruebas). |
listadns | listadns | Enumere las entradas de la caché de DNS. Intentar consultar y resolver cada uno |
lista_reglas_firewall | lista_reglas_firewall | Listar reglas de firewall de Windows |
mods de lista | listmods [opción: pid] | Listar módulos de proceso (DLL). Apunte al proceso actual si el PID está vacío. Complemento a driversigs para determinar si nuestro proceso fue inyectado por AV/EDR |
listpipes | listpipes | Listar tuberías con nombre |
lugar | lugar | Enumerar el idioma local del sistema, el ID local, la fecha, la hora y el país |
netGroupList | netGroupList [opción: dominio] | Listar grupos del dominio predeterminado o especificado |
miembrosnetGroupList | netGroupListMembers [nombre del grupo] [opt: dominio] | Enumerar los miembros del grupo del dominio predeterminado o especificado |
netLocalGroupList | netLocalGroupList [opción: servidor] | Enumerar grupos locales de la computadora local o especificada |
netLocalGroupListMiembros | netLocalGroupListMembers [nombre del grupo] [opt: servidor] | Enumerar grupos locales de la computadora local o especificada |
netLocalGroupListMembers2 | netLocalGroupListMembers2 [opción: nombre del grupo] [opción: servidor] | Versión modificada de netLocalGroupListMembers que admite BOFHound |
netloggedon | netloggedon [nombre de host] | Devolver usuarios que hayan iniciado sesión en la computadora local o remota |
netloggedon2 | netloggedon2 [opción: nombre de host] | Versión modificada de netloggedon que soporta BOFHound |
sesión de red | sesión de red [opción: computadora] | Enumerar sesiones en la computadora local o especificada |
sesión de red2 | netsession2 [opt:computadora] [opt:método de resolución] [opt:servidor dns] | Versión modificada de netsession que soporta BOFHound |
acciones netas | netshares [nombre de host] | Listar recursos compartidos en la computadora local o remota |
netstat | netstat | Puertos de listado TCP y UDP IPv4 |
tiempo neto | nettime [nombre de host] | Mostrar la hora en la computadora remota |
tiempo de red | netuptime [nombre de host] | Devolver información sobre el tiempo de arranque en la computadora local o remota |
usuario de red | netuser [nombre de usuario] [opt: dominio] | Obtener información sobre un usuario específico. Extraer del dominio si se especifica un nombre de dominio |
netuse_add | netuse_add [nombre compartido] [opt:nombre de usuario] [opt:contraseña] [opt:/DEVICE:nombre del dispositivo] [opt:/PERSIST] [opt:/REQUIREPRIVACY] | Vincular una nueva conexión a una computadora remota |
netuse_delete | netuse_delete [dispositivo||nombre compartido] [opt:/PERSIST] [opt:/FORCE] | Eliminar el dispositivo vinculado/nombre compartido] |
lista_netuse | netuse_list [opción:destino] | Enumere todos los recursos compartidos vinculados o información sobre el recurso local de destino |
vista de red | vista de red | Listar las computadoras accesibles en el dominio actual |
búsquedan | nslookup [nombre de host] [opt:servidor dns] [opt: tipo de registro] | Realice una consulta de DNS. El servidor DNS es el servidor que desea consultar (no especifique o 0 por defecto) El tipo de registro es algo así como A, AAAA o ANY. Algunas situaciones son limitadas debido a los accidentes observados. |
sonda | sonda [host] [puerto] | Compruebe si un puerto específico está abierto |
regsesión | sesión de registro [opt: nombre de host] | Devuelva los SID de los usuarios registrados enumerando HKEY_USERS. Compatible con BOFHound |
consulta_registro | [opt:nombre de host] [colmena] [ruta] [opt:valor a consultar] | Consultar un valor de registro o enumerar una sola clave |
reg_query_recursivo | [opt:nombre de host] [colmena] [ruta] | Enumerar recursivamente una clave comenzando en la ruta |
recursos | recursos | Enumerar el uso de memoria y el espacio disponible en disco en el disco duro principal |
huella de ruta | huella de ruta | Listar rutas IPv4 |
sc_enum | sc_enum [opción:servidor] | Enumerar servicios para información de control de calidad, consulta, qfailure y qtriggers |
sc_qc | sc_qc [nombre del servicio] [opción:servidor] | Impelmentación sc qc en BOF |
sc_qdescripción | sc_qdescription [nombre del servicio] [opción: servidor] | Implementación de sc qdescription en BOF |
sc_qfailure | sc_qfailure [nombre del servicio] [opción:servidor] | Consultar un servicio para condiciones de falla |
sc_qtriggerinfo | sc_qtriggerinfo [nombre del servicio] [opción:servidor] | Consultar un servicio para conocer las condiciones de activación |
consulta_sc | sc_query [opt: nombre del servicio] [opt: servidor] | implementación de consulta sc en BOF |
schtasksenum | schtasksenum [opción: servidor] | Enumerar las tareas programadas en la computadora local o remota |
consulta de tareas | schtasksquery [opción: servidor] [ruta de tareas] | Consultar la tarea dada en la computadora local o remota |
lista de tareas | lista de tareas [opción: servidor] | Enumere los procesos en ejecución, incluidos PID, PPID y ComandLine (usa wmi) |
tiempo de actividad | tiempo de actividad | Enumere el tiempo de inicio del sistema y cuánto tiempo ha estado ejecutándose |
vssenum | vssenum [nombre de host] [opt:nombre compartido] | Enumerar instantáneas en algunos servidores Server 2012+ |
whoami | whoami | Lista whoami/todos |
lista de ventanas | lista de ventanas [opción: todas] | Listar ventanas visibles en la sesión de usuario actual |
wmi_query | consulta wmi_query [opción: servidor] [opción: espacio de nombres] | Ejecute una consulta wmi y muestre los resultados en formato CSV |
Tenga en cuenta que la razón para incluir reg_query cuando CS tiene un comando reg query(v) incorporado es porque éste puede apuntar a computadoras remotas y tiene la capacidad de enumerar recursivamente una clave completa.
El código funcional para la mayoría de estos comandos se tomó del proyecto reaccionaros o de ejemplos de código alojados en MSDN. El código base de driversigs proviene de https://gist.github.com/jthuraisamy/4c4c751df09f83d3620013f5d370d3b9
Gracias a todos los contribuyentes enumerados en contribuyentes. Cada uno de ustedes ha contribuido con algo significativo a este repositorio y se ha ocupado de mí y de mis procesos de revisión. ¡Aprecio a todos y cada uno de ustedes por enseñarme y ayudarme a hacer que este repositorio BOF sea lo mejor posible!
En este proyecto se proporcionan BOF precompilados y se compilan utilizando una versión reciente de Mingw-w64 que normalmente se instala desde Brew.
Estos BOF están escritos teniendo en cuenta la compatibilidad con Windows Vista+. Se ha creado una nueva rama llamada winxp_2003 si necesita utilizar el conjunto principal de BOF en esos sistemas más antiguos. Esta rama permanecerá en un estado con menos soporte. Será funcional, pero no se actualizará con cada nueva función o función que agreguemos.