Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Java] MD5 Cracker 0.2

  • 2 Respuestas
  • 3037 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Enero 22, 2016, 12:18:48 pm »
Un simple programa en Java para crackear un hash MD5 mediante 3 servicios online.

Una imagen :



El codigo :

Código: Java
  1. // MD5 Cracker 0.2
  2. // (C) Doddy Hackman 2015
  3. // Credits : Based in the services ...
  4. // http://md5online.net/index.php
  5. // http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php
  6. // http://md5decryption.com/index.php
  7. package MD5_Cracker;
  8.  
  9. import java.util.regex.Matcher;
  10. import java.util.regex.Pattern;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.SwingUtilities;
  13. import org.jvnet.substance.SubstanceLookAndFeel;
  14.  
  15. /**
  16.  *
  17.  * @author Doddy
  18.  */
  19. public class Home extends javax.swing.JFrame {
  20.  
  21.     /**
  22.      * Creates new form Home
  23.      */
  24.     public Home() {
  25.         initComponents();
  26.     }
  27.  
  28.     /**
  29.      * This method is called from within the constructor to initialize the form.
  30.      * WARNING: Do NOT modify this code. The content of this method is always
  31.      * regenerated by the Form Editor.
  32.      */
  33.     @SuppressWarnings("unchecked")
  34.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  35.     private void initComponents() {
  36.  
  37.         jPanel3 = new javax.swing.JPanel();
  38.         jPanel1 = new javax.swing.JPanel();
  39.         txtMD5 = new javax.swing.JTextField();
  40.         btnCrack = new javax.swing.JButton();
  41.         jPanel2 = new javax.swing.JPanel();
  42.         jLabel1 = new javax.swing.JLabel();
  43.         jLabel2 = new javax.swing.JLabel();
  44.         jLabel3 = new javax.swing.JLabel();
  45.         txtPassword1 = new javax.swing.JTextField();
  46.         txtPassword2 = new javax.swing.JTextField();
  47.         txtPassword3 = new javax.swing.JTextField();
  48.         jPanel4 = new javax.swing.JPanel();
  49.         status = new javax.swing.JLabel();
  50.  
  51.         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  52.         jPanel3.setLayout(jPanel3Layout);
  53.         jPanel3Layout.setHorizontalGroup(
  54.             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  55.             .addGap(0, 100, Short.MAX_VALUE)
  56.         );
  57.         jPanel3Layout.setVerticalGroup(
  58.             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  59.             .addGap(0, 100, Short.MAX_VALUE)
  60.         );
  61.  
  62.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  63.         setTitle("MD5 Cracker 0.2 (C) Doddy Hackman 2015");
  64.         setResizable(false);
  65.  
  66.         jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Enter MD5", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));
  67.  
  68.         btnCrack.setText("Crack");
  69.         btnCrack.addActionListener(new java.awt.event.ActionListener() {
  70.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  71.                 btnCrackActionPerformed(evt);
  72.             }
  73.         });
  74.  
  75.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  76.         jPanel1.setLayout(jPanel1Layout);
  77.         jPanel1Layout.setHorizontalGroup(
  78.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  79.             .addGroup(jPanel1Layout.createSequentialGroup()
  80.                 .addContainerGap()
  81.                 .addComponent(txtMD5, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE)
  82.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  83.                 .addComponent(btnCrack, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE)
  84.                 .addContainerGap())
  85.         );
  86.         jPanel1Layout.setVerticalGroup(
  87.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  88.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  89.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  90.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  91.                     .addComponent(txtMD5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  92.                     .addComponent(btnCrack))
  93.                 .addContainerGap())
  94.         );
  95.  
  96.         jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Result", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));
  97.  
  98.         jLabel1.setText("md5online.net ->");
  99.  
  100.         jLabel2.setText("md5.my-addr.co ->");
  101.  
  102.         jLabel3.setText("md5decryption.com ->");
  103.  
  104.         txtPassword1.setEditable(false);
  105.  
  106.         txtPassword2.setEditable(false);
  107.  
  108.         txtPassword3.setEditable(false);
  109.  
  110.         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
  111.         jPanel2.setLayout(jPanel2Layout);
  112.         jPanel2Layout.setHorizontalGroup(
  113.             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  114.             .addGroup(jPanel2Layout.createSequentialGroup()
  115.                 .addGap(28, 28, 28)
  116.                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  117.                     .addGroup(jPanel2Layout.createSequentialGroup()
  118.                         .addComponent(jLabel3)
  119.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  120.                         .addComponent(txtPassword3))
  121.                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
  122.                         .addComponent(jLabel2)
  123.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  124.                         .addComponent(txtPassword2))
  125.                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
  126.                         .addComponent(jLabel1)
  127.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  128.                         .addComponent(txtPassword1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE)))
  129.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  130.         );
  131.         jPanel2Layout.setVerticalGroup(
  132.             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  133.             .addGroup(jPanel2Layout.createSequentialGroup()
  134.                 .addContainerGap()
  135.                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  136.                     .addComponent(jLabel1)
  137.                     .addComponent(txtPassword1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  138.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  139.                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  140.                     .addComponent(jLabel2)
  141.                     .addComponent(txtPassword2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  142.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  143.                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  144.                     .addComponent(jLabel3)
  145.                     .addComponent(txtPassword3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  146.                 .addContainerGap(15, Short.MAX_VALUE))
  147.         );
  148.  
  149.         jPanel4.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
  150.  
  151.         status.setText("[+] Program Ready");
  152.  
  153.         javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
  154.         jPanel4.setLayout(jPanel4Layout);
  155.         jPanel4Layout.setHorizontalGroup(
  156.             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  157.             .addGroup(jPanel4Layout.createSequentialGroup()
  158.                 .addComponent(status)
  159.                 .addGap(0, 0, Short.MAX_VALUE))
  160.         );
  161.         jPanel4Layout.setVerticalGroup(
  162.             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  163.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
  164.                 .addGap(0, 0, Short.MAX_VALUE)
  165.                 .addComponent(status))
  166.         );
  167.  
  168.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  169.         getContentPane().setLayout(layout);
  170.         layout.setHorizontalGroup(
  171.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  172.             .addGroup(layout.createSequentialGroup()
  173.                 .addContainerGap()
  174.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  175.                     .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  176.                     .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  177.                 .addContainerGap())
  178.             .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  179.         );
  180.         layout.setVerticalGroup(
  181.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  182.             .addGroup(layout.createSequentialGroup()
  183.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  184.                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  185.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  186.                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  187.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  188.                 .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  189.                 .addGap(0, 0, 0))
  190.         );
  191.  
  192.         pack();
  193.     }// </editor-fold>                        
  194.  
  195.     private void btnCrackActionPerformed(java.awt.event.ActionEvent evt) {                                        
  196.  
  197.         DH_Tools tools = new DH_Tools();
  198.  
  199.         if ("".equals(txtMD5.getText())) {
  200.             JOptionPane.showMessageDialog(null, "Write MD5");
  201.         } else {
  202.  
  203.             SwingUtilities.updateComponentTreeUI(this);
  204.             status.setText("[+] Cracking ...");
  205.  
  206.             String md5 = txtMD5.getText();
  207.  
  208.             String code1 = tools.tomar("http://md5online.net/index.php", "pass=" + md5 + "&option=hash2text&send=Submit");
  209.  
  210.             Pattern search = null;
  211.             Matcher regex = null;
  212.  
  213.             search = Pattern.compile("pass : <b>(.*?)<\\/b>");
  214.             regex = search.matcher(code1);
  215.             if (regex.find()) {
  216.                 txtPassword1.setText(regex.group(1));
  217.             } else {
  218.                 txtPassword1.setText("Not Found");
  219.             }
  220.  
  221.             String code2 = tools.tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php", "md5=" + md5);
  222.  
  223.             search = Pattern.compile("<span class='middle_title'>Hashed string<\\/span>: (.*?)<\\/div>");
  224.             regex = search.matcher(code2);
  225.             if (regex.find()) {
  226.                 txtPassword2.setText(regex.group(1));
  227.             } else {
  228.                 txtPassword2.setText("Not Found");
  229.             }
  230.  
  231.             String code3 = tools.tomar("http://md5decryption.com/index.php", "hash=" + md5 + "&submit=Decrypt It!");
  232.  
  233.             search = Pattern.compile("Decrypted Text: <\\/b>(.*?)<\\/font>");
  234.             regex = search.matcher(code3);
  235.             if (regex.find()) {
  236.                 txtPassword3.setText(regex.group(1));
  237.             } else {
  238.                 txtPassword3.setText("Not Found");
  239.             }
  240.  
  241.             SwingUtilities.updateComponentTreeUI(this);
  242.             status.setText("[+] Finished");
  243.  
  244.         }
  245.  
  246.  
  247.     }                                        
  248.  
  249.     /**
  250.      * @param args the command line arguments
  251.      */
  252.     public static void main(String args[]) {
  253.         /* Set the Nimbus look and feel */
  254.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  255.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  256.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  257.          */
  258.         try {
  259.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  260.                 if ("Nimbus".equals(info.getName())) {
  261.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  262.                     break;
  263.                 }
  264.             }
  265.         } catch (ClassNotFoundException ex) {
  266.             java.util.logging.Logger.getLogger(Home.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  267.         } catch (InstantiationException ex) {
  268.             java.util.logging.Logger.getLogger(Home.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  269.         } catch (IllegalAccessException ex) {
  270.             java.util.logging.Logger.getLogger(Home.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  271.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  272.             java.util.logging.Logger.getLogger(Home.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  273.         }
  274.         //</editor-fold>
  275.  
  276.         /* Create and display the form */
  277.         Home.setDefaultLookAndFeelDecorated(true);
  278.         String skin = "org.jvnet.substance.skin.RavenGraphiteGlassSkin";
  279.         SubstanceLookAndFeel.setSkin(skin);
  280.         SubstanceLookAndFeel.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceMetalWallWatermark");
  281.  
  282.         java.awt.EventQueue.invokeLater(new Runnable() {
  283.             public void run() {
  284.                 new Home().setVisible(true);
  285.             }
  286.         });
  287.     }
  288.  
  289.     // Variables declaration - do not modify                    
  290.     private javax.swing.JButton btnCrack;
  291.     private javax.swing.JLabel jLabel1;
  292.     private javax.swing.JLabel jLabel2;
  293.     private javax.swing.JLabel jLabel3;
  294.     private javax.swing.JPanel jPanel1;
  295.     private javax.swing.JPanel jPanel2;
  296.     private javax.swing.JPanel jPanel3;
  297.     private javax.swing.JPanel jPanel4;
  298.     private javax.swing.JLabel status;
  299.     private javax.swing.JTextField txtMD5;
  300.     private javax.swing.JTextField txtPassword1;
  301.     private javax.swing.JTextField txtPassword2;
  302.     private javax.swing.JTextField txtPassword3;
  303.     // End of variables declaration                  
  304. }
  305.  
  306. // The End ?
  307.  

Si quieren bajar el programa lo pueden hacer de aca.

Desconectado Flemon

  • *
  • Underc0der
  • Mensajes: 235
  • Actividad:
    0%
  • Reputación 0
  • NO HAY FORMA DE DETENERME!!
    • Ver Perfil
    • Email
« Respuesta #1 en: Enero 23, 2016, 06:59:31 am »
Muy buen trabajo Doddy... Tienes el objeto DH_Tools que se crea en el boton Crack en la linea 197?

La encontre en otro post

https://underc0de.org/foro/java/(java)-class-dh-tools-0-2/

Muchas gracias
No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

Desconectado EPSILON

« Respuesta #2 en: Enero 23, 2016, 03:19:02 pm »
Muy bueno @Doddy lastima que son solo 3 webs, si fueran mas estaría mejor ya que para "crackear" el hash usa una base de datos ya creada con hashes ya crackeados, osea que mientras más webs más posibilidades de encontrarlo tenemos.

PD: Sigue asi bro! tus tools están muy buenas.

Saludos!

 

¿Te gustó el post? COMPARTILO!



[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 3559
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 3899
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 5
Vistas: 8202
Último mensaje Enero 23, 2019, 07:14:41 pm
por jashin
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 9143
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
Sobreescritura y SobreCarga de Métodos en Java ( Overriding y Overloading )

Iniciado por Expermicid

Respuestas: 0
Vistas: 2095
Último mensaje Noviembre 02, 2014, 05:02:04 pm
por Expermicid