Wordpress 6.2 FTP Anonimo
Objetivo: Identificar y mapear las posibles superficies de ataque.
PrivEsc id_rsa con permisos inadecuados
Este comando utiliza Nmap (Network Mapper) para escanear la dirección IP 44.214.248.132. Por defecto, realiza un escaneo básico.
nmap 44.214.248.132Ejemplo básico de salida:
Starting Nmap 7.92 ( https://nmap.org ) at 2024-11-28 15:00 UTC
Nmap scan report for 44.214.248.132
Host is up (0.0012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Host is up: El host está activo.
Puertos abiertos:
ESCANEOS CON PARAMETROS
El parámetro
-sVen Nmap se utiliza para realizar un escaneo de detección de versiones de servicios. Esto significa que Nmap intenta identificar no solo qué puertos están abiertos, sino también qué servicios están corriendo en esos puertos y, en muchos casos, la versión exacta del software.
Salida:
Verificar la versión para determinar si se trata de la más reciente o si ya han pasado varias actualizaciones.
El comando -sV - sC en
nmapse utiliza para realizar un escaneo de un host especÃfico (en este caso, la dirección IP 44.214.248.132) y obtener información detallada sobre los servicios que están corriendo en ese host.
Salida:
SSH (Puerto 22): Permite acceso remoto seguro a sistemas para administración o transferencia de archivos.
HTTP (Puerto 80): Protocolo utilizado para la carga de páginas web, no seguro.
HTTPS (Puerto 443): Versión segura de HTTP que cifra la comunicación con SSL/TLS.
MySQL (Puerto 3306): Sistema de gestión de bases de datos utilizado para almacenar y administrar datos.
Apache Tomcat (Puerto 8080): Servidor de aplicaciones Java para ejecutar aplicaciones web basadas en Java.
FTP (Puerto 21): Protocolo para transferir archivos entre sistemas (no seguro).
SMTP (Puerto 25): Protocolo para el envÃo de correos electrónicos.
DNS (Puerto 53): Traduce nombres de dominio a direcciones IP para acceder a sitios web.
EXPLOTANDO EL SERVICIO FTP

Cuando te conectes, el servidor pedirá un nombre de usuario y una contraseña. Algunos servidores permiten acceso anónimo usando:
Con el comando dir listamos el contenido del directorio actual.

En la imagen anterior, podemos observar los permisos asignados a cada archivo o directorio. Estos indican quién puede leer (r), escribir (w), o ejecutar (x) el archivo, y están organizados en tres grupos: propietario, grupo y otros usuarios.

Los permisos definen las acciones que pueden realizar tres categorÃas de usuarios sobre un archivo o directorio:
Propietario (owner): El usuario que creó el archivo. P_ _ _
Grupo (group): Otros usuarios que forman parte del grupo del archivo. _ G _ _
Otros (others): Todos los demás usuarios. _ _ O_
Cada categorÃa puede tener los siguientes permisos:
r(read): Permiso de lectura (puedes ver el contenido).w(write): Permiso de escritura (puedes modificar el contenido).x(execute): Permiso de ejecución (puedes ejecutar el archivo si es un programa o acceder al directorio).
Ejemplo:
Esto indica:
Propietario (
rwx): Puede leer, escribir y ejecutar.Grupo (
r-x): Puede leer y ejecutar, pero no escribir.Otros (
r--): Solo pueden leer.
Cómo agregar o quitar permisos (comando chmod)
Usando letras (r, w, x):
Para agregar permisos:
Para quitar permisos:
Usando notación numérica (binarios):
Cada permiso tiene un valor asociado:
r= 4,w= 2,x= 1.Para cada categorÃa (propietario, grupo, otros), sumas los valores:
7(4+2+1) = Leer, escribir y ejecutar.6(4+2) = Leer y escribir.5(4+1) = Leer y ejecutar.4(4) = Solo leer.
MUY BIEN AHORA APRENDAMOS A DESCARGAR ARCHIVOS CON FTP

Descarguemos Backup.json:

Ahora, al identificar esta vulnerabilidad, debemos evaluar su criticidad (alta, media o baja) utilizando la trÃada de la seguridad informática: confidencialidad, integridad y disponibilidad.
EXPLOTANDO EL SERVICIO HTTP
El servicio HTTP, al no ser seguro, puede ser explotado debido a la falta de cifrado en las comunicaciones. Esto permite que un atacante pueda interceptar, modificar o robar datos sensibles transmitidos entre el cliente y el servidor mediante técnicas como sniffing, ataques man-in-the-middle (MITM) o inyección de comandos. Es crucial evaluar posibles vulnerabilidades como configuraciones incorrectas, inyecciones SQL, rutas no autenticadas, o directorios accesibles sin control, ya que pueden abrir la puerta a compromisos mayores.

Escaneando nuevos directorios con
dirb:

Al realizar una búsqueda de directorios con herramientas como dirb, se genera una cantidad significativa de tráfico hacia el servidor objetivo. Esto ocurre porque la herramienta envÃa múltiples solicitudes HTTP para probar rutas comunes y directorios. Este tráfico puede ser detectado por sistemas de monitoreo o IDS/IPS, y en algunos casos, puede incluso activar restricciones como bloqueos de IP si hay un sistema de protección configurado.

Al hacer la búsqueda se encontró:


Directorios principales de WordPress:
/wp-adminContiene los archivos del panel de administración de WordPress.
Acceso restringido, pero es un objetivo común para ataques como fuerza bruta.
/wp-contentAlmacena temas, plugins y archivos cargados por el usuario.
Subdirectorios comunes:
/wp-content/themes: Contiene los temas activos e instalados./wp-content/plugins: Contiene los plugins activos e instalados./wp-content/uploads: Carpeta donde se guardan imágenes, videos y otros archivos subidos.
/wp-includesContiene archivos esenciales del núcleo de WordPress para funcionalidades generales.
Por lo general, no se modifica directamente, pero puede ser explotado si hay vulnerabilidades.
Directorios adicionales en servidores configurados
/xmlrpc.phpNo es un directorio, pero es un archivo accesible desde el exterior.
Usado para comunicaciones remotas (por ejemplo, publicar desde apps móviles).
Frecuentemente explotado para ataques de fuerza bruta o DoS.
/.htaccessArchivo de configuración en servidores Apache.
A veces es accesible si no está configurado correctamente, lo que expone reglas sensibles.
/wp-jsonEndpoint de la REST API de WordPress.
Permite a aplicaciones externas interactuar con el sitio (por ejemplo, recuperando publicaciones).
Si no está protegido, puede exponer datos sensibles como nombres de usuario.
/wp-sitemap.xmlGenerado automáticamente para los motores de búsqueda.
Puede revelar URLs interesantes para análisis.
Directorios obsoletos o no seguros (si están presentes)
/backupo/backupsA veces configurados manualmente por administradores.
Puede contener copias de seguridad descargables, si no están protegidas.
/oldo/testDirectorios temporales creados durante pruebas o migraciones.
Suelen ser olvidados y pueden contener una copia completa del sitio.
/cgi-binNo es especÃfico de WordPress, pero algunos servidores lo incluyen.
Si hay scripts mal configurados, puede ser un vector de ataque.
Comandos para enumerar directorios comunes:
Usando dirb:
Con gobuster y una lista optimizada para WordPress:

Las credenciales son las que se encontraron en el FTP en uno de esos archivos.

Ahora como se comporta una pagina web configurada correctamente:


Bueno siguiendo con la vulneración se pudo entrar al login:

Recomendación: utilizar las listas de directorios disponibles en el repositorio de SecLists en GitHub para mejorar la eficacia en la enumeración de directorios y archivos. Estas listas están optimizadas para escenarios especÃficos, incluyendo aplicaciones como WordPress, APIs, y más. Al usar herramientas como gobuster o dirb, puedes apuntar a rutas más relevantes y minimizar el ruido en los resultados.
Sigamos
Una vez adentro trabajaremos con PHP porque WordPress trabaja con ello y agregaremos el código malicioso para subirlo.

Web shell
Bien ahora una vez subido ese codigo en el archivo Error404.php tenemos que entrar en ella:

Ahora insetando comandos para verificar si todo funciona
Comando
whoami

whoami: www- data (quien soy yo )hostaname: ip del equipoip a show: ver las interfaces que tiene el equipols: listar los archivosls -ls /home: los usuarios se encuentran en este directorio

ls -la /home/admin:

Pero tenemos que darnos cuenta que ha simple vista el archivo backup tienen los permisos necesarios para entrar en ella:

c
at /home/admin/backup: para ver que contiene el archivo

Llave privada:

En este punto copiamos la llave privada de SSH.
Creamos una carpeta
mkdiry adentro contouchcreamos un archivo que contenga esa llave la pegamos y despues.

Tenemos que darle permisos al archivo con
chmod 600 llave

Una vez comprometida la maquina verificamos lo siguiente:

Lo siguente solo es sugerencias :
OTRA MANERA DE HACER ESTO CON curl:
Pero cumplen la misma función:

PIVOTING
Excelente. Ahora procederemos con la técnica de pivoting, aprovechando el acceso obtenido previamente para movernos lateralmente hacia otras subredes internas. Esto implicará la enumeración de nuevos objetivos, la identificación de servicios disponibles y, si es posible, el establecimiento de túneles seguros para garantizar una comunicación persistente dentro de la red comprometida.
Razones para realizar el escaneo de puertos en todas las interfaces:
Exposición de servicios en diferentes redes: Un servidor comprometido puede tener múltiples interfaces de red, cada una conectada a redes diferentes (como redes internas, DMZ, o incluso redes externas). Cada interfaz podrÃa estar exponiendo servicios a una red diferente, y estos servicios pueden estar configurados con distintos niveles de seguridad. Por ejemplo, un servidor podrÃa estar exponiendo un puerto SSH en la interfaz de la red interna, pero no en la interfaz pública. Escanear todas las interfaces ayuda a descubrir servicios que pueden estar mal configurados o expuestos innecesariamente.
Descubrimiento de vectores de ataque adicionales: Cada interfaz podrÃa tener servicios distintos ejecutándose en puertos especÃficos. Algunos servicios podrÃan estar desactualizados o mal configurados, lo que los convierte en posibles vectores de ataque. Un escaneo de puertos en todas las interfaces garantiza que se cubren todas las posibles superficies de ataque y no se pasa por alto ningún servicio vulnerable.
Servicios escuchando solo en interfaces internas: Algunos servicios crÃticos, como bases de datos, suelen configurarse para que escuchen solo en interfaces internas por razones de seguridad. Sin embargo, en un escenario de servidor comprometido, si un atacante puede acceder a estas interfaces internas, realizar un escaneo de puertos permitirÃa identificar estos servicios y, potencialmente, explotarlos para obtener acceso a información sensible o comprometer aún más la infraestructura.
Enumeración de posibles caminos de escalación: Un escaneo de puertos completo en todas las interfaces puede revelar servicios que permitan escalar privilegios o realizar movimientos laterales dentro de la red. Por ejemplo, si se detecta un puerto expuesto en una red interna que proporciona acceso a un recurso compartido o a una herramienta de administración, esto puede ser explotado para obtener acceso a otros sistemas conectados a la red.
Identificación de interfaces expuestas externamente: Es posible que algunas interfaces estén conectadas directamente a internet o a redes externas, lo que aumenta significativamente el riesgo de que un atacante explote servicios vulnerables desde fuera de la red. Al identificar todos los puertos abiertos en las interfaces públicas, un atacante o auditor de seguridad puede evaluar qué servicios están expuestos y podrÃan ser utilizados como puerta de entrada al sistema.
Gracias a la ejecución con LinPEAS.sh logramos identificar mucha información de valor para nuestra auditoria.
Entre toda esa información logramos identificar la existencia de una Subnet: 172.16.1.0/24.
Esta coincide con los objetivos proporcionados por la auditoria de seguridad.
Vamos a instalar nmap sobre este servidor comprometido:

Para realizar una enumeración sobre toda la red podemos ejecutar el siguiente comando:



Logramos identificar efectivamente la existencia de 9 servidores dentro de la red interna.
Teniendo las posibilidades dond moverse:

Redireccionamiento local:

Last updated
