只有一行的Perl程序第3/3頁
更新時(shí)間:2008年10月02日 00:07:37 作者:
今天來說說perl,只有一行的perl程序。
==
1.首先通過getpwent()獲取當(dāng)前所有用戶的用戶名和經(jīng)過加密的口令密文,在$u和$c中 ;
2.使用crypt對用戶名進(jìn)行加密,salt值為口令密文的前兩位,自動忽略其余位;
3.如果加密結(jié)果等同于密文,那么就代表明文和密文匹配,破解成功。
##
# perl -nle 'setpwent;(""eq$c&&print"$u = [null]")||(crypt($_,$c)eq$c&&print"$u = $_")while($u,$c)=getpwent'
# 增強(qiáng)命令行版本,破解空口令和stdin輸入口令的用戶
##
這里給出一個變形的交互式Crack,由用戶手工輸入測試口令,然后程序會自動找出同此口令匹配
的用戶。
##
# perl -e '(""eq$c&&print"$u = [null]")||(crypt($u,$c)eq$c&&print"$u = $u\n")while($u,$c)=getpwent'
# 破解無口令或 用戶名=口令的用戶
#
# perl -e 'while(($u,$c)=getpwent){for(a..zzzzzz,0..999999){crypt($_,$c)eq$c&&print"$u $_\n";}}'
# 破解6位數(shù)字和6位字符以內(nèi)簡單密碼的用戶
##
最后看看結(jié)果:
##
# perl -e '(""eq$c&&print"$u = [null]")||(crypt($u,$c)eq$c&&print"$u = $u\n")while($u,$c)=getpwent'
demo02 = demo02
demo03 = [null]
#perl -nle 'setpwent;(""eq$c&&print"$u = [null]")||(crypt($_,$c)eq$c&&print"$u = $_")while($u,$c)=getpwent'
p09uest
elly = p09uest
demo03 = [null]
# time perl -e 'while(($u,$c)=getpwent){for(a..zzzz,0..9999){crypt($_,$c)eq$c&&print"$u $_\n";}}'
demo01 abc
real 0m48.714s
user 0m48.660s
sys 0m0.060s
##
第一行,是simple版本,解出了兩個簡單用戶口令;
第二行,使交互式版本,根據(jù)用戶輸入進(jìn)行解密;
第三行,窮舉版本...時(shí)間會比較長一點(diǎn)點(diǎn)哦,DES加密破解速率大概在每秒數(shù)萬到數(shù)十萬個,MD5破解速率
就只有數(shù)千個了。所以在BSD和Linux等使用MD5的平臺上速度會大大慢于AIX或HP-UX等商密出口限制平臺。
還有點(diǎn)點(diǎn)小缺陷,就是使用a..zzzz,0..9999得出的字典集合,只是相應(yīng)位數(shù)的純數(shù)字或純字母集合,不包括
混雜類型和特殊字符的。
不過這行程序用于簡單的用戶口令強(qiáng)度驗(yàn)證時(shí)應(yīng)該足夠了吧,最大的優(yōu)點(diǎn),一不許要編譯,二支持跨平臺和
多種加密算法的哦:P
在AIX(DES 56),Linux(DES 40),Linux(MD5 128),F(xiàn)reeBSD(MD5 128)上測試通過,不過很不幸在HP-UX
上perl的getpwent是取不到passwd值的,也許Perl不支持HP-UX上的TCB格式存放的Shadow密碼吧。
相關(guān)文章
perl寫的一個隨機(jī)編故事的程序(rand隨機(jī)函數(shù))
用perl寫的一個隨機(jī)編故事的程序,用到了rand隨機(jī)函數(shù),注釋也很詳細(xì),需要的朋友可以參考下2013-03-03
Perl Sort函數(shù)用法總結(jié)和使用實(shí)例
這篇文章主要介紹了Perl Sort函數(shù)用法總結(jié)和使用實(shí)例,需要的朋友可以參考下2014-05-05
perl 變量 $/ 的用法解析 上下文為行模式時(shí),$/ 定義以什么來區(qū)分行
默認(rèn)狀態(tài)下,很顯然都是用\n來區(qū)分行,\n也被我們稱作為換行符。當(dāng)讀取序列時(shí),按行來讀取時(shí),就是以換行符為標(biāo)準(zhǔn)2013-03-03
perl中srand()與time的函數(shù)使用方法介紹
這篇文章主要介紹了perl中srand與time函數(shù)的使用,需要的朋友可以參考下2013-03-03
Perl遍歷目錄和使用Linux命令分析日志的代碼實(shí)例分享
這篇文章主要介紹了Perl遍歷目錄和使用Linux命令分析日志的代碼分享,需要的朋友可以參考下2014-05-05
fdupe 是一個很小的 Perl 腳本,用來檢索指定目錄并找出其中重復(fù)的文件,該腳本是通過文件內(nèi)容來識別是否重復(fù)文件,而非文件名。fdupe 無需其他 Perl 腳本支持,運(yùn)行速度非???/div> 2013-03-03
使用腳本實(shí)現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接
這篇文章主要介紹了使用腳本實(shí)現(xiàn)自動清除指定文件夾下丟失鏈接文件的符號鏈接,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02最新評論

