弱口令漏洞詳解

 

 

###弱口令的定義

  弱口令(weak password) 沒有嚴格和準確的定義,一般認爲容易被別人(他們有可能對你很瞭解)猜想到或被破解工具破解的口令均爲弱口令。弱口令指的是僅包含簡單數字和字母的口令,例如「123」、「abc」等,由於這樣的口令很容易被別人破解,從而使用戶的互聯網帳號受到他人控制,所以不推薦用戶使用php

###弱口令產生緣由

  這個應該是與我的習慣相關與意識相關,爲了不忘記密碼,使用一個很是容易記住的密碼,或者是直接採用系統的默認密碼等。相關的安全意識不夠,總認爲不會有人會猜到我這個弱口令的,相關的安全意識不夠,總認爲不會有人會猜到我這個弱口令的。html

###弱口令的危害

經過系統弱口令,可被黑客直接得到系統控制權限。python

###弱口令解決辦法

強制對全部的管理系統帳號密碼強度必須達到必定的級別。不可在使用簡單的admin123456等弱密碼了,修改密碼爲複雜密碼並加密保存,建議密碼包含大小寫字母,數據和特殊符號,密碼長度不低於八位,若是網站存在數據泄漏漏洞(如sql注入漏洞),務必修復漏洞。。web

設置密碼一般遵循如下原則:sql

1)不使用空口令或系統缺省的口令,這些口令衆所周之,爲典型的弱口令。數據庫

2)口令長度不小於8 個字符。瀏覽器

3)口令不該該爲連續的某個字符(例如:AAAAAAAA)或重複某些字符的組合(例如:tzf.tzf.)。tomcat

4)口令應該爲如下四類字符的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字符。每類字符至少包含一個。若是某類字符只包含一個,那麼該字符不該爲首字符或尾字符。安全

5)口令中不該包含本人、父母、子女和配偶的姓名和出生日期、記念日期、登陸名、E-mail 地址等等與本人有關的信息,以及字典中的單詞。app

6)口令不該該爲用數字或符號代替某些字母的單詞。

7)口令應該易記且能夠快速輸入,防止他人從你身後很容易看到你的輸入。

8)至少90 天內更換一次口令,防止未被發現的入侵者繼續使用該口令。

###弱口令分類

公共弱口令

公共弱口令就是常見的密碼,公共弱口令也就是根據大量的密碼數據統計得出的出現頻率較高弱口令,關於這方面的弱口令統計結果有不少,在此我就列舉一些出現頻率比較高的公共弱口令:

Top 100):

123456 a123456 123456a 5201314 111111 woaini1314 qq123456 123123 000000 1qaz2wsx 1q2w3e4r

qwe123 7758521 123qwe a123123 123456aa woaini520 woaini 100200 1314520 woaini123 123321

q123456 123456789 123456789a 5211314 asd123 a123456789 z123456 asd123456 a5201314 aa123456

zhang123 aptx4869 123123a 1q2w3e4r5t 1qazxsw2 5201314a 1q2w3e aini1314 31415926 q1w2e3r4

123456qq woaini521 1234qwer a111111 520520 iloveyou abc123 110110 111111a 123456abc w123456

7758258 123qweasd 159753 qwer1234 a000000 qq123123 zxc123 123654 abc123456 123456q qq5201314

12345678 000000a 456852 as123456 1314521 112233 521521 qazwsx123 zxc123456 abcd1234 asdasd

666666 love1314 QAZ123 aaa123 q1w2e3 aaaaaa a123321 123000 11111111 12qwaszx 5845201314

s123456 nihao123 caonima123 zxcvbnm123 wang123 159357 1A2B3C4D asdasd123 584520 753951 147258

1123581321 110120 qq1314520

對於網站後臺而言,通常爲:

admin

manager

admin123

admin888

admin666

具體來講,不一樣的後臺類型擁有不一樣的弱密碼:

數據庫(phpmyadmin):帳號:root,密碼:rootroot123123456

tomcat:帳號:admintomcatmanager,密碼:admintomcatadmin123123456manager

jboss:帳號:adminjbossmanager,密碼:adminjbossmanager123456

weblogic:帳號:weblogicadminmanager,密碼:weblogicadminmanager123456

條件型

