Diccionarios: Quiero saber la verdad

Iniciado por Citrusl, 12 Noviembre 2019, 19:35 PM

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

Citrusl

Tenes tu pc y tu antena en modo monitor con aircrack, john o la aplicación que más te guste pero te diste cuenta que las claves de los routers van desde 10 a 14 caracteres alfanumericos (a-A-0).

--Cuenta la leyenda que hay diccionarios como (dark0de, rainbowtables,etc)--

A lo que pregunto... Realmente son útiles?
Es decir, en C/C++ encontré un código muy bueno, mis honores al autor "Arvind
Kumar",
donde se generan todas las claves posibles de 10 a 14 caracteres creando un archivo
superior a los 1000 Terabytes  lo cual limitaría a cualquier mortal a poseer o manejar
dicho archivo.lst

--Tipico noob preguntando estupideces, la clave se compone por hashes, ssid y bla bla bla.

Debatible, yo creo que aplica a solo unos cuantos modelos, y varia según la marca (TP-
LINK, CISCO, Huawei, etc).

En una situación hipotética que resolvemos el tema del manejo de listas, diría que se podría hackear lo que sea, pero entonces viene mi duda... Cómo lo hacen?

Que apps usan?
Cómo manejan tales diccionarios?
Libros?
Tutoriales?
Source Codes?

Antes que respondan, se que hay mucho por leer en esta página y cada día leo un poco más, pero una guía, una brújula en este mar de conocimiento nos ayuda a no ir a la deriva y evitar hundirnos en la desinformación.

Y a los mods o haters, vayanse al car@@@!! La información tiene que ser libre, de que sirve un foro si no es para compartir.





engel lex

CitarRealmente son útiles?

en casos especificos, con claves colocadas por usuarios poco conocedores or tecnicos incompetentes, las raimbow casos mas especificos

Citardonde se generan todas las claves posibles de 10 a 14 caracteres creando un archivo
superior a los 1000 Terabytes

en realidad tener 1000TB de espacio es posible, sin embargo el tiempo que te tarda si no es posible... probablemente mas largo que el universo mismo

CitarEn una situación hipotética que resolvemos el tema del manejo de listas, diría que se podría hackear lo que sea, pero entonces viene mi duda... Cómo lo hacen?

necesitas entender el objetivo y deducir que tan vulnerable será... las listas es harina de otro costal...

CitarQue apps usan?
Cómo manejan tales diccionarios?
Libros?
Tutoriales?
Source Codes?

apps, las comunes como las que pueden venir en kali, alli está entre lo mejor que puede haber...

los diccionarios muchas veces es gastar polvora en zamuros, pero es un mal necesario, siempre puedes haberte conseguido con un punto debil...

libros? nope, todo lo que consigas será mas registro historico que otra cosa, mas bien ver foros, blogs o incluso en youtube conferencias como el blackhat

tutoriales, cualquiera, pero la mayor parte de la informacion util la obtendrás de la documentacion

sources? depende...

CitarY a los mods o haters, vayanse al car@@@!! La información tiene que ser libre, de que sirve un foro si no es para compartir.

cual es el hating contra los mods? mientras no salga de los estudios de hacking etico no hay punto para contrariar temas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Citrusl

Gracias y perdón por la ultima oración se me fue la mano, simplemente detesto perder mi tiempo, todo es texto texto y nada de código. Te terminas leyendo horas y horas y solo rescatas algo como:

ifonfig wlan0 down
ifconfig wlan0 mode monitor
ifconfig wlan0 up
airodump-ng wlan0 (scan all the devices)
airodump-ng --bssid (mac) -c (channel) -w (file to save) wlan0
--------------------------------------------------------------

cowpatty -F (wordlist) -R (Capture) -S (Network name)
--------------------------------------------------------------

Sort by number of packets:

aireplay-ng -0 (desautenticar) 3 (number of packets) -a Mac_Address_AP -c Client_Mac_Address
aireplay-ng --deauth 5 -a (BSSID) -c (STATION_ID) wlan0
--------------------------------------------------------------

aircrack-ng -w (wlan0?) -s (archivo.pcap)

--

Etc...

Encontrar el objetivo es facil, sobretodo con los dispositivos wireless.
Mi motivación es el cracking.
Generalmente odio ser un script kiddie que solo usa aplicaciones que hacen cosas "maravillosas" sin explicar cómo funcionan.
Generalmente trato de descargarlas y crear mi propia versión.
Aveces es imposible, otras es innecesario reinventar la rueda.

Pero a veces sueño con encontrar algún algoritmo de mayor eficacia.

Que por ejemplo genere un diccionario pero sin tener en cuenta valores con letras repetidas mas de tres veces "aaa". De esa forma crearía un archivo mucho menor y mas eficiente.
o quizá borrando solo "0000000".

Estoy intentando crear algo en C, voy a postear más adelante si tengo exito con eso. 



