![Linuxセキュリティについて学ぶ学生のためにイースターエッグをどこに隠すことができますか? [閉鎖]](https://linux33.com/image/55253/Linux%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E5%AD%A6%E3%81%B6%E5%AD%A6%E7%94%9F%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E3%82%A4%E3%83%BC%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%A8%E3%83%83%E3%82%B0%E3%82%92%E3%81%A9%E3%81%93%E3%81%AB%E9%9A%A0%E3%81%99%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
(単一の正解がないので)ここがこの質問をするのに最適な場所ではないようですが、これより良い場所は思い出されません。より良い提案がある場合は、お勧めします。すぐに質問を閉じるのではなく、質問を移動できますか?
私は高校生に一般的なLinuxセキュリティについて教えています。高いレベルで、私は彼らが特定のLinuxサーバーを使用することができ、古いアカウントの閉鎖、強力なパスワードハッシュアルゴリズムの使用、奇妙なプロセスが実行されていないことを確認するなど、一般的なセキュリティ問題に対してサーバーを強化する方法を知っていると思います。または起動時に実行します。彼らのスキルレベルは非常に多様であるため、私たちが議論した内容(例:crontabビュー、ユーザーとグループ設定ビュー、開いているポートビュー)を使用するように動機付ける方法を探しています。
私は彼らを奨励するためにコンテストを運営するために200ドルを獲得し、おそらく10ドル単位でAmazonギフトカードをたくさん購入できると思いました。アイデアは、子供が見つけることができるようにサンドボックスサーバーのさまざまな場所に返済コードを「隠す」ことです。たとえば、パスワードをプレーンテキストとして保存し、サンプルユーザーアカウントの1つにコードの1つを含むパスワードを割り当てることができます。または、30秒ごとにこれらのコードの1つをシステムログに記録するようにcronジョブを設定することもできます。
私が探しているのは、サーバーを保護したい人が偶然に見つけられるように、このコードを隠すことができる場所/方法です。
ありがとうございます!
答え1
または、タスクを実行するときに
nc
クーポンコードの1つをエコーするリスナーを実行します。彼らも文書を見ればわかります。telnet
nc
#!/bin/sh nc -i 2 -l -p 3128 -c "echo amazoncode"
次のように便利な名前を付けてください。
squid
Amazonコードの名前またはパラメータを使用して、いくつかのローカルファイアウォールルールを作成します。
iptables -N amazoncode -P ACCEPT iptables -I INPUT -j amazoncode
ssh
ユーザー名でコードを使用した一部のログインに失敗しました。安全でない、または安全性の低いmysqlインスタンスを実行するには、コードを含むいくつかのデータベースを使用します。
grep -r amazoncode
混乱した方法がなくても、スマートな人に会うこともできます。彼らが正規表現を見つけることができれば、それは少し独創性を示していますが、セキュリティにはあまり役に立ちません。
答え2
学生がこの方法に興味があるかどうかわかりません。
元のコードを使用してamazoncodeでファイルを作成します。
cat amazoncode 125622234
次に、次のコマンドを使用してファイルを暗号化します。
openssl aes-128-cbc -salt -in amazoncode -out amazoncode.aes -k somepassword
somepassword
このファイルに設定したパスワードです。
さて、元のファイルを削除してみてください。
rm amazoncode
今、学生にAmazonギフトコードは暗号化されており、コードが必要な場合は復号化する必要があることを教えてください。暗号化に使用された元のコマンドとパスワードを生徒と共有することもできます。
生徒は、次のようにファイルを復号化するために反対の作業を実行する必要があるという元のコマンドを見ることができます。また、復号化オプションを知らせ、
-d
暗号化されたファイルを入力として使用してコードを出力として生成する必要があることを知らせることもできます。ここでは、生徒にman
ページで復号化のスキルを確認するように指示することもできますopenssl
。openssl aes-128-cbc -d -salt -in amazoncode.aes -out amazoncode
今、いくつかの暗号化/暗号解読技術を学んだ後、コードも得られました。
cat amazoncode 125622234
実際、openssl
パスワードはユーザーのホームディレクトリに隠しファイルとして保存できます。その後、学生は隠されたファイルにアクセスする方法とopenssl
そこからパスワードを取得し、それを解読する方法を学びます。
答え3
いくつかの考え:
- ユーザーのホームディレクトリにあるプレーンテキストファイル("
Amazon Code.txt
"または他の明確な内容)、誰でも読むことができます - ユーザーのホームディレクトリにあるプレーンテキストファイルでは読み取ることはできませんが、ユーザーのパスワードは簡単に推測できます。
- 処理はソースコードの難読化されたキーを使用して実行されますが、出力に
system("sleep 864000 $key")
キーを公開するために別のエントリ(たとえば)を呼び出します。ps
- 同じですが、crontabで実行され、子が数秒間のみスリープモードを処理できるようにします。
- ソースコードの難読化されたキーとして機能しますが、TCPソケットを開いて接続しているすべての人にキーを印刷します。
答え4
~/bin/ または /etc/bin/ に「興味深い」スクリプトがある可能性があります。 LS、cat、またはCDの機能を交換して、少し異なる動作をし、問題に関するメッセージを表示するようにします(最初に考えたのは、ls / cdを誤ったフォルダを一覧表示/移動するように変更することです)。コードは次のコメントにリストされています。 shファイル。
メモリが多すぎたり、奇妙なポートを開くプロセスを実行したりすると、プロセス名をAmazon Codeに設定できます。