MeXiCOSINT 📞🔍
Herramienta OSINT enfocada en análisis, validación, enriquecimiento y reportes de números telefónicos mexicanos.
Descripción 🧭
MeXiCOSINT es una herramienta de OSINT desarrollada en Python y enfocada en números telefónicos mexicanos.
La herramienta puede validar números, analizar formatos mexicanos, consultar fuentes opcionales mediante API, procesar metadatos disponibles y generar resultados útiles para investigación autorizada.
Este proyecto está en fase beta. Los resultados deben tratarse como indicadores OSINT, no como evidencia absoluta.
Características ✨
- Validación de números telefónicos mexicanos
- Formato nacional e internacional
- Análisis local de números mexicanos
- Enriquecimiento opcional mediante APIs externas
- Procesamiento relacionado con IFT/SNS
- Búsquedas OSINT mediante enlaces públicos para WhatsApp y redes sociales
- Base oficial IFT/PNN integrada: 177k+ bloques de numeración asignada, consulta offline
- Operadora, modalidad y fecha de asignación directo del regulador
- Localidad canónica IFT/LADA: bloque IFT exacto como fuente primaria y LADA como respaldo o apoyo
- Series no geográficas 200/300/500/800/900 con alerta de números premium (900)
- Estado estructurado por proveedor:
missing,not_requested,configured_unverified,request_success,no_result,auth_failed,quota_exceededy más - Fuente de geocodificación seleccionada visible en el resultado
- Gestión de API keys desde la CLI (
--set-key,--list-keys,--config-path) - Rendimiento concurrente (v2.5.3): llamadas a APIs en paralelo (asyncio + aiohttp), pooling de conexiones HTTPS y memoización de normalización y geocodificación
- Soporte para reportes o salidas generadas según la versión
- Modo telefónico únicamente: sin proveedores IP ni escaneo IP
Estructura del repositorio 📂
MeXiCOSINT/
├── bin/
│ └── mexicosint
├── docs/
│ ├── INSTALL.md
│ ├── USAGE.md
│ ├── CONFIG.md
│ ├── ENGLISH.md
│ └── index.html
├── src/
│ └── mexicosint/
│ ├── __init__.py
│ ├── __main__.py
│ ├── cli.py
│ ├── config.py
│ ├── evidence.py
│ ├── locality.py
│ ├── main.py
│ ├── microvault_bridge.py
│ ├── numbering.py
│ ├── presentation.py
│ ├── reporting.py
│ ├── core/
│ │ ├── models.py
│ │ ├── scan_result.py
│ │ └── settings.py
│ ├── data/
│ │ ├── lada.py
│ │ ├── ift_blocks.csv.gz
│ │ └── ift_ng_blocks.csv.gz
│ ├── modules/
│ │ ├── ift_blocks.py
│ │ └── local_parser.py
│ ├── providers/
│ │ ├── abstract.py
│ │ ├── base.py
│ │ ├── geoapify.py
│ │ ├── ipqualityscore.py
│ │ ├── models.py
│ │ ├── nominatim.py
│ │ ├── numverify.py
│ │ ├── opencage.py
│ │ └── status.py
│ └── services/
│ └── scanner.py
├── tools/
│ └── update_ift_blocks.py
├── pyproject.toml
├── requirements.txt
├── .gitignore
├── LICENSE
└── README.md
Instalación ⚙️
Opción 1: pipx (recomendada)
MeXiCOSINT está publicado en PyPI. La forma recomendada de instalarlo es con pipx, que instala el comando de forma global pero aislada, sin tocar el Python del sistema (importante en Kali Linux).
sudo apt install -y pipx
pipx install mexicosint
Después solo ejecuta:
mexicosint
Para actualizar a una nueva versión:
pipx upgrade mexicosint
Opción 2: pip directo
Si prefieres pip (fuera de Kali, o usando --break-system-packages en Kali):
pip install mexicosint
Opción 3: clonar el repositorio
Útil si quieres modificar el código o colaborar:
git clone https://github.com/KiMiGuel/MeXiCOSINT.git
cd MeXiCOSINT
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
Actualizar la base IFT (opcional)
El paquete ya incluye la base. Para actualizarla con el plan vigente del IFT:
python3 tools/update_ift_blocks.py
Uso ▶️
Ejecuta MeXiCOSINT usando el comando:
mexicosint 5512345678
mexicosint +525512345678
Gestión de API keys desde la CLI:
mexicosint --set-key opencage TU_KEY
mexicosint --set-key geoapify TU_KEY
mexicosint --set-key ipqualityscore TU_KEY
mexicosint --set-key abstract TU_KEY
mexicosint --set-key numverify TU_KEY
mexicosint --list-keys
mexicosint --config-path
Si clonaste el repositorio, también puedes usar el launcher sin instalar el comando global:
bash bin/mexicosint 5512345678
O ejecutar el módulo del paquete:
PYTHONPATH=src python3 -m mexicosint 5512345678
Si tienes MicroVault instalado (ver más abajo, "¿Tienes MicroVault?"), se detecta y se usa automáticamente — no hace falta ninguna flag; --no-microvault lo omite y --microvault fuerza la conexión.
Documentación 📚
| Guía | Descripción |
|---|---|
| Guía de instalación | Instrucciones de instalación para Kali, Debian, Ubuntu y sistemas similares |
| Guía de uso | Uso completo: opciones, ejemplos, base IFT, API keys |
| Guía de configuración | Configuración local y manejo de API keys |
| Documentación en inglés | Documentación completa en inglés |
APIs opcionales 🔗
Algunas funciones pueden depender de API keys externas.
| Servicio | Función |
|---|---|
| AbstractAPI | Validación y enriquecimiento telefónico como evidencia de apoyo |
| NumVerify | Validación secundaria como evidencia de apoyo |
| OpenCage | Geocodificación primaria opcional de localidad IFT/LADA |
| Geoapify | Geocodificación fallback opcional de localidad IFT/LADA |
| IPQualityScore | Validación, reputación y abuso telefónico como evidencia de apoyo |
Formatos aceptados: +526634647308, 526634647308, 6634647308, +52 663 464 7308, 52-663-464-7308, (663) 464-7308.
La localidad se arma desde IFT/LADA como <ciudad o municipio>, <estado>, Mexico. Los valores vagos de APIs externas, como país, región o etiquetas genéricas, no se geocodifican ni reemplazan la localidad canónica.
Los proveedores se usan automáticamente cuando su key existe; si falta una key, esa fuente se omite sin detener el análisis.
Las API keys deben mantenerse en tu entorno local. No las subas a GitHub.
Seguridad 🔒
No subas archivos como:
.env
*.env
config.json
secrets.json
keys.json
.mx_osint_config.json
Ruta local recomendada para configuración:
~/.mx_osint_config.json
Permisos recomendados:
chmod 600 ~/.mx_osint_config.json
Advertencia ⚠️
MeXiCOSINT está diseñado para investigación autorizada, autoauditoría y flujos educativos de OSINT.
No uses esta herramienta para acoso, doxxing, fraude, amenazas o actividades no autorizadas.
La herramienta no garantiza identidad, ubicación exacta, propiedad ni atribución definitiva de un número telefónico.
¿Tienes MicroVault? 🔐
MicroVault es una bóveda local y cifrada para tus API keys: un solo archivo, una sola contraseña maestra, sin nube ni cuentas. Tus keys se guardan cifradas en disco y solo se descifran cuando las necesitas.
Si no tienes MicroVault, no te preocupes: MeXiCOSINT sigue funcionando normalmente con el archivo JSON (~/.mx_osint_config.json) o con variables de entorno — puedes saltarte esta sección.
Si nunca lo has configurado, esto es todo lo que necesitas, de cero:
1. Instala MicroVault
pip install microvault
2. Guarda las 5 keys que usa MeXiCOSINT
Estos son los nombres exactos que MeXiCOSINT busca en la bóveda — no son los mismos que los nombres de --set-key:
microvault add geoapify
microvault add opencage_api
microvault add ipgs
microvault add numverify_api
microvault add abstract_api
microvault add <nombre> pide la key con un prompt oculto — nunca se escribe en la misma línea, nunca queda en tu historial de shell.
3. Agrúpalas en un perfil
Esto hace que MeXiCOSINT solo vea esas 5 keys — nunca el resto de tu bóveda, aunque tengas otros servicios guardados ahí para otras herramientas:
microvault profile mexicosint geoapify opencage_api ipgs numverify_api abstract_api
4. Ejecuta MeXiCOSINT normalmente
mexicosint 5512345678
Nada más. MeXiCOSINT detecta MicroVault automáticamente — no necesitas --microvault. Si las keys no están ya en el entorno, pide la contraseña maestra una vez por cada proceso de MeXiCOSINT y carga las 5 keys del perfil juntas.
Si vas a hacer muchas búsquedas
Desbloquea el perfil una vez por cada terminal abierta:
eval "$(microvault env --profile mexicosint)"
Después puedes ejecutar MeXiCOSINT tantas veces como quieras sin volver a escribir la contraseña:
mexicosint NUMERO_1
mexicosint NUMERO_2
mexicosint NUMERO_3
eval no guarda las keys en un archivo: solo las coloca en las variables de entorno de esa terminal. Se olvidan al cerrar la terminal.
Casos especiales:
mexicosint --no-microvault 5512345678 # omite MicroVault aunque este instalado
mexicosint --microvault 5512345678 # fuerza la conexion (falla si no puede)
Si MicroVault necesita abrir su prompt pero MeXiCOSINT se ejecuta desde una terminal no interactiva, muestra un error específico de terminal interactiva. No lo confunde con una contraseña incorrecta.
Nombres de las keys
| Key en MicroVault | Para qué se usa |
|---|---|
geoapify |
Geocodificación de respaldo |
opencage_api |
Geocodificación primaria |
ipgs |
Reputación y abuso telefónico |
numverify_api |
Validación secundaria |
abstract_api |
Enriquecimiento telefónico |
Si tu bóveda usa otros nombres, puedes ajustarlos en src/mexicosint/config.py (variable MICROVAULT_SERVICES) o crear un alias en MicroVault con el comando microvault alias.
Orden de resolución de keys
MeXiCOSINT busca tus API keys en este orden:
- Variables de entorno —
MEXICOSINT_GEOAPIFY_API_KEY,GEOAPIFY_API_KEY, etc. - MicroVault — bóveda cifrada en
~/.microvault/vault.enc, auto-detectada (sin flag) - Archivo JSON —
~/.mx_osint_config.json(opcional)
Si tus keys están en MicroVault o en variables de entorno, el archivo JSON no se crea ni se necesita.
Portense bien cabrones. 🚧
Licencia 📜
Este proyecto se publica bajo la licencia incluida en este repositorio.
Release files for mexicosint 2.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mexicosint-2.7.1.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mexicosint-2.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.9 MB
Release files / mexicosint-2.7.1.tar.gz
| Download URL | mexicosint-2.7.1.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3231be7e33558d437bb5a625c682b8f6ceed8073953df7601439b3384b2e3fe0
|
|
BLAKE2b-256 checksum How to use checksums |
baed37d6882c8b298ce3d2b7edd98c0c97e0bc5f80af2135a74b17e71b256081
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / mexicosint-2.7.1-py3-none-any.whl
| Download URL | mexicosint-2.7.1-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
afc71eb0526220e422a9ef8d8f1815344b490bb42a388ec968007210de9106f9
|
|
BLAKE2b-256 checksum How to use checksums |
b3c28a68325d99aa95f24f8a01adbde87e1001c75929b836dd5dffcd2fcfd752
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log