Posts

Showing posts from May, 2018

Buffer overflow Part(2)

Image
က်ေနာ္တို့ part(1) မွာ stack နဲ့ registers ေတြဘယ္လိုအလုပ္လုပ္လဲဆိုတာကိုနားလည္ခဲ့ျပီ။ အခု windows ေပၚမွာ freefloat FTP server ကိုသံုးျပီးေတာ့ buffer overflow ကိုစမ္းၾကည္​ၾကမယ္။စမ္းတဲ့ေနရာမွာ က်ေနာ္က freefloat FTP server Version (1) ကိုအသံုးျပဳျပီးစမ္းျပမယ္။ဘာလို့လဲဆိုေတာ့  freefloat FTP server က username ေနရာမွာ buffer overflow vulnerability ရွိတယ္။ ျပီးေတာ့ အဲ့ vulnerability ကိုအသံုးခ်ျပီး target system ရဲ့ shell ကို ရေအာင္ယူၾကည့္မယ္။ က်ေနာ္တို့ ဒီ lab မွာ freefloat FTP server run ထားမဲ့ windows XP (32 bits) VM တစ္လံုး၊ kali linux VM တစ္လံုးကိုသံုးမယ္။ debugger အေနနဲ့ကေတာ့ immunity debugger သံုးမယ္။ debugger ဘာလို့သံုူးရတာလဲဆိုရင္ stack ရဲ့အေျခအေနနဲ့ register values ေတြကိုသိခ်င္လို့ပါ။  freefloat FTP server ကိုေတာ့  https://www.exploit-db.com/exploits/23243/  link ကေန Vulnerable App ကိုနွိပ္ျပီးေတာ့ download ျပဳလုပ္နိုင္ပါတယ္။အဲ့ေတာ့ requirement ေတြလည္းသိျပီဆိုေတာ့ စလိုက္​ၾကရေအာင္ဗ်ာ။  အရင္ဆံုး freefloat FTP server ကို windows XP ‌ေပၚမွာ run မယ္​။ debugger မွာ attach လုပ္မယ္။

Buffer Overflow Part(1)

Image
           က်ေနာ္တို့ stack base buffer overflow အေျကာင္းေျပာေတာ့မယ္ဆိုရင္ assembly language နဲ့ stack ဘယ္လိုအလုပ္လုပ္လဲဆိုတာကို အေျခခံအေနနဲ့သိထားရပါမယ္။assembly ကိုေလ့လာမယ္ဆိုရင္အခ်ိန္ေတာ္ေတာ္ေပးရပါမယ္။ အခုက်ေနာ္တို့ ေလ့လာခ်င္တာက exploit development ျဖစ္တဲ့အတြက္ assembly ကို registers ေတြေလာက္ပဲေျပာပါမယ္။ program တစ္ခုစျပီး run ျပီဆိုတာနဲ့ memory ကိုအနည္းနဲ့အမ်ားေတာ့ အသံုးျပုျကပါတယ္။ အဲ့ အသံုးျပုတဲ့ process memory မွာ major component သံုးခုရွိပါတယ္။ အဲ့ဒါေတြကေတာ့ code segment(processor က execute လုပ္မဲ့ instructions ေတြ)  data segment (global variables ေတြ, dynamic buffer ေတြ) stack segment တို့ပဲျဖစ္ပါတယ္။        stack အေျကာင္းမသြားခင္ cpu ရဲ့ general purpose registers ေတြအေျကာင္းကိုတစ္ခ်က္ေလာက္ေလ့လာျကည့္ရေအာင္။ intel x86 architecture  မွာရွိတဲ့ general purpose registers ေတြကေတာ့ EAX - အေပါင္း၊ အနုတ္၊ compare စတဲ့ calculation ေတြလုပ္ရာမွာအသံုးမ်ားပါတယ္။ EBX - general purpose မရွိဘူး၊ data ေတြ store လုပ္ဖို့သံုးတယ္။ ECX - counter ျဖစ္ျပီး loop ေတြမွာ အမ်ားဆံုးအသံုးျပုပါ