Que conste que en ningun momento he querido ofender a nadie, no me tienes que convencer de que es inseguro, ni de que es un exelentisimo tutorial
Saludos
Saludos
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: braulio-- en 14 Julio 2010, 20:48 PMY pensar que no soy capaz de siquiera poisonear un pc sin antivirus en una red desprotegida...
Lo cierto es que el poder conseguir una shell es muy posible y hay una cantidad enorme de formas. Puedes leerte un howto que hizo kasmky (el primero) sobre un ataque de este tipo.
Cita de: Novlucker en 14 Julio 2010, 19:09 PMxD ya lo he pre-supuesto, no he tenido que montarme ningun algoritmo para ello xD
Pero es lo que estoy diciendo, mira el archivo ese que he subido, en ese archivo se muestran las posibles combinaciones de las 10 letras tomadas de a 4, el mío también es dinámico, le metes la lista de caracteres y el largo máximo para la palabra, y te tira el diccionario
Saludos
Cita de: FerJGS en 14 Julio 2010, 18:48 PMA que te refieres con algun debug?
En batch estoy seguro de que no se puede hacer, en todo caso...con algunos comandos y un debug. Pero seguro que se puede hacer en VB, es ideal para controlar la apariencia de la pantalla
Cita de: LEYER en 14 Julio 2010, 17:33 PM
"Te he enseñado bien, haora la fuerza esta con tigo" XD jaja
Se puede mejorar mucho, ademas con tu metodo es facil mejorarlo para que soporte mas de 3 caracteres, lo modifique para 4 y funcionaba
Mas tarde lo miro con mas profundidad.
Sigue asi.
Un saludo.
package main;
import java.lang.String;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author root
*/
public class Encriptor {
public static void main(String[] args)
{
String resultado = null;
String match = "65070638cd89011c9ab230ba2fac46dd";
int limCaracteres = 4;
String[] mapaChars = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
int posibles = (int) Math.pow(limCaracteres,mapaChars.length);
System.out.println("Posibles: " + posibles + "\n" + "Lenght mapa: " + mapaChars.length);
String[] combinacion = new String[limCaracteres];
int[] indices = new int[limCaracteres];
for(int y = 0; y < indices.length; y++)
{
indices[y] = 0;
}
for(int i = 0; i < posibles;i++)
{
for(int x = 0; i < limCaracteres; i++)
{
if(indices[x] == mapaChars.length)
{
indices[x] = 0;
indices[x+1]++;
}
}
for(int j = 0; j < limCaracteres; j++)
{
combinacion[j] = mapaChars[indices[j]]; /* Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at main.Encriptor.main(Encriptor.java:52)
Java Result: 1 */
}
String resultadoTransitorio = new String(combinacion[0] + combinacion[1] + combinacion[2]);
String resultadoEncriptado = new String(Encriptor.encriptaMD5(resultadoTransitorio));
if(resultadoEncriptado.equals(match))
{
resultado = resultadoTransitorio;
break;
}
indices[0]++;
}
System.out.println("Hash crackeada con exito!\n" + resultado);
/*String cadena = new String("acb");
System.out.println(Encriptor.encriptaMD5(cadena) + "\n" + Encriptor.encriptaSHA1(cadena));*/
}
public static String encriptaMD5(String toEnc)
{
MessageDigest mdEnc = null;
try {
mdEnc = MessageDigest.getInstance("MD5"); // Encryption algorithm
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Encriptor.class.getName()).log(Level.SEVERE, null, ex);
}
mdEnc.update(toEnc.getBytes(), 0, toEnc.length());
String md5 = new BigInteger(1, mdEnc.digest()).toString(16);
return md5;
}
public static String encriptaSHA1(String toEnc)
{
MessageDigest shEnc = null;
try {
shEnc = MessageDigest.getInstance("SHA1"); // Encryption algorithm
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Encriptor.class.getName()).log(Level.SEVERE, null, ex);
}
shEnc.update(toEnc.getBytes(), 0, toEnc.length());
String sha1 = new BigInteger(1, shEnc.digest()).toString(16);
return sha1;
}
}
import java.lang.String;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author root
*/
public class Encriptor {
public static void main(String[] args)
{
String resultado = null;
String match = "d9058beaae2e147183870304dd526761";
String[] mapaChars = {"A","B","C"};
int posibles = (int) Math.pow(3,mapaChars.length);
String[] combinacion = new String[3];
int indice1 = 0;
int indice2 = 0;
int indice3 = 0;
for(int i = 0; i < posibles;i++)
{
if(indice1 == 3)
{
indice1 = 0;
indice2++;
}
if(indice2 == 3)
{
indice2 = 0;
indice3++;
}
if(indice3 == 3)
{
indice3 = 0;
}
combinacion[0] = mapaChars[indice1];
combinacion[1] = mapaChars[indice2];
combinacion[2] = mapaChars[indice3];
String resultadoTransitorio = new String(combinacion[0] + combinacion[1] + combinacion[2]);
String resultadoEncriptado = new String(Encriptor.encriptaMD5(resultadoTransitorio));
if(resultadoEncriptado.equals(match))
{
resultado = resultadoTransitorio;
break;
}
indice1++;
}
System.out.println("Hash crackeada con exito!\n" + resultado);
/*String cadena = new String("acb");
System.out.println(Encriptor.encriptaMD5(cadena) + "\n" + Encriptor.encriptaSHA1(cadena));*/
}
public static String encriptaMD5(String toEnc)
{
MessageDigest mdEnc = null;
try {
mdEnc = MessageDigest.getInstance("MD5"); // Encryption algorithm
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Encriptor.class.getName()).log(Level.SEVERE, null, ex);
}
mdEnc.update(toEnc.getBytes(), 0, toEnc.length());
String md5 = new BigInteger(1, mdEnc.digest()).toString(16);
return md5;
}
public static String encriptaSHA1(String cadena)
{
byte[] defaultBytes = cadena.getBytes();
MessageDigest algorithm = null;
try {
algorithm = MessageDigest.getInstance("SHA1");
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Encriptor.class.getName()).log(Level.SEVERE, null, ex);
}
algorithm.reset();
algorithm.update(defaultBytes);
byte messageDigest[] = algorithm.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0;i<messageDigest.length;i++) {
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
}
String foo = messageDigest.toString();
cadena = hexString+"";
return cadena;
}
}