滲透環境:如下圖所示,web服務器、ms-SQL服務器、PC客戶端在同一個網絡中,彼此之間,沒有路由器或防火墻的隔離,這是一種危險的網絡結構,入侵ms-SQL服務器,非常容易。(實戰中,web服務是一個中控考勤服務)
滲透原理:在win7機(或是kali虛擬機)上,瀏覽內網web,會觸發web服務器聯系ms-SQL數據庫服務器,獲取數據;在kali虛機上,我們可以截流web發送給ms-SQL的數據包,修改其中的sql語句,再將它發給ms-SQL執行,達到操控ms-SQL的目的。比如,我們可以增加一個新用戶,然后,以新用戶登入數據庫。這樣,我們就完全控制了ms-SQL數據庫。這種攻擊法,叫做中間人攻擊。
滲透步驟:攻擊步驟并不復雜,需要編寫簡單的腳本。過程中,只有二進制格式的字符串制作,略微復雜一點。我們將虛擬機kali作為攻擊機,所有的操作都在kali上進行。bettercap和wireshark是kali的內置軟件,無需安裝,需要注意的是,kali的網卡需采用橋接模式。
一、使用bettercap,發動中間人攻擊,使kali成為中間人。
1、 編輯 spoof.cap 腳本。可以使用各種編輯工具,可以使用vi,其命令是 vi spoof.cap。內容只有兩行,#后面是注釋。見下圖:
2、將kali變成中間人。只有一行命令
bettercap --gateway-override? 192.168.1.9 -caplet spoof.cap
# 將ms-SQL服務器視為網關,kali才能變成web和ms-SQL的中間人
3、檢查kali是否成功變成中間人。在模擬環境中,可以到web服務器和ms-SQL服務器上,使用 arp -a(同時適用于win系統和linux系統), 查看ip地址和mac碼,檢驗中間人攻擊是否成功。但在真實環境中,因為你無法操作服務器,所以只能跳過此步驟。實戰說明:在kali上分別ping一下兩臺服務器,有助于arp欺騙迅速生效。
二、用瀏覽器訪問網頁,用wireshark抓包,捕獲的sql語句越長越好
1、啟動wireshark并設定好捕獲參數。圖中左上第一個就是捕獲按鈕,第二個是停止捕獲。
2、瀏覽器中,嘗試瀏覽不同的網頁。
3、在wireshark捕獲的數據中,我們要尋找一個特定的數據包,該數據包中原始的sql語句越長越好,足夠的長度才能為我們篡改sql語句,提供足夠多的字符空間。tds.query可以過濾出所有的數據庫相關包,我們可以查看sql語句,找到長度足夠的sql語句。上圖中,列出了很多sql語句包,384是最長的,所以,它就是我們要找的特定數據包
4、重復操作瀏覽器,確保特定數據包能夠重復出現
5、從特定數據包中抽取其原生的sql語句,制作二進制格式的字符串,這個步驟難度最大,是成功與否的關鍵。上圖中間區域,tabular data stream--tds query packet下面,可以看到完整的sql語句,它的確夠長。鼠標放到下面藍色區域,右鍵選擇? as Escaped String,再粘貼到編輯器中,變成如下圖所示,需要手工處理一下,對照上副圖,下圖中刪除白底數據,保留藍底數據,然后刪除頭尾的引號、斜杠等,使它變成一個標準的二進制格式的字符串,它就是我們抽取的原始sql字符串,然后,復制到后面sql_replace.js截圖的第7行。
6、退出bettercap和wireshark
到目前為止,我們可以截留、監控、轉發數據包,但是,我們還不能篡改數據。我們需要讓數據經過一個代理tcp.proxy,在代理服務里面,才能修改數據。
三、編寫2個腳本,一個是bettercap自動運行的腳本spoof.cap;另一個是替換sql語句的腳本sql_replace.js。
1、修改spoof.cap腳本,其內容從2行變成7行。原來的腳本,是用于啟動arp欺騙攻擊,增加的腳本作用是啟動tcp.proxy代理。見下圖:
2、編寫篡改數據的腳本,文件名為 sql_replace.js,采用javascript語言 。tcp.proxy代理會調用它,篡改數據。
腳本中有兩個函數:
第一個是onLoad(),bettercap運行成功后,會在屏幕上提示:tcp module loader ----------------;
第二個函數示onData(from,to,data),其中,只有data參數有用, data就是系統截留的數據包,截留后,傳遞給onData函數,讓它分析和修改,data被修改后,會自動轉發到ms-sql服務器,在其上執行。為了便于分析,原始的data要轉換生成為strFromNet(圖中第17行);onData()函數有二個重要的變量:一是strTotarget,它是我們偽造的sql語句,直接鍵盤敲入(圖中第6行)。我們用它替換特定數據包中的原始sql語句;二是strFromCap,它是步驟二中,wireshark捕獲的特定數據包中,抽取的原始sql語句,我們需要將它粘貼到這里(見圖中第7行,為了方便閱讀,圖中數據截去了尾部,實際要長很多)。onData函數原理很簡單,我們要在所有的捕獲的數據包中搜索原始sql語句(圖中第18行),一旦搜索到,將其替換成偽造的sql語句(圖中第20行-38行),如果偽造的sql語句長度超過原生sql語句的長度,替換就會失敗。如果短于原句,則填充空格補全。
四、重新運行bettercap,加載上述腳本,注意屏幕上應該有提示。
bettercap --gateway-override? 192.168.1.9 -caplet spoof.cap
此時,onData()函數已經加載,隨時都可能篡改數據了。
五、重復網頁操作,完成對ms-SQL的滲透。
如果屏幕上提示: ------find it----? 表示找到了特定數據包。如果沒有出現這個提示,可能因為沒有成為中間人,或是沒有進行正確的網頁操作,最大的可能是,捕獲的原生sql數據包二進制轉換出錯了,需要重新轉換一次。
如果屏幕上提示:? ------crack sucessed!:):):) 表示替換成功。
如果屏幕上提示: -----but,its too short to replace with long command!-----表示替換失敗。
修改strTotarget的值,你可以執行任何sql語句,增加用戶,刪除用戶,其他等都可以。
網絡安全學習資源分享:
給大家分享一份全套的網絡安全學習資料,給那些想學習 網絡安全的小伙伴們一點幫助!
對于從來沒有接觸過網絡安全的同學,我們幫你準備了詳細的學習成長路線圖。可以說是最科學最系統的學習路線,大家跟著這個大的方向學習準沒問題。
因篇幅有限,僅展示部分資料,朋友們如果有需要全套《網絡安全入門+進階學習資源包》,需要點擊下方鏈接即可前往獲取
CSDN大禮包:《網絡安全入門&進階學習資源包》免費分享(安全鏈接,放心點擊)
同時每個成長路線對應的板塊都有配套的視頻提供:?
大廠面試題
視頻配套資料&國內外網安書籍、文檔
當然除了有配套的視頻,同時也為大家整理了各種文檔和書籍資料
所有資料共282G,朋友們如果有需要全套《網絡安全入門+進階學習資源包》,可以掃描下方二維碼或鏈接免費領取~?
?讀者福利 |?
CSDN大禮包:《網絡安全入門&進階學習資源包》免費分享(安全鏈接,放心點擊)
特別聲明:
此教程為純技術分享!本教程的目的決不是為那些懷有不良動機的人提供及技術支持!也不承擔因為技術被濫用所產生的連帶責任!本教程的目的在于最大限度地喚醒大家對網絡安全的重視,并采取相應的安全措施,從而減少由網絡安全而帶來的經濟損失。