位置: 编程技术 - 正文

SQL SERVER 2000通讯管道后复用劫持

编辑:rootadmin

推荐整理分享SQL SERVER 2000通讯管道后复用劫持,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

作者:FLASHSKYSITE:WWW.XFOCUS.NET邮件:flashsky@xfocus.org

SQL SERVER 通讯中,允许使用有名管道来进行通讯,一般情况下是如此命名的:默认实例:\.pipesqlquery命名实例:\.pipeMSSQL$instancenamesqlquery 也可以通过 UDP进行查询获得这个管道名称

但是由于SQL SERVER 对于这个管道的ACL设置为NULL,导致任何用户的权限都可以对这个管道进行劫持,以前的劫持都是利用先停掉服务,再建立这个名字管道,然后再启动服务来复用自己已经建立了名字的管道,但实际上SQL SERVER 会判断是否已有同名管道,然后会取别的名字,而且低级权限的用户也启动和停止不了服务(除非是利用一些漏洞),但是实际上对管道的测试却发现:如果ACL设置成NULL的话,即使是后命名的管道,也可以劫持先命令的管道,只需要简单复用管道,然后自己建立几个管道的连接不释放(具体建立几个估计和真正的管道建立时的实例个数有关,如在我的测试下,\.pipesqlquery只需要建立1个接可以劫持了,而\.pipelsass则需要4-5个之后才能劫持。不过\.pipelsass的ACL只能是管理员才能进行劫持)如果攻击者复用了同名管道以后,建立起几个不释放的管道(消耗掉了正常管道的实例),然后再有客户发起的管道连接就进入了攻击者程序的管道监听流程,剩下的就是大家都知道的利用模拟函数获得发起者权限的老生常谈了:下面就是一个简单的例子,实现对SQL SERVER 管道通讯的劫持环境:SQL SERVER +SP2 WIN SERVER中文版+SP3测试流程: 1。先建立SQL 服务器允许管道通讯,和集成WINDOWS 验证,添加一个具备高权限的允许SQL SERVER登陆的WINDOWS本机帐户,启动SQL SERVER服务 2。C盘下建立一个TEST.TXT文件,设置ACL为GUEST全部拒绝,其他人都许可 3。在另外一台机器B上,以添加的可以登陆SQL SERVER的服务器帐户登陆,然后设置客户端网络库只为管道(如果有多个,可能就会是随机选一个连接,而不肯定是管道进行通讯了) 4。然后用SQL SERVER企业管理器建立一个SQL SERVER的连接,使用集成WINDOWS验证 5。SQL SERVER这边的机器进入GUEST帐户运行下面C代码的程序,会显示先无法打开TEST.TXT文件,然后进行劫持,等待客户端管道连接 6。在机器B上,连接SQL SERVER,然后主机A的程序就会截获这个管道扮演高权限登陆用户,然后可以打开先没权限打开的文件。

当然这个攻击本身实际的意义可能不大,因为估计现在SQL SERVER用管道建立通讯的比较少,而且在都允许的情况下,一般会主动选择TCP方式进行连接,但同时说明了:一个缺乏很好ACL保护的管道,也可以用后发复用来进行劫持,这就减少了很多需要先停掉服务或预先预测的难题,在编写服务器端管道应用的时候也必须小心。

SQL SERVER 2000通讯管道后复用劫持

SQL SERVER 劫持代码

补充:所有管道都有这个漏洞,就是看ACL能否允许你复用,只要能复用就可以如//./pipe/lsass 我都可以劫持,但是他的ACL定义成只能administrator进行劫持目前测试了一下默认的一些管道基本ACL设置好好,不允许低级权限用户复制,但SQL的管道显示ACL设置的很差可能更多服务或者其他的第三方的服务中存在这样没有很好ACL保护的管道,那么就意味着后复用也可以劫持成功

下面是我开启了所有默认的WIN的服务,然后获取的系统管道测试的结果(没有开启终端服务,我机器没装,装了终端服务的可以测一下),另外也不能说没有意义,我前面看见一篇文章还专门推荐用集成验证加管道通讯获得更安全的SQL SERVER呢,嘿嘿Pipe name (Number of instances, Maximum instances)

