此博客现在托管在GPS / LTE调制解调器上

2021-04-02 16:36:09

不完全是。尽管这篇文章的时间,但这不是愚人节的笑话。

[25.476857]调制解调器电源Serial1-0:adb键是' 41618099' (您可以使用它来解锁对调制解调器的ADB访问)

对于上下文,PinePhone具有REGECEL EG25-G调制解调器,其处理PINEPHONE的GPS和无线连接。这块硬件是手机上的少数组件之一,闭合源。

当我看到该消息和提及亚行时,我立即想到了Android调试桥,该软件常用于与Android设备进行通信。 “当然,”我想,“它不能谈论亚洲人”。好吧,结果是。

消息链接到文章,详细介绍了有问题的调制解调器。它还链接到解锁器实用程序,当使用时,在命令中打印出在调制解调器上启用adbd。

无论何种原因,我的输入都没有回声,但屏幕会话打印出“确定”两次,表示它已执行命令精细。

在“主机”上设置正确的UDEV规则和adb后,该规则是Pinephone的,调制解调器在adb设备的输出中弹出,我可以丢弃shell:

事实证明,调制解调器运行其自己的操作系统完全分开了与PinePhone OS的其余部分分开。使用最新更新,运行Linux 3.18.44。

无论出于什么原因,我都认为在这件事上运行我的博客很有趣。由于我们正在使用有限的资源(大约4800万个空间和​​相同数量的内存),并且我的博客只是一堆静态文件,我决定像Nginx(像它一样轻量级)这样的东西是一个为我的目的有点矫枉过正。

Darkhttpd似乎适合账单。单个二进制,没有外部依赖项,只得到和头部请求。完美的。

我使用了ARMV7L-Linux-Musleabihf-Crosschain,将其交叉编译为ARMv7并静态将其与Musl联系起来。 adb推送让我轻松推动二进制和我的网站资产到调制解调器/ usrdata目录,这似乎有一个约50米大安装在它的可写分区。

HTTP服务器很棒。我决定使用adb将HTTP端口公开到我的Pinephone:

由于adb转发端口仅绑定到环回接口,我还手动将其暴露于外部连接:

#sysctl -w net.ipv4.conf.all.route_localnet = 1#iptables -t nat -i prerouting -p tcp --dport 8080 -j dnat --to-destination 127.0.0.1:8080

我在adb端口转发时ran iperf over to看我得到什么样的吞吐量。

$ iperf -c localhost --------------------------------------- ---------------连接到LocalHost,TCP端口5001TCP窗口大小:2.50 MBYTE(默认)----------------- ------------------------------------ [3]本地127.0.0.1端口44230连接127.0.0.1端口5001 [ID]间隔传输带宽[3] 0.0-10.6秒14.4 MBYTES 11.4 MBITS / SEC

PINEPHONE本身通过USB连接到网络(侧面注意:我必须从板上删除两个组件以获得USB网络工作)。出于兴趣,我也在那个连接中运行IPerf:

$ iperf -c 10.15.19.82 ------------------------------------ ----------------客户端连接到10.15.19.82,TCP端口5001TCP窗口大小:136千字节(默认)-------------- ------------------------------------- [3]本地10.15 .19.100端口58672连接10.15.19.82端口5001 [ID]间隔传输带宽[3] 0.0-10.4秒25.8 MBYTES 20.7 MBITS / SEC

虽然我期待更多,但它并不重要,因为我在亚行转发的联系时是瓶颈。

我想知道调制解调器是如何安全。它在调制解调器上拒绝了很多AT命令使用System()。我怀疑某些人的命令可能很容易受到命令注射,但我还没有进一步调查这一点。当使用adb丢弃到根外壳时,它也并不重要这就是这种简单。

乍一看,这似乎是一个完美的方法来获得恶意软件的坚持。通过主机系统的root访问权限,恶意软件可以将自己植入到调制解调器中,这将使它能够存活重新安装主机操作系统,并侦听通信或跟踪设备的位置。通过与主机OS的所有交互在USB和I2S发生的情况下,且仅当主机操作系统启动时,因此才能使Morwware无法与主机操作系统直接交互。