engel lex

te recomiendo python... y tal cosa como "un diccionario mas eficiente" no lo obtendrás con solo algoritmo, involucraría estudiar psicologia, cosas culturales, contraseñas filtradas, etc... ya que al final va a ser un diccionario con una cantidad de terminos igual a infinito -1
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Citrusl

Si, es un verdadero dolor de cabeza.

Comparto el código de"AK" para el que le sea de utilidad o quiera partir de una base:

//   **************************************************************************
//   *                                                                        *
//   *  This program is free software: you can redistribute it and/or modify  *
//   *  it under the terms of the GNU General Public License as published by  *
//   *  the Free Software Foundation, either version 3 of the License, or     *
//   * (at your option) any later version.                                    *
//   *                                                                        *
//   *  This program is distributed in the hope that it will be useful,       *
//   *  but WITHOUT ANY WARRANTY; without even the implied warranty of        *
//   *  MERCHANTABILITY || FITNESS FOR A PARTICULAR PURPOSE.  See the         *
//   *  GNU General Public License for more details.                          *
//   *                                                                        *
//   *  You should have received a copy of the GNU General Public License     *
//   *  along with this program.  If not, see <http://www.gnu.org/licenses/>. *
//   *                                                                        *
//   *         (C) Arvind Kumar 2013 . All rights reserved                    *
//   **************************************************************************

#include <iostream>
#include <string>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <math.h>
#include <limits.h>
#include <stdio.h>

using namespace std;

void cls(){
    #if defined (__WIN32__)
        std::system("CLS");
    #else
        #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
            std::system("clear");
        #endif
    #endif
}

int getNumber(string prompt){
    string inp="";
    int num;
    do{
        cout << prompt;
        cin >> inp;
        num = atoi(inp.c_str());
    }while(num==0);
    return num;
}

int getInt(string prompt){
    string inp="";
    int num;
    cout << prompt;
    cin >> inp;
    num = atoi(inp.c_str());
    return num;
}

char* setArray(int arr[]){
    int h=0;
    char* dupl=new char[128];
    for (int i=0;i<sizeof(arr);i+=2){
        for (int j=arr[i];j<=arr[i+1];j++){
            dupl[h]=j;
            h++;
        }
    }
    return dupl;
}

char* getCharset(int &len){
    cout << "\nType a continuous string of characters without spaces.\nThe characters may repeat.\n\n";
    string inp;
    cin >> inp;
    len = inp.length();
    char* arr=new char[len];
    for (int i=0;i<len;i++){
        arr[i]=inp[i];
    }
    return arr;
}

void show(long double &current,long double combos,int &per){
    long double currper=((int)((int)((current/combos)*100)/5)*5);
    if (currper>per){
        per=currper;
        cout << per <<"%...\n";
    }
    return;
}

void write(FILE *file,char *cset,int len,int i,int level,string word,long double &current,long double combos,int &per){
    level++;
    for (int j=0;j<len;j++){
        if (level<i){
            write(file,cset,len,i,level,string(word)+cset[j],current,combos,per);
        }
        else{
            string pword=string(word)+cset[j]+"\n";
            fputs(pword.c_str(),file);
            current++;
            show(current,combos,per);
        }
    }
}

