Mi caja de herramientas de bolsillo (parte II)

Gabriel Martí
13 min readAug 1, 2021

--

Herramientas software para sobrevivir al día a día de un SysAdmin

Photo by Gabriel Martí, Android con Modo Escritorio y consola de Termux conectado a un Motorola Atrix Lapdock
Photo by Gabriel Martí, Android con Modo Escritorio y consola de Termux conectado a un Motorola Atrix Lapdock

Si has llegado a este artículo sin haber visto la primera parte, puedes leerla a través del siguiente enlace:

Mi caja de herramientas de bolsillo (parte I)

El objetivo

No debemos de perder el objetivo principal, y este no es usar el teléfono como un equipo de trabajo habitual, pero si tenerlo como opción de “supervivencia” en situaciones críticas o de emergencia en la que requerimos ciertas herramientas y acceso a servidores y no disponemos de otro equipo.

Es probable que muchas de las herramientas que te muestre o cite ya las conozcas, o puede que sean totalmente inservibles para tus necesidades. Es simplemente una referencia y no tienen por qué ser las únicas soluciones.

Modo Escritorio alternativo

En el anterior artículo hablaba del Modo Escritorio de Huawei y, de que no todos los dispositivos tienen esta opción. Pero si tu teléfono tiene las capacidades de USB OTG siempre puedes optar por algunas soluciones de terceros.

En este caso, el mismo fabricante del lapdock que mencionaba, Sentio Superbook, tiene una app que se encarga de realizar dicha función.

Sentio Desktop, alternativa a Modo Escritorio nativo
Sentio Desktop, alternativa a Modo Escritorio nativo

Esta App se ofrece como complemento a su lapdock, y supuestamente debería de funcionar con cualquier otro lapdock conectado a Android. En esta caso, con el Motorola funciona, pero la experiencia de uso es bastante decepcionante; no aprovecha la máxima resolución, tampoco toda el área de pantalla -dejando un marco negro-, y no todas las aplicaciones funcionan.

Muestra de pantalla en lapdock usando Sentio Desktop
Muestra de pantalla en lapdock usando Sentio Desktop

Acceso a la configuración de Android

Al conectar el lapdock desaparece el acceso a la configuración de Android desde este, aunque se puede seguir haciendo desde el teléfono. Esto hay que tenerlo en cuenta por que es probable que necesitemos acceder a la configuración para algunos aspectos. Aunque sí que tenemos acceso al Centro de Notificaciones haciendo click sobre los iconos de batería o wifi de la parte inferior que nos puede facilitar algunas operaciones.

Configuración del Teclado

En este caso, dado que conectamos un teclado externo (el del lapdock) conviene tener en cuenta algunas cosas:

  • La disposición del teclado y las letras acentuadas, y hacernos con la ubicación de ciertos caracteres especiales o configurar el teclado adecuadamente.
  • Desactivar el teclado virtual en pantalla. Algunas aplicaciones no detectan el teclado físico y fuerzan a que aparezca el teclado virtual en pantalla.
Desactivación del teclado virtual al conectar un teclado físico
Desactivación del teclado virtual al conectar un teclado físico

De hecho, tengo instalados varios teclados virtuales, pero para trabajar desde el lapdock, siempre utilizo Gboard, ya que no interfiere mostrando el teclado virtual al usar el físico del lapdock. Usando teclados alternativos como SwiftKey de Microsoft (que es mi teclado habitual), aunque se desactive el teclado virtual, en algunas aplicaciones aparece en pantalla dificultando el trabajo.

Muestra de diferentes teclados virtuales en Android
Muestra de diferentes teclados virtuales en Android

Teniendo en cuenta estos puntos, las limitaciones son pocas, y este mismo artículo se ha redactado y maquetado en gran parte desde el lapdock y usando el navegador Firefox. La única opción que hay que tener en cuenta es que en la configuración del sitio a visualizar por el navegador hay que seleccionar la opción “Sitio de Escritorio”.

Configuración de página en Firefox para que trate el sitio como un equipo de escritorio
Configuración de página en Firefox para que trate el sitio como un equipo de escritorio

Mis herramientas

