文章的格式也許不是很好看,也沒有什麼合理的順序 完全是想到什麼寫一些什麼,但各個方面都涵蓋到了 能耐下心看的朋友歡迎一起學習,大牛和杠精們請繞道 Exploit模塊分為主動和被動(Active、Passive) 主動:主動地向目標機器發送payload並執行,使目標交出shell(反連等) 被動:利 ...
文章的格式也許不是很好看,也沒有什麼合理的順序
完全是想到什麼寫一些什麼,但各個方面都涵蓋到了
能耐下心看的朋友歡迎一起學習,大牛和杠精們請繞道
Exploit模塊分為主動和被動(Active、Passive)
主動:主動地向目標機器發送payload並執行,使目標交出shell(反連等)
被動:利用目標機器的客戶端程式的漏洞來利用,客戶端程式請求服務端時候,返回漏洞代碼,載入payload,交出shell
我將在下麵使用這兩種方式做示例:
我啟動一個windowXP SP1機器,關閉防火牆,更方便演示,實際情況不可以關閉防火牆
IP配置:
Kali:192.168.163.132
Windows:192.168.163.133
Active Exploit:
我用到的是windows的PSEXEC工具的漏洞:
漏洞利用前提:需要知道目標機器的一個用戶名和密碼
獲取shell方式:反彈回連Kali機器
use exploit:
設置參數:
依次設置好:目標IP,目標用戶名密碼,使用的Payload,反彈回連的IP(即Kali機器的IP)
設置好之後show options看一看結果怎麼樣:
如果執行成功的後,目標機器會反彈回連我的4444埠:
執行:
抱歉,這裡不知道是由於什麼原因,windowsXP機器這個漏洞無法被利用,我臨時換了windows2003機器
windows2003機器的IP:192.168.163.130
OK,用exploit -j參數就可以在後臺滲透目標機器了
下邊看到一個session被創建了:
sessions查看,-i交互:發現已經獲取了目標機器的shell,完成!!
不過註意:你在這台機器上的任何操作實際上都是你使用的這個用戶在操作
Passive Exploit:
被動的方式,我甚至可以在控制面板打開防火牆
如果打開了防火牆,我們試一試剛纔的主動滲透方式:發現失敗了
但是,利用被動的方式或許依然可以獲取shell:
下麵我將會嘗試:
我使用ms07-017_ani_loadimage_chunksizi模塊:
Info查看下信息
發現這個模塊適用於windowsXP、2003的IE6、IE7等
關於圖片載入時候發生的漏洞
現在windows2003上使用,如果不行等會轉XP
使用註意:需要偽造一個網站,誘使對方訪問這個網站
我直接設置成Kali機器的IP也可以
依次設置訪問網站的IP和埠,payload,回連的IP(Kali機器)
show options沒問題
然後執行:
OK,這個漏洞網站已經構建好了,現在使用目標機器訪問:
實際中:使用社會工程學誘惑使對方訪問,比如訪問有紅包什麼的
發現沒有滲透成功:
於是我更換XP系統:
滲透成功!!!
打開session看看:亂碼是中文的問題
接下來 就可以用shutdown命令,遠程把對面關機
OK,雖然對方打開防火牆,但是我依然利用瀏覽器漏洞誘使對方中招
這就是被動方式的強大之處
總結:
Active方式適用於攻擊伺服器端程式
Passive方式適用於攻擊客戶端機器,因為客戶端機器基本不開埠,而且有防火牆
其實不管怎麼滲透,目的都是一致的:使目標機器執行payload
我們可以先看一看所有的payload都有哪些:
show payload
我接下來使用綁定埠的shell:shell_bind_tcp
show options看一看參數:
本地偵聽埠預設是4444埠
我們發現這個payload不需要再進行額外的配置,預設會綁定本機的4444埠
這個RHOST不需要配置,它存在的意義就是限制來源IP
實際中這個參數是為了防止我發現的漏洞被其他黑客所利用
通常我們使用payload是通過exploit模塊來調用的:
比如我在exploit模塊中兩次用到了payload:
而payload模塊也可以用來直接生成Payload:
使用generate命令:
下麵的buf就是生成的16進位ruby語言格式的payload
我可以自己寫腳本發送這些shellcode,詳見:Kali學習筆記:緩衝區溢出漏洞利用
不過這裡面有一些壞字元(比如\x00),目標系統執行時候會出問題
如何避免呢?
有方法:generate -b參數
\x00是確定的壞字元,那麼有沒有其他的呢?當然有
處理方式和上邊一樣
這裡其實是使用了Encoder模塊將壞字元用其他字元代替了
generate自動選擇最適當的Encoder來編碼
那麼有沒有方法來自己指定編碼呢?
有的-e參數,但是不推薦,因為自動會分配最合適的編碼
上邊的是輸出16進位格式,還可以輸出exe格式:-t參數
下麵做一個綜合的參數:
-i 執行輪數,-k 以線程方式執行 -x 使用模板 -f 位置
運行完成!我把這個文件複製到windowsXP機器上去:正常啟動
註意:radmin這個文件本身是一個可以執行的正常exe,可以正常執行的一個軟體
好處:被害者以為自己是在安全地使用某個軟體
這時候使用Kali機器連接這個打開著的4444埠:
OK,成功了!輕鬆獲取shell
最後值得註意地是-s參數:
有時候執行payload的時候,會無法執行
當CPU執行NOP指令地時候,會走下一個位元組,以此類推,EIP寄存器會順著NOP滑,直到payload
NOP sled 參數用於:沒有精確知道payload地址時候,可以執行NOP指令,適當地NOP有一定地免殺效果
下麵的-t參數呢,設置生成payload的類型,比如可以生成C、C#、Java等等
註意:生成的payload都是一樣的,不過格式不一樣