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、以上:如有错误和疏漏请批评指出,谢谢!!!
尝试扫描测试脚本:
- # -*- encoding:utf-8 -*-
- #import lib files:
- import os
- import sys
- import logging
- import requests
- import threading
- from optparse import OptionParser
- #global configuration
- reload(sys)
- sys.setdefaultencoding("utf-8")
- logging.basicConfig(level=logging.INFO,format='%(message)s')
- #global varites define:
- VulnPortList = [623,624,16992,16993]
- VulnUrl = "http://%s:%s/logon.htm"
- VulnList = []
- class VulnScanner(threading.Thread):
- def __init__(self,threadname):
- threading.Thread.__init__(self,name=threadname)
- self.targetlist = []
- def _config_init(self,target=None,targetfile=None):
- if target != None:
- for port in VulnPortList:
- targeturl = VulnUrl%(target,str(port))
- self.targetlist.append(targeturl)
- if targetfile !=None:
- with open(targetfile,"r") as fr:
- for line in fr.readlines():
- target = line.split("\n")[0].split("\r")[0]
- self._config_init(target=target)
- def _check(self,target):
- try:
- logging.info("[+] checking %s"%str(target))
- response = requests.get(target,timeout=3)
- except Exception,ex:
- logging.info("[*] Safe! Reason:%s"%str(ex))
- return None
- if response.status_code == 200:
- if response.content.find("Log On"):
- logging.info("[+] Vuln! %s"%str(target))
- return target
- else:
- logging.info("[+] Safe! Reason:%s"%str(target))
- return None
- def run(self):
- global VulnList
- for target in self.targetlist:
- result = self._check(target)
- if result != None:
- VulnList.append(result)
- if __name__ == "__main__":
- logging.info("[+]*****************************************************************[+]")
- logging.info("IAMT Scan Init!")
- parser = OptionParser()
- parser.add_option("-i","--iptarget",dest="iptarget",help="Target IP address!")
- parser.add_option("-f","--iptargetfile",dest="iptargetfile",help="Target IPs file!")
- parser.add_option("-t","--threadnum",dest="threadnum",help="Number of Added Threads to Scan!")
- (options, args) = parser.parse_args()
- parameterchecklist = [options.iptarget,options.iptargetfile]
- if parameterchecklist in [[None,None],[None,""],["",None],["",""]]:
- logging.error("[-] Target parameters error!")
- exit(0)
- try:
- options.threadnum = 1 if options.threadnum == None or options.threadnum == "" else int(options.threadnum)
- options.threadnum = 100 if options.threadnum > 100 else options.threadnum
- except Exception,ex:
- logging.error("[-] Threadnum parameter error!")
- exit(0)
- logging.info("[+] Scan Config Init!")
- if options.iptargetfile != None:
- ret = os.popen("wc -l ./%s"%options.iptargetfile)
- size = str(ret.read()).split(" ")
- size = int(size[0])+1
- size = size/int(options.threadnum)
- os.popen("split -l %s %s -d -a 3 scanfile"%(str(size),str(options.iptargetfile)))
- scanfilelist = []
- for parents,dirs,filenames in os.walk("./"):
- for filename in filenames:
- if filename.find("scanfile") >= 0:
- scanfilelist.append(filename)
- threadlist = []
- for targetfile in scanfilelist:
- thread = VulnScanner(threadname=str(targetfile))
- thread._config_init(target=None,targetfile=targetfile)
- threadlist.append(thread)
- for thread in threadlist:
- thread.start()
- for thread in threadlist:
- thread.join()
- for filename in scanfilelist:
- os.remove(filename)
- print "************************************************************"
- for vulntarget in VulnList:
- print "[*]Unsafe!,targetIP:",str(vulntarget.split("http://")[-1].split("/")[0]),",targeturl:%s"%vulntarget
- print "************************************************************"
- else:
- thread = VulnScanner(threadname="scanner")
- thread._config_init(target=options.iptarget)
- thread.start()
- thread.join()
- print "************************************************************"
- for vulntarget in VulnList:
- print "[*]Unsafe!,targetIP:",str(vulntarget.split("http://")[-1].split("/")[0]),",targeturl:%s"%vulntarget
- 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
打开要检测的网站,点击Login登录,账号密码都为admin
把response里面的内容都清除
response="4208c148a7a8a9176bd8cb8d3a87464d"
点击burpsuite的Forward放行,成功以管理员进行登录
接下来新建账号,同理还是要清除response内的内容
这里设置密码需要注意密码复杂性要求,最少八个字符大小写特殊字符
新建账户成功后,刷新界面重新登录,此后操作就不需要在截包
以上就是复现过程。通过该漏洞,可以管理用户,远程开关机,使用创建的用户通过Manageability Commander Tool、vnc实现远程管理BIOS和操作系统。
Intel产品AMT本地及远程提权漏洞(CVE-2017-5689)复现 【转载自freebuf.com】的更多相关文章
- sudo 提权漏洞(CVE-2019-14287)复现 (10.16 第二十二天)
sudo是Linux系统命令,让普通账号以root身份去执行某些命令,比,安装软件.查看某些配置文件.关机.重启等操作,如果普通账号需要使用sudo需要修改配置文件/etc/sudoers,将sudo ...
- sudo 提权漏洞(CVE-2019-14287)复现
(该文参考网络他人资料,仅为学习,不许用于非法用途) 一.环境 1.sudo版本小于1.8.28的Linux系统 2.sudo 是Linux系统命令,让普通账号以root身份去执行某些命令,比如:安装 ...
- 基于RedHat发行的Apache Tomcat本地提权漏洞
描述 Tomcat最近总想搞一些大新闻,一个月都没到,Tomcat又爆出漏洞.2016年10月11日,网上爆出Tomcat本地提权漏洞,漏洞编号为CVE-2016-5425.此次受到影响的主要是基于R ...
- CVE-2016-1240 Tomcat 服务本地提权漏洞
catalogue . 漏洞背景 . 影响范围 . 漏洞原理 . 漏洞PoC . 修复方案 1. 漏洞背景 Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容 ...
- Linux Kernel ‘perf’ Utility 本地提权漏洞
漏洞名称: Linux Kernel ‘perf’ Utility 本地提权漏洞 CNNVD编号: CNNVD-201309-050 发布时间: 2013-09-09 更新时间: 2013-09-09 ...
- Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞
漏洞名称: Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞 CNNVD编号: CNNVD-201306-343 发布时间: 2013-06-20 更新时间 ...
- 新Windows本地提权漏洞学习(CVE-2019-0841)
1.这是一个啥漏洞? 睁眼一看,妈呀本地提权,快加入本地提权漏洞利用包里,速度加入.github连接我就不发了.担心被认为是传播黑客工具,咱们在这里单纯学习一下漏洞的原理和部分源代码. 2.文件读写权 ...
- Linux本地内核提权漏洞复现(CVE-2019-13272)
Linux本地内核提权漏洞复现(CVE-2019-13272) 一.漏洞描述 当调用PTRACE_TRACEME时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_c ...
- CVE-2019-13272:Linux本地内核提权漏洞复现
0x00 简介 2019年07月20日,Linux正式修复了一个本地内核提权漏洞.通过此漏洞,攻击者可将普通权限用户提升为Root权限. 0x01 漏洞概述 当调用PTRACE_TRACEME时,pt ...
随机推荐
- 打开Win7休眠模式和离开模式的方法
打开Win7休眠模式和离开模式的方法 ●启动休眠模式 从开始菜单中找到“附件→命令提示符”,手工输入如下命令:powercfg -a,从这里可以清楚的看到,计算机是支持休眠的,显示“尚未启用休眠&qu ...
- JS下拉图片Demo3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 自己写的jQuery 左右选择框,大家多多指教!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- 分享10个原生JavaScript技巧
首先在这里要非常感谢无私分享作品的网友们,这些代码片段主要由网友们平时分享的作品代码里面和经常去逛网站然后查看源文件收集到的.把平时网站上常用的一些实用功能代码片段通通收集起来,方便网友们学习使用,利 ...
- (五)Qt实现自定义模型基于QAbstractItemModel
一个小例子 QTableView + QStandardItemModel QStandardItemModel model; //设置大小 model.setColumnCount(); //列 m ...
- ZABBIX API简介及使用
API简介 Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时.很难想象管理数千台服务器而没有自动化是多么的困难.Zabbix API为批量操作.第三方软件集成以 ...
- CentOS Linux 下安装Samba
一.Samba简介: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.Linux中搭建环境有几个需要使用的软件包: (1)samba-client:这个 ...
- 【Java面试题】51 什么时候用assert。
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制. 在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保 ...
- 搜集的一些酷炫的金属色 ,RGB值 和大家分享一下
开发iOS程序过程中会使用到RGB,要注意每个RGB值都要除以 255.0 ,注意: ' .0 ' 不能省!! 一下是本人搜集的一些酷炫金属色的RGB值: 黄金 242,192,86 石墨 87, ...
- sql 一些题目
这道SQL笔试题你会怎么写(转) 最近面试了一些Senior BI的候选人,行业经验三年到七年不等,起初觉得这个Level的无需准备笔试题,碍于领导执念,就在真实项目中提取5道SQL题目,这里仅单说其 ...