MR.ROBOT シーズン4 3話のハッキングシーン

キプロス国立銀行のデウス担当者のオリビア・コルテスがハッキングのターゲット。

業務用PCでVPNで接続しているため、遠隔での侵入は不可能。

彼女のスケジュールに、2015.12.24 PM5:00からエヴァンと”OKCupid”というバーへ行く予定を見つける。

彼女の部屋へ侵入し、机の鍵付きの引き出しをピッキング。業務用のノートPCを見つけて電源を入れる。パスワードがかかっているのを確認。

そこで、Kali LinuxをUSBブートしてOphcrackなどを使うのかと思いきや、もっと原始的な方法でハックしていました。

復帰モードで起動し、プライバシーポリシーのテキストを開くとnotepadが起動。

このnotepadは管理者権限で起動しているのでしょう。ツールバーのFileのOpenからsethc.exeをリネームしてcmd.exeに置き換えます。

するとcmd.exeが起動。

ユーザーアカウントを列挙

net user

新たなパスワードを設定

net user Olivia *

再起動して設定したパスワードでログイン。パスワードマネージャーからパスワードをエクスポートしてUSBに保存する。

エリオットのKali LinuxのノートPCを取り出し、先ほどエクスポートしたパスワードをインポートする。そしてウェブブラウザを起動。

VPNに接続し、キプロス国立銀行のログインフォームに進む。

しかしログインにはワンタイムパスコードが必要だった。

MR.ROBOT シーズン3 10話のハッキングシーン

「FBIはロメロのファイルを解読できなかった。ロメロを知らないからだ。」

「俺は違う。」

ドムの権限によってFBIのセンチネルにログインしたエリオットは、かつての仲間ロメロから押収されたUSBキーロガーのダンプファイルをダウンロードする。
(拡張子に.rawとついており、LUKSファイルシステムであることから、押収したUSBからddなどでダンプしたファイルと思われる。)
そのファイルはLUKSでAES256で暗号化されており、FBIは解読できていなかった。

エリオットは歌詞をパスワードに設定していると踏み、getlyrics.pyというスクリプトで歌詞をダウンロードして辞書ファイルを作成する。

bruteforce-luksを使ってパスワードの辞書アタックを仕掛ける。

cryptsetupでLUKSファイルシステムを使用する

cryptsetup luksOpenで判明したパスワードを使って/media/にマウントする。cdで移動し、lsでファイル一覧を表示すると、keylog.txtがあった。lost+foundはファイルシステムが自動的に作成するディレクトリ。

keylog.txtをlessで表示する。lessはページ送りができるためコマンドラインでログを見る際によく使う。

MR.ROBOT シーズン3 5話のハッキングシーン

UPSのバッテリーを使って爆破する計画を進めるMr ROBOTとそれを阻止するエリオット。

エリオットは署名が無いコードを実行できないように細工するが、ダークアーミーはEコープのコード署名構築チーム”Frank Bowman”の権限をバックドアとして不正プログラムに署名を付けて実行しようとします。実行を阻止するためにはHSMに物理的にアクセスする必要があります。

しかし、暴徒と警官だらけの本社ではエリオットがいつも使っている裏口にアクセスすることは不可能。爆破予定の”復旧施設”へ行ってUPSを直接操作するしかありません。

社員に成りすまして復旧施設へ侵入し、会議室のLANからネットワークに侵入します。

update.binの署名を検証

gpg --verify update.bin.asc update.bin

“E Corp Power systems Hardware Development Team”によって署名されていることを確認。複製されたHSMによって署名されたものと思われる。

update.bin.ascとupdate.binを削除。rmではなくて、shredによって乱数を3回上書きした後に0で上書きしてから削除しているところが良いですね。

shred -uzn3 update*

UPSの正規のアップデートパッチを取得し、カレントディレクトリに解凍します。

wget -q https://192.251.68.232/files/ups_640_patch.zip
unzip ups_fw_patch.zip

エリオットによる署名であることを確認した後、念入りに改ざんされていないかsha256sumで検証します。

gpg--verify hashes.asc
sha256sum --check hashes.asc

scpでUPSにアップデートパッチを送ります。

scp * upsadmin@192.251.68.229:/upsfw