InitShutdown (2, -1)<---------------可以在ADMIN下劫持netNtControlPipe5 (1, 1)llsrpc (2, -1) <---------------可以在ADMIN下劫持e8. (2, -1) <-----------可以在ADMIN下劫持netNtControlPipe8 (1, 1)netNtControlPipe9 (1, 1)ProfMapApi (2, -1)<--------------可以在ADMIN下劫持epmapper (2, -1)<----------------可以在ADMIN下劫持WMIEP_ (2, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持WMIEP_ (2, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持netNtControlPipe (1, 1)WMIEP_3c8 (2, -1)<---------------可以在ADMIN下劫持netNtControlPipe (1, 1)netNtControlPipe (1, 1)nddeapi (2, -1)<-----------------可以在ADMIN下劫持<------GUEST用户可劫持NetDDE (1, 1) 返回所有管道实例都忙的错误信息,不知道是否ACL设置许可复用netNtControlPipe (1, 1)Winsock2CatalogChangeListener-e8-0 (1, 1)<-----------------可以在ADMIN下劫持netNtControlPipe (1, 1)Winsock2CatalogChangeListener--0 (1, 1)<-----------------可以在ADMIN下劫持WMIEP_ (2, -1)<-----------------可以在ADMIN下劫持Winsock2CatalogChangeListener--0 (1, 1)<-----------------可以在ADMIN下劫持netNtControlPipe (1, 1)WMIEP_6f0 (2, -1)<-----------------可以在ADMIN下劫持sqlconsole (1, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持SQLQUERY (1, -1)<-----------------可以在ADMIN下劫持<------GUEST用户可劫持netNtControlPipe (1, 1)tsx_listener (1, 1) 返回所有管道实例都忙的错误信息,不知道是否ACL设置许可复用winreg (2, -1)<-----------------可以在ADMIN下劫持Winsock2CatalogChangeListener-6f0-0 (1, 1)<-----------------可以在ADMIN下劫持

其中在GUEST权限下可劫持的有WMIEP_ (2, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持WMIEP_ (2, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持nddeapi (2, -1)<-----------------可以在ADMIN下劫持<------GUEST用户可劫持sqlconsole (1, -1)<---------------可以在ADMIN下劫持<------GUEST用户可劫持SQLQUERY (1, -1)<-----------------可以在ADMIN下劫持<------GUEST用户可劫持SQL 的就不说了,不过sqlconsole这个管道用于什么方面还不清楚,如果有默认的一些用途的话,估计也是一个点。nddeapi的基本存在nddeapi的应用的话就可以发生WMI的就难点,看这样子是随着发展每个连接都会新建起来的,那样后复用作用就不大,只能采用预测名字的方法提前复用来攻击,但是奇怪的是其权限是不同的,有些WMI的不能GUEST复用,有些又可以,有时间了具体测试一下WMI客户与服务器之间连接产生的管道通讯的情况,或许也是走一个默认的管道名,说不定就可以攻击了呢,:)

sql 判断函数、存储过程是否存在的代码整理 下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助。--库是否存在ifexists(select

ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容) 直接上代码:CREATEFUNCTIONUNIX_TIMESTAMP(@ctimestampdatetime)RETURNSintegerASBEGIN/*Functionbody*/declare@returnintegerSELECT@return=DATEDIFF(SECOND,{d'--'},@ctimestamp)return@returnENDC

针对Sqlserver大数据量插入速度慢或丢失数据的解决方法 我的设备上每秒将条数据插入数据库,2个设备总共条,当在程序里面直接用insert语句插入时,两个设备同时插入大概总共能插入约条左右,数

标签: SQL SERVER 2000通讯管道后复用劫持

本文链接地址:https://www.jiuchutong.com/biancheng/321210.html 转载请保留说明!

上一篇:SQL Server 2000安全配置详解(sql server 2008的安全机制)

下一篇:sql 判断函数、存储过程是否存在的代码整理(sql函数判断一个值是否是数字)

  • 经济补偿影响下份工作吗
  • 未按规定缴纳保险
  • 什么是涉税信息
  • 专利奖励金额
  • 发票分开开票
  • 企业所得税营业税金及附加包括
  • 账簿登记的重要内容
  • 消费税征收项目
  • 库存现金余额过大的定性
  • 税收返还怎么做会计分录
  • 押金 保证金
  • 销售原材料收到商业承兑汇票会计分录
  • 预收账款缴纳企税怎么算
  • 小规模 开增值税
  • 一般纳税人怎么交税
  • 以前年度留抵用完 不能抵欠税
  • 补贴收入需要缴纳增值税吗为什么
  • 保理利息开具增值税专用发票
  • 计提所得税费用会计分录
  • 销售不动产增值税税率变化
  • 政府补助企业的钱要交税吗
  • 免征的税额当月计入营业外收入吗
  • 服务费减免税会计处理
  • 技术合同的计税依据包括研究开发经费
  • 小规模纳税人增值税税收优惠政策
  • 收据大写后面的数字
  • 餐饮业会计做账技巧
  • 红蘑菇是什么松树伞吗
  • 经营租入固定资产改建支出摊销计算时间
  • 建筑单位没有资质可以承包项目吗
  • PHP:oci_bind_array_by_name()的用法_Oracle函数
  • phpipam使用
  • 礼的部首是什么部
  • 商场代收款发票图片
  • 食堂维修费用计什么科目
  • 退休返聘人员算临时工吗
  • 财务报表季报应付职工薪酬为负数
  • 支付施工单位进度款的请示
  • 关于录制初三毕业班家长寄语通知
  • 公司注销员工的经济补偿哪些情况才能是2N呢
  • 个体户怎么交医保社保
  • 公司聘用临时工需要买社保吗
  • 进项大于销项的会计分录怎么做?
  • 水电费没有收到怎么处理
  • 长期应付款的会计编号
  • 其他货币资金怎么结转
  • 股东往来款算投资款吗
  • 小规模企业收到普通发票如何做账
  • 企业不如实申报个税的风险
  • 银行手续费发票未到怎样做账
  • 年金现值的公式是怎么推导出来的
  • 公户转私户的钱怎么退回来
  • 电信增值服务费会计科目
  • 弃置费用摊销为什么在贷方增加
  • 暂估的应付账款需要调整报表吗
  • 银行总账和明细账
  • 从公账提取备用金到个人账户怎么做会计分录
  • 预计负债的会计和税务处理
  • 用sql语句实现分页效果
  • Windows 2008 R2的C盘空间不够的解决方法
  • Windows 2008之AD LDS轻型目录服务解析
  • mac如何取消自动开机
  • 设计制作个性化文集答案
  • excel表格用windows7打不开
  • win8系统优化
  • linux命令的参数
  • linux字符串命令
  • mysql如何添加外键
  • cocos3.0
  • cocos2dx4.0入门
  • 启用opengl的文档窗口
  • react和nodejs
  • 单向链表的基本操作
  • 蓝色的css代码
  • 编写高性能代码时以下哪种技术可用于减少内存访问延迟
  • jquery加载图片
  • javascript产生随机整数随机性强
  • android 引用第三方库
  • 农业部利剑行动
  • 副局长是由局长任命的吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设