主题:如何用绿坝养肉鸡(一) -- 代码ABC
原来你根本没有读完我的原帖阿,看到第一句就跳了起来。大概我原帖后里说的技术问题你根本就没听说过,所以也就自动无视了,可以理解。
我就拿版面说事怎么了?我就是看不惯技术帖里面掺杂政治的东西。讨论技术就要有技术的文风,你去看中文的外文的,哪个计算机科学的学术论文里面会有刻薄的文风的?你这哪算是非技术对非技术阿,我明明是在说技术文章应该怎么写才比较好,你倒好了,上来就是写什么“反动腐败”之类的政治术语。看来这年头政治不敢乱挨,看来俺不该写什么“科技白领取笑政府”,搞得某方人士不爽了,俺就要被骂了:( ....
咱们到此为止吧,我本来还想看看这里有没有人对语义层次的图像识别有什么研究的,还是算了吧。。。
原理是大家都清楚的。真叫写个东西出来
是不容易的。 太守水平高,您就亲自写个
能对这个漏洞进行攻击的程序出来。
我也能多学习学习。 我确实是写不出来。
第一,内存分配是链接时生成的,基本上一样(如果赶上版本不一样,算偶们倒霉,只好另外来一个)
第二,你说的那些寄存器基本上都不用去看,C函数运行大体上靠ESP,因为shellcode大部分是用溢出位置为基准使用相对址运行,为了减少硬编码,多数只用硬编码的LoadLibraryA(或W)的地址去调用其他api,由于windows用户大多在administrator下运行,不需要提升权限,所以开个用户建个后门,犯不上去访问ring0的东西,在ring3就足够了,倒是做rootkit有时候需要升ring0,不过rootkit很少直接放在溢出的部分,它们往往太大了,还是开了后门之后再送过来比较好。
至于那段unix和windows的对比是不恰当的,unix的系统调用和ring0,ring3不是一范畴的问题,基本没法解释,其实windows的内核的好多东西也可以直接调,同样和ring0,ring3没关系,只要你引了库就行了,ring0/3的作用位置还在*nix的syscall或windows的routine之下,在内核运行的东西大部分都不涉及指令集的保护。要看例子的话可以去安焦找个看,很多的,偶举例子的话也就素那个样子,还米人家写滴干净
实际上利用溢出时第一个麻烦不是那些东西,反倒是找到溢出位置的地址,要么用调试器,比如设个内存监视然后用一串奇奇怪怪的东西去填充缓冲区,断住之后按调用栈往回找位置,要么死看逆向后的汇编,呃,这个需要好运气。。反正得自己想办法
第一,内存分配是链接时生成的,基本上一样
你指的是内部偏移吧。 不然的话怎么解释什么
叫动态连接库呢。DLL呀。 都编译的时候确定了
不就是静态连接了吗。
第二,你也别说这么多了。 就说,你覆盖了原
EIP以后。假设你只是刚好覆盖掉EIP,没有
进一步改写后面的函数参数。还没有引发内
存保护错误出来。这个时候你只有一次机
会,就是把原函数返回地址,指向你自己的
代码的开始地址。
我的问题是,你怎么能知道你自己代码的开始地
址的??
要的就是在需要的时候(比如哪个公恶猿又推坐了)把大量的公民的计算机变成ZF的肉鸡呢?
人家是身价4000万的大小姐,你怎么可以随便动手动脚涅?
又是肉,又是鸡,那么色色的东西,人家最讨厌了,~~~~你给我停下,~~~~~不要再摸了!
口口口口口口口口口口口口口口口口口口口口口口口口口口口口口
(此处删去xxxxx字)
......以后.....下次.....我.....再也不和你好了。
那这个可就是微软的大漏洞哟。
他自己把他自己制动的 动态编连的规则给破坏了
难道是因为要兼容 DOS 16位程序???
毕竟DLL的目的之一是用来节省内存,所谓动态的意思就是在需要时才加载,不需要的时候就可以卸除。并不需要每次加载的位置都不一样。而且为了链接方便,减少重定向的麻烦,每个DLL都有一个基地址,在加载时系统会按照这个基地址的设置将DLL加载到指定的位置上,也就是说如果没有地址冲突或内存不够的情况下,DLL的加载地址都是不变的。需要注意的一件事,既在NT内核中每个应用程序(进程)都会得到一个4G的虚拟地址空间(32位),而且exe的基地址默认都是0x00040000。也就是估算exe内部程序的地址空间是很简单的。
事实上,在做缓冲区溢出攻击的时候更多的是执行系统调用,比如添加帐号、修改帐号权限之类的事情,这时候我只需要知道系统API的入口即可。而在Windows系统中(其实其他系统都差不多),这些调用的入口是不变的。就Windows而言都在程序4G空间的上半部。这样的设计也不能算是漏洞,不然调用这些API的代码就需要系统做重定向,损失的就是运行效率了。
人家能否执行彻底?
如果指木马的话,那么和LB无关。如果指的是DNS欺骗之后送过去的更新包,那应该是没什么问题的。不过,我确实没花时间深入去研究这个东西,只是提出一些设想,这里指出的漏洞基本上都是属于可以很快修复的那些,估计现在他们应该都修复了。
若兰是说,LB对下载的东西应该会做合法性检查吧?
只是问问,代码兄别见笑。
你呆的那个地方藏龙卧虎,随便拉一个出来就够我一壶的。
理论上是要有验证的,不过比较可靠的验证是用证书签名。其他的包自带验证是不可靠的,因为验证的代码在客户这边,花点时间分析一下可以破解。然而粗略观察了更新目录下的几个文件以及更新过程的网络通信,没发现有验证的过程和相应的数据。
严重同意
另外诸葛河友问的问题,祭出摆渡,放狗一搜,很多很多啊。自己琢磨下也就知道了。