cdlinux抓握手包WiFi密码破解

一般破解WiFi的工具是WiFI万能钥匙,其原理是通过共享WiFi密码来实现。但是WiFI万能钥匙不是万能的,有许多WiFi密码是没有共享的。那如何破解呢?

一种方法是暴力破解。通过尝试大量的密码进行破解。借助计算机强大的计算能力可以进行尝试。

WPA-PSK破解原理:
用我们字典中的PSK+ssid先生成PMK(此步最耗时,是目前破解的瓶颈所在),然后结合握手包中的客户端MAC,AP的BSSID,A-NONCE,S-NONCE计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。如图所示:

cdlinux抓握手包WiFi密码破解_第1张图片
image.png

需要得到的是握手包,握手包含了除PSK以外的所需要的信息,PSK就是预共享密钥(Pre-shared key),也就是WiFi密码。cdlinux下通过工具获取握手包,现在需要解决的是PSK字典的制作,也是包含大量猜测密码的txt文件。首先WiFi密码有什么限制呢?WiFi密码要求,至少8个字符,最多63个字符,字符为可以显示的ASCII字符,一共有95个字符。比如说8位的密码有多少种可能呢?这相当于从95个字符中选8个出来排列,也就是A958=95x94x93x92x91x90x89x88=53856412790400种可能,范围太大了,所以需要通过一些观察判断来减少搜索空间,观察发现多有需要许多人使用手机号码作为WiFi密码,还有就是生日,纯8位数字,当然还有一些常用弱口令。

生日字典,常用弱口令字典网上有现成的,接下就制作手机号码字典,范围限制在地区所有号码,以及纯8位数字字典。这交给Java程序了

地区的所有手机号码

public class GetPhoneNumbers {
    static String url="http://www.51hao.cc/city/guangxi/guilin.php";//获取号码段的网页
    private static List> phone_sections=new ArrayList<>();//号码段
    private static List phone_names=new ArrayList<>();//保存号码段的文件名
    public static void main(String[] args) {
        Document document=null;

        try {
            document= Jsoup.connect(url).get();

            Elements phonesnames_elements=document.select(".nums");//号码段名字所在标签,如130
            Elements phonesections_elements=document.select("ul"); //所有的号码段元素,一个ul对一个号码段

            //遍历元素,获取所有号码段
            for (int i=0;i li=new ArrayList<>();
                    for (int j=0;j

纯8位数字

public class Num {
    public static void main(String[] args) {
        FileWriter fileWriter=null;
        try {
            fileWriter=new FileWriter("8位数字.txt");
            for (long k=0;k<9999999;k++){
                if (String.valueOf(k).length()==1){
                    fileWriter.write("0000000"+k+"\r\n");
                }
                else if (String.valueOf(k).length()==2){
                    fileWriter.write("000000"+k+"\r\n");
                }else if (String.valueOf(k).length()==3){
                    fileWriter.write("00000"+k+"\r\n");
                }else if (String.valueOf(k).length()==4){
                    fileWriter.write("0000"+k+"\r\n");
                }else if (String.valueOf(k).length()==5){
                    fileWriter.write("000"+k+"\r\n");
                }else if (String.valueOf(k).length()==6){
                    fileWriter.write("00"+k+"\r\n");
                }else if (String.valueOf(k).length()==7){
                    fileWriter.write("0"+k+"\r\n");
                }

            }

            for (long i=10000000;i<=99999999;i++){
                    fileWriter.write(i+"\r\n");
            }

            fileWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

结果:

cdlinux抓握手包WiFi密码破解_第2张图片
phones

cdlinux抓握手包WiFi密码破解_第3张图片
8位数字.png

cdlinux下载抓获握手包,切换到Windows下使用工具EWSA进行跑,先选一个弱口令字典试试先

握手包.png
cdlinux抓握手包WiFi密码破解_第4张图片
字典.png

这个字典比较小,不到2秒就跑完了,同时密码也出来了

cdlinux抓握手包WiFi密码破解_第5张图片
2.png
cdlinux抓握手包WiFi密码破解_第6张图片
passwd.png

如果这个字典没有找到密码,可以添加刚才制作的字典继续跑。并不是所有的WiFi立刻就可以跑出密码来,有些密码设置比较复杂,破解就是碰一下运气了,而使用字典能够增加破解成功的概率。

你可能感兴趣的:(cdlinux抓握手包WiFi密码破解)