Los mejores comandos de Linux orientados al hacking ético
8/15/2024
Cheat sheet de comandos en Kali Linux
by Santiago Ramirez
¡Bienvenido a un nuevo nivel de control sobre tu sistema! Si estás adentrándote en el fascinante mundo del hacking ético, es hora de estrechar lazos con uno de tus aliados más poderosos: Kali Linux.
No se trata solo de un sistema operativo, sino de un universo donde cada comando es una llave que abre nuevas puertas, desde la extracción de información del objetivo hasta la capacidad de controlar los usuarios de un sistema.
En este articulo os comparto mis apuntes personales, los cuales organicé de esta manera para tener siempre a mano los comandos que mas utilizo en mi configuracion, incluyen comandos para la kitty, realizar busquedas avanzadas, manejar archivos, usuarios etc.
Me he permitido sacarlos de Obsidian y crear esta lista desplegable organizada por bloques para que puedas buscar directamente el comando que buscas sin perderte en una nube inmensa de texto, además me ha servido para aprender un poquito más sobre HTML. Esta lista estará sometida a constante actualización en base a mi aprendizaje.
Así que prepara tu terminal, porque estamos a punto de sumergirnos en un viaje donde el conocimiento es poder, y el poder está al alcance de tus dedos. ¡Vamos a explorar juntos el verdadero potencial de Kali Linux!
Comandos generales
Listar todos los comandos anteriormente ejecutados:ctrl + r
Cambiar el idioma del teclado a español:setxkbmap es
Limpiar la terminal:ctrl + l
Mostrar qué es o para qué sirve un comando:whatis
Mostrar todas las opciones de un comando:--help
Cambiar el idioma del teclado utilizando es, en, etc.:setxkbmap es sundeadkeys
Saber en qué localidad están configurados tu teclado, horario, etc.:locale
Saber en qué shell estoy operando:echo $SHELL
Reiniciar:super + shift + q
Apagar:shutdown -h now
Mostrar ruta absoluta:which
Actualizar configuración del sistema operativo:super + shift + r
Cambiar fondo de pantalla:feh --bg-fill /rutadelarchivo
Sincronizar archivos del sistema para realizar una búsqueda:updatedb
Definir resolución de pantalla en máquina virtual:xrandr --output Virtual1 --mode 1920x1080
Conocer la resolución de pantalla actual:xdpyinfo | grep 'dimensions:'
Ajustar la resolución de pantalla de forma temporal:xrandr --size 1920x1080
Grupos
Listar la ruta absoluta grupos del sistema:cat/etc/group
Cambiar el grupo al que pertenece un archivo:sudo chgrp nuevo_grupo nombre_archivo
Crear un nuevo grupo:groupadd nombre_grupo
Crear varios grupos:groupadd grupo1, grupo2, grupo3
Añadir un usuario a un grupo:groupdel nombre_grupo
Eliminar un usuario de un grupo:usermod -a -G nombre_usuario nombre_grupo
Asignar un usuario al grupo que queramos:chgrp grupo nombredirectoriousuario
Modificar las características de un grupo:groupmod
Usuarios
Listar la ruta absoluta de usuarios del sistema:cat/etc/group
Saber que usuarios estan conectados a mi maquina:who
Swich user, nos permite cambiar de usuario:su nombre_usuario
Averiguar en que grupos esta incluido el usuario:groups
Listar los usuarios normales con shell:cat /etc/passwd | grep -v /bin/false | grep -v /nologin
Crear un nuevo usuario:useradd nombre_usuario
Crear nuevo usuario y asignarle una bash:useradd nombre_usuario -s /bin/bash
Asignar el directorio personal del usuario creado:useradd nombre_usuario -d /home/nombre_usuario
Eliminar a un usuario del sistema:userdel nombre_usuario
Agregar una contraseña a un usuario:passwd nombre_usuario
Agregar un usuario a un grupo:usermod -a -G nombre_grupo nombre_usuario
Comprimir y descomprimir archivos
Descomprimir cualquier tipo de compresión:7z x archivo.gz
Comprimir un archivo en .zip:zip archivo.zip archivo.txt
Comprimir un archivo en .gz:gzip archivo.txt
Comprimir un archivo en .gz manteniendo el original:gzip -c archivo.txt > archivo.txt.gz
Listar el contenido del archivo sin descomprimir:7z l archivo.bin
Comandos Kitty
Abrir una nueva terminal:super + enter
Cerrar una terminal:super + q
Activar los preselectores:Ctrl + super + alt + flechas
Activar un preselector de un tamaño concreto:Ctrl + Super + 1-9
Moverse entre terminales:Super + Flechas
Desplazar la posición de una terminal con lo que tiene dentro:Super + shift + flechas
Ajustar el tamaño de la terminal:
Super + Alt + Flechas
Visualizar una imagen desde la terminal:kitty +kitten icat nombre_imagen
Dividir la terminal:Cntrl + Shift + Enter
Eliminar la terminal dividida:cntrl + shift + w
Ajustar el tamaño de la terminal dividida:Cntrl + shift + l
Cambiar vertical u horizontal la terminal dividida:Super + Flechas
Moverse entre terminales divididas:Cntrl + Flechas
Abrir un nuevo panel en la misma ventana:Cntrl + shift + t
Cerrar un panel activo:Ctrl + shift + q
Aplica zoom al panel seleccionado, si volvemos a pulsar vuelve a la normalidad:Cntrl + shift + Z
Renombrar una ventana o un panel:cntrl + shift + alt + t
Moverse entre panelesCntrl + Shift + flecha izquierda o derech9
Convertir un panel en una flotaing window:Super + s
Reacoplar un panel flotante:Super + t
Borra desde el cursor hasta el comienzo de la linea:Ctrl + u
Borra desde el cursor hasta el final de la linea:Ctrl + k
Borra la palabra antes del cursor:Ctrl + w
Mueve el cursor al comienzo de la linea:Ctrl + a
Mueve el cursor al final de la linea:Ctrl + e
Manejo de archivos y directorios
Crear un nuevo archivo sin abrirlo en la ruta actual:touch nombre_archivo
Crear y abrir un nuevo archivo en un editor de texto:nvim nombre_archivo.extensionnano nombre_archivo.extension
Borrar uno o varios archivos en la ruta actual:rm archivo1 archivo2 archivo3
Borrado definitivo de un archivo:shred -zun 10 -v nombre_archivo
Copiar un archivo o directorio:cp /ruta/origen/delarchivo /ruta/destino/delarchivo
Copiar el contenido de un archivo a otro archivo:cat nombre_archivo > nombre_archivo2
Mover un archivo o directorio (tambien sirve para renombrar):
mv /ruta/origen/delarchivo /ruta/destino/delarchivo
Visualizar el contenido de un archivo por consola:cat nombre_archivo
Reporta las diferencias entre dos archivos:diff archivo1 archivo2
Reporta el tipo de archivo:file nombre_archivo
Crear un nuevo directorio:mkdir nombre_directorio
Borrar un directoriormdir nombre_directorio o ruta/directorio
Borrar de forma recursiva y forzada un directorio:rm -rf nombre_directorio o ruta/directorio
Comandos GitHub
Clonar un repositorio en la ruta actual:git clone direcciondelrepo
Clonar una parte de un repositorio en la ruta actual:curl https://codeload.github.com/vulhub/vulhub/tar.gz/master | tar -xz --strip=2 vulhub-master/PLATAFORMA/CARPETA
Muestra todas las ramas de un proyecto GitHub:git branch -a
Nos mueve a la rama que le indiquemos, permitiéndonos hacer git log de esa rama concreta:git checkout nombredelarama
Permite tomar las líneas independientes de desarrollo creadas por git branch e integrarlas en una sola rama:git merge
Nos muestra las tags de un repositorio:git tag
Nos crea un nuevo commit añadiendo el archivo indicado en un repositorio:git add -f nombrearchivo
Establece el titulo del commit que acabamos de crear:git commit -m "titulocommit"
Sube el commit a github.com en la rama indicada:git push -u origin nombredelarama
Estando dentro del repositorio nos muestra los commits (Arreglos del desarrollador) por consola:git log
Reporta por consola los cambios que se realizaron en ese commit o también puede mostrarte la tag si se lo indicas:git show identificadorcommit/nombretag
Búsquedas en Linux
Sincronizar archivos del sistema para busqueda:updatedb
Ordenar por orden alfabético :nvim nombre_archivo.extensionsort
Buscar algo único, podemos anadir que buscamos lineas unicas con -u:uniq
Buscar un archivo:locate nombrearchivo/formato etc...
Busca desde la raiz archivos cuyo propietario es root con permisos de ejecución redirigiendo los errores reportados en consola al dev null:find / -user root -executable -type f 2>/dev/null
Busca desde la raíz archivos y directorios cuyo propietario es root con permiso de escritura redirigiendo los errores de consola al dev null:find / -user root -writable 2>/dev/null
Busca desde la raiz archivos y directorios con el nombre passwd redirigiendo errores al devnull:mfind / -name passwd 2>/dev/null
Busca desde la raíz archivos y directorios con el nombre passwd, redirigiendo errores al dev null y nos los reporta en modo lista mostrando los permisos:find / -name passwd 2>/dev/null | xargs ls -l
Busca archivos con privilegios SUID desde la raíz del sistema sin reportar errores por consola:find / -type f -perm -4000 2>/dev/nullbr />
Busca desde la raíz archivos y directorios de un grupo:find / -group nombre_grupo 2>/dev/null
Filtra la búsqueda a solo directorios:-type d
Filtra la búsqueda solo a archivos:-type f
Busca enlaces simbólicos:-type l
Busca dispositivos de caracteres:-type c
Busca dispositivos de bloque:-type b
Busca desde la raiz archivos y directorios cuyo nombre comience por dex:file nombre_archivo
Indica que el nombre a buscar incluye exdum en su nombre:-name /exdum/ 2>/dev/null
Averiguar el numero de lineas que tiene un archivo:wc -l nombre_archivo
Busqueda y filtrado con GREP
Buscar una cadena dentro de un archivo:grep termino_a_buscar nombre_archivo
Búsqueda dentro de un archivo sin diferenciar mayus/minusgrep -i termino_a_buscar nombre_archivosort
Buscar líneas que no coincidan dentro de un archivo:grep -v termino_a_buscar nombre_archivo
Búsqueda recursiva dentro de un directorio:grep -r termino_a_buscar ruta/directorio
Varias búsquedas dentro de un archivo:grep -E "primer_termino_a_buscar|segundo_termino_a_buscar" nombre_archivo
Contar los resultados de la búsqueda:grep -c termino_a_buscar nombre_archivo
Mostrar el nombre de los archivos coincidentes:grep -l termino_a_buscar archivos_coincidentes_a_buscar
Conteo de palabras que coinciden con la búsqueda:grep -c termino_a_buscar nombre_archivo
Buscar múltiples palabras:grep termino_a_buscar1 nombre_archivo | grep termino_a_buscar2 nombre_archivo
Encontrar una palabra en un conjunto de archivos:grep -l palabra_a_buscar ./*br />
Buscar una palabra o cadena dentro de un archivo:cat archivo | grep "cadena_de_caracter"
Buscar una palabra o cadena dentro de un archivo comprimido:zgrep cadena archivo.gz
Buscar las lineas que comiencen con un punto:grep ^\.
Elementos del modelo de busqueda con grep:
Filtrado de búsquedas con AWK
Nos devuelve el primer argumento puede pipearse. $2 $3 $4 para diferentes argumentos:awk '{print $1}'
Permite aplicar un filtrado a un archivo reportando por consolaawk "/name: "Forge"/"
Devuelve el rango de argumentos entre los dos que le indiquemos, en este caso, desde nombre hasta resuelta,filtrando solo por Forge.awk "/name: "Forge"/,/resuelta:/"
Jugando con GREP podemos filtrar el output anterior como le indiquemos, y con el comando -v le diremos que queremos ver todo menos lo grepeado, podemos pipear mas filtrados por grep para mostrar o no mostrar todos con -vEawk "/name: "Forge"/,/resuelta:/" | grep -vE "id:|sku:|resuelta"
Podemos seguir eliminando elementos de nuestro output con [tr -d] en el ejemplo se utiliza para eliminar las comillas y el simbolo coma:cat bundle.js | awk "/name: "Forge"/,/resuelta:/" | grep -vE "id:|sku:|resuelta" | tr -d '""' | tr -d ','
Al añadir la expresion regular con SED le indicamos que sustituya los espacios iniciales por un solo espacio:cat bundle.js | awk "/name: \"Forge\"/,/resuelta:/" | grep -vE "id:|sku:|resuelta:" | tr -d '""' | tr -d ',' | sed 's/^ *//'
Transferencia de datos con CURL
Descargar el contenido de una pagina web a nuestra maquina:curl https://ejemplo.com
Descargar un archivo de una web a un archivo en nuestra maquina:curl -o archivo_local.txt https://www.ejemplo.com/archivo.txt
Enviar una solicitud por post a la url indicada silenciando la salida de progreso y errores:curl -s -X POST http://www.ejemplo.com
Encriptado y desencriptado
Encriptar en BASE64:echo "texto_a_encriptar" | base64
Desencriptar en BASE64:echo "texto_a_desencriptar" | base64 -d
Desencriptar ROT13:cat archivo_encriptado | tr '[G-ZA-Fg-za-f]' '[T-ZA-St-za-s]'
Encriptar en hexadecimal:cat archivo_a_encriptar | xxd -ps | xargs | tr -d ' '
Desencriptar hexadecimal:texto_hexadecimal | xxd -ps -r
Encriptar en MD5:echo -n "texto_a_encriptar" | md5sum
Desncriptar MD5:john --format=raw-md5 --wordlist=/ruta/a/tu/wordlist.txt archivo_a_desencriptar



0 comentarios