sshでUPSにログインし、アップデートを試みますが。。。

ssh upsadmin@192.251.68.229
upsfwupdate

エリオットがMr Robotに乗っ取られ、同ネットワークセグメントからのアクセスをファイアーウォールでブロックするように設定してしまう。firewallというコマンドは使ったことが無いので分かりませんが、iptablesみたいなものでしょうか。

firewall -f fw.fwl
firewall -r
exit

192.251.0.0/16からの接続を無視するという設定のようですが、ルールを反映した時点で”Connection lost”になると思います。sshで再びログインを試みますが、”Connection refused”というエラー。discardしている場合はパケットを破棄してしまうので、本当なら”Connection timed out”になるでしょう。

ジャガイモを植える準備【浴光育芽】

ホームセンターで色々買ってきました。キタアカリ3kg、杭10本、防腐剤、刷毛


ジャガイモの品種はキタアカリ。

段ボールに入れて日向ぼっこさせて発芽させます。芽が少し出たら半分に切って断面を乾燥させてコルク化させます。

杭の耐用年数を伸ばすために防腐剤を塗ります。

杭を一日乾かしたらジャガイモ予定地に打ち込んでいきます。

移植ごてなどで軽く掘ってから打ち込むと比較的楽に入ります。

ハンマー等は無いので、棒切れを使って打ち込みました。ハンマーで打ち込むより棒切れで打ち込んだ方が頭が割れません。
打ち込みの初期段階で曲がってきた場合は、杭を修正して隙間に小石を詰めます。修正には限界があるのでなるべく真下に力がかかる様に振り下ろす事が重要です。

多少曲がっていますが気にしない。後は杭の根本に横板を貼ってイノシシの鼻が当たったら抵抗がある様にしてビニールシートでぐるっと2周して隠すことにします。

イノシシは鼻が入れば突っ込んでいく習性があるので、鼻先が入らないようにして、ビニールシートで高さ1mほど目隠しをすれば壁と認識してくれると思うんですよね。ジャガイモの植え付けは今月末にやろうと思うので、それまでに簡易塀を完成させておきます。

おまけ

畑の片隅にあるお地蔵さん。明和の年号(1764年 – 1772年11月)が書いてある。碑文のようなものがあったらしいが、父が子供の頃に役所の職員が持って行ってしまったそうだ。

ジャガイモ(キタアカリ)の種イモを切りました

MR. ROBOT シーズン2 6話のハッキングシーン

ダーリーンがホテルの宿泊客を装いルームサービスを呼び出し、リンスが切れたと言いながら近づき、ルームサービスが持っているマスターキーカードをスキミングする。

スキミングしたデータを使い客室に入り、ノートPCを立ち上げる。OSはKali Linuxというその道の人御用達のOS。BackTrackの後継OS。ポテトチップスの缶にスマホスタンドをくっつけたような装置は指向性Wifi。ちなみに「Cantena」と呼ばれている。

Wifiのパスワードはアンジェラからあらかじめ聞いていたのか、ハッキング無しでEコープのオフィスのネットワークにログインする。

アンジェラはFBIエージェントが徘徊する社内でトイレの個室に移動し、スクリプトの実行を試みるが、最初にcd binを打つことを忘れ、コードが実行できなかった。モーブリーからcd binでディレクトリを移動してからスクリプトを実行することを指示される。無事にスクリプトが実行され、ダーリーンがフェムトセルと接続ができる環境になった。

アンジェラがトイレから出るとロス・トーマス捜査官に話しかけられてしまう。モーブリーはSNSを検索し、個人情報を調べる。

サンディエゴ出身、恋愛関係は複雑、元セキュリティエンジニアでFBI歴1年弱であることが判明。「母親との電話回数が多い。それを利用して何とかする」と母親の番号に偽装して電話をかけるが切られてしまう。アンジェラは誘いに乗るふりをしてロス・トーマス捜査官をかわす。

次にネットワークにフェムトセルを差し込むのですが、これはアンジェラがトイレに行く前の描写ですよね。

ダーリーンがsftpで何かのファイルをダウンロードしている最中にWifiの接続が切れてしまう。

