MatthyGD
~/master/atrium/comandos_linux.md
Volver

Descargamos la llave publica de los Repositorios de Kali Linux

Script: <- Importamos la clave GPG oficial de los repositorios de Kali.

wget https://archive.kali.org/archive-keyring.gpg -O /usr/share/keyrings/kali-archive-keyring.gpg

Actualizar el sistema

Script: <- Sincronizamos paquetes y aplicamos todas las actualizaciones disponibles.

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Limpiar cache

Script: <- Eliminamos paquetes residuales y liberamos espacio en disco.

sudo apt clean && sudo apt autoclean && sudo apt autoremove

Cambiar de idioma el sistema operativo

Script: <- Configuramos la localización del sistema y reiniciamos.

dpkg-reconfigure locales && sudo reboot now

Como cambiar la distribución del teclado

Script: <- Reconfiguramos el mapa de teclado y aplicamos cambios.

sudo dpkg-reconfigure keyboard-configuration && sudo setupcon && sudo service keyboard-setup restart && sudo reboot now

Ver información de Linux

Script: <- Mostramos el nombre de la máquina en la red.

hostname

Script: <- Consultamos datos ampliados del sistema operativo.

hostnamectl

Script: <- Desplegamos detalles del procesador y arquitectura.

lscpu

Script: <- Imprimimos la versión del kernel y datos del sistema.

uname -a 

Script: <- Visualizamos la versión de la distribución Linux instalada.

lsb_release -a

Script: <- Consultamos la versión del binario sudo.

sudo -V

Script: <- Mostramos la versión del intérprete Bash.

bash --version

Script: <- Indicamos las dimensiones actuales de la terminal.

stty size

Ver información de procesos y redes

Script: <- Listamos las interfaces de red y sus configuraciones.

ip a // ifconfig

Script: <- Mostramos el árbol de procesos en ejecución.

ps -faux

Script: <- Visualizamos las conexiones de red activas.

netstat -nat

Script: <- Enumeramos los puertos y servicios en escucha.

lsof -i -P -n

Script: <- Mostramos sockets TCP/UDP y procesos asociados.

ss -tunlp

Script: <- Verificamos si un puerto específico está en uso.

lsof -i:<Puerto>

Script: <- Terminamos el proceso que ocupa un puerto determinado.

fuser -k <Puerto>/tcp /////// fuser -k <Puerto>/udp

Ver los discos instalados en el sistema

Script: <- Listamos las particiones y discos reconocidos.

fdisk -l

Reconocimiento de mi usuario

Script: <- Muestra los usuarios con sesión activa en el sistema.

who

Script: <- Indica el nombre del usuario actual.

whoami

Script: <- Muestra el UID, GID y grupos del usuario activo.

id

Script: <- Si pertenecemos al grupo “sudo”, podemos elevar nuestros privilegios.

sudo su

Gestión de usuario

Script: <- Cambiamos de usuario en la terminal actual.

su <Nombre del usuario>

Script: <- Creamos un usuario de forma detalla y completa.

useradd -m -d /home/<Usuario nuevo> -s <Shell, ej: /bin/bash> -p $(openssl passwd -1 <Password>) <Usuario nuevo>

Script: <- Cambia la contraseña de un usuario.

passwd <Usuario>

Script: <- Cambiamos el nombre a un usuario y su carpeta dentro de: “/home”…

usermod -l <Nombre nuevo> -d /home/Nombre nuevo> -m <Usuario>

Script: <- Elimina un usuario del sistema.

userdel -r <Nombre>

Script: <- Crea un nuevo grupo en el sistema.

groupadd <Nombre del grupo>

Script: <- Elimina un grupo del sistema.

groupdel <Nombre del Grupo>

Script: <- Elimina un usuario de un grupo específico.

gpasswd -d <Usuario> <Grupo>

Script: <- Agrega un usuario a un grupo específico.

usermod -aG <Grupo> <Usuario>

Script: <- Cambiamos el nombre de un grupo existente.

groupmod -n <Nombre nuevo del grupo> <Nombre actual del grupo>

