1年前に見たクイズに質問がありました。この問題を解決しようとしていました。他のすべてはプログラミングに関連していますが、これはUnixファイルの権限に関連しています。以下はシナリオです。
SSHサーバーのログイン名とパスワードが提供されます。ssh your-username@server-addr
あなたの使命は、名前付きファイルを探して/home/abc/chekme
コンテンツを検索することです。
SSHリモートサーバーにログインすると、そのls -l
ログインに権限がないことを示す0つのファイルが表示されますが、ls -l
上記のファイルを実行すると、rootユーザー、グループ、および名前に読み取り権限が付与されていることがわかります。グループのメンバーはですchekme
。
権限がなく、グループのメンバーではないため、ファイルを読み取ることができません。ファイルの閲覧中に/etc/group
名前付きグループがあり、chekme
そのグループに1人のユーザーだけが追加されたことがわかりました。ユーザー名はguest
ここで私のGUIDをグループのGUIDに変更し、グループに自分自身を追加し、ユーザーsu
として実行しようとしguest
ましたが、最初の2つはroot
アクセスが必要で、su
ゲストはユーザーパスワードを実行するため、これらのいずれも機能しませんでした.
今どうすればいいですか?
ログイン資格情報の実際の問題:
ファイル:/home/hacker-weekly/そろばん
したがって、「/home/hacker-weekly/abacus」ファイルを読み、そこにファイルの内容をコミットする必要があります。
まだログイン資格情報を取得していない場合は、以下の「ログイン資格情報を取得」ボタンをクリックして取得してください。その後、次のコマンドを実行してマシンにログインできます。
ssh "ユーザー名"@"サーバーアドレス"
ヒント:UNIXベースのシステムのファイル権限について慎重に考えてください。
ログイン資格情報サーバー: ec2-175-41-164-254.ap-southeast-1.compute.amazonaws.com ユーザー名: ashwinscongo パスワード: ab12d6H
グループ名はabacusで、このグループのユーザーはguestです。 /etc/passwrdを試しましたが、何も見つけられませんでした。
ベストアンサー1
方法:
$ ls -l /home/hacker-weekly/abacus
-r--r----- 1 root abacus 373 Nov 12 2012 /home/hacker-weekly/abacus
$ id
uid=1554(gilles) gid=1555(gilles) groups=1555(gilles)
abacus
したがって、root権限を取得するか、グループ権限を取得する必要があります。しかし、どのように?
ヒント(ステップ1):権限を高める方法は?
完全なソリューション(ステップ1):
存在してはいけないsetuidまたはsetgid実行可能ファイルを見つける:
find / -xdev -perm /4000 -ls 2> / dev / null
2つの可能な候補があります:/usr/local/abacusと/usr/bin/hacker-weekly - abacus 。後者を実行すると、SSH 秘密鍵が印刷されます。
ヒント(ステップ2):このファイルを使用する最も確実な方法は、別のアカウントにログインすることです。どのアカウント?
完全なソリューション(ステップ2):
/etc/passwdを見て、どのアカウントがあるかを確認します(システムアカウントと参加者を除く)。 abacus グループのメンバーを見つけるには、/etc/passwd および /etc/group を確認してください。ついにゲストがいました。
そのため、秘密鍵を ~/.ssh/id_rsa にコピーし、権限を正しく設定してから ssh guest@localhost を使用してください。ビンゴ。
<広告>
この種のコンテンツが好きなら、旗をつかむゲームとしてsec.se (セキュリティスタック交換) CTFチーム(組織の詳細についてはメタポストを参照してください)が、UNIXよりも多くのネットワーキング、リバースエンジニアリング、および暗号化が関連しています。