Ir ao contido

rlwrap - Readline Wrapper

Descrición

rlwrap é unha ferramenta de GNU/Linux que engade funcionalidade de edición de liña tipo readline a calquera programa de liña de comandos que non a incorpore de forma nativa. Isto inclúe historial de comandos, edición de liña, autocompletado e busca no historial.

Instalación

Debian/Ubuntu

sudo apt-get install rlwrap

Red Hat/CentOS/Fedora

sudo yum install rlwrap
# ou
sudo dnf install rlwrap

Arch Linux

sudo pacman -S rlwrap

Funcionalidades Principais

  • Historial de comandos: Navegación con frechas arriba/abaixo.
  • Edición de liña: Movemento con Ctrl+A, Ctrl+E, etc.
  • Busca no historial: Ctrl+R para buscar comandos anteriores.
  • Autocompletado: Soporte para completado con TAB.
  • Persistencia: Garda o historial entre sesións.

Exemplos de Uso no Hacking Ético

1. Reverse Shell Básica con Netcat

Sen rlwrap (shell limitada):

nc -lvnp 4444

Con rlwrap (shell mellorada):

rlwrap nc -lvnp 4444

2. Bind Shell

rlwrap nc 192.168.1.100 4444

3. Conexión a Bases de Datos

Conectar a MySQL:

rlwrap mysql -u root -p

Conectar a Redis:

rlwrap redis-cli

4. Shells Interactivas de Scripts

Para Python:

rlwrap python

Para Ruby:

rlwrap irb

5. Mellorar Shell Reversa Completa

Cando se obteña unha reverse shell, pódese mellorar a experiencia:

No atacante:

rlwrap nc -lvnp 4444

Unha vez conectado, estabilizar a shell:

python -c 'import pty; pty.spawn("/bin/bash")'
# Premer Ctrl+Z
stty raw -echo; fg
export TERM=xterm

6. Usar con Ficheiro de Historial Personalizado

rlwrap -H ~/.mi_historial nc -lvnp 4444

7. Completado Personalizado

Crear lista de palabras predefinidas que rlwrap usará para ofrecer autocompletado cando se preme TAB:

echo -e "ls\ncat\nwhoami\nid" > ~/.rlwrap_completions
rlwrap -f ~/.rlwrap_completions nc -lvnp 4444

Opcións Útiles

Opción Descrición
-a Usa sempre readline, incluso se stdin non é un terminal
-A Soporte para cores ANSI no terminal
-c Completa nomes de ficheiros
-f FILE Usa FILE para lista de completado personalizado
-H FILE Usa FILE como ficheiro de historial
-i Modo case-insensitive para completado
-l FILE Garda todo o que se escribe nun ficheiro de log
-m Soporte para comandos multi-liña
-n Non mostra avisos/warnings
-p[colour] Colorea o prompt (cores: Red, Green, Yellow, Blue, etc.)
-r Recorda o historial entre sesións
-s NUM Tamaño máximo do historial (negativo: só lectura)

Mellores Prácticas

  1. Usar sempre rlwrap cando se traballa con shells reversas para mellorar a produtividade.
  2. Configurar alias no .bashrc ou .zshrc:
    alias rl='rlwrap'
    alias ncl='rlwrap nc -lvnp'
    
  3. Gardar historiais separados para diferentes proxectos ou clientes.
  4. Combinar con estabilización de shell para mellor experiencia.

Limitacións

  • Non funciona ben con programas que usan controis de terminal complexos.
  • Pode ter problemas con certos caracteres especiais en algunhas shells.
  • Require que a shell remota tenga Python ou outros intérpretes para estabilización completa.

Recursos Adicionais

Importante

rlwrap é unha ferramenta lexítima que DEBE usarse EXCLUSIVAMENTE en:
- Auditorías de seguridade autorizadas.
- Ambientes de laboratorio controlados.
- Exercicios de formación e CTFs con permiso explícito.

O uso non autorizado en sistemas alleos é ilegal e constituye un delito.