【セキュリティ】Wi-Fiルータの WHR-G301N を分解してシリアル通信をやってみた!

【セキュリティ】Wi-Fiルータの WHR-G301N を分解してシリアル通信をやってみた!

シリアル通信と聞いて、普通の電子工作好きの人なら「ああ、arduinoとかの話ね」となると思いますが、今回はそう言った話じゃないですw

リバースエンジニアリングとは?

今回の場合は、wi-fiルータの仕組みを公式が出していない情報よりもはるかに詳しく情報をみる!ということです。このリバースエンジニアリングを行うことで、内部構造が少しずつ明るみになって、最終的にiotハックと言った感じになってきます。

今回、この記事で紹介する内容はリバースエンジニアリングの初めの一歩っと言った感じ。

WHR-G301Nについて

WHR-G301Nは一般的な家庭でよく使われているwifiルータです。
https://www.buffalo.jp/product/detail/whr-g301n.html

メルカリや秋葉原で中古として、1台500円前後で売られてると思います。そのため、もしも失敗してもまぁしょうがない!で済むのがこの製品のいいところw

手順

やり方は至ってシンプル!

滑り止めがついている4か所にねじ止めがされているので取ります。これを取っても、外れないので隙間からマイナスドライバーでこじ開けます。(壊す気でやらないとたぶん空きません。)

写真を撮り忘れて、すでにハンダ済みの写真ですが、開けるとこんな感じ。
シリアル通信の部分を拡大すると。

こんな感じ。シリアル通信をするための穴はすでにふさがれていたのでピンが入らず、直接ハンダで繋げました。

赤色はRx,緑色はTx,黒色はGNDです。つなげる際に参考にしてみてください。ちなみに一番右は3.3Vの電源です。

他の記事等、参考すると通信を安定かさせるために電源の部分を使ってたりしますが、おそらく必要ないです。

結果

上記の手順通りできたら、あとはRx,Tx,GNDをラズパイとのシリアル通信の時のようにつなげるだけ!

結果はこの通り、いろいろ喋っていますね。
(自分は、arduinoのシリアル通信モニターで通信の内容をみてます。これ、UI的にわかりやすいのでおすすめです。)

実際にgoogleにpingコマンドを実行することも可能です。

これをやってる最中に家のネットがダウンしてたので、Unknowhostが出てますが、特にエラーがなくpingコマンドは実行できてるのがわかります。

ルータの正体はLinux!?

はい、実はルータの正体はLinuxです。
おそらく、知ってる人が大半だと思いますが、Linux以外で動いてるルータは多分ないと思います。(マサフィーは大学に入って初めて知りましたw)

もちろん、linuxなので、いろいろいじればルータでpythonの環境を構築することも可能だと思います。(その場合は容量をどこかで確保しなければいけない?)

逆にの考えですが、普通のノートパソコンでも設定等いじればルータとしてWiFiを飛ばしたり、トラフィックの制御したり、ちゃんと機能します。

応用

今回の記事と全く種類は変わりますが、WiFiルータを強化することが可能です。ただし、この場合は電波法を違反してしまう可能性がある?(マサフィーは電波関係はもうよくわからないので諦めています。)ので、やらないことをおすすめします。

一応、知識としては持っといてもいいのではないでしょうか?

もしも、やりたいなぁとか考えてる人は
http://www.takanashi-it-factory.com/archives/1818
こちらの記事に書いてある通り、いろいろ確認してやってみるといいかも?

 

おわり。