Script: <- Muestra información detallada de un usuario específico.

finger <Usuario>

Reconocimiento y movilidad de directorios

Script: <- Lista los directorios y archivos en el directorio actual.

pwd

Script: <- Lista los directorios y archivos en el directorio actual.

ls

Script: <- Lista de forma detallada el contenido del directorio.

ls -l

Script: <- Lista los archivos ocultos en el directorio.

ls -la

Script: <- Muestra datos como la fecha de creación de un archivo, entre otros.

stat

Script: <- Nos lleva de vuelta a nuestro directorio: Home/(Usuario).

cd

Script: <- Nos permite navegar por diferentes directorios.

cd <Directorio>

Script: <- Nos lleva a la raíz principal del sistema.

cd /

Script: <- Nos lleva a la carpeta anterior a la que nos encontramos.

cd ..

Gestión de archivos

Script: <- Detalla información sobre el archivo a analizar.

file <Archivo>

Script: <- Analiza el tipo de contenido desde un pipe.

| file -

Script: <- Moveremos el archivo donde elijamos e incluso podemos renombrarlo.

mv <Archivo> <Directorio>

Script: <- Copiaremos el archivo donde elijamos.

cp <Archivo> <Directorio>

Script: <- Copiaremos todo el contenido de un directorio a otro directorio.

rsync -av <Directorio> <Directorio>

Creación de directorios

Script: <- Crea un nuevo directorio.

mkdir <Nombre>

Script: <- Crea varios directorios a la vez, utilizando el símbolo { }.

mkdir {Nombre,Nombre,Nombre}

Script: <- Crea todos los directorios que pongamos en la ruta absoluta si es que no existen.

mkdir -p Creando/todos/los/directorios/que/queramos/en/la/ruta

Script: <- Crea un directorio temporal.

mktemp -d

Creación y lectura de archivos

Script: <- Imprime en pantalla el texto especificado.

echo <Texto>

Script: <- Crea un archivo con el nombre y la extensión especificados.

touch <Nombre>.<Extension>

Script: <- Lee el contenido de un archivo.

cat <Archivo>

Script: <- Lee el contenido de un archivo con navegación.

less <Archivo>

Script: <- Lee el contenido de un archivo y si el texto es grande podremos usar “v” y poner editor texto

more <Archivo>

Script: <- Editor de texto simple.

nano <Nombre>.txt

Script: <- Editor de texto básico.

vi <Nombre>.txt

Script: <- Editor de texto avanzado.

vim <Nombre>.txt

Borrar archivos

Script: <- Borra un archivo.

rm

Script: <- Borra el contenido de un directorio (ideal para directorios).

rm -r

Script: <- Borra el contenido de un directorio y el directorio en sí.

rm -rf

Script: <- Sobrescribe el archivo múltiples veces antes de borrarlo.

shred -zun 1000 -v <Archivo>

Rutas absolutas y rutas relativas (WHICH)

Existen 2 tipos de rutas:

Rutas absolutas: Proporcionan la ubicación exacta desde la raíz del sistema de archivos hasta el archivo final.

Rutas relativas: Especifican la ubicación de un archivo o directorio en relación con el directorio actual.


Script: <- Nos muestra la ruta absoluta de un comando.

which <Herramienta>

Script: <- Alternativa para encontrar la ruta de un comando.

command -v <Herramienta>

Script: <- Muestra los directorios por los cuales se busca al ejecutar un comando.

echo $PATH

Búsqueda de rutas y archivos (FIND)

Script: <- Encuentra archivos modificados hace X días.

find / <Parametro que queramos> -mtime +<Dias atras del archivo> 2>/dev/null

Script: <- Ejecuta cat en cada archivo encontrado.

find / -type f -exec cat {} \;

Script: <- Localiza archivos por su nombre exacto.

find / -name <Archivo> 2>/dev/null

Script: <- Encuentra todos los archivos regulares.

find / -type f 2>/dev/null

Script: <- Encuentra archivos propiedad de un usuario específico.

find / -user <Nombre del usuario> 2>/dev/null

Script: <- Encuentra archivos propiedad de un grupo específico.

