文章的格式也許不是很好看,也沒有什么合理的順序
完全是想到什么寫一些什么,但各個方面都涵蓋到了
能耐下心看的朋友歡迎一起學習,大牛和杠精們請繞道
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都是一樣的,不過格式不一樣