Type, Which, Apropos y Whatis — Descubrimiento de Comandos
Resolución de comandos en la shell: type (builtin vs binario), which (ruta del ejecutable), apropos (búsqueda en man pages) y whatis (descripción de un comando).
1. Operational Scope & Technical Objective
type, which, apropos y whatis resuelven preguntas complementarias sobre el entorno de la shell: qué clase de comando es (type: builtin, alias, función o binario), dónde está el ejecutable (which), qué herramientas del sistema existen para una tarea (apropos busca en las man pages) y qué hace un comando concreto (whatis). En un engagement recién accedido, este cuarteto es el reconocimiento del propio sistema: qué binarios hay disponibles (netcat, python, socat), dónde viven, y qué utilidades de administración se pueden abusar.
2. High-Impact Syntax & Command Cheatsheet
# type: muestra la clase de comando
type command
type ls
# /usr/bin/ls -> binario en PATH
type cd
# cd is a shell builtin -> builtin de la shell (no hay binario que sustituir)
# which: localiza el ejecutable en el PATH
which ls
# /usr/bin/ls
# Útil para saber si existe un binario y su ruta exacta (p. ej. python3, nc, socat)
# apropos: busca en las man pages (qué comandos hay para una tarea)
apropos nmap
# lista las man pages cuyo nombre/descripción contienen 'nmap'
# whatis: descripción corta de un comando concreto
whatis ls
# ls (1) - list directory contents
3. Real-World Offensive/Defensive Scenarios
Inventario de capacidades en un host comprometido. which nc socat python3 curl wget perl ruby responde en una línea qué herramientas de transferencia y ejecución existen: define el vector de carga de binarios y la vía de reverse shell disponible sin subir nada.
Detección de binarios suplantados. type/which revelan si un binario está en una ruta inesperada (p. ej. un ls en /tmp en vez de /usr/bin): señal de rootkit o de PATH hijacking, tanto para el atacante que busca persistencia como para el defensor que audita un host.
Defensa (documentación del entorno). apropos y whatis son la referencia rápida para entender qué binario gestiona qué servicio en un sistema que no se conoce: el punto de partida correcto antes de tocar configuraciones críticas en un incidente.