零、绪论:

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】的更多相关文章

  1. sudo 提权漏洞(CVE-2019-14287)复现 (10.16 第二十二天)

    sudo是Linux系统命令,让普通账号以root身份去执行某些命令,比,安装软件.查看某些配置文件.关机.重启等操作,如果普通账号需要使用sudo需要修改配置文件/etc/sudoers,将sudo ...

  2. sudo 提权漏洞(CVE-2019-14287)复现

    (该文参考网络他人资料,仅为学习,不许用于非法用途) 一.环境 1.sudo版本小于1.8.28的Linux系统 2.sudo 是Linux系统命令,让普通账号以root身份去执行某些命令,比如:安装 ...

  3. 基于RedHat发行的Apache Tomcat本地提权漏洞

    描述 Tomcat最近总想搞一些大新闻,一个月都没到,Tomcat又爆出漏洞.2016年10月11日,网上爆出Tomcat本地提权漏洞,漏洞编号为CVE-2016-5425.此次受到影响的主要是基于R ...

  4. CVE-2016-1240 Tomcat 服务本地提权漏洞

    catalogue . 漏洞背景 . 影响范围 . 漏洞原理 . 漏洞PoC . 修复方案 1. 漏洞背景 Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容 ...

  5. Linux Kernel ‘perf’ Utility 本地提权漏洞

    漏洞名称: Linux Kernel ‘perf’ Utility 本地提权漏洞 CNNVD编号: CNNVD-201309-050 发布时间: 2013-09-09 更新时间: 2013-09-09 ...

  6. Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞

    漏洞名称: Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞 CNNVD编号: CNNVD-201306-343 发布时间: 2013-06-20 更新时间 ...

  7. 新Windows本地提权漏洞学习(CVE-2019-0841)

    1.这是一个啥漏洞? 睁眼一看,妈呀本地提权,快加入本地提权漏洞利用包里,速度加入.github连接我就不发了.担心被认为是传播黑客工具,咱们在这里单纯学习一下漏洞的原理和部分源代码. 2.文件读写权 ...

  8. Linux本地内核提权漏洞复现(CVE-2019-13272)

    Linux本地内核提权漏洞复现(CVE-2019-13272) 一.漏洞描述 当调用PTRACE_TRACEME时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_c ...

  9. CVE-2019-13272:Linux本地内核提权漏洞复现

    0x00 简介 2019年07月20日,Linux正式修复了一个本地内核提权漏洞.通过此漏洞,攻击者可将普通权限用户提升为Root权限. 0x01 漏洞概述 当调用PTRACE_TRACEME时,pt ...

随机推荐

  1. DataGridView使用技巧十三:点击列头实现升序和降序排序

    DataGridView 列有三种排序模式.每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一. Da ...

  2. Rails NameError uninitialized constant class solution

    rails nameerror uninitialized constant class will occur if your rails console is not loaded with con ...

  3. JS-easyui 扩展easyui.datagrid,添加数据loading遮罩效果代码

    (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: function(jq){ return jq.each(functio ...

  4. 12款优秀jQuery Ajax分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...

  5. Windows上建立、取消共享文件夹

    建立共享文件夹 1.创建一个文件夹test 2.右键属性,点击共享 4.在另外一台机器上访问该共享文件 取消共享文件夹 右键属性,点击高级共享

  6. Nginx配置PATHINFO隐藏index.php

    1.网络来源:http://www.shouce.ren/post/view/id/1529 server {      listen       80;     default_type text/ ...

  7. (转)fiddler模拟post请求

    转自:https://www.cnblogs.com/xiaoxi-3-/p/7612254.html 前言: Fiddler是一个简单的http协议调试代理工具,它界面友好,易于操作,是模拟http ...

  8. DWORD类型

    INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位.看看最原始的定义就知道了. ...

  9. plsql developer中,清除登录历史

    需求描述: 在使用plsql developer的时候,发现登录的时候,有太多的历史,想要把这些登录历史清除掉, 在此记录下. 操作过程: 1.登录plsql developer(或者在登录时取消也会 ...

  10. ASP工程文件(csproj)解读

    https://blog.csdn.net/austin_link/article/details/40596185 C#项目中都会有一个不起眼的文件,后缀名csproj,很多人都会忽视它.其实,这个 ...