拆分密碼

wyzsk發表於2020-08-19

路人甲 · 2015/11/26 10:36

0x00 研究範圍


  • 在WEB滲透中可能使用某個關鍵字為密碼核心的密碼(Mail,Vpn,後臺登陸等)

0x01 實際資料分析


  • Gmail 500W明文密碼
  • 個人以往滲透例項
  • 美國姓名top2000

在以往的滲透過中發現絕大多數企業的web服務是不允許註冊,都是由某個人或系統分配的,而在這之中又有大部分的分配是人為分配,這就引出了我今天研究的主題《拆分密碼》。

人們在分配密碼的時候是無法做到計算機那樣隨機的。多數都是根據某個關鍵字加上一些字元如企業名,時間,123等,這樣的分配方式就給密碼賦予了結構

0x02 密碼結構

  • 字首
  • 關鍵字
  • 連線符
  • 字尾

Alt Text

1.)關鍵字

以drops.wooyun.org為例子

  • URL (二級域名,跟域名)
    • keyword=[drop,wooyun,wooyun.org]
  • 域名註冊資訊 (郵件,姓名,時間)
    • keyword=[xssshell,fangxiaodun,20100506]
  • 網站內容 (標題,關鍵字,頁尾)
    • keyword=[WooYun,zhishiku,Security,exploits,hacker,0day,pentest]
  • 常用密碼關鍵字
    • keyword=[admin,manage,pass,姓名top500]

收集網頁內容關鍵字小指令碼,對中文站沒什麼效果.這裡以www.megacorpone.com為例子,我也是看了這個站點的滲透測試報告才觸發我寫這篇文章

[email protected]:wget www.megacorpone.com -O 1.html
[email protected]:cat 1.html|tr ' ' '\n'|grep '^[0-9a-Z]*[0-9a-Z]$'|sort|uniq|
複製程式碼

Alt Text

當然也有現成工具 cewl

Alt Text

2.)字首與字尾

在Gmail 500W明文密碼中,我用郵件名作為關鍵字進行分析:

  • 500W密碼中有11561條密碼是用使用者名稱做關鍵字且排除了使用者名稱為密碼和使用者名稱重複為密碼。
  • 11561條密碼中有791條是字首加關鍵字的模式

Alt Text

  • 11561條密碼中有2308條是字首加關鍵字加連結符加字尾的模式

Akt Text

  • 11561條密碼中有8462條是關鍵字加字尾的模式

Alt Text

從上面的資料可以分析出,字首加關鍵字加連結符加字尾的模式最少,值得我們注意的的是oliver+關鍵字+@+gmail.com這個模式,很經典。字首和字尾中使用最多的1和123,字首中值得注意的是iam,big,the,大多數字首都使用的名詞或者短語,[email protected],[email protected][email protected]

那麼問題就來了,為什麼是它們?

在我的研究中,我將字首和字尾分為4個型別:

  • 連續性 字元連續的遞增
  • 重複性 字元重複
  • 規則性 利用字元體現某種規則
    • 鍵盤規則
    • 寓意規則
  • 應付性 滿足系統強制要求

單個字元字首全部看做是 應付性,而沒有意義的東西人們往往很難記憶,所以在應付性的情況下會選擇規則性幫助記憶。10個數字26字母32個符號一共68個字元

1234567890
qwertyuiopasdfghjklzxcvbnm
複製程式碼
  • 鍵盤的設計是根據人體工程學設計的,最方便的鍵就是使用頻率最高的鍵。玩過魔獸世界中pve無腦冰法的應該知道,【寒冰箭】基本都放數字1鍵,因為在拋棄字母鍵後,無名指按1鍵最方便,且連續按下123也最快捷。所以在 應付性 下滿足系統要求(密碼不為純數字或純字元)以字母做為關鍵字的密碼,單數字字首概率最大的為1
  • 寓意規則 1(最大),6(順的寓意),8(發的寓意)
  • 鍵盤規則 ①中檔鍵>右手>食指 J
  • 寓意規則 以名字首字母為寓意 A

Alt Text

~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
複製程式碼
  • 鍵盤規則 在輸出字元的時候需要按住Shift鍵
    • 左手小指按Shift鍵 _
    • 左手大拇指按Shift鍵 !
  • 寓意規則 @ 像a,郵件代表符號,易記憶

多個字元我們用 連續性 重複性 規則性分析

  • 連續性 連續性字元大於2位,小於等於6位
    • 123,abc,!@#
  • 重複性 重複性字串大於1位小於等於3位
    • 888,qq,..
  • 規則性
    • 鍵盤規則
      • qwe,147
    • 寓意規則
      • woshi,520,@))*,名詞top100,短語top100
        • @))* == shift(2008)

3.)連結符

連結符不一定存在,弱存在只為一個單符號

  • @ 寓意規則
  • _ 應付性
  • & 鍵盤規則

字首和字尾是有區別的,像woshi更應該做為字首,qwe,888應該做為字尾,字首可以為空,連結符可以為空,字尾可以為空

Alt Text

4.)組合方式

  • 字首+關鍵字
    • 字首多應付性和寓意性
  • 字首+關鍵字+連結符+字尾
    • 關鍵字多為寓意性
  • 關鍵字+字尾
    • ALL
  • 關鍵字+連結符+字尾
    • 字尾多為鍵盤規則和連續性

0x02 總結


一切非隨即密碼都是為了方便記憶,現在爆破的核心不是弱密碼,而是使用有規則密碼的弱使用者。人是懶惰的,為了方便記憶會將自己的記憶做為密碼記憶。

注①:《電腦鍵盤字母的優化排列》 這篇文章僅僅是我寫社工字典程式的理論框架,如果有與科學理論違背的地方,以科學理論為主

相關文章