我的弱口令每每與這我的的我的信息(姓名,生日,手機號,特殊暱稱,愛好,社交軟件帳號,經常使用username,郵箱...),關係成員(家庭成員,男女友...),所處環境(車牌號,公司信息好比公司名稱,公司成立時間或地點,公司domain...),還有特殊的指定字符(數字,單詞...),在這裏我也列舉一些常常出現的組合:咱們可使用這個猜密碼的網站來生成條件弱口令字典。

好比咱們知道一我的,他的信息以下:

姓名:王小二      郵箱:412391882@qq.com

英文名:twowang   手機號:110

那咱們就能夠在這個網站上輸入這些信息,而後點擊下方的提交

而後咱們就獲得了這個最有可能的密碼:

另提示一點:當系統要求密碼組合必須包含大寫字母時候,根據中國人密碼設定習慣,會有83%的人將大寫字母,且是惟一存在的大寫字母放在第一位

###弱口令實列

普通的弱口令猜想

好比說,咱們使用這樣一段代碼來演示弱口令漏洞,它模擬了某個系統的後臺。

<?php

function showForm() { ?>

<form method="POST" action="./lesspass.php">

    <input type="text" name="un" />

    <input type="password" name="pw" />

    <input type="submit" value="登陸" />

</form> <?php

}

$un = @$_POST['un'];

$pw = @$_POST['pw'];

if($un == '' && $pw == '')

    showForm();

else if($un == 'admin' && $pw == 'admin888')

    echo '登陸成功';

else {

    showForm();

    echo '登陸失敗';

}

把它保存爲lesspass.php,將其部署後訪問http://localhost/lesspass.php

接下來咱們僞裝不知道真實密碼,開始嘗試。對於管理員帳戶,用戶名通常是admin,密碼可能爲adminadmin123admin888123456123abcadmin等等。首先輸入adminadmin,嘗試失敗:

以後是adminadmin123,仍是失敗。最後嘗試adminadmin888,成功。

Burp Suite 爆破

首先咱們須要把瀏覽器和 Burp 的代理配置好,打開 Burp 的攔截模式。以後咱們在lesspass.php頁面中隨便輸入什麼東西並提交,在 Burp 中就能夠看到攔截的封包:

 

爲了爆破密碼,咱們須要使用它的 Intruder 功能,右鍵彈出菜單並選擇"Send to Intruder"

以後訪問 Intruder 標籤頁,在 Position 子標籤頁中咱們能夠看到封包。

 

咱們須要點擊右邊的Clear按鈕把全部標記清除掉,因爲咱們須要破解密碼,咱們選中密碼參數值點擊Add

 

以後咱們切換到旁邊的 Payloads 標籤頁,點擊中間的load按鈕,加載字典。咱們選擇以前的top100.txt

 

不要忘了要將admin888插入進去。在下面的輸入框中輸入admin888,並點擊旁邊的Add

點擊右上角的Start Attack來開始爆破(老版本是Intruder -> Start Attack菜單欄),咱們會看到結果列表。

 

咱們點擊Length表頭,讓它按照長度來排序。能夠發現有一個項目的長度與其它明顯不一樣,那麼它就是正確的結果。

PKAV Fuzze爆破

雙擊Pkav HTTP Fuzzer 1.5.6.exe來打開它。另外目錄下還有一份使用手冊,Pkav HTTP Fuzzer使用手冊 Ver 1.0.pdf,你們能夠參考這個手冊。這個教程只會講用到的功能

它的主界面是這樣的:



左邊是請求包輸入框,咱們須要填寫整個 HTTP 封包(就是 Burp 中的Proxy -> Intercept選項卡中的內容),咱們將其複製過來。而後咱們選中pw位置的admin,點擊下面的添加標記

 

咱們再來看看右邊的重放設置重放模式變體賦值都不用改動,咱們點擊下方的導入按鈕,選擇以前的top100.txt

以後再添加按鈕右邊的輸入框中輸入admin888,而後點擊添加

而後咱們點擊下方的發包器選項卡,在新的界面中直接點啓動

而後咱們點擊長度表頭,讓它按照長度排序。

咱們能夠看到,僅當密碼爲admin888時長度爲 6,其它都是其它數值,那麼它就是正確密碼

 

###弱口令漏洞描述