Paso a detallar las diferentes herramientas que tengo instaladas y he usado en múltiples ocasiones.

En algunos casos se mostrarán capturas de pantalla usando el lapdock y en otras no. El software usado es independiente de esto. Es simplemente que se han tomado las capturas en diferentes circunstancias.

Intentaré separar las herramientas (Apps) por grupos, aunque en algunos casos alguna App pueda incluirse en más de un grupo o categoría.

Las dividiré en las siguientes categorías:

  • Desarrollo y Edición de código / texto
  • Navegación
  • Acceso Remoto y VPN
  • Acceso a Bases de Datos
  • Monitorización de peticiones HTTP
  • Emulación de Terminal y otras distros de Linux
  • Servicios en la nube
  • Exploración de red y otras utilidades
Muestra de escritorio de Android con la mayoría de aplicaciones usadas
Muestra de escritorio de Android con la mayoría de aplicaciones usadas

Desarrollo y Edición de código y/o texto

Si desarrollas, si haces scripts para automatizar tareas en servidores, si te toca “parchear”, si te toca arreglar esas “cositas” para las que te dicen: “esto para ti son 5 minutos”, y luego te tiras toda una tarde, necesitas un editor de texto.

Por descontado, que siempre tendrás que acabar diciendo: “En cuanto tenga acceso a mi equipo me lo miro y lo arreglo”. Pero pasa lo que pasa. Que, si “esto era para ayer”, que “la producción está parada”, que “nadie se puede esperar”, que “estamos perdiendo dinero”, etc., así que no será para después y tendrás que editar con lo que tengas.

Yo tengo varios editores. Me gusta probar diferentes opciones, con el tiempo si veo que alguno no me acababa de convencer lo desinstalo. Pero siempre tengo más de uno instalado. Nunca se sabe el momento que un editor, por lo que sea, no te sirve y recurres a otro. Tampoco voy a entrar en todos los detalles de cada uno. Simplemente expondré los que uso actualmente y si tienen algo a destacar.

Turbo Editor

Sencillo, con resaltado de sintaxis, soporta múltiples codificaciones y es Open Source. Se puede descargar del siguiente enlace: https://github.com/vmihalachi/turbo-editor

Code Editor (Editor de Código)

Gran variedad de estilos visuales. Tiene un gestor de almacenamiento que permite acceder directamente a archivos por FTP, WebDAV, Dropbox, Google Drive, OneDrive, GitHub y GitLab.

Aparte de esto, y siendo estéticamente más vistosa, hay que tener en cuenta que muestra publicidad, la cual se puede desactivar con el pago de una pequeña cantidad.

Muestra de Turbo Editor y Code Editor abiertos uno al lado del otro en el lapdock
Muestra de Turbo Editor y Code Editor abiertos uno al lado del otro en el lapdock

Spck Editor

Orientado a proyectos JavaScript, con autocompletado y plantillas de proyectos. Un diseño muy cuidado, pero bastante más específico para según en que se trabaje. Permite conectar con GitHub, y para editar otros lenguajes, como Python, no he tenido problemas.

Dcoder

Este editor, además de instalar un teclado propio tiene una filosofía diferente, ya que se ofrece como un IDE en el que se puede trabajar con más de 35 lenguajes, donde además de tener coloreado de sintaxis permite compilar en los lenguajes que se requiera. Aparte de la App en Android también está para iOS y en entorno Web, pues es un hibrido que trabaja juntamente con la creación de una cuenta y almacenamiento en la nube.

Si conocéis plataformas como Heroku, Netlify o Replit os resultará familiar. Desde mi punto de vista creo que se acerca más a Replit.

VHEditor

Llegamos a lo que, para mí, es un editor de “punto y aparte”. Es la experiencia de tener el editor VSCode dentro de Android. Para ello, VHEditor, hace una instalación propia de Termux (que comento más adelante), en el que instala un servidor virtual (Android VSCode Server) donde corre el editor dentro de un contenedor al que se accede a través de un puerto al que se conecta la app, aunque también se puede acceder con cualquier navegador.

Desde el terminal del editor accederemos a la consola de Termux donde podremos ajustar configuraciones e instalar otros paquetes necesarios para complementarlo, como git.