find / -group <Nombre del grupo> 2>/dev/null

Script: <- Localiza archivos según su tamaño (complementar con la lista de tamaños).

find / -size <Tamaño> <Parámetro> 2>/dev/null

Script: <- Encuentra archivos con permiso SUID activado.

find / -perm -4000 2>/dev/null 

Script: <- Encuentra archivos con permiso GUID activado.

find / -perm -2000 2>/dev/null

Script: <- Localiza archivos con ACL específica para un usuario.

find / -exec sh -c 'getfacl {} 2>/dev/null | grep -q "user:<Usuario>" && echo {}' \; 2>/dev/null

Script: <- Encuentra archivos con permisos de lectura.

find / -readable 2>/dev/null

Script: <- Encuentra archivos con permisos de escritura.

find / -writable 2>/dev/null

Script: <- Busca archivos de tamaño específico en bloques de 512 bytes.

find / -size <Numero>b

Script: <- Busca archivos por tamaño exacto en bytes.

find / -size <Numero>c

Script: <- Busca archivos por tamaño en words (2 bytes).

find / -size <Numero>w

Script: <- Busca archivos por tamaño en KB.

find / -size <Numero>k

Script: <- Busca archivos por tamaño en MB.

find / -size <Numero>M

Script: <- Busca archivos por tamaño en GB.

find / -size <Numero>G

Extra: Si no recordamos el nombre del archivo, podemos utilizar el siguiente método:

Script: <- Con el símbolo * realizamos una búsqueda recursiva a partir del punto en el que se coloca el símbolo.

find / -name Director* 2>/dev/null

Regex

GREP

Script: <- Filtra líneas que contengan cualquiera de las palabras especificadas

| grep -E "<Palabra>|<Palabra>"

Script: <- Suprime las líneas que contengan la palabra seleccionada.

| grep -v "<Palabra>"

Script: <- Muestra líneas antes y después del match.

| grep <Palabra> -C <Numero>

Script: <- Muestra líneas después del match encontrado.

| grep <Palabra> -A <Numero>

Script: <- Muestra líneas antes del match encontrado.

| grep <Palabra> -B <Numero>

Script: <- Extrae solo el texto que está entre comillas dobles.

| grep -oP '".*?"'

Script: <- Filtra y remueve las líneas sin contenido.

| grep -v "^$"

WC

Script: <- Cuenta el número total de líneas de la salida.

| wc -l

Script: <- Cuenta la cantidad de caracteres de la salida.

| wc -c

SED

Script: <- Imprime solo la línea en la posición indicada.

| sed -n '<Numero>p'

Script: <- Imprime un bloque continuo de líneas (ej: 10 a 20)

| sed -n '10,20p'

Script: <- Sustituye todas las ocurrencias de un texto por otro.

| sed 's/viejo/nuevo/g'

HEAD & TAIL

Script: <- Mostrar primeras líneas de la salida.

| head -n <Numero>

Script: <- Mostrar ultimas líneas de la salida.

| tail -n <Numero>

TR

Script: <- Elimina todas las ocurrencias de un carácter específico.

| tr -d '<Caracter>'

Script_: <- Elimina todas las ocurrencias de un carácter específico.

| tr -d '<Caracter>'

Script_: <- Remueve todas las comillas dobles del texto.

| tr -d '"'

Script: <- Junta todo el contenido en una sola línea.

| tr -d '\n'

Script: <- Reduce múltiples espacios consecutivos a uno solo.

| tr -s ' '

Script: <- Transforma espacios y tabs en saltos de línea.

| tr ' ' '\n' | tr '\t' '\n'

AWK

Script: <- Imprime una columna específica del texto.

| awk '{print $Número}'

Script: <- Imprime la última columna de cada línea.

| awk '{print $NF}'

COLUMN

Script: <- Muestra los resultados organizados en columnas.

| column

Script: <- Muestra los resultados en columnas con formato alineado.

| column -t

SORT

Script: <- Ordena las líneas alfabéticamente.

| sort

Script: <- Ordena las líneas numéricamente.

| sort -n

UNIQ

