miércoles, 28 de septiembre de 2011

Reforzando codificación de msfencode y depurando

En sí estamos siempre liados con las payloads de metasploit, así cómo podemos pasar el archivo generado a .vbs, así como indican en Pentester.es, podemos hacer unos cambios manualmente para poder conseguir bypassear algunos Antivirus en Linux. No sólo me refiero a cosas de Malware, en general de todo.


Es extraño que esté publicando material de este tipo, ya que no soy fanático del Malware, aun así estuve jugando un rato con msfpayload y msfencode, también con msfvenom, pero es lo mismo. Me cree un payload, lo codifiqué con 19 iteraciones, lo pasé a Nvt y me salio que de 9 lo detectaban 4, problema grave. Entonces empecé a ver si podía dejarlo FUD.

Primeramente después de generar el archivo codificado lo debuggee con objdump aver que veía.

# objdump -d pay2.exe |less

Suerte tuve de observar que había una bola de NOP's, pero ese no era el punto. Me fuí con hexedit y edité la primera linea por %90, después inserté en la última linea un %20, aparte de remplazar algunos offsets por %90, lo cual me lo dejó indetectable. Pero quizá podría haber movido la Import Table o algo así. El punto es que no rompí el código y apliqué una conversión rápida en hexadecimal.

Ahora, me pasé a "depurar" el archivo, pensé que sería factible cambiarle los metadatos, me pasé con exiftool

Todo estuvo muy tranquilo y así hice mi experimento.  

Conclusión:
Trabajar con payloads puras es más fácil que trabajar con algún troyano.

Evitar un EXPOSED.

En la actualidad ha habido varios exposed's, por razones personales no mencionaré si yo estuve involucrado en alguno.

Así como me atrevo a mencionar que se como evitar un EXPOSED, me atrevo a decir que no siempre estamos a salvo de alguno. Por ahora no se mencionarán métodos de protección; porque la intención del mensaje no es esa.

Primeramente todos conocemos a los Dumpers, podrían tener en alguna de sus DB robadas tus datos por ello debes de evitar los sitios inseguros, es preferible intentar tener un contacto físico con el vendedor en vez de hacer uso de sus apps inseguras, aun así nos vemos en el riesgo que algún tipo PRO se haga con el control de la DB, pero por ello debemos utilizar un email temporal de algún servicio externo a tus servicios de mensajería, en mi caso utilizo YOPmail y alguno otro poco famoso.

Para evitar problemas, solicita una IP dinámica e intenta averiguar si tu proveedor permite geolocalizaciones, si es así; manos a la obra.

En el caso de foros, utiliza un nick alterno al tuyo o una contraseña opuesta, un email temporal y te recomiendo que para algunas cosas tengas un nick y para otras otro, en mi caso tengo varios nicks y uno fijo para mis amistades y mi blog.

Intenta estar al tanto de los nuevos 0DAYS para intentar estar seguro o consciente en dónde pones tus datos. También intenta no relacionarte con tus otros nicks "temporales".
Eso es todo por ahora, solo fue un topic de advertencia.

domingo, 25 de septiembre de 2011

Saturaciones en Twitter: History

Twitter nuevamente está saturado, siendo las 10:44 AM, y el 25 de Septiembre Twitter murió. Este acontecimiento es albergado bajo un par de supersticiones y aclaraciones, donde señalaban que se podía llegar al límite de Tweetts, así mismo estaban de TweetIndulgentes.


Broma tras broma, observamos que está caído..
¿Qué sucede?

jueves, 22 de septiembre de 2011

Locura de las dosmates.

Hoy en día pienso de que me deparará Jah. Voy forjando un puente bidimensional hacia un futuro venidero. La connotación es relativa, así que las metáforas no servirán para altercar sobre mí ética en su espléndida hegemonía 

Mientras estaba resolviendo un problema en la clase de Matemáticas, me vino algo interesante, en esencia deberíamos de comprender poco más de este nivel, así que para ser claros es álgebra básica.