Muestra de código de ejemplo de un repositorio de GitHub editado con VHEditor
Muestra de código de ejemplo de un repositorio de GitHub editado con VHEditor

La instalación no es trivial (aún hay cosas que se me resisten a funcionar correctamente) pero la posibilidad de tener VSCode en el teléfono me gusta y me abre un mundo de posibilidades.

De hecho, como lo que se instala en el teléfono es un servidor al cual accedemos desde un cliente http, si activamos que escuche en todos los interfaces, sabiendo la IP de nuestro teléfono, podremos acceder al editor a través de la misma red WiFI desde cualquier otro equipo.

Pantalla de instalación de VHEditor y configuración de acceso desde todos los interfaces
Pantalla de instalación de VHEditor y configuración de acceso desde todos los interfaces

Como curiosidad está bien. Sobre todo, está bien conocer no solo las posibilidades de lo que tengamos instalado, sino también como funciona y saber a qué nos exponemos si tenemos instalado un servicio en el teléfono el cual es accesible desde la misma red.

En este caso, no nos interesa, pero nunca se sabe.

Muestra de acceso a VHEditor con un navegador desde un equipo en la misma red
Muestra de acceso a VHEditor con un navegador desde un equipo en la misma red

Navegación

No voy a entrar muy a fondo en esta sección, no considero que sea vital, aunque sí que tengo varios navegadores de internet (o exploradores, o browsers, o como los quieras llamar). Básicamente por acceder a los sitios utilizando diferente navegador según necesidades del perfil (y separar perfiles). Destacaría a Opera y Opera Mini, por sus opciones de ahorro de datos y compresión, bloqueo de anuncios y VPN incorporados. Y TOR Browser, por sus características de privacidad y acceso a ciertos sitios restringidos.

Estoy seguro que debe de haber muchas otras opciones, pero no es un tema al que haya dedicado mucho tiempo para buscar alternativas mejores o con características excepcionales.

Acceso Remoto y VPN

Trabajar con el teléfono móvil implica que vas a acceder remotamente a algún servidor. Eso se da por entendido. Y en muchos casos es probable que pasemos por otras redes de terceros, o conexiones WiFi de empresas, hoteles u otros sitios públicos, que por muy cifradas que estén, tú no tienes el control. Así que mientras más capas de seguridad pongamos a nuestras comunicaciones, mucho mejor.

En este punto te diría que extremes siempre la seguridad al máximo y evites conectarte a través de conexiones WiFi que no sean de confianza. En esos casos mejor tirar de datos, pero nunca está de más añadir capas de protección, aunque uses tu conexión de datos. El único problema es la posible afectación a la velocidad y la latencia.

Por un lado, utilizo 1.1.1.1 Faster & Safer Internet de Cloudflare, conocida también como WARP. Es una VPN de Cloudflare que tiene opción gratuita y de pago.

Uso de VPN de Cloudflare
Uso de VPN de Cloudflare

Por otro lado, para acceder a ciertos servidores, tengo mis propios accesos por VPN usando OpenVPN, algo imprescindible. Para acceder a servidores en producción o sitios críticos, siempre, siempre VPN.

Muestra de acceso a red privada usando OpenVPN
Muestra de acceso a red privada usando OpenVPN

Una vez conectado donde deseamos, entramos en el resto de herramientas necesarias, y aquí pueden ser muy diversas, pero para conexión de consola la reina es SSH, y para esta hay una herramienta única y específica para mí. Es JuiceSSH, de la cual puedo decir que merece mucho la pena tener la versión de pago.

Muestra de pantalla principal de JuiceSSH con varias conexiones configuradas
Muestra de pantalla principal de JuiceSSH con varias conexiones configuradas

A parte de poder hacer una conexión rápida, la ventaja es poder gestionar diversas conexiones e identidades, además de que tiene diferentes plugins opcionales e útiles, como por ejemplo Port Knocker.

https://play.google.com/store/apps/details?id=com.sonelli.portknocker
Muestra de consola en conexión SSH

