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("\n")[0].split("\r")[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和操作系统。

 

转载于:https://www.cnblogs.com/KevinGeorge/p/8309611.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值