Re: [问题] 输入太多字元会造成程式hang掉。

楼主: LPH66 (-6.2598534e+18f)   2016-03-21 23:44:40
※ 引述《ResolaQQ (ResolaQQ)》之铭言:
: : 推 LPH66: 楼上讲的攻击的小范例 https://youtu.be/1S0aBV-Waeo 03/21 18:43
: 不好意思,英听不太行也没啥用过 Linux,想请问一下该影片最后做的事,是否是
: 1. 先用 root 帐号把他先前写的那个有 buffer overflow 的程式改成具有 root 权限
: 2. 开个没有 root 权限的帐号并使用
: 3. 执行有问题的程式,将修改权限的动作偷偷放进参数列里
: 由于该程式具有 root 权限,所以也有修改权限的能力
: 就能把目前没有 root 权限的帐号修改成有 root 权限,之后就可以随心所欲
: 这样对吗?还是有误解?
他做的示范是这个样子的:
* 那只被攻击的程式是具有 suid 这个特殊权限的程式
这个特性表示他在执行时会暂时把目前的有效使用者 (euid) 设定为该程式的 owner
(euid 表示目前执行这只程式的使用者是谁;
一些修改系统设定档中该使用者的资料的程式
如 passwd 就会设定 suid 权限以修改只有 root 能动的系统档案
当然这种系统程式的 owner 一定是 root, 才不会被其他的使用者乱搞
suid 权限在一些类似状况下也是有用的, 不一定要是 root
只是这里这只被攻击的小程式的 owner 正好是 root 这样)
* 他用 perl 填进去的二进制字串是被称做 shellcode 的"文字"
如他所言, 这些文字一旦被当成机械码执行就会生出一个 shell 出来
* 现在该程式执行了, euid 设定成了 root
当被填入 shellcode 之后由于 buffer overflow
shellcode 被当成程式执行生出 shell
由于现在的 euid 是 root 所以这个 shell 就是 root 的了
* 所以你所谓的“修改权限”其实是 suid 的动作, 不是 shellcode 的作用
shellcode 只是负责让这只被攻击的程式生出一个 shell 来而已
只是因为 suid 的关系这个 shell 就变成 root 的这样
====
这则影片所展示的范例跟 shellcode 程式应该都是出自
Hacking: The Art of Exploitation 这本书
https://en.wikipedia.org/wiki/Hacking:_The_Art_of_Exploitation
(手边正好有一本 XD)
影片内容是第二章中间的几个小节
这一章的后半段还会讲解这个 shellcode 是怎么写出来的
作者: ResolaQQ (ResolaQQ)   2016-03-22 00:00:00
完全懂了,感谢,这是第一次看到除了SQL漏洞的hack实例所以想搞清楚到底在干嘛,影片说太快又带专有名词就...
作者: tuyutd0505 (Huang Jason)   2016-03-22 00:19:00
学习了XD 谢谢前辈解释
作者: ronin728 (浪人)   2016-03-22 03:03:00
作者: james732 (好人超)   2016-03-22 12:11:00
推说明

Links booklink

Contact Us: admin [ a t ] ucptt.com