Otras opciones de conexión remota que tengo para otros casos de emergencia y más puntuales son el Escritorio Remoto de Google, AnyDesk, y Remote Desktop Client de Microsoft.

Muestra de acceso remoto al escritorio de un servidor desde el lapdock
Muestra de acceso remoto al escritorio de un servidor desde el lapdock

Con todas estas opciones cubro mis necesidades principales de conectividad.

Acceso a Base de Datos

Aquí también tenemos decenas de opciones y, de hecho, las que tengo las he usado pocas veces. Normalmente con el acceso remoto o con la conexión SSH suelo tener suficiente, pero nunca se sabe.

Tengo solo dos clientes instalados. MySQL Viewer, y RemoDB SQL Client.

Acceso a Base de Datos con RemoDB a través de conexión VPN
Acceso a Base de Datos con RemoDB a través de conexión VPN

Monitorización de peticiones HTTP

Cuando tratas con procesos en backend por un lado, frontend por otro y APIs REST / XML de por medio, acabas necesitando alguna de estas herramientas.

Las 3 que tengo instaladas son Postboy, Postify, Httper.

Muestra de pantallas de Postboy y Postify
Muestra de pantallas de Postboy y Postify

Emulación de Terminal y otras distros de Linux

Aquí empieza un apartado tan interesante como complejo y versátil. Android es un sistema basado en Linux, pero siempre ha habido esta espinita clavada en los desarrolladores de que no disponga de una consola de comandos incluida. No era su objetivo, y menos pensado en el usuario en general. Pero siempre hay desarrolladores dispuestos a ofrecernos algunas maravillas.

Este apartado se reduce a dos aplicaciones:

Termux

Para mí, es una de las principales herramientas y más útiles, aunque todo depende del momento y las necesidades.

Termux es un emulador de terminal que nos permite hacer un sinfín de operaciones. Es el terminal por excelencia para Android. Cuidado, no serás root (al menos en un teléfono estándar) y no lo requiere. Yo no lo necesito, pero tienes opción de rootear el teléfono o bien instalar herramientas que simulen privilegios de root como T-root.

Se pueden instalar diversos paquetes, herramientas, y casi cualquier cosa (digo casi porque sería muy atrevido decir todo) que corra en Linux. También usar SSH para conectar a otros equipos, con lo que casi nos ahorramos JuiceSSH.

Muestra de código php editado con nano ( lo siento por los fans de vi };) )
Muestra de código php editado con nano (lo siento por los fans de vim 😈)

Termux me ha permitido hacer desde un escaneo y reconocimiento de red con nmap, pasando por analizar un código ofuscado en php y ejecutar pequeñas partes para estudiar su comportamiento, hasta reversear un binario usando radare2.

Muestra de un archivo binario editado con hexcurse
Muestra de un archivo binario editado con hexcurse

Una vez instalado Termux, es cuestión de instalar y personalizar las herramientas que se necesiten, como haríamos en cualquier otra distribución de Linux. Yo tengo instalado php, python, git, curl, nmap, hexcurse, radare2, y decenas de herramientas y utilidades más.

Binario malicioso desensamblado con radare2 en Termux
Binario malicioso desensamblado con radare2 en Termux

Y los que estén más puestos en el entorno de INFOSEC y CIBERSEGURIDAD, ya sabrán que también se puede instalar la distribución móvil de Kali Linux, la llamada Kali Nethunter.

Kali Nethunter instalada dentro de Termux
Kali Nethunter instalada dentro de Termux

Y como no, instalar un compilador de C, crear código y compilarlo.

Instalación de compilador de C y muestra de programa creado
Instalación de compilador de C y muestra de programa creado

El abanico de posibilidades es muy amplio y encontrarás gran cantidad de información en la completa Wiki disponible.

No todo se reduce a Termux, a pesar de ser tan versátil. Tengo otra herramienta.

UserLAnd

UserLAnd es una aplicación de código abierto que permite ejecutar varias distribuciones de Linux como Alpine, Arch, Ubuntu, Debian y Kali.

Pantalla principal de UserLAnd
Pantalla principal de UserLAnd

A diferencia de Termux, instala toda una distribución, con sus usuarios, consola e incluso entorno gráfico. Conectaremos con esta distribución bien por ssh o por VNC.