int main(){
    string trash="";
    char *cset;
    int len;
    string append="";
    string prepend="";
    int start;
    int stop;
    long double space=0;
    long double combos=0;
    long double current=1;

    cls();
    cout << "                  Hacktionary v1.0\n\n";
    cout << "*******************************************************\n\n";
    cout << "Your portable brute-force dictionary generating tool.\n\n";
    cout << "Note that this project is open source and you can read\n";
    cout << "more about it or access the source code at it's github:\n";
    cout << "       http://github.com/EnKrypt/Hacktionary\n\n";
    cout << "*******************************************************\n\n";

    cout << "Press ENTER to continue : ";
    getline(cin, trash);
    cls();

    cout << "                CHARACTER SETS\n\n";
    cout << "1. Letters (All Caps) : A-Z\n";
    cout << "2. Letters (No Caps) : a-z\n";
    cout << "3. Letters (Both cases) : A-Z & a-z\n";
    cout << "4. Numbers Only : 0-9\n";
    cout << "5. Alphanumeric (Letters in Caps) : A-Z & 0-9\n";
    cout << "6. Alphanumeric (No letter in Caps) : a-z & 0-9\n";
    cout << "7. Alphanumeric (Both cases) : A-Z & a-z & 0-9\n";
    cout << "8. Alphanumeric + Symbols : ASCII(32)-ASCII(126)\n";
    cout << "9. Full ASCII : ASCII(0)-ASCII(127)\n";
    cout << "10. Define Custom Range\n\n";
    int ch=getNumber("Choose an option : ");

    switch(ch){
        case 1:{
            int arr[]={65,90};
            cset=setArray(arr);
            len=26;
            break;
        }
        case 2:{
            int arr[]={97,122};
            cset=setArray(arr);
            len=26;
            break;
        }
        case 3:{
            int arr[]={65,90,97,122};
            cset=setArray(arr);
            len=52;
            break;
        }
        case 4:{
            int arr[]={48,57};
            cset=setArray(arr);
            len=10;
            break;
        }
        case 5:{
            int arr[]={65,90,48,57};
            cset=setArray(arr);
            len=36;
            break;
        }
        case 6:{
            int arr[]={97,122,48,57};
            cset=setArray(arr);
            len=36;
            break;
        }
        case 7:{
            int arr[]={65,90,97,122,48,57};
            cset=setArray(arr);
            len=62;
            break;
        }
        case 8:{
            int arr[]={32,126};
            cset=setArray(arr);
            len=95;
            break;
        }
        case 9:{
            int arr[]={0,127};
            cset=setArray(arr);
            len=128;
            break;
        }
        case 10:{
            cset=getCharset(len);
            break;
        }
        default :{
            cout << "Invalid option.";
            exit(EXIT_FAILURE);
            break;
        }
    }

    start = getInt("\nStart Limit - Enter the size of the first word\nin the dictionary. Default is 0 : ");
    if (start<0){
        cout << "Invalid input. Using default value.\n";
        start=0;
    }
    stringstream ss;
    ss << (start+10);
    stop = getInt("\nStop Limit - Enter the size of the last word\nin the dictionary. Default is " + ss.str() + " : ");
    if (stop<start){
        cout << "Invalid input. Using default value.\n";
        stop=start+10;
    }

    cin.ignore(INT_MAX,'\n');
    cin.clear();
    cout << "\nText to prepend in every word (Press ENTER to Skip) : ";
    getline(cin, prepend);
    cout << "\nText to append in every word (Press ENTER to Skip) : ";
    getline(cin, append);

    cls();
    for (int i=start;i<=stop;i++){
        combos+=pow(len,i);
    }
    for (int i=start;i<=stop;i++){
        space+=append.length()+prepend.length()+((pow(len,i))*i)+1;
    }
    space+=10;
    cout << "\n" << std::fixed << std::setprecision(0) << combos << " Words.";
    cout << "\n" << std::fixed << std::setprecision(2) << ((space/1024.0d)/1024.0d) << " MB of Disk space required.";
    cout << "\n\nIt is recommended that you have the available disk space before proceeding.";
    cout << "\n\nPress ENTER to start generating : ";
    getline(cin, trash);

    cls();
    int per=0;
    cout << "Generating dictionary. This may take several minutes.\nPlease wait...\n";
    FILE *file=fopen("dictionary.lst","wb");
    for (int i=start;i<=stop;i++){
        write(file,cset,len,i,0,"",current,combos,per);
    }
    current=0;

    cls();
    cout << "Done! Dictionary successfully generated.\n";
    cout << "Dictionary file saved as dictionary.lst in working directory.\n\n";
    cout << "Hacktionary will now terminate.";

    return 0;
}




warcry.

CitarDiccionarios: Quiero saber la verdad

calcula  :silbar:

https://www.bitsdelocos.es/computo.php


Citardonde se generan todas las claves posibles de 10 a 14 caracteres creando un archivo
superior a los 1000 Terabytes  lo cual limitaría a cualquier mortal a poseer o manejar
dicho archivo.lst

generalmente se pasan al vuelo, no se genera el diccionario para guardarlo

por ejemplo las versiones antiguas de aircrack no manejaban diccionarios superiores a 2 gb, no se si las nuevas versiones pueden manejar diccionarios mas grandes.

Cita de: Citrusl en 12 Noviembre 2019, 19:35 PM

Y a los mods o haters, vayanse al car@@@!! La información tiene que ser libre, de que sirve un foro si no es para compartir.


Mientras tu seas poseedor de la información, haz con ella lo que te plazca, pero mientras la información este en mi cabeza, haré con ella lo que me parezca, lo de decirnos de que sea libre te lo metes por el culo, aun siendo un payaso vago de coj.ones te voy a poner un video mio sobre el tema.


HE SIDO BANEADO --- UN PLACER ---- SALUDOS

Citrusl

CitarMientras tu seas poseedor de la información, haz con ella lo que te plazca, pero mientras la información este en mi cabeza, haré con ella lo que me parezca, lo de decirnos de que sea libre te lo metes por el culo, aun siendo un payaso vago de coj.ones te voy a poner un video mio sobre el tema.

Debatible...
Siguiendo ese pensamiento no tendríamos la internet que te hace grande en estos momentos.
Recordá los orígenes y su historia, aunque si es cierto lo de la libertad de hacer lo que queramos con la información, y sobretodo la seguridad de no entregarla a las personas incorrectas.

Gracias por el video.