五千年(敝帚自珍)

主题:如何用绿坝养肉鸡(一) -- 代码ABC

共:💬168 🌺312 🌵1
全看树展主题 · 分页首页 上页
/ 12
下页 末页
家园 呵呵,技术问题啊?

原来你根本没有读完我的原帖阿,看到第一句就跳了起来。大概我原帖后里说的技术问题你根本就没听说过,所以也就自动无视了,可以理解。

我就拿版面说事怎么了?我就是看不惯技术帖里面掺杂政治的东西。讨论技术就要有技术的文风,你去看中文的外文的,哪个计算机科学的学术论文里面会有刻薄的文风的?你这哪算是非技术对非技术阿,我明明是在说技术文章应该怎么写才比较好,你倒好了,上来就是写什么“反动腐败”之类的政治术语。看来这年头政治不敢乱挨,看来俺不该写什么“科技白领取笑政府”,搞得某方人士不爽了,俺就要被骂了:( ....

咱们到此为止吧,我本来还想看看这里有没有人对语义层次的图像识别有什么研究的,还是算了吧。。。

家园 我要全明白,还来说这些干嘛

原理是大家都清楚的。真叫写个东西出来

是不容易的。 太守水平高,您就亲自写个

能对这个漏洞进行攻击的程序出来。

我也能多学习学习。 我确实是写不出来。

家园 咳咳。。。猪哥搞错了好多地方。。

第一,内存分配是链接时生成的,基本上一样(如果赶上版本不一样,算偶们倒霉,只好另外来一个)

第二,你说的那些寄存器基本上都不用去看,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字)

......以后.....下次.....我.....再也不和你好了。

家园 必须用的那个动态库其实是固定位置的
家园 就是后面说的那个定位,用调试的方法找到起点,再加长度
家园 如果DLL的地址是固定死的

那这个可就是微软的大漏洞哟。

他自己把他自己制动的 动态编连的规则给破坏了

难道是因为要兼容 DOS 16位程序???

家园 这不能算漏洞

毕竟DLL的目的之一是用来节省内存,所谓动态的意思就是在需要时才加载,不需要的时候就可以卸除。并不需要每次加载的位置都不一样。而且为了链接方便,减少重定向的麻烦,每个DLL都有一个基地址,在加载时系统会按照这个基地址的设置将DLL加载到指定的位置上,也就是说如果没有地址冲突或内存不够的情况下,DLL的加载地址都是不变的。需要注意的一件事,既在NT内核中每个应用程序(进程)都会得到一个4G的虚拟地址空间(32位),而且exe的基地址默认都是0x00040000。也就是估算exe内部程序的地址空间是很简单的。

事实上,在做缓冲区溢出攻击的时候更多的是执行系统调用,比如添加帐号、修改帐号权限之类的事情,这时候我只需要知道系统API的入口即可。而在Windows系统中(其实其他系统都差不多),这些调用的入口是不变的。就Windows而言都在程序4G空间的上半部。这样的设计也不能算是漏洞,不然调用这些API的代码就需要系统做重定向,损失的就是运行效率了。

家园 您送过去的东西

人家能否执行彻底?

家园 没明白您的意思

如果指木马的话,那么和LB无关。如果指的是DNS欺骗之后送过去的更新包,那应该是没什么问题的。不过,我确实没花时间深入去研究这个东西,只是提出一些设想,这里指出的漏洞基本上都是属于可以很快修复的那些,估计现在他们应该都修复了。

家园

若兰是说,LB对下载的东西应该会做合法性检查吧?

只是问问,代码兄别见笑。

家园 不敢笑啊

你呆的那个地方藏龙卧虎,随便拉一个出来就够我一壶的。

理论上是要有验证的,不过比较可靠的验证是用证书签名。其他的包自带验证是不可靠的,因为验证的代码在客户这边,花点时间分析一下可以破解。然而粗略观察了更新目录下的几个文件以及更新过程的网络通信,没发现有验证的过程和相应的数据。

家园 说的话,很简单的东西,自己试验一下就可

严重同意

要想知道一件事情,还是自己做一下保险吧

另外诸葛河友问的问题,祭出摆渡,放狗一搜,很多很多啊。自己琢磨下也就知道了。

全看树展主题 · 分页首页 上页
/ 12
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河