Muestra de UserLAnd funcionando y con php 7.2 recién instalado
Muestra de UserLAnd funcionando y con php 7.2 recién instalado

A todo esto, hace unos días me propuse a modo experimental ver si sería posible instalar Ghidra, la herramienta de ingeniería inversa de la NSA, dentro de una distro de Linux en UserLAnd.

A pesar de tener algunos errores al principio, la instalación es posible, y carga correctamente teniendo en cuenta las limitaciones del dispositivo móvil.

Muestra de consola con Ghidra descargado e instalado en Debian dentro de UserLAnd
Muestra de consola con Ghidra descargado e instalado en Debian dentro de UserLAnd

Es posible crear un nuevo proyecto y desensamblar el código.

Binario desensamblado en Ghidra en una distro Linux instalada en UserLAnd
Binario desensamblado en Ghidra en una distro Linux instalada en UserLAnd

Por supuesto, todas estas aplicaciones pueden funcionar al mismo tiempo como en cualquier otro equipo de sobremesa o notebook, tal y como se puede apreciar en la siguiente imagen.

Ejecución de varias aplicaciones simultáneas, Termux, conexion VNC a distro Linux en UserLAnd y Firefox.
Ejecución de varias aplicaciones simultáneas, Termux, conexion VNC a distro Linux en UserLAnd y Firefox.

Servicios en la nube

A todo esto, y ateniéndonos que no siempre vamos a llevar todos los datos en nuestro teléfono móvil, también me apoyo en servicios en la nube, entre ellos Dropbox, Mega, GDrive o OneDrive. En cada uno de estos puedo tener ciertos datos, pero nunca datos importantes, sensibles o como única copia. Para ello tengo mi propia nube privada usando SeaFile. Se que en la actualidad puede haber otras soluciones mejores que SeaFile, pero el cliente para Android me funciona bien y me ha permitido tener siempre a mano datos importantes que están en mis propios servidores.

Exploración de red y otras utilidades

También son necesarias otras herramientas complementarias como el administrador de archivos Total Commander, un cliente SAMBA, AndSMB, o un cliente FPT como AndFTP.

Pantalla del administrador de archivos Total Commander
Pantalla del administrador de archivos Total Commander

O herramientas para escaneo de red como Port Authority, Fing, o Wifi Analyzer, entre otras.

Esas que se usan poco, pero a veces cuando estas conectado en una red desconocida las puedes necesitar para buscar algún equipo, servicio, o ver la cobertura WiFi en el caso de Wifi Analyzer. También es cierto que para escanerar la red podría abrir Termux y usar nmap. 😏

Ya para finalizar, pondré una que es indispensable para mi dentro de todo este entramado de herramientas. La gestión de las contraseñas se puede volver un problema grande y complejo cuando el número de cuentas de acceso a diferentes sistemas va aumentando. Más si cabe, en el caso de tener que gestionar contraseñas de diferentes clientes. Por supuesto, no habrás pensado que las iba a guardar en un bloc de notas, o en Google Keep, ¿no? ¿o sí? 🙄

Claro que no. Es algo que no se puede tomar a la ligera. Para ello uso KeePass, en el caso de Android KeePassDroid. Combinando para ello un archivo cifrado con una contraseña fuerte y almacenado en mi nube privada, me permite tener las contraseñas organizadas y sincronizadas entre todos mis dispositivos.

Muestra de la app de gestión de contraseñas KeePassDroid
Muestra de la app de gestión de contraseñas KeePassDroid

Finalizo este resumen con la certeza de que me dejo algunas Apps en lista, pero que alargarían ya innecesariamente el objetivo de este artículo.

El lector debe de ser consciente que el teléfono móvil que lleva en el bolsillo es miles de veces más potente que el ordenador de la nave Apolo que llevó el hombre a la Luna. Así que, no menos tengas este equipo y sácale provecho.

--

--

Gabriel Martí

Ex-Docente CFGM, CFGS Ciberseguridad. Consultor en Ciberseguridad. Twitter @310hkc41b LinkedIn https://www.linkedin.com/in/gabimarti/