(Pwn)CTFツールROPgadgetのインストールと使用の概要

1.はじめに

ここに画像の説明を挿入します

このツールを使用すると、バイナリファイルでガジェットを検索して、ROPの使用を容易にすることができます。


NX保護の開始に伴い、スタックまたはヒープに直接コードを直接注入する以前の方法は、その効果を発揮し続けることが困難です。攻撃者は、保護をバイパスするための対応する方法も提案しています。現在、主な方法はROP(Return Oriented Programming)です。主なアイデアは、スタックバッファオーバーフローに基づいてプログラム内の既存のガジェットを使用することです。一部のレジスタの値を変更します。またはプログラムの実行フローを制御する変数。いわゆるガジェットは、retで終わる命令シーケンスです。これらの命令シーケンスを使用して、特定のアドレスの内容を変更し、プログラムの実行フローの制御を容易にすることができます。

x86はスタックに依存してパラメーターを渡し、x64はその順序をrdi、rsi、rdx、rcx、r8、r9に変更します(ここでは6つのレジスターはガジェットとして理解できます)6つを超えるパラメーターがある場合は、まず、スタックのこの機能を知る必要があります。

いくつかの質問ですが、既製のシステムも/ bin / sh文字列もありません。また、libc.soも提供されていないため、libcアドレスをリークして、システム関数を取得する方法を見つける必要があります。および/ bin / sh文字列。

rdi、rsi、rdx、rcx、r8、r9のアドレスを取得する必要があります。最初に取得するのはrdiのアドレスです。

これがROPgadgetの役割です。

2.ROPgadgetツールのインストール

# 先安装Capstone,它是一个轻量级的多平台架构支持的反汇编架构。
sudo apt-get install python-capstone
 
# 下载好ROPgadget解压,并进入文件夹中
python setup.py install

3.ツールの使用

コマンド: ROPgadget --binary 文件名 --only "pop|ret" | grep rdi

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_45556441/article/details/114631043