一般認爲容易被別人(他們有可能對你很瞭解)猜想到或被破解工具破解的口令均爲弱口令,常見弱口令有:
1
、數字或字母連排或混排,鍵盤字母連排(如:123456abcdef123abcqwerty1qaz2wsx等)
2
、生日,姓名+生日(利用社工很是容易被破解)
3
、短語密碼(如:5201314woaini1314等)

 



###弱口令生成

關於弱口令生成能夠利用相關工具或者腳本,工具的話網上有不少,能夠自行搜索下載,在這裏我提供本身寫的python小腳本,若是有須要請自行修改,僅做參考:

 

# -*- coding: utf-8 -*-

weak_password=['000000','0000000','111111','11111111','112233','123123','123321','123456','12345678','87654321','123456789','987654321','1234567890','0123456789','654321','666666','888888','666888','66668888','abcdef','147258369','abcabc','abc123','a1b2c3','aaa111','123qwe','qweasd','admin','root','pass123','p@ssword','password','passwd','iloveyou','woaini','5201314','qq123456','taobao','wang1234']

    

foreign_weak_password=['password','123456','12345678','qwerty','abc123','monkey','1234567','letmein','trustno1','dragon','baseball','111111','iloveyou','master','sunshine','ashley','bailey','passw0rd','shadow','123123','654321','superman','qazwsx','michael','football','qwerty','welcome','ninja','hello','happy','anything','abcabcabc','qwert123','system','command','adminstrator','mouse','harddisk']

    

name=['xiaoming','Xiaoming','xiaoMing','xiao_ming','xiaoM','XMing','Xming','xl','XM']

    

birth=['1995','_1995','09','9','23','199509','_950923','_199509','9509','0923','19950925']

    

specialnum=['1314','520','000','111','123','168','1234','123456','5201314','888','666','123123']

    

id=['mingxiaozi','xiaolifeidao']

    

companyinfo=['jingdong','JongDong','jd','JD']

#自行添加更多信息

f=open('weakpasswords.txt','w')

for a in weak_password:

    f.write(a+'\n')

    for b in foreign_weak_password:

   f.write(b+'\n')

 

    for c in name:

   for d in birth:

   f.write(c+d+'\n')

   f.write(d+c+'\n')

 

    for e in name:

   for f in specialnum:

   f.write(e+f+'\n')

   f.write(f+e+'\n')

    

    for i1 in id:

   for b1 in birth:

   f.write(i1+b1+'\n')

   f.write(b1+i1+'\n')

    

    for i2 in id:

   for s1 in specialnum:

   f.write(i2+s1+'\n')

   f.write(s1+i2+'\n')

    

    for n1 in name:

   for b1 in birth:

   for s2 in specialnum:

 f.write(n1+s2+b1+'\n')

 f.write(s2+n1+b1+'\n')

 f.write(s2+b1+n1+'\n')

#自行添加更多組合

###弱口令的tips

1.遵循某種規律,讀起來朗朗上口,或者是咱們小時候最早接觸的一些數字或者字母。
  123456
123abcabc123123456abcdef!@#這些弱口令也有人戲稱是滾鍵盤,例如admin!@#看起來並不簡單,但它確實是滾鍵盤,屬於弱密碼,我在實際滲透中,曾許屢次碰到這個弱口令admin!@#
防護策略:
 
對企業員工進行安全培訓,提升安全意識,安全中沒有僥倖,只有萬一。滾鍵盤類的密碼仍是少用,儘可能使用難以猜解的密碼。

2.無心間的信息泄漏,致使密碼泄漏或者可能易於被猜想
永遠都不要質疑白帽子們的腦洞,他們作CTF的時候,腦洞大着呢。中國網某子網站後臺弱口令:lujiaji(漏洞做者:blast)
https://www.secpulse.com/archives/14056.html
簡單一看,這個密碼並非很典型的弱密碼,若是純粹靠猜想,或許並不能嘗試成功。但重點是,在一個新聞中,顯示出了新聞做者lujiaji,管理後臺帳戶密碼均爲lujiaji。因此,被攻破有兩點緣由:用戶名的部分或者所有是對外開放的,管理員:lujiaji用戶名密碼是相同的。
京東的一些敏感信息在GitHub上泄漏(漏洞做者:匿名)

