人から教わりました。いやありきたりのTelnetを使う方法なんだけど、また「そういうことができる」ってことも知ってたつもりだったけど、実際に操作してみると視覚的にインパクトが強かった。
用意するものはPC2台とスイッチングハブ。手持ちの機材の都合で、操作されるマシンWindows7、操作するマシンWindows8.1とした。逆も可能のはずだが留意点があり後述。あと昔懐かしのMS-DOSコマンドの知識が少し必要。
スポンサーリンク
操作される側の準備。コントロールパネルの「プログラム」から「Windowsの機能の有効化または無効化」を選び、「Telnetサーバー」にチェックを入れる。
「システムとセキュリティ」「管理ツール」「サービス」からTelnetを探し、右クリック「プロパティ」から「無効」を「手動」に変更しサービスを開始する。
実験用に「Friend」とか何とか適当な名前でユーザアカウントを作る(パスワード必要)。ドキュメントに「dummy」とか何とかテキストファイルを新規作成する。
コマンドプロンプトを管理者として実行し、次のコマンドを入力する。
Microsoft Windows [Version 6.1.7601]
(c) 2009 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>net localgroup "TelnetClients" Friend /add
下線部が入力です。以下同じ。
あとipconfigでローカルIPアドレスを確認しておく。
操作する側。コマンドプロンプトからTelnetを起動。あ、もちろん事前に「Windowsの機能の有効化または無効化」でTelnetクライアントが有効になっていることを確認しておく必要がある。
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\user>telnet 192.168.**.**
「192.168.**.**」というのはローカルIPアドレスです。アスタリスクはもちろん伏字です。
正常に接続できたら、次のようなメッセージが表示される。
Microsoft Telnet クライアントへようこそ
エスケープ文字は 'CTRL+]' です
パスワード情報を インターネット ゾーンのリモート コンピューターに送信しようとし
ていますが、この操作は安全でない可能性があります。送信しますか? (y/n):
yと入力する。エコーは表示されず、次のようなメッセージが表示される。メッセージに従って、先に作成したユーザアカウント名とパスワードを入力する。
Telnet server could not log you in using NTLM authentication.
Your password may have expired.
Login using username and passwordWelcome to Microsoft Telnet Service
login: Friend
password:
パスワードのエコーは表示されません。次のようなプロンプトが表示されたら接続完了。
この折に操作される側のパソコンでファイアウォールの警告画面が表示されたように記憶しているが、キャプチャしそこなった。すんません。
*==========================================================
Microsoft Telnet Server.
*==========================================================
C:\Users\friend>
プロンプトに続いて、まずは懐かしのdir /wコマンドを入力してみる。
C:\Users\friend>dir /w
ドライブ C のボリューム ラベルは OS です
ボリューム シリアル番号は ****-**** ですC:\Users\friend のディレクトリ
[.] [..] [Contacts] [Desktop] [Documents]
[Downloads] [Favorites] [Links] [Music] [Pictures]
[Saved Games] [Searches] [Videos]
0 個のファイル 0 バイト
13 個のディレクトリ **,***,***,*** バイトの空き領域C:\Users\friend>
アスタリスクは伏字です。
cdコマンドでDocumentsに入る。
C:\Users\friend>cd documents
このとき操作される側のPCでは、エクスプローラでマイドキュメントを開いておくと面白い。
copyコマンドを実行してみる。
C:\Users\friend\Documents>copy dummy.txt dummy1.txt
1 個のファイルをコピーしました。
増えたっ!(゚Д゚;
delコマンドも実行してみる。
C:\Users\friend\Documents>del dummy1.txt
コピーしたアイコンが消えて一つ上の画面に戻った!
冷静に考えたら、遠隔操作しないで一台のパソコンでエクスプローラとコマンドプロンプトを開いてコマンドプロンプトにコマンドを入力しても、結果は一緒なんだけどね。
shutdownコマンドも実行してみる。
C:\Users\friend\Documents>shutdown -s
C:\Users\friend\Documents>
****** の管理者 (2014/06/12 10:24:15 上) からのメッセージThe computer is shutting down......
電源落ちた!
ホストとの接続が切断されました。
ただし遠隔操作でアプリの起動はできない。「notepad」とか「mspaint」とか打ち込んでみたけどダメだった。
また遠隔操作されるためには、メインアカウントとは別のアカウントを作ってログインしておく必要があるようだ。「net localgroup "TelnetClients"」に続いてメインアカウント名を入力すると拒絶される。またguestアカウントも指定できない。
さらに、パスワードが設定されていないアカウントにはログインできない(それぞれどんなエラーメッセージが表示されたかメモしておけばよかった)。
これらはセキュリティ対策目的のロックなのだろうか?
アカウントと言えば、Windows8では新規にアカウントを作成するときにメールアドレスの入力を要求されるようになったのでちょっとだけ面倒。最初の方で「後述」と書いたのはこのことです。これもある意味セキュリティ強化の一環なのかな?
私の知識では、すぐにはこれ以上のことはできないが、設定変更をプログラムやスクリプトで記述し、有用なソフトだと偽って実行させることは原理的には可能だよなぁ。あと2ちゃんねるとかの匿名掲示板だと、専用ブラウザ開発のための技術情報は公開されているし、セキュリティホールを探す側とふさぐ側のいたちごっこが終わらない理由の片鱗をかいま見たような気がする。
Windowsにはリモートアシスタンスという機能もあるのだ。まだ試してないけど、ぐぐった限りではこちらの方が簡単そうだ。そもそもコンピュータはその出自から考えて、遠隔操作できるように作られてるってことは、忘れちゃいけなさそうだ。
スポンサーリンク