one_gadget不能搜索libc2.31及以上版本解决

更新ruby

首先卸载已有的ruby、onegadget:

sudo gem uninstall one_gadget
sudo apt remove gem ruby

下载ruby-install安装,由他来安装或升级ruby

wget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gz
tar -xzvf ruby-install-0.8.1.tar.gz
cd ruby-install-0.8.1/
sudo make install

安装指定版本ruby:

ruby-install ruby 3.0

编译时间有点长。
把路径加到path中:

export PATH="/home/lushan/.rubies/ruby-3.0/bin:$PATH"

此操作自会在当前shell起作用,关掉就不行了,所以要在/etc/profile末尾添加以上path,然后source 检查是否起作用,当前操作目前也只对该shell起作用,需要logout后重新登陆用户后方可生效。给出以下linux配置文件生效时机:

/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
~/.profile :  在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

参考链接

检查ruby版本:

##ruby --version
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]

更新onegadget

按照github上说的,一条命令:gem install one_gadget

安装成之后,发现还是之前的版本,说明这次安装路径和上次不一样,系统首先找之前的路径,将之前的删掉:one_gadget -V 会输出onegadget在哪,之后再one_gadget -v就是新装的版本了:

➜ /usr/local/bin$ one_gadget -v
OneGadget Version 1.7.4

可以使用libc2.31以上的onegadget了:

➜ /usr/local/bin$ one_gadget /glibc/2.31/64/lib/libc-2.31.so 
0xe6aee execve("/bin/sh", r15, r12)
constraints:
  [r15] == NULL || r15 == NULL
  [r12] == NULL || r12 == NULL

0xe6af1 execve("/bin/sh", r15, rdx)
constraints:
  [r15] == NULL || r15 == NULL
  [rdx] == NULL || rdx == NULL

0xe6af4 execve("/bin/sh", rsi, rdx)
constraints:
  [rsi] == NULL || rsi == NULL
  [rdx] == NULL || rdx == NULL

:一般one_gadget不能用是版本太低了,one_gadget版本跟新比较快,直接sudo gem install gem即可,发现glibc最新版都能使用了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值