本文作為利用替換動態庫的方法來跟蹤WinSock通訊的具體應用,該技術適合於研究某個程序具體的通訊過程,所以很有價值。需要注意的是本文及提供的示例代碼僅用於研究,請勿用於任何破壞及進攻,否則後果自負!
破解網上鄰居密碼示例源代碼 大小:12K
[前言]
前幾天在網上看到一個程序是關於破解網上鄰居密碼的程序,DOWN下來一用,果真不錯,速度很快,沒幾秒鐘就能搞定一個win95(98,ME)的共享密碼。我想一下,自己何不嘗試寫一個看看。要寫一個,必須首先理解PQwak的原理,手中得有以下幾個工具才行。
1、 VC(這是寫程序至少的)
2、 請看《截獲WINSOCKET》一文(已經包含在跟蹤WinSock中通訊的DLL源代碼壓縮包內。)和提供的用於跟蹤WinSock中通訊的DLL源代碼。
3、 防火牆,就用Xfilter吧,據說只要交50元還能得到源代碼,要是哪位大哥有源代碼,不妨給小弟寄一份
4、 UltraEdit
5、 最後PQwak.exe這個掃描程序可不能少
好,現在就進入正題。
[具體步驟]
步驟一、在被掃描機器打開防火牆,用PQwak.exe掃描,這裡你會發現防火牆發現有黑客進攻,對,我就是要利用這個。這不,很明顯的顯示出所進攻的IP地址和端口號。利用防火牆就是要證明pawak.exe是利用netbios與主機進行通訊。好,知道了這一步,我們接著就來干下一步
步驟二、將所需動態鏈接庫編譯後將被掃描機wsock32.dll替換,再次運行pqwak.exe 進行掃描
步驟三、分析c:\popsocket.txt
看到沒有,pqwak與被掃描方的通訊內容全部顯示出來了,具體連接過程在這裡就不多敘述了,還是講一下二次握手和發送解碼包的進程吧
第一次握手:
發送如下圖選中部分,長度為72個字符,\000為十六進制0x00,其中乗為二個字符,0x81、0x5c,要用ultraedit而不用記事本的目的就是為了能區別其中的一些內容。0x5c=''\'',這下不就清楚了,實際上 乗000\000D=0x81 0x00 0x00 0x44,明白了這些就好辦了讓我們再來看看後面一點到底代表了什麼:
EKFIDBDCDDCACACACACACACACACACACA\000
EKFIDBDCDDCACACACACACACACACACACA\000
上面一段內容實際上代表的是被入侵的計算機名:
//0----9==DA---DJ
//A----O==EB---EP
//P----Z==FA---FK
要是剩余的全部為CA(即所空字符)由於我所入侵的計算機名為hjm123所以就變成了EKFIDBDCDD,其中入侵所涉及英文字符全轉換為大寫。其中計算機名要發二遍,不知為何,大概是為了冗余吧。
發送過上述包後主機後返還4個字節,用來說明連接的計算機是否成功
成功 0x82 0x00 0x00 0x00
失敗 0x83 0x00 0x00 0x01
現在來進行第二次握手
這其中的內容由於我只在一台機器上試過發現都只是完全一樣的封包格式,所以也就直接拿來用吧,至於說返回包的格式,每次返回的都不一樣,好像也對連接並沒有多大影響,也就不去管他了。
現在進入最重要的一步,密碼掃描
這裡就說說要點吧,其中第3個字符為後這裡就說說要點吧,其中第3個字符為後面字符的長度(字符計數從0開始)
//43=密碼長度 45=密碼+URL名長度47=密碼+URL
//密碼+URL前為47個字符
//例如 1\\hjm\c\ a: 7就是其中的\\+\+ +a:共為七個字符
如正確則返回包未尾有A:
要是你覺得密碼正確可以將3位增加1,43位增加1,45位上增加1
如再有返回包未尾為A:則證明密碼正確
好就寫到這裡吧,剩下的東西還是等各位朋友自己慢慢去摸索吧,由於本文所涉及內容並未在多台機器,多種操作系統上試驗過,難免有疏漏之處,請各位諒解。