1. 程式人生 > >緩存區溢出之slmail fuzzing

緩存區溢出之slmail fuzzing

不兼容 frame 位置 data 重新 user 命令 記事本 兼容

這是我們的實驗環境

kali 172.18.5.118
smtp windows2003 172.18.5.117 pop3 110 smtp 25
本機 172.18.5.114

已經知道slmail存在PASS處的緩沖區溢出漏洞 當你輸入的足夠長的時候會緩沖區溢出

技術分享圖片

但是如果我們進行手動測試會顯得很麻煩 所有這裏我們使用腳本來跑這是01.py

import socket
s = socket.socket(socket.AF_INET,socket.SOCKET_STREAM)
try:
    print"\nSending evil buffer..."
    s.connect((
172.18.5.117,110)) data = s.recv(1024) print data s.send(USER Aadministrator+\r\n) data =s.recv(1024) print data s.send(PASS password\r\n) data =s.recv(1024) print data s.close() print "\nDone!" except: print "Could not connect to POP3
"

先建立一個鏈接

發送魔鬼buffer \n是換行的意思

s.connect是連接目標的110端口

data 是回顯的信息 pirnt輸出顯示信息

s.send是你要發送的內容

然後close這個鏈接

最後是未執行成功的報錯(except)

但是小編這裏遇到了這個問題 原來是windows的py與liunx不兼容造成的

以下是解決鏈接

https://blog.csdn.net/u010383937/article/details/73161475

這裏是在kali裏面在創一個記事本然後復制代碼上去 改名為001.py完成的不兼容繞過

改好後

技術分享圖片

用戶名收到 OK 密碼回顯錯誤 腳本是可以的

我們不斷的增大向目標服務器的數據數量

接下來是002.py

技術分享圖片

技術分享圖片

在服務器端觀察一下進程是如何溢出的

技術分享圖片

進入

技術分享圖片進來是默認的暫停狀態

技術分享圖片

點擊播放來實時的監管這個344端口的進程

然後我們從客服端向服務器發送 數據在服務端在查看 這是進行的002.py

技術分享圖片

發到2900的時候發現他一直沒有動了 那我們來到服務端來看一下

技術分享圖片

這是ASCII編碼轉換為10進制後就是40+1

EIP是下一步這個進程要進行的操作的地址 我們在這裏發送大量的A將其復制了

技術分享圖片

所有說這裏下一步的進程被我們發送的大量的A覆蓋了 簡單說就是這個程序被搞崩潰了。因為414141不是原來要執行的地址

這裏我們進行重新啟動一下

將A改成B

技術分享圖片

可以看出slmail的PASS命令存在緩沖區溢出的漏洞

EIP是存放下一條指令的地址 這是原來的EIP

技術分享圖片

精確的定位溢出位置 繼續查找 剛才2900停了

現在我們發2700個A

技術分享圖片

2700個A也發生EIP寄存器的溢出了

技術分享圖片

我們試試2600個A

發現存在溢出了但是 2600不足以溢出到EIP

技術分享圖片

我們可以用以下方法

技術分享圖片

用kali裏面現成的腳本來實現唯一字符串

下是的事目錄 kali裏面的默認目錄

usr/share/metasploit-framework/tools/pattern_create.rb 2700 

sploit-framework/tools/pattern_create.rb 2700

技術分享圖片

現在EIP裏面存在了這麽一串字符串

39 69 44 38

38 69 44 39

8 D i 9

但是windows內存裏面的存放規則是高位

技術分享圖片

./pattern.offset.rb 39694438

自動計算後面的數字在數組裏面產生的位置 也就是偏移量

技術分享圖片

找到位置是2606 所以我們在2607開始填充

驗證EIP溢出位置是否真確

我們在2067位置填充BBBB

技術分享圖片

ASCII??是42424242

驗證成功 溢出位置正確

緊跟著eip的是ESP20個c一個不少

我們可以在後面不填充20個C 從而讓你的服務器來連接我的一個端口這樣 就可以訪問我的服務端口來訪問你的服務器了

usr/share/metasploit-framework/tools/pattern_create.rb 2700

緩存區溢出之slmail fuzzing