Wifiを復帰すべく、アンジェラのデスクのPCでKali LinuxをUSBブートするように指示される。ちゃんと「再起動させてF12を押しUSBで起動」「AMD64を選んでエンターキー」と細かいところまで説明しているところがリアリティがあります。

sshでフェムトセル?にログインし、ifconfigでWifiの復帰を試みる。

ssh -l root l4713116.e-corp-usa.com
ifconfig wlan0 up
ifconfig wlan1 up

MR. ROBOTのソーシャルハッキングが鮮やかだった

MR. ROBOTが面白い。主人公エリオットはセキュリティコンサルティング会社に勤めているエンジニア。コミュ障気味である反面、高度なハッキング技術を持つ彼は、身近な人のメールやSNSなどをハッキングして人の秘密を握り、取得したデータをAES256で暗号化して音楽CDに見せかけたディスクに書き込んでコレクションしている。彼が務めている会社の大口契約先である富を貪る大企業”Eコープ”と、金融データを破壊しローンや借金をチャラにして、未だかつてない”富の再分配”を企むハッカー集団”Fソサエティ”とのごにょごにょを描いた物語です。

この世界は幻想でできている。薬で合成される感情、広告という名の心理戦争、食べ物で心をかき乱され、メディアに頭を洗脳される、SNSで作り出される虚構。リアリティがなんだって?21世紀の世界にそんなもんはない!

こちらの記事もどうぞ

MR. ROBOTのエリオットの様に音楽CDの中にファイルを隠す方法

原題がかっこよかった

ところどころ、技術的なシーンになると誤訳が多いと感じたので、もしや「やあ、君」だとか「1かゼロか」とか意味深なタイトルも正確に訳せていないのではと疑問に思い、wikiを見た所、原題はめっちゃかっこよかったですね。連続ドラマらしくないタイトルですが、その道の人が見たらなるほどと思えるような文字列です。

スペースの代わりにアンダーバーを入れるのはシェル上でファイル名を指定する際に””や”で囲む必要が無い為です。wikiで一通りタイトルを見たところ、シーズン1は動画ファイルの拡張子がついており、Leet文字が見受けられます。シーズン2は拡張子はでたらめなものもありますが、マスタースレーブ、ハンドシェイク、カーネルパニックなど専門用語がつけられています。一番気になったタイトルはシーズン3の最終話「シャットダウン」。原題は「shutdown -r」なのですが、これは見る人が見ればピンときます。「再起動」だと。シーズン4のタイトルはHTTPステータスコードになっています。邦題は直訳になってしまっており雰囲気ぶち壊しです。

シーズン1-1話「eps1.0_hellofriend.mov」の考察

RON’S COFFEEにて。

Wifi環境が異様に良いことに不審を持った主人公は、ネットワークトラフィックを監視したところ、オーナーが違法なウェブサイトを運営している事が発覚した。

「Torで匿名化しているが俺は見た。オニオンルーティングを信用しすぎだ。出口ノードをおさえたものが通信をコントロールする。それが俺さ」

Torとは複数のサーバーを経由することによって通信元を秘匿化するツールで、だれもが無料で使用可能です。10年前はTor越しにウェブブラウジングしようにも速度が遅くて使い物になりませんでしたが、現在はTorノードが昔より圧倒的に増えて平均的なネットワーク速度も格段に上がっているため、ストレスなく動画ストリーミングが見れる程度まで実用性が上がってきています。

https://www.torproject.org/

世界中の複数のサーバーを経由し、その間の通信は暗号化されていますが、出口ノードだけは相手サーバーに直接つながっているため、出口ノードの運営者は通信が丸見えであることは昔から指摘されている事です。なのでTorで通信内容の秘匿化というよりは、通信元をごまかす程度と考えておかねばなりません。

ソーシャルハッキング

主人公のかかりつけの精神科の女医と付き合っている男の正体を調べるべく、タクシー内に忘れ物をしたことを装いタクシー会社に電話し、男が乗ったタクシーの番号「56Y2」を伝えて家の住所を突き留める。

男の住所へ向かい、男に電話を貸してほしいと言って自分のスマホに電話をかけて番号をおさえる。
発信履歴を削除してるところもぬかりありません。