https://www.secpulse.com/archives/22828.html
開發人員託管代碼時,沒有對敏感信息進行刪除,致使泄露了用戶名密碼root/JD123,還有一種就是密碼自己並不弱,可是開發人員對於本身的網站或者系統過於熱愛,而致使用戶名或密碼可猜想。如,某網站爲www.p1a2s3s4word.com,開發人員或者管理人員就可能將系統的用戶名設置的與網站域名有關,或者與公司名稱有關。如:p1a2s3s4wordp1a2s3s4word123
小米內網漫遊記(一個弱口令致使各類內部系統泄露)Xiaomi11(漏洞做者:臨時工)

http://cb.drops.wiki/bugs/wooyun-2014-076453.html

應對策略:
(1).登陸名和用戶名應進行區分
(2).
實行有效的密碼策略,杜絕密碼中包含用戶名,甚至是徹底相同的狀況存在
(3)
記住GitHub是安全隱含一大來源
(4).
不要使用易於從企業名稱或者域名中獲得密碼信息的口令。

3.雖然密碼強度可靠,但大量系統使用同一密碼

  只要基數過大,那麼必定會有例外,也必定會存在漏洞,任意一個系統遭到入侵後,其它的系統都會受到影響,這樣的例子數不勝數,例如內網滲透很大程度上就是根據這一點進行的。

4.還有就是默認密碼,雖然許多系統堅如盤石,但若是其不強制其用戶修改密碼,有些人還真的就會用默認密碼。
簡單漫遊深信服內網:(樓主做者:fuckadmin)
https://www.secpulse.com/archives/35096.html
據說大家的設備都存在一個默認的sangfor/sangfor,咱也手賤來試試。
大量學校/政府CMS 默認後臺帳號密碼:admin admin888(漏洞做者:exploits)

https://www.secpulse.com/archives/10477.html
學校和政府網站安全性通常來講都不好,在本示例中,大量的網站就未對cms默認密碼進行修改。
應對策略:
永遠不要使用默認密碼,密碼默認即爲密碼公開。


5..雖然系統採用了默認密碼,可是用戶對其進行了修改,這就足夠了嗎?no!系統中還有系統。
該問題多見於一些大型集成軟件或者系統,因爲系統過於龐大,存在默認密碼的地方不止一處,甚至管理員自己都不知道存在某些功能。
好比某cms中集成了ewebeditor編輯器,但管理員可能並不會注意到。
九思軟件iThink OA系統編輯器上傳漏洞:(漏洞做者:Lee)

http://www.wooyun.org/bugs/wooyun-2010-04913

九思iThink使用的是ewebeditor的編輯器,且密碼使用的默認密碼(admin/admin),致使系統存在被入侵的風險。
應對策略:
(1).
對於集成軟件或系統,使用前應對其進行詳盡的瞭解,避免因設置問題而存在弱口令。
(2).
集成軟件或系統的廠商應在使用說明中,着重指出此問題。


6.網站存在撞庫風險
嚴格意義上來說,並不能歸在弱口令安全,可是仍是與其相關的。因爲登錄功能或者一些接口設計不當,致使能夠無限制嘗試登陸,從而致使撞庫。
鳳凰網某接口設計不當可暴力破解可撞庫:(漏洞做者:匿名)

https://www.secpulse.com/archives/29717.html
做者發現鳳凰網存在德州撲克的登錄接口,且無任何登錄限制,從而間接對其進行撞庫測試,併成功。
阿里巴巴某系統設計缺陷可形成淘寶無限制撞庫(漏洞做者:bing)

https://www.secpulse.com/archives/22460.html
其手機端接口無次數和驗證碼限制,致使能夠進行撞庫,做者稱利用互聯網上公開的數據庫,天天能夠跑出24萬個淘寶帳號和密碼。
應對策略:
撞庫問題,其實並不僅是企業或者網站的問題,這也須要咱們每一位用戶提升本身的安全意識。
(1).
做爲咱們用戶,咱們應按期修改密碼,不一樣的網站或帳戶不該該使用相同的密碼
(2).
做爲企業或網站主,咱們應對登陸進行有效驗證限制,不僅是明顯的登錄處,對於各個功能接口也不例外

 

 



 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

相關文章
相關標籤/搜索