El problema es el siguiente presentado gráficamente:



Claramente observamos que el primer cuadro, llámesele A, es X elevado al cuadrado, por lo tanto el cuadrado de X es lo doble que el segundo cuadro evidentemente (llámesele B), pero aquí influye un factor más importante donde no son usadas las literales, simplemente números comunes, en el cuadro siguiente (llámesele C), el cual si lo duplicamos daría el cuadro A. Por lo tanto si el cuadro C es 1, el cuadro A es 4 porque si duplicamos el cuadro daría el mismo resultado. Por lo tanto si ya tenemos los valores definidos X sería 2.

Ahora, aquí se entabla algo bien interesante, la duplicación del cuadro C es el cuadro A y no el cuadro B, es sencillo de explicar. El cuadro B simplemente se duplicó el alto. Es lógico que una duplicación involucra todas las dimensiones usadas, así que se duplicará tanto X, como Y en el plano cartesiano, ahora no me meteré con figuras tridimensionales ya que constaría hablar de planos coordenados, y es un tema que no me gusta tocar cuando estamos viendo teoría simple y básica.

Realmente es contraproducente pensar en estos disparates a la hora de simplificar y resolver un problema matemático sencillo. No era mi intención altercar sobre esta "cónyuge" disparatada y impertinente, pero sin más ni menos temor la publico. Curioso caso, el problema es conducirlo correctamente para que el profesor no se líe, y/o te haga un testaferro sin tu consentimiento. Razónalo antes de adjudicar que esta teoría es mía.

martes, 20 de septiembre de 2011

Algorithm time in PHP: Basic cryptography

Buenas noches público y visitantes que están hoy conmigo, me agradezco a mí mismo mucho por haber hecho este blog pero a la vez retiraré las entradas sobre Pentesting por razones particulares no mencionadas tanto anteriormente como en adelante.

Les traigo una herramienta nada útil por cierto, es un algoritmo sencillo y fácil de comprender, es un wargame local, córrelo en tu máquina y listo. Aún está en Alpha así que esperaré por bugs que me envíen, en realidad no lo testee debido a la complejidad y falta de tiempo. Aun siendo el programador es laborioso hacer el BOT que solucione el problema, ya que es necesario tomar el tiempo, tomar la fecha, hacer cuentas, pasarlo a HEX y de ahí encriptarlo con MD5 y pasarlo por GET. Sencilla la fórmula y todo, es básico pero laborioso, espero que no les molesté, no copié nada de nadie así que lo pongo aquí.

Código Fuente Legible Aquí


Es bueno, espero que todo esté bien y nos vemos luego compañeros, que necesito descansar.

jueves, 15 de septiembre de 2011

Fucking NMAP Fingerprinting

Perfecto, estaba guardando esto para hoy ya que descanso un poco, entre comillas puesto que esta actividad no es descanso; de hecho llegaría a ser trabajo pesado.
Cuándo uno hace las cosas con gusto le salen bien, pero la pasión no es todo.

Pensaremos cómo evadir el fingerprinting de nmap o alguna otra aplicación de escaneo de puertos. Para ello daremos uso a una herramienta llamada Scapy, está claro que para manejarse bien con esta misma deberíamos de saber python, al menos dominar el lenguaje. Me inclino más por PHP y Perl, pero siempre me ha gustado aprender más lenguajes.

Con Scapy podemos manipular de manera eficaz los paquetes de red enviados, esta vez presentaré una herramienta que está integrada al suite de Backtrack o programada por vlan7 al parecer, en realidad me robé la herramienta.

Primero configuramos el iptables agregándole una regla de no aceptar que la "conexión" salga, me entenderán mejor viendo el comando:
iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
Así efectivamente lo que estabas pensando, después simplemente corremos nuestro script en python y esperamos a que el atacante haga su escaneo
Así conseguiremos engañar el NMAP respondiendole que tenemos todos los puertos abiertos.

miércoles, 14 de septiembre de 2011

Modernizando el Rooteo

