Los mejores comandos de Linux orientados al hacking ético

8/15/2024

 

Simple Linux Commands for Beginners – Aktif Elektroteknik    

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 paneles
Cntrl + 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.extension
nano 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 directorio
rmdir 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.extension
sort

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/minus
grep -i termino_a_buscar nombre_archivo
sort

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 consola
awk "/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 -vE
awk "/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

You Might Also Like

0 comentarios

Like us on Facebook