BadTunnel漏洞利用

2021-07-24 12:53:04 字數 3117 閱讀 3910

1. badtunnel漏洞的原理是,當某台主機(受害主機)給乙個指定

ip的主機傳送乙個smb共享連線請求時,因為該指定主機的預設共享埠445、139不可達(超時或拒絕連線),則該主機會向這個指定ip的主機傳送乙個目的埠為137的netbios nb state包。一旦傳送這個資料,且網路核心部件(防火牆、nat閘道器等)允許通過,那麼就必然允許在一定的時間內通過該隧道(即badtunnel)返回資料。而這個netbios包使用的協議是無連線狀態的udp,其源埠和目的埠用且只用137埠。這就表示這樣一段時間內,處於外部網路的機器可以構造乙個源埠為137,目的為該ip的137埠,發往受害主機,且該網路一定是可達的。

2. badtunnel中一共用到了2種netbios資料報,第一種是受害主機向目的主機udp的137埠傳送的netbios nb state包,第二種則是從目的主機137埠源源不斷地返回的netbiosname response包。傳送第二個包的目的是什麼呢?其實就是在當這個badtunnel構建起來後,假定目標再未來的一段時間內,一定會向自己的區域網內廣播乙個netbios name query的請求包,用來請求某乙個未知的網域名稱或者機器名的ip位址(注意這個廣播報是不能通過badtunnel傳送給黑客的伺服器的,即黑客是看不到這個廣播包的)。這個請求包內部其實是乙個dns協議的報文,但是和dns協議不同的是,它的

trasaction id

不是隨機,而是遞增的!而且這個id還和之前傳送的netbiosnb state資料報的id享用同乙個計數器!也就是說,在受害主機給乙個指定的主機傳送乙個netbiosnb state包時,這個id就已經洩露了。只要受害主機接收到id匹配的response,那麼它就會更新自己本機的netbios快取。

3. 當badtunnel構建起來以後,可以不斷地通過這個tunnel給受害主機傳送乙個netbiosname response包,不斷地告訴受害主機:wpad(或者其他網域名稱)的ip位址是***,這個***通常是攻擊者自己的web伺服器,用來給受害者主機傳送wpad.dat檔案,從而更改受害主機的網路**設定。而傳送的這個netbiosname response包,使用的id號必然是大於之前收到的nb state的id號,且通常不會大很多。通過不斷地發包完全可以「蒙」對。

4. 觸發這個漏洞的確很簡單,但是門檻也不是那種受害者完全不知情就能劫持的。根據1,受害者需要訪問乙個smb的uni path,即類似」\123.123.123.123\」的位址,乙個僅僅放在資源管理器的快捷方式、或者開啟乙個網頁、開啟乙個文件都可以觸發,但是這還是有一定門檻的,雖然並不是很高。即便成功地觸發,部分運營商似乎在網路層就已經遮蔽了udp的137埠,這樣這個tunnel還是構建不起來。

5. badtunnel漏洞的核心在於這個tunnel,而不是wpad。wpad(即網路**自發現協議 – web proxy auto-discovery protocol)只是基於這個tunnel的乙個目前發現的比較好的利用方式而已(其實還有乙個潛在的更好的利用方式,這裡筆者賣個關子,尚待研究)。事實上,在部分內網中,很多web連線資料庫是通過機器名來連線的,也就是說,在web伺服器剛啟動的初始化階段,或者連線超時以後重新發起連線的階段,它也會在內部網路傳送乙個netbios name query廣播,只要能夠知道這個主機名,一樣可以通過badtunnel來欺騙資料庫客戶端主機,使用metasploit的mysql capture或者mssql capture模組就能捕捉到資料庫的密碼。

metasploite中的利用**,其實並不能算是乙個真正的badtunnel利用**,因為它會遍歷0-65535號的trasaction id。根據我之前所說,這個id是可以被**並且精確攻擊的。因此metasploit中的利用**效率低、成功率不高。

筆者使用python編寫了乙個真正的badtunnel利用工具,該工具能夠精準的欺騙受害主機,重定向乙個指定的網域名稱(預設是wpad)到乙個指定的ip位址。還有netbios探針模式、混合模式(構建badtunnel,通過badtunnel重定向wpad並且探針區域網內netbios name query),自動欺騙模式(自動欺**域網內所有的netbios namequery,把任意網域名稱定向到乙個指定ip)。其中探針模式、自動欺騙模式不支援跨網段。可以想象以下攻擊場景,注意構建badtunnel需要首先關閉445和139埠,linux中預設是smbd服務和nmbd服務,windows可以設定防火牆禁止通過:

1. 劫持qq好友、遠端/區域網路的流量:

準備好環境。最方便的是直接使用burpsuit來開啟乙個**埠,注意需要監聽在所有介面上(即監聽0.0.0.0),然後使用metasploit的server/wpad模組來快速搭建乙個80埠下的http伺服器,來返回wpad配置檔案。

1)使用qq、郵件傳送乙個帶有smburi path的文件、快捷方式,或者乙個網頁,注意網頁中的標籤應該是src=」\\123.123.123.123\」這種;快捷方式可以用metasploit生成。如果處於同乙個區域網,則不需要任何工作。

2)傳送給朋友或者妹子,最好做點其他功課,***。直接使用工具的預設模式即可。

2. 進入內網,橫向滲透時非arp嗅探內網賬號密碼:

1)使用探針模式,把所有netbios name query記錄下來。windows主機非管理員許可權即可監聽udp的137埠,linux主機則需要提權成功。

2)分析區域網內所有netbios name query請求,如果發現有請求mysql、sqlserver或者直接使用機器名連線服務和開啟共享的,可以根據需要調整攻擊環境,然後再使用自動欺騙模式來抓密碼。

3. 進入邊界提權成功,縱向滲透時密碼採集:

1)域內機器有偶爾訪問邊界伺服器的情況,有的環境甚至是經常存在。一般邊界伺服器都是web伺服器,那麼可以通過在該肉雞的某個頁面中插入

xss漏洞之 漏洞利用

原理 網頁被植入網頁被植入xss指令碼,普通使用者訪問此網頁時,會自動將使用者本地的cookie快取傳送到指定遠端伺服器 利用 1 首先登陸乙個頁面,抓包獲取cookie 2 複製此頁面裡任一選項的url,重啟瀏覽器後直接訪問此url,抓包修改cookie為上面獲取的登陸成功後的cookie 3 頁...

FCKeditor漏洞利用

行35 36 config allowedextensions file array 允許的上穿型別 config deniedextensions file array php php3 php5 phtml asp aspx ascx jsp cfm cfc pl bat exe dll reg...

XXE漏洞利用

docker搜尋xxe相關映象包,然後pull下來,我這裡pull的是 rrodrigo xxelab 映象包。啟動docker環境,對映到vps的32776埠 訪問 輸入註冊資料,抓包重放。發現提交資料報採用 xml 格式傳遞,且郵箱有返回。這裡我們引用外部dtd實體,並且將email的值修改為引...