Script: <- Filtra y elimina líneas duplicadas consecutivas.

| uniq

SORT & UNIQ

Script: <- Muestra únicamente las líneas que aparecen más de una vez.

| sort | uniq -d

Script: <- Muestra únicamente las líneas que aparecen una sola vez.

| sort | uniq -u

Script: <- Cuenta cuántas veces aparece cada línea.

| sort | uniq -c

Convertir todo a Minúscula

Script: <- Transforma todo el texto a minúsculas.

| tr '[:upper:]' '[:lower:]'

Convertir todo a Mayúscula

Script: <- Transforma todo el texto a mayúsculas.

| tr '[:lower:]' '[:upper:]'

Decodificadores

BASE64

Script: <- Convierte una cadena de texto a formato Base64.

| base64

Script: <- Convierte una cadena Base64 a texto legible.

| base64 -d

Hexadecimal

Script: <- Convierte una cadena de texto a representación hexadecimal.

| xxd

Script: <- Convierte una cadena hexadecimal a texto legible.

| xxd -r

Listando una palabra concreta de forma recursiva por todos los archivos

Vemos directamente el output de los ficheros que hagan match

Script: <- Busca la palabra en todos los archivos del directorio actual.

grep -i "<Palabra>" ./*

Script: <- Busca la palabra recursivamente en todos los subdirectorios.

grep -ri "<Palabra>"

Vemos que archivo tiene el match

Script: <- Muestra solo los nombres de archivo que contienen la palabra.

grep -ril "<Palabra>"

Script: <- Busca recursivamente cualquiera de los patrones especificados.

grep -riEl "user|username|pass|password|DB|root" 2>/dev/null

Transferencia de archivos de una maquina a otra

Mediante NC

Emisor (Quien lo envía)

Script: <- Envía un archivo al puerto de escucha del receptor.

nc <IP del Receptor> <Puerto del Receptor> < <Ruta absoluta del binario o archivo>

Receptor (Quien lo recibe)

Script: <- Escucha en un puerto y guarda el archivo recibido.

nc -nlvp <Puerto> > <Binario>

Mediante Python3 y Wget

Emisor (Quien lo envía)

Script: <- Levanta un servidor HTTP temporal en el directorio actual.

python3 -m http.server <Puerto>

Receptor (Quien lo recibe)

Script: <- Descarga el archivo usando wget desde el servidor Python.

wget -r http://<IP Emisor>:<Puerto>/<Archivo>

Mediante Python3 y Curl

Emisor (Quien lo envía)

Script: <- Levanta un servidor HTTP para compartir archivos.

python3 -m http.server <Puerto>

Receptor (Quien lo recibe)

Script: <- Descarga el archivo usando curl desde el servidor Python.

curl -O http://<IP Emisor>:<Puerto>/<Archivo>

Mediante Cat y NC

Emisor (Quien lo envía)

Script: <- Envía el archivo directamente mediante redirección TCP.

cat <Archivo> > /dev/tcp/<IP Receptor>/<Puerto>

Receptor (Quien lo recibe)

Script: <- Escucha y recibe el archivo por netcat.

nc -nvlp <Puerto> > <Archivo>

Mediante SSH

Atacante a la victima

Script: <- Copia un archivo desde el atacante a la víctima por SSH.

scp <Herramienta> <Usuario>@<IP>:/tmp/<Herramienta>

Victima al atacante

Script: <- Copia un archivo desde la víctima al atacante por SSH.

scp <Usuario>@<IP>:<Ruta absoluta del archivo> <Ruta absoluta de donde queremos guardarlo>

Con puerto incluido

Script: <- Copia archivos especificando un puerto personalizado.

scp -P <Puerto> <Herramienta> <Usuario>@<IP>:/tmp/<Herramienta>

Con Llave privada

Script: <- Copia archivos usando autenticación por clave SSH.

scp -i id_rsa <Herramienta> <Usuario>@<IP>:/tmp/<Herramienta>

Recursivo

Script: <- Copia directorios completos de forma recursiva.

scp -r <Carpeta> <Usuario>@<IP>:/tmp/