lunes, 15 de julio de 2024

uses cases of tcpdump

 filtering icmp traffic to/from specific host

$ sudo tcpdump -n icmp and host 10.16.100.5

also we can use the parameter -c[0-9] for only capture a defined number of packets

others parameters like port when we are setting tcp/udp are also useful

$ sudo tcpdump -i any -c5 -nn "port 80 and (src 192.168.10.125 or src 154.24.4.231)"

 other useful parameter is A, that one can show us the package content, it doesn't have any decrypt functionality

 

lunes, 24 de junio de 2024

Habilitar Escritorio Remoto en windows 10 desde powershell

En las ultimas versiones de windows el escritorio remoto es un servicio que viene deshabilitado de forma predeterminada!

Recien tuve la necesidad de virtualizar un Windows10 con Vagrant sin ningun acceso a interface grafica, y para poder habilitar el servicio no hubo mas solucion que recurrir al powershell de windows.

Al vagrant terminar de arrancar la VM da acceso a ella usando ssh, servicio que se le agrego recien de forma nativa a Windows, esta conexion nos da un acceso al powershell

$ vagrant ssh

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users\vagrant>

desde el powershell deberemos ejecutar dos ordenes:

1.- Habilitar el servicio modificando el registro del sistema

> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0

2.- Habilitar la regla por defecto en el firewall de windows para permitir conexiones al puerto 3389

> Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

 

sábado, 25 de mayo de 2024

crear llaves SSH sin prompt y en un path personalizado

Cuando hablamos de automatizar, a menudo podemos necesitar la creacion de llaves ssh para la autenticacion en nuestros servidores Linux, el comando ssh-key pide varios durante el proceso de la creacion de las llaves, para hacer que este proceso vaya sin interaccion del usuario, podemos hacerlo de la siguiente manera

$ ssh-keygen -m PEM -t rsa -b 4096 -N '' -f ./id_rsa

el argumento -N '' evita que nos pregunte por las passphrase

el argumento -f recibe como valor el path donde queremos almacenar las llave publicas y privadas, asi como el nombre que recibiran


martes, 21 de mayo de 2024

Eliminar una regla de reenvio de puertos para nuestra Vagrant VM

Se puede eliminar/deshabilitar una regla de port forwarding en caso de que no queramos que esto funciona, si nuestro escenario usa bridged netowork, por ejemplo, no es tan necesario esto, para hacer esto, solo debemos agregar al final de la regla, el argumento disabled: true

config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1", disabled: true
 

Modificar reenvio de puertos predeterminados en Vagrant

 Normalmente iriamos al Vagranfile y modificaramos las reglas forward

config.vm.network "forwarded_port", guest: 22, host: 2232

pero esto no funciona, solo nos va a agregar una nueva regla de port_forwarding usando el puerto 2232, el detalle esta en que hay que definir, el id de la regla para que la sobreescriba! en este caso, el id de la regla es bien simple, "ssh", entonces para sobreescribir la regla, definiriamos de la siguiente manera

config.vm.network "forwarded_port", guest: 22, host: 2232, id: "ssh"

pero si usamos boxes predefinidas y queremos sobreescribir sus reglas de forwarding, tendriamos que conocer sus ids, esto lo podemos obtener con el siguiente comando, despues de una primera ejecucion de la VM para que genere toda la configuracion, desde el directorio donde esta el Vagranfile.

VBoxManage showvminfo $(cat .vagrant/machines/_VMNAME_/virtualbox/id) | grep Rule

NIC 1 Rule(0):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2222, guest ip = , guest port = 22

y con eso, podemos evitar conflictos de puertos para poder desplegar varias VMs

lunes, 20 de mayo de 2024

Usando sed para comentar/descomentar una linea

 a menudo queremos comentar/descomentar una linea en un archivo, esto se puede realizar de una forma rapida, si sabemos la cadena que va a contener la linea, sed es una herramienta bien potente que nos puede ayudar con esta tarea.

si queremos comentar una que inicie con la cadena HOST, podemos ejecutar el siguiente comando:

$ sed 's/^HOST/#&/g' input 
para volver a eliminar el comentario, entonces podemos usar este comando
$ sed 's/^#HOST/HOST/g' input
tambien si queremos aplicar el comentario a mas de una linea mismo tiempo, podemos buscar por mas de un patron!
sed -e 's/^\(HOST\|IP\)/#&/g' input
de forma predeterminada, sed no mmodifica los archivos, para hacer esto, lo recomendable es usar el argumento -i, pero siempre asegurandonos de que se cree un respaldo del archivo original!
sed -i.bak -e 's/^\(HOST\|IP\)/#&/g' input

sábado, 20 de abril de 2024

Usando el comando find para buscar archivos en la linea de comandos

Para buscar archivos que contengan una cadena de texto específica usando el comando find, puede utilizar la siguiente sintaxis:

$ find /ruta/directorio -type f -exec grep -il "cadena de texto" {} \;

  •      /ruta/directorio especifica el directorio en el que se realizará la búsqueda.
  •      -type f especifica que solo busque en archivos.
  •      -exec grep -il "cadena de texto" {} \; ejecuta el comando grep para buscar en el contenido de cada archivo por la cadena de texto deseada. La opcion -l para elimina la salida detallada y muestra solo el path hasta el archivo que coincide; la opcion -i para ignorar mayusculas y minusculas.

Este comando devolverá una lista de nombres de archivos relativos a la ruta especificada que coincidan con la cadena de texto buscada.

:~$ sudo find /etc/ -type f -exec grep -il "modprobe" {} \;
/etc/apparmor.d/abstractions/opencl-nvidia
/etc/apparmor.d/nvidia_modprobe
/etc/init.d/kmod
/etc/discover-modprobe.conf

:~$