zoukankan      html  css  js  c++  java
  • Intel产品AMT本地及远程提权漏洞(CVE-2017-5689)复现 【转载自freebuf.com】

    零、绪论:

    1、鸣谢freebuf的文章,主要是学习这个漏洞,文章地址: Intel产品AMT本地及远程提权漏洞(CVE-2017-5689)复现

    2、在shadon上找了多个该漏洞尝试复现失败(评论区有人复现成功,所以方法肯定可行),我的免费用户只能查看前两页,存在如下两种可能性:

    (1)我尝试的靶机已经被打了补丁,或者默认账户已经被所有者或攻击者修改。

    (2)此WEB服务器有版本区别,只有特定的一些版本存在该问题,而我没有遇到。

    3、补充一点知识点:

    受影响端口为4个:623、624、16992、16993

    4、以上:如有错误和疏漏请批评指出,谢谢!!!

    尝试扫描测试脚本:

      1 # -*- encoding:utf-8 -*-
      2 
      3 #import lib files:
      4 import os
      5 import sys
      6 import logging
      7 import requests
      8 import threading
      9 from optparse import OptionParser
     10 
     11 #global configuration
     12 reload(sys)
     13 sys.setdefaultencoding("utf-8")
     14 logging.basicConfig(level=logging.INFO,format='%(message)s')
     15 
     16 #global varites define:
     17 VulnPortList = [623,624,16992,16993]
     18 VulnUrl = "http://%s:%s/logon.htm"
     19 VulnList = []
     20 
     21 class VulnScanner(threading.Thread):
     22     def __init__(self,threadname):
     23         threading.Thread.__init__(self,name=threadname)
     24         self.targetlist = []
     25     def _config_init(self,target=None,targetfile=None):
     26         if target != None:
     27             for port in VulnPortList:
     28                 targeturl = VulnUrl%(target,str(port))
     29                 self.targetlist.append(targeturl)
     30         if targetfile !=None:
     31             with open(targetfile,"r") as fr:
     32                 for line in fr.readlines():
     33                     target = line.split("
    ")[0].split("
    ")[0]
     34                     self._config_init(target=target)
     35     def _check(self,target):
     36         try:
     37             logging.info("[+] checking %s"%str(target))
     38             response = requests.get(target,timeout=3)
     39         except Exception,ex:
     40             logging.info("[*] Safe! Reason:%s"%str(ex))
     41             return None
     42         if response.status_code == 200:
     43             if response.content.find("Log On"):
     44                 logging.info("[+] Vuln! %s"%str(target))
     45                 return target
     46         else:
     47             logging.info("[+] Safe! Reason:%s"%str(target))
     48             return None
     49     def run(self):
     50         global VulnList
     51         for target in self.targetlist:
     52             result = self._check(target)
     53             if result != None:
     54                 VulnList.append(result)
     55        
     56 if __name__ == "__main__":
     57     logging.info("[+]*****************************************************************[+]")
     58     logging.info("IAMT Scan Init!")
     59     parser = OptionParser() 
     60     parser.add_option("-i","--iptarget",dest="iptarget",help="Target IP address!")
     61     parser.add_option("-f","--iptargetfile",dest="iptargetfile",help="Target IPs file!")
     62     parser.add_option("-t","--threadnum",dest="threadnum",help="Number of Added Threads to Scan!")
     63     (options, args) = parser.parse_args()
     64     parameterchecklist = [options.iptarget,options.iptargetfile]
     65     if parameterchecklist in [[None,None],[None,""],["",None],["",""]]:
     66         logging.error("[-] Target parameters error!")
     67         exit(0)
     68     try:
     69         options.threadnum = 1 if options.threadnum == None or options.threadnum == "" else int(options.threadnum)
     70         options.threadnum = 100 if options.threadnum > 100 else options.threadnum
     71     except Exception,ex:
     72         logging.error("[-] Threadnum parameter error!")
     73         exit(0)
     74     logging.info("[+] Scan Config Init!")
     75     if options.iptargetfile != None:
     76         ret = os.popen("wc -l ./%s"%options.iptargetfile)
     77         size = str(ret.read()).split(" ")
     78         size = int(size[0])+1
     79         size = size/int(options.threadnum)
     80         os.popen("split -l %s %s -d -a 3 scanfile"%(str(size),str(options.iptargetfile)))
     81         scanfilelist = []
     82         for parents,dirs,filenames in os.walk("./"):
     83             for filename in filenames:
     84                 if filename.find("scanfile") >= 0:
     85                     scanfilelist.append(filename)
     86         threadlist = []
     87         for targetfile in scanfilelist:
     88             thread = VulnScanner(threadname=str(targetfile))
     89             thread._config_init(target=None,targetfile=targetfile)
     90             threadlist.append(thread)
     91         for thread in threadlist:
     92             thread.start()
     93         for thread in threadlist:
     94             thread.join()
     95         for filename in scanfilelist:
     96             os.remove(filename)
     97         print "************************************************************"
     98         for vulntarget in VulnList:
     99             print "[*]Unsafe!,targetIP:",str(vulntarget.split("http://")[-1].split("/")[0]),",targeturl:%s"%vulntarget
    100         print "************************************************************"
    101     else:
    102         thread = VulnScanner(threadname="scanner")
    103         thread._config_init(target=options.iptarget)
    104         thread.start()
    105         thread.join()
    106         print "************************************************************"
    107         for vulntarget in VulnList:
    108             print "[*]Unsafe!,targetIP:",str(vulntarget.split("http://")[-1].split("/")[0]),",targeturl:%s"%vulntarget
    109         print "************************************************************"

    一、下面是引文:

    官方漏洞说明

    英特尔(Intel)官方发布安全公告,公告表明Intel旗下产品英特尔主动管理技术(AMT),英特尔标准可管理性(ISM)和英特尔小型企业技术版本中的固件版本6.x,7.x,8.x 9.x,10 .x,11.0,11.5和11.6存在提权漏洞,可以使无特权攻击者获取这些产品的高级管理功能权限,CVE编号:CVE-2017-5689。 普通用户基于Intel的PC不受影响 。

    受影响的版本:

    第一代 Core family: 6.2.61.3535

    第二代 Core family: 7.1.91.3272

    第三代Core family: 8.1.71.3608

    第四代Core family: 9.1.41.3024 and 9.5.61.3012

    第五代Core family: 10.0.55.3000

    第六代Core family: 11.0.25.3001

    第七代Core family: 11.6.27.3264

    漏洞原理:

    利用截包软件把web登录数据包中Authorization字段中的response对应值全删除,就能以管理员用户登录AMT的web界面。

    复现步骤:

    第一步先利用搜索引擎zoomeye、shadan去搜索可能存在漏洞的链接,利用关键字port:16992

    sho.png

    打开要检测的网站,点击Login登录,账号密码都为admin

    TIM截图20170524112634.png

    把response里面的内容都清除

    response="4208c148a7a8a9176bd8cb8d3a87464d"

    点击burpsuite的Forward放行,成功以管理员进行登录

    J)FPEC@8E_S2`E77X40WY5K.png

    接下来新建账号,同理还是要清除response内的内容

    新建账户.png

    新2.png

    新3.png

    这里设置密码需要注意密码复杂性要求,最少八个字符大小写特殊字符

    成功1.png

    新建账户成功后,刷新界面重新登录,此后操作就不需要在截包

    登录成功.png

    成2.png

    以上就是复现过程。通过该漏洞,可以管理用户,远程开关机,使用创建的用户通过Manageability Commander Tool、vnc实现远程管理BIOS和操作系统。

  • 相关阅读:
    程序写法
    2011年C++再次给力
    WIN7+LINUX双系统
    随机洗牌算法
    Eclipse快捷键大全
    Android 编程规范
    android Context 上下文的几点解析
    消息模式Toast.makeText的几种常见用法
    Eclipse的优化
    用PULL解析器解析XML文件
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8309611.html
Copyright © 2011-2022 走看看