プラスα空間

ブログ in お市 のーと

PQI Air Penでbusybox-mipsの追加なしに既存WiFiに接続する[追記あり]

PQI Air Penを持ってます。ネットワークブリッジ機能と、WiFiストレージ機能を搭載した装置です。

先人の解析の結果、rootアカウントでtelnetログインできる事がわかりました。また、自動起動スクリプトの使い方も解析されています。ありがとうございます。

この記事の中では、既存WiFiに接続するために、PQI Air Penの設定画面にwgetでアクセスしています。wgetはPQI Air Pen搭載のbusyboxには組み込まれていないので、次の所からbusybox-mipsをダウンロードして使っています。

接続は、設定画面のCGIとして動作しているのだから、原理的にはwgetでつながなくても動作させられるはずと考え、解析を進めました。その結果、次の事がわかりました。

これがわかれば、簡単です。

~ # ls -l /tmp/www/cmd.html /tmp/www/cgi-bin/cgiMain /tmp/www/cgi-bin/cmd 
-rwxr-xr-x    1 root     root       126332 Feb  7  2013 /tmp/www/cgi-bin/cgiMain
lrwxrwxrwx    1 root     root            7 Jan  1 00:00 /tmp/www/cgi-bin/cmd -> cgiMain
-rw-r--r--    1 root     root            0 Feb  7  2013 /tmp/www/cmd.html

まずは、PQI Air Penの設定画面で、WiFiステーションに接続できる様にしておいてください。

PQI Air Pen設定

次のスクリプト(connect.sh)を実行すると、最後に接続したWiFiステーションに自動接続します。接続に必要なSSIDやパスワードは、NVRAMに保存されています。

<br />
#!/bin/sh<br />
# Copyright (c) 2017 Oichinote<br />
# Created by Oichinokata on 2017-03-03<br />
# License GPL2<br />
echo 1 > /proc/gpio/gpio23_out<br />
#export STA_SSID='Your Station'\''s SSID'<br />
#export STA_SECMODE='WPA-PSK'<br />
#export STA_SECMODE='WEP'<br />
#export STA_SECMODE='NONE'<br />
#export STA_PASSWD='Your Station'\''s Password'<br />
export PATH='/usr/bin:/bin:/usr/sbin:/sbin:/etc/ath:/tmp/www/cgi-bin'<br />
cd /tmp/www/cgi-bin<br />
#QUERY_STRING='set=STASSID&STASSID_VALUE='$STA_SSID cmd<br />
#QUERY_STRING='set=STAWPA&STAWPA_VALUE='$STA_SECMODE cmd<br />
#QUERY_STRING='set=STAPASS&STAPASS_VALUE='$STA_PASSWD cmd<br />
QUERY_STRING='cmd=CONNECT' cmd<br />
echo 0 > /proc/gpio/gpio23_out<br />

個別に、SSIDやパスワードを指定したい方は、上記のコメントを適切に設定して試してみてください。使い方がわからなければ、コメントでご質問ください。SSIDやパスワードに”‘”(シングルクォート)を使っていると、エスケープ方法がちょっと特殊になります。

切断するためには、次のスクリプト(disconnect.sh)を実行します。

<br />
#!/bin/sh<br />
# Copyright (c) 2017 Oichinote<br />
# Created by Oichinokata on 2017-03-03<br />
# License GPL2<br />
echo 1 > /proc/gpio/gpio23_out<br />
export PATH='/usr/bin:/bin:/usr/sbin:/sbin:/etc/ath:/tmp/www/cgi-bin'<br />
cd /tmp/www/cgi-bin<br />
QUERY_STRING='cmd=DISCONNECT' cmd<br />
echo<br />
echo 0 > /proc/gpio/gpio23_out<br />

接続状態を確認するには、次のスクリプト(connstat.sh)で可能です。

<br />
#!/bin/sh<br />
# Copyright (c) 2017 Oichinote<br />
# Created by Oichinokata on 2017-03-03<br />
# License GPL2<br />
echo 1 > /proc/gpio/gpio23_out<br />
export PATH='/usr/bin:/bin:/usr/sbin:/sbin:/etc/ath:/tmp/www/cgi-bin'<br />
cd /tmp/www/cgi-bin<br />
QUERY_STRING='ask=CONNSTATE' cmd<br />
echo 0 > /proc/gpio/gpio23_out<br />

次のように使います。コマンド実行中は、緑色のLEDが光ります。(追記 2017-03-08 22:47 上記の他に、reboot.shも追加しました。)

$ telnet 192.168.200.1
Trying 192.168.200.1...
Connected to 192.168.200.1.
Escape character is '^]'.
(none) login: root
Password: pqiap


BusyBox v1.01 (2013.02.07-09:36+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # cd /tmp/www/ftp/sda1/commands/
/tmp/www/ftp/sda1/commands # ./connect.sh 
HTTP/1.0 200 OK
Content-type: text/html
Connection: close


OK
/tmp/www/ftp/sda1/commands # ./connstate.sh 
HTTP/1.0 200 OK
Content-type: text/html
Connection: close


Connected
/tmp/www/ftp/sda1/commands # ./disconnect.sh 
HTTP/1.0 200 OK
Content-type: text/html
Connection: close


OK
/tmp/www/ftp/sda1/commands # ./connstate.sh 
HTTP/1.0 200 OK
Content-type: text/html
Connection: close


Disconnected
/tmp/www/ftp/sda1/commands # ./reboot.sh 
HTTP/1.0 200 OK
Content-type: text/html
Connection: close


Rebooting
/tmp/www/ftp/sda1/commands # Connection closed by foreign host.

PQI Air Penの電源をオンにして、自動的に設定済みのWiFiにつなぐためには、次のスクリプトをthisisautorunとして、上記のスクリプトと共に、microSDのトップディレクトリに保存しておきます。接続スクリプトを開始するまでの8秒待ちが肝かもしれません。それと、やはりthisautorunとは別に実行する必要があるようです。

<br />
#!/bin/sh<br />
# Copyright (c) 2017 Oichinote<br />
# Created by Oichinokata on 2017-03-03<br />
# License GPL2<br />
(sleep 8; /tmp/www/ftp/sda1/connect.sh) &<br />

次の記事で設定されている8秒をそのまま使わせていただきました。ありがとうございます。

これらのスクリプトをZIPにまとめておきました。microSDカードのトップディレクトリに展開してください。ディレクトリを作らずに、ベタに展開しますので、ご注意ください。

cmdコマンドの実体の/tmp/www/cgi-biin/cgiMainには、/bin/cfgからもリンクが張られています。cfgコマンドから、ネットワーク関係のほとんどの設定ができる様になっています。英語ですが、次のページで詳しく解説されています。

なお、PQI Air Penの設計思想は、ネットワークブリッジ的な動作を想定していると思われます。WAN側(有線LAN、WiFiとも)にも、telnet、ftpのポートが開かれていますので、ホテルルータとして使うのは危険です。microSDカードの中とか、覗き見されてしまいます。パケットもスルーになっているので、LAN側も外から丸見えになります。安全な環境の中でお使いください。

https://oichinote.com/plus/2014/01/very-weak-security-of-pqi-air-pen.html

コメントを残す