我一直在尝试做一些缓冲区溢出攻击,我想我可以用system("/bin/bash")
它来获得一个 root shell。
然后我阅读了system()
.
它说:
system()
实际上,在/bin/sh
bash 版本 2 的系统上,具有 set-user-ID 或 set-group-ID 权限的程序将无法正常工作,因为 bash 2 在启动时会删除权限。
我正在攻击的系统有一个 bash 版本 4.3,当我使用 a 时system("/bin/bash")
,我没有获得 root 权限(当然,我攻击的初始程序以 root 权限开始)。我的问题是:系统会只删除 bash 版本 2 的权限,还是会删除版本 > 2 的任何 bash 的权限?
编辑:/bin/bash
只是放弃特权,而/bin/dash
或/bin/sh
不。
在阅读@StéphaneChazelas 的评论后,EDIT2:
-p
选项可用于确保在 bash 生成时保留特权。我有一个 588Ko 文件,我想提取从 0x7E8D6 到 0x8AD5D 的字节。我试过 :
dd if=file of=result bs=50311 count=1 skip=518358
dd 告诉我它无法跳到指定的偏移量。我能做些什么?还有其他实用程序可以做到这一点吗?