Sabemos bastante que el rooteo es muy divertido, llámese rooteo o elevación de permisos/privilegios. Llega algo modernizado: Root + Webapps.
Al explotar una vulnerabilidad webapp llega y se presenta un problema: Los privilegios. Así cómo nosotros sabemos que al hacer pentesting quizá necesitemos rootear, en algunas ocasiones. Sucede lo mismo cuando uno está con webapps. Lo interesante aparece cuando estamos explotando un Remote Command Execution en una Webapp, primeramente tiene bastante nivel algún RCE, peculiarmente en los paneles de control, por ello he hecho un escenario fingido de un ataque RCE y luego la elevación de privilegios.

Kernel Exploits
Cómo ya mencioné en mi antiguo topic es poco divertido explotar el kernel, simplemente averiguamos el kernel, buscamos un exploit y listo. Tomando en cuenta que
  • No tenemos tiempo de codificar un exploit
  • Ni mucho menos de encontrar una vuln. en el Kernel
  • Y/o nuestros conocimientos son limitados
Estos puntos son por los cuales se buscan exploits del kernel (La mayoría lo hace), pero no solo están los kernel exploits.

App Exploits
Estos son muy frecuentes en los sistemas, cómo ya mencioné en mi topic anterior platicamos sobre una explotación a nivel software de algún Heap Overflow en el sistema que nos permitía escribir en el fichero /etc/passwd pero esto es poco peculiar aunque... en fin.


HTTP Tunneling
Interesante tema Donny (Sí ese es mi "nombre real"), pero ¿cómo? El HTTP Tunneling no es nada más ni nada menos que la hacer un túnel HTTP para que pasen encapsulados los paquetes TCP. En pocas palabras utilizamos la conexión HTTP para otros fines. Esto nos lo facilita reDuh, pero también podríamos pogramar una herramienta nosotros mismos. Nos apoyaremos con solo la teoría; esta es un poco más sencilla. 
Existe una conexión HTTP entre la víctima y el atacante, pero este vivo consigue subir un servidor al servidor (httpshell en jsp/asp/php) así con el cliente nos conectamos ya que el servidor está en la escucha y empezamos con nuestras cosas.


Safe-Mode & Webshells
Siempre tengo la costumbre de meterme 3 churros antes de escribir un topic, claro, para divagar. Pero es impredecible mencionar las webshells y el safe_mode. Está claro que con un LFI podemos subir una webshell, y aquí es donde yo meto mi magia y hago una escenario bastante básico:


Aquí está el fichero rce.php, más o menos así son las webshells, pero algo muy curioso es el "Safe-Mode", esto significa que está en modo seguro o no, el safe-mode OFF nos ayuda a podernos saltar de directorios y hacer nuestro desmadre.

DLL injection 
La DLL injection es una práctica muy divertida y emocionante que podemos emplear tanto en los sistemas linux y los sistemas windows, me parece que casi nadie la utiliza, ya está claro que es por algo: Pocas aplicaciones se exponen tan fácilmente. Consta en inyectar una DLL por medio de una vulnerabilidad de requerimiento de DLL's (En Linux llamadas Shared Object) que nos permite inyectar una DLL porque primero el programa se basa en una búsqueda directa de DLL's, la vulnerabilidad consta en que primero se busque en el directorio desde el que ejecutas el programa y después los paths determinados y/o declarados.


La explotación de este mismo es sencilla, simplemente hacemos esto

# /etc/directory/vuln.sh

Barroqo, aun no has conseguido discenir tus propias sádicas intenciones
# cd /tmp/.Barroqo/
# /etc/directory/vuln.sh
PWNED

Y así logramos una inyección exitosa, propio para el rooteo jeje.

Inyectando Backdoors en los procesos
Este es el último método que voy a publicar, consiste en la inyección de backdoors en los procesos, una eficaz herramienta es cymothoa la cual nos trae Backtrack 5 quizá la versión 4 también. Es bastante simple, no me gusta explicar como utilizar un programa así que nos vemos.