Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Bitmancer — Librería de Nim para Desarrollo de Seguridad Ofensiva | Kitploit
Herramientas/GitHubGitHub/zimawhit3/bitmancer
Evasión de IDS/IPSShellcodePost-ExplotaciónUtilidades y FrameworksAnálisis de BinariosRed TeamingDesarrollo de Payloads
GitHubzimawhit3/bitmancer

Bitmancer

Librería de Nim para Desarrollo de Seguridad Ofensiva

Ver Repositorio
20021hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Bitmancer

Bitmancer es una biblioteca para el desarrollo de herramientas de Seguridad Ofensiva para el sistema operativo Windows, escrita en Nim. Su objetivo es proporcionar API, rutinas y macros comunes con implementaciones altamente configurables, independientes de la posición y autónomas.

Si buscas desarrollar un Implant, probar un PoC rápido o escribir una herramienta nueva y brillante, ¡Bitmancer puede ayudarte a empezar!

⚠️ ¡Este repositorio es actualmente un enorme WIP! Puede haber problemas al usarlo y no hay garantías de estabilidad por el momento. ⚠️

Dependencias

Bitmancer usa parcialmente winim para sus tipos. Para instalarlo, ejecuta:

nimble install winim

Instalación

Bitmancer aún no forma parte del repositorio de nimble. Por ahora, puedes instalarlo desde Github simplemente ejecutando:

nimble install https://github.com/zimawhit3/Bitmancer

Compilación

MingW y Nim introducirán dependencias en MSVCRT y Kernel32, así como variables globales usadas por el módulo System de Nim. Si quieres evitarlas para código independiente de la posición, usa el nim.cfg provisto.

Para compilar: nim c -d:mingw <Tu_Archivo_Nim>

Uso

Para todos los módulos:

root@kitploit:~
import Bitmancer

Si no necesitas rutinas NTDLL o syscalls, puedes simplemente usar:

root@kitploit:~
import Bitmancer/core

Para solo los procedimientos de hash:

root@kitploit:~
import Bitmancer/core/obfuscation/hash

TODOs actuales:

  • Definiciones de tiempo de compilación simplificadas (¿YAML?)
  • CI/CD
  • Ejemplos
  • Documentación
  • Semilla de hash de tiempo de compilación más grande
  • ¡Pruebas!

Características

Características actualmente soportadas:

  • Resolución de nombres ApiSet
  • APIs comunes (GetProcAddress, GetModuleHandle, GetSystemTime, etc.)
  • Hashing
    • Tiempo de compilación
    • Tiempo de ejecución
  • Manual Mapper
    • Desde disco
    • Desde memoria 🚧
      • DLLs 🚧
      • COFFs 🚧
  • NTDLL
    • Syscalls Nt*
    • Procedimientos Rtl*
  • Base de datos NTLoader
    • Listas enlazadas (LDR_DATA_TABLE_ENTRY)
    • Árboles rojo-negro (RTL_BALANCED_NODE)
  • Análisis y utilidades de ejecutables portátiles (PE)
  • Enumeración de SSN
    • Hell's Gate
    • Halo's Gate
    • Tartarus' Gate
    • LdrThunkSignatures
    • ZwCounter
  • Cadenas de pila (Stack Strings)
  • Técnicas de evasión de syscalls
    • Syscalls directos
    • Syscalls indirectos

Características futuras que pretendo soportar:

  • Rutinas y utilidades Anti-Debug
  • Cifrado
  • Manejo de excepciones
  • Callbacks
    • Instrumentados
    • Nativos
    • VEH
  • Rutinas y utilidades de hooking
  • Más wrappers de NTDLL
  • Técnicas de evasión de Sleep
    • Death Sleep
    • CreateTimerQueueTimer
  • Spoofing de pila
  • Técnicas de evasión de syscalls
    • Tamper

Si hay alguna característica/técnica que te gustaría que implementara, ¡házmelo saber!

Ejemplos

Stack Strings:

root@kitploit:~
var wStr {.stackStringW.} = "Hello!"
var cStr {.stackStringA.} = "World!"

Si buscas generar un wrapper alrededor de un syscall no disponible actualmente, el flujo básico es el siguiente:

root@kitploit:~
## Import syscalls
import Bitmancer/syscalls

## For hashing
import Bitmancer/core/obfuscation/hash

## Define your type
type NtClose = proc(h: HANDLE): NTSTATUS {.stdcall, gcsafe.}

## Generate the wrapper
genSyscall(NtClose)

## Define configurations for how to retrieve and execute the syscall

## The procedure's symbol enumeration method - available options are:
## UseEAT - use the export address table to resolve the symbol
## UseIAT - use the import address table to resolve the symbol
## UseLdrThunks - use the NTLoader's LdrThunkSignatures to map a clean NTDLL to resolve symbols from
const symEnum = SymbolEnumeration.UseEAT

## The SSN enumeration method - available options are:
## HellsGate
## HalosGate
## TartarusGate
## ZwCounter
const ssnEnum = SsnEnumeration.HellsGate

## Finally, the execution method - available options are:
## Direct   - use the direct syscall stub
## Indirect - use the indirect syscall stub
const exeEnum = SyscallExecution.Indirect

## Define an ident to use to identify the symbol
const NtCloseHash = ctDjb2 "NtClose"

## Retrive NTDLL
let Ntdll = ? NTDLL_BASE()

## Call ctGetNtSyscall, retrieving the NtSyscall object containing the SSN, pointer to the address of the function
## and a casted stub to your type.
let NtSyscall = ctGetNtSyscall[NtClose](Ntdll, ModuleHandle(NULL), NtCloseHash, symEnum, ssnEnum, exeEnum)

## Finally, call the wrapper!
NtCloseWrapper(h, NtSyscall.wSyscall, NtSyscall.pSyscall, NtSyscall.pFunction)

Consulta el ejemplo runShellCode para un ejemplo completo.
Más ejemplos también se pueden encontrar en ntdll.

Descargar herramienta
  • Soporte x86