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の複合インデックス方式の詳細な説明

推薦する

レンダリング関数と JSX の詳細

目次1. 基本2. ノード、ツリー、仮想DOM 1. 仮想DOM 3. createElementパ...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

シンプルなカルーセル効果を実現するJavaScript

カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...

Angular環境構築と簡単な体験のまとめ

Angular入門Angular は、Google が開発したオープンソースの Web フロントエン...

DockerにRabbitMQを素早くインストールする方法

1. 画像を取得する #Webコントロールページを含むバージョンを指定します docker pull...

MySQL 接続で認証失敗エラーが発生する場合の分析と解決方法

[問題の説明]アプリケーション側では、次のエラーが時々表示されます。メソッド 'mysql_...

WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)

目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...

nginx と keepalived を組み合わせて高可用性を実現するための手順を完了する

序文システムの高可用性を満たすためには、通常、クラスターを構築する必要があります。ホストがクラッシュ...

MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明

はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

複数の Docker コンテナが同じポート番号を持たない場合の解決策

背景Dockerでは、同じイメージを使用して4つのコンテナを作成します。ネットワークはブリッジモード...

Vueプロジェクトでコンポーネントをカプセル化する簡単な手順

目次序文Toastコンポーネントをカプセル化する方法ユースケース具体的な実装要約する序文ビジネスが発...

体験をデザインする: ボタンには何があるか

<br />最近、UCDChina は「インターフェース上のテキストに注意を払う」という...

Dockerを使用してNextCloudネットワークディスクを展開する方法

NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...