加载中…
正文 字体大小:

你能控制什么?漏洞利用高级技巧

(2018-01-10 10:14:47)

再次翻出来很早写的文章:


《你能控制什么?漏洞利用高级技巧》

       一直想写的东西,就是懒一直没写,简单写一些信息。

 

       其实就是利用可以控制的东西,怎么一步步扩大控制去控制整个程序达到你的目的。 文本病毒(病毒新理论)! http://hi.baidu.com/yuange1975/blog/item/9feaa273f0348c148701b095.html   里面其实就是说的这个,不要简单的把此文章理解成在玩文字游戏。可以把想达到的目的看成一个个权限小岛,有些权限是等价的,我们就可以把这样的小岛用桥连接起来,这样其实就变成我们怎么利用一些条件通过一个个小岛怎么到达我们想去的小岛的游戏。比如我们要提权,经常我们不是利用提权的漏洞,我们知道cpu0级的运行权限这个小岛就和最高权限这个小岛是连通的,我们只要到达这个小岛就可以得到最高权限了。我们的漏洞利用技巧就是在对系统的了解、对漏洞的理解基础上尽量多建立这样的小岛,以及小岛与小岛之间的桥梁。

       其实利用这种思想也很容易找到一些权限类的漏洞。 ms的rpc曾经有个漏洞就是一个rpc进程里面可以跑很多线程代码,有些rpc线程是低权限,但有些rpc是高权限的客户调用,低权限的代码只要hook那些高全权限客户调用的rpc,然后调用一个模拟客户的调用就得到高权限,实现提权了。系统目录、程序目录等都对应着系统权限,原来winnt、win2000对程序目录没有设置好权限,包含一直到后来很多程序安装对程序目录的权限设置都有问题。

 

       有人把攻击分为非代码执行类和代码执行类,我们习惯于代码执行类攻击,因为我们知道代码执行这个岛屿和我们需要的岛屿基本上都是连通的。非代码执行类比较零星,改变一些身份标识、认证标识、shell\dll路径等。代码执行类现在也出现很多对抗措施、dep+aslr、anti rop、emet攻击等,还有一些cfi、sfi等。CFI(Control-Flow Integrity,控制流完整性保护),CFI可以看成一个盒子保护程序流,但这盒子是属于一些比较弱的保护,他们都运行在一个进程内存里面,内存控制小岛和程序流小岛是连通的,程序流被控制,但只要利用漏洞到达了控制内存这块小岛,也就突破了这块盒子,然后程序流就完全可以被任意控制,甚至把这种保护剔除掉。其实个人认为CFI也就是和虚拟机一样的一个盒子,解决虚拟机和真实机的一个简单隔离的算法,NaCl利用这个算法可以在web里面跑c代码,恐怕也算不上安全解决缓冲溢出等的好方案。

       

       1、一个wins漏洞只能溢出几个字节不能覆盖eip、ebp、内部指针等,微软号称只能崩溃。利用这一个字节的溢出覆盖一个变量,利用这个变量导致再次溢出成功利用。

       2、ms08-068,漏洞泄露用户名和加密的密码hash,通常是破解。但是通过数学演算,我们知道这个用户名和加密的密码hash可以构造环境后使用,成功利用中间人认证成功,然后自动psexec上传木马运行。

      3、ms08-067,漏洞稳定利用需要两个0x005c数据,一个可传递的字符串长度len,另一个可以利用大内存申请,使用新页面的特性,精确定位内存指针的低两个字节得到0x005c。

      4、wins指针传递漏洞,可以精确得到指针,可以控制指针里面的数据得到需要的opcode,精确实现跳转,不依赖系统版本等。还有利用hook技术让wins自己关闭套接字,而shellcode截获套接字,避免wins和shellcode都读数据的处理,成功使用数据通道对抗防火墙等。

     5、aspcode,堆溢出利用。溢出后构造自己的内存链表,每次内存分配,分配和合并两组4次内存写操作。内存写写出几个字节的小shellcode,覆盖通用peb指针跳转到小shellcode得到执行。

    6、phpcmd,php可以执行指定文件。控制日志文件生成需要的phpshell,然后加载。

 

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有