Comandos para hackers
En este artículo se comentan comandos y ficheros que nos pueden proporcionar mucha información sobre el sistema o que permiten aprovechar vulnerabilidades.
Sólo se comentan por encima, por lo que se debería ir profundizando en el manual en línea de cada uno. Al igual que en el artículo de Comandos interesantes, se pueden consultar en orden alfabético.
arp
Con este comando se puede ver y manipular la tabla ARP del sistema.
Es necesario entender cómo funciona ARP y este comando para el llamado ARP Poisoning
df
Muestra la utilización de disco de las particiones montadas. Con -k nos aseguramos de que lo muestra en kilobytes y si quieremos leerlo más cómodo podemos usar -h para que lo muestre legible por humanos.
dmesg
Lista el buffer de mensajes del núcleo. Este buffer contiene una gran variedad de mensajes importantes generados durante el arranque del sistema y durante la depuración de aplicaciones.
Como todo, se puede hacer un grep para buscar mensajes de un dispositivo determinado, por ejemplo, del usb:
$ dmesg | grep -i 'usb'
dpkg
Para ver, instalar o desinstalar paquetes. Con -l se pueden ver los instalados.
du
Disk Usage. Sirve para ver, de manera recursiva, lo que ocupan los directorios por debajo del especificado.
Si hacemos:
$ du -h --max-depth=1 /
Nos dice lo que ocupan los directorios principales sin entrar en más niveles (--max-depth=1)
Ficheros con información abierta
/etc/resolv.conf /etc/motd, /etc/issue /etc/passwd /proc/cpuinfo /proc/meminfo /etc/network/interfaces
gcc
El compilador de C y C++ de GNU.
Si ponemos
$ gcc -v
Nosa información acerca de la versión del compilador.
Nota: Muchos programas potencialmente explotables informan de su versión con -v o con --version. Por ejemplo mysql, perl, python, java...
hostname
Muestra el nombre del host al que estamos conectados. La variable $HOSTNAME también lo puede tener.
id
Este comando sirve para averiguar cada usuario a qué grupos pertenece y cual es su uid y el gid de sus grupos.
ip
Este comando informa y modifica aspectos de las direcciones IP y las rutas. En algunos casos recomiendan usar este antes que ifconfig, ya que ifconfig está obsoleto. algunos ejemplos
Para ver las direcciones IP:
$ ip addr show
iptables
Este comando es uno de los más importantes para la seguridad de un sistema. Permite ver y modificar el filtrado de paquetes.
Con:
$ iptables -L -n
Se pueden ver las que hay actualmente.
El comando iptables es fundamental y merece la pena estudiar sus posibilidades.
last
Este comando muestra los últimos usuarios conectados.
lastlog
Este muestra todos los usuarios y la última vez que se loguearon
lsof
list open files
Sirve para ver los ficheros que tienen abiertos los procesos.
$ lsof -nPi
Con -i muestra las conexiones de Internet, con -n -P se hace un poco más rápido al no tener que traducir nombres ni puertos.
lspci
Lista los dispositivos conectados a los puertos PCI. Informa del nombre y modelo de muchos de ellos, lo que puede ser útil para buscar drivers o encontrar problemas concretos de esos modelos.
lsusb
Igual que el lspci, pero muestra los usb
lshw
Muestra información muy detallada del hardware del sistema. Se puede usar -c para limitar la bśuqueda a determinados tipos de hardware. Por ejemplo, -c network
mount
Si sólo ponemos:
$ mount
Nos informa de las particiones que están montadas.
ncat i nmap
Tan útiles y complejos que merecen una pàgina para ellos
$ sudo nmap 192.168.1.1-255 $ arp
De esta manera tenemos una lista de todas las macs de la red.
netstat
Muestra conexiones de red, tablas de encaminamiento, estadísticas...
Es otra de las herramientas de diagnóstico imprescindibles. Aquí podemos ver algún ejemplo, pero sería conveniente profundizar mucho más.
$ netstat -anoc
Con -a se muestran todos los conectores, incluidos los que están a la escucha. -n muestra direcciones numéricas. -o información adicional sobre los temporizadores de red y -c lo hace continuo.
$ netstat -r
Muestra las rutas, algo similar a route
$ netstat -nltupw
-u y -t sirve para ver los puertos udp y tcp , con -l muestra los que están escuchando. -p sirve para ver el programa.
$ netstat -s
Muestra estadísiticas.
$ netstat -i $ netstat -ie
Muestra las interfaces.
ps
$ ps aux
Muestra los (a) los procesos de todos los usuarios, (u) mostrando el usuario y la hora de inicio y (x) también los que no están controlados por ninguna terminal
route
Con el comando route, se puede ver y modificar la tabla de enrutamiento del sistema. Si además, ponemos un 1 en /proc/sys/net/ipv4/ip_forward se puede redirigir el tráfico entrante y convertir el ordenador en un router.
Con:
$ route -n
Se puede averiguar cual es la tabla de rutas en este momento.
top
Este comando nos permite ver los procesos que están consumiendo más procesador o memoria. Hay una versión mejorada llamada htop
Si lo usamos como:
$ top -n 1 -b
Se iterna una vez (-n 1) y con -b se consigue que el resultado no se adapte a la pantalla. De esta manera se pueden obtener todos los procesos.
uname
Si ponemos en la terminal:
$ uname -a
Nos sale el tipo de sistema que es, la versión del kernel, el nombre de la distribución y si es de 32 o 64 bits. Esto último se puede conseguir sólo poniendo arch en la terminal.
w
Muestra información de qué están haciendo los usuarios que están conectados.
who
Muestra qué usuarios están conectados y desde cuando. con -a muestra todos.
Enlaces
- Fuente de muchos de los comandos: http://www.hackplayers.com/2012/12/comandos-utiles-de-nix-para-pen.html