次に銀行員を装い、本人確認と称し秘密の質問を聞き出します。棟番号「2C」、「ヤンキース」、愛犬「フリッパー」3つのワードからコンビネーションを作成し、辞書アタックを試みますがヒットなし。偽名を使っている可能性。

最終的に本名を言い当て、浮気の事実を本人に突きつけますが、そこに至るまでの描写はありませんでした。

シーズン1-2話「eps1.1_ones-and-zer0es.mpeg」の考察

タイレルのメールをハッキングするためにメールのログインフォームページにwgetで/etc/passwdをダウンロードする不正なクエリを送ります。環境変数に仕込まれたコードを実行できてしまうというひと昔前のbashの脆弱性を突いた攻撃です。

wget -U "() [ test;];echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd" http:~

標的サーバーの/etc/passwdが/etc/statusにダウンロードされます。

john the ripperを使い、パスワードの解析を行います。

./john /etc/status

/etc/passwdだけで解析ができるということは、シャドウパスワードが有効ではないのでしょう。90年代ならともかく、現在はありえません。
シャドウパスワードが有効な場合、解析には/etc/shadowも必要なのですが、パーミッションがrootにしか読めない0400または0000に設定されているため、もっと特殊な方法でないと落とせません。

passwdを解析した結果、「olofson66」というパスワードが分かります。エリオット曰く「多少工夫しているが初心者レベル」だそうで。判明したパスワードでメールサーバーにログインします。しかし、フロントエンドとバックエンドが同じサーバーであることはありえないし、UNIXアカウントとログインフォームのアカウントが一致しているというのもセキュリティ的にはありえない事です。

John the RipperでLinuxのパスワードを解読する方法

JB23W 10型のギア比と速度を計算するjs

JB23W 10型のギア比は次のようになっています。JB23Wのギア比については新型ジムニーが発売される前までは公式サイトに載っていたのですが、現在は見当たらないのでカタログから引用しました。

1速:5.106、2速:3.017、3速:1.908、4速:1.264、5速:1.000、R:5.151
副変速機:1.320 / 4.300
最終減速比:4.300

これを基に自動計算するjsを書きました。
jsはこちら

計算方法は以下の通りです。

タイヤの周長(km)を求める

車速を調べるためにはタイヤ1回転あたりどれだけの距離を進むのか調べる必要があります。

タイヤのスペックについては次のように表記されています。「185/85 R16」ここではTOYO OpenCountry R/Tを例にします。
これは左からタイヤの横幅(mm)、扁平率、ラジアル構造、ホイールのインチ数を意味しています。

横幅mm × 扁平率でサイドウォールの高さが求められます。185 * 0.85 = 157.25mm サイドウォールはホイールの両側にあるため* 2して314.5mmとなります。

ホイール部分のインチ数をmmに直し16 * 25.4 = 406.4mm、これをサイドウォールと足すとタイヤの直径が出ます。314.5 + 406.4 = 720.9mm

タイヤの直径に円周率を掛ければ円周が出ます。720.9mm * 3.14 = 2263.626mm
そして / 1000000で単位をkmに直します。0.002263626km

エンジン回転数から車速を求める方法

1速、2000回転、副変速機:Highの時の速度を求めるとします。

エンジン回転数 / ギア / 副変速機 / 最終減速比でドライブシャフトの回転数を求めます。
2000 / 5.106 / 1.320 / 4.300 = 69.009これでは分速なので* 60で時速に直します。4140.54回転/h

先ほど求めたタイヤの長さと回転数を掛けると速度が求められます。
0.002263626 * 4140.54 = 9.3726km/h

車速からエンジン回転数を求める方法

40km/h、3速、副変速機:Highの時の回転数を求めるとします。

ギア * 副変速機 * 最終減速比でシャフト1回転あたりのエンジン回転数を求めます。
1.908 * 1.320 * 4.300 = 10.829808回転

時速 / タイヤの長さ / 60で1分間のタイヤの回転数を求めます。
40 / 0.002263626 / 60 = 294.5127回転

シャフト1回転あたりのエンジン回転数とタイヤの回転数を掛けるとエンジン回転数が求められます。
10.829808 * 294.5127 = 3189.5159rpm

jsはこちら