歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

如何Linux系統下由論壇到SSH的入侵


本來我不習慣開QQ,可好友打來電話說有事找我,遂上線。因為我用的QQ是能顯示IP地址的木子版本,所以看到好友的IP:xxx.xxx.19.24,發現好友是在學校的實驗室上網。我忽發奇想,想看看他們實驗室的機器裡都有些什麼東西,因為以前我知道他們實驗室的機子在一個C段裡——什麼?你讓我直接給好友發木馬?那小子比猴都精,況且那小子的技術也不是省油燈,還是用迂回戰略吧!

從百寶箱裡隨便祭出個掃描器,我用的是這個小東東:BluesPortScan,它的掃描速度超快,可惜會漏報。先掃三十台機器吧,端口1—150。掃描完後,一台機器引起了我的注意:機器IP為xxx.xxx.19.7,開了22和80端口。開了22端口,八成就是台Linux機器了。拿SecureCRT連一下22端口:

小知識:22號端口對應Linux下的SSH,這一服務有許多弱點,建議在其它端口運行SSH。

79端口的Finger也沒開,用戶名目前只知道可能的是ROOT,密碼先來個123,返回錯誤,看來要從別處入手了。別處好像只開了80,後來擴大了端口掃描范圍又掃出個Oracle的3306端口,不過那個數據庫用戶ROOT的密碼不是空,總不能讓我掛本字典去跑吧?還是轉到80端口吧。

Telnet上它的80端口,然後GET,返回服務器信息:Server: Apache/1.3.27 (Unix) PHP/4.2.3。用的阿帕奇服務器,不要考慮WEB服務器本身的漏洞了,去網站轉悠吧。地址欄裡敲入它的地址:xxx.xxx.19.7,回車。網頁出來了,看來沒有用虛擬主機什麼的,八成是學生自己作的東西,不過,雖然網頁內容比較官方,但感覺網站好像千瘡百孔。用PHP和HTML做的,有好像改得面目全非或自己做的新聞系統,在文章管理系統裡找了幾個點試了試SQL注入,沒有成功,算了,到論壇裡看看吧。

進了論壇裡,先習慣性的用admin密碼admin登錄,竟然成功了,倒啊倒!找個上傳點扔個PHP後門上去!接下來卻讓我大失所望,管理面板裡轉了半天也找不到個上傳點,別說上傳頭像了,用戶資料裡就沒頭像這一項。哪個論壇這麼氣人?看看網頁底部:本論壇代碼來自xxx.com,管理員還不錯,沒改版權信息。看到了這兒想到了什麼?趕緊去你自己的網站改敏感字符?呵呵,晚了,地址中打入xxx.com回車,哦,原來是個不錯的個人主頁,看他的作品裡有個微型PHP文本論壇,就是這個了,呵呵,幸虧剛才在論壇裡沒試SQL注入,不然就白費傻勁了。不管三七二十一,下載下來再說。

下載完成,解壓,發現論壇根目錄下有個DB文件夾,這就應該是所謂的論壇“數據庫”了,打開此文件夾,發現裡面都是些.dat文件,用記事本打開,果然是文本格式。警覺的雙眼一下子就盯到了那個user.dat上。打開,內容如下:

adminp|[email protected]://3

2004-01-011

admin是默認用戶,p|1cv應該就是加密後的密碼了,緊接的“3”代表管理員,後面的就不用看了。迫不及待地在地址欄裡裡輸入:xxx.xxx.19.7 /forums/db/user.dat,天,把裡面的內容全打到IE裡了,趕緊保存下來。

好了,找關鍵的地方,最原先的用戶,一般就是第一二個,找到了,是管理員權限,用戶名為aaa,密碼為4$@A%G,破解出了這個密碼,按人的習慣,系統密碼不是這個也不遠了,至少會前進一大步。重新分析論壇代碼,發現用以下的方法做的加密:

function t_encrypt($text, $key)

{

$crypt = "";

for($i=0;$i

分析加密函數的算法:從密碼第一位開始,取密碼的一個字符,取key對應位的一個字符,轉換成Ascii碼相加,然後相加結果再減去key中下一位的Ascii,然後把最後結果再轉換成字符即所謂密文存儲。

Substr(string,i,j)函數的作用是將字符串string的第 i 位起取出 j 個字符。Ord()和chr()則分別是字符到Ascii和Ascii到字符的轉換函數。簡化一下上面算法就是:$i_crypt=$i_text+$i_key-$i+1_key。先拿第一位算吧,假設原密碼第一位Ascii碼為x,則:

x+ascii(j)-ascii(p)=ascii(4)

用Ascii碼算就是x+106-112=52

x=58轉換成字符就是“:”,好奇怪。把六位密碼全部還原回來,再去論壇登錄,糟了,希望破滅了,提示密碼錯誤!管理員大概不會去改代碼中加密部分的算法的,難道,管理員把key改了?

重又回到論壇,注冊一個新用戶ecawen,密碼mygod,然後打開它的user.dat觀看,加密後的密文為p|lcv,按下載回來的論壇源代碼中的密鑰算了算,不對,果然key被改了。但包含key的文件是個mishi.php,key也在PHP語句裡,遠程根本無法得到,浏覽器裡打/forums/db/mishi.php返回的只是空白頁面,因為傳出時PHP語句早被服務器過濾了。怎麼辦,想了大約幾秒鐘,還是有辦法的,我們不一定要知道確切密鑰,知道密文和算法了,這麼簡單的算法我們應該能把需要的搞出來。

假設未知密鑰第一位是Ascii碼a,每二位是b,依此類推……

我的用戶ecawen的密碼(我注冊的,當然知道,我輸的是mygod)加密後密文是p|lcv,所以我們可以這樣算:

(為了看著簡潔ascii(m)我們直接用ascii碼109)

109+a-b=112

121+b-c=124

103+c-d=108

.

.

.

看暈了吧,其實,我們加個()就豁然開朗了。

109+(a-b)=112

121+(b-c)=124

103+(c-d)=108

.

.

.

好了,拿出他的管理員密文來算吧:

x+(a-b)=52

x+(b-c)=36

x+(c-d)=64

.

.

.

把x再還原成字符,好了,原密碼出來了吧?有點復雜?越這樣你會越激動的!不過,有點要注意的是,你注冊的用戶密碼位數要不少於管理員密碼位數,此處管理員密碼是六位,我一不小心注冊了個五位的,到第六位不能算了,還得另注冊個用戶,走了彎路。

好了,拿解出的密碼登錄論壇,成功登錄。打開secureCRT通過SSH登錄其系統,用戶名ROOT,密碼為剛解出的那個密碼,懷著激動的心情默念到第N聲芝麻開門的時候,門開了!進去轉吧,因為是好友學校的機器,代理我都沒用,有事CALL好友出來墊背!

後來還發現系統中存在與論壇管理員同名的那個aaa用戶且密碼也相同,就不再詳述了。那些ida/idq、webdav什麼的早已遠去了, 沖擊波那個漏洞滿城風雨後也早銷聲匿跡了,現在專門找系統漏洞的攻擊及入侵已經快跟不上時代了,況且網上很多主機前面又是防火牆又是IDS的。而轉而分析網站綜合缺陷,,從網站數據庫入手,SQL注入等這些手段正是熱潮,所以,管理員同志們,看好你們的每道關口、每個細節!

Copyright © Linux教程網 All Rights Reserved