Metasploit Framework(2)Exploit模塊、Payload使用


文章的格式也許不是很好看,也沒有什么合理的順序

完全是想到什么寫一些什么,但各個方面都涵蓋到了

能耐下心看的朋友歡迎一起學習,大牛和杠精們請繞道

 

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都是一樣的,不過格式不一樣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM