神器之Termux
文章目录
前言
自从丢了iphone,换了安卓之后,手机的可玩性瞬间提升了一大截
之前在手机里跑Python,用的是QPython3,有诸多不便。一直想要在手机里跑linux环境,能使用linux工具箱的同时,又能以编程的方式与手机交互(发短信,拍照,打电话什么的),而且最好不要影响手机正常的使用。
busybox当然是个不错选择,但我更偏好Termux
Termux(一个Android App,仅支持Android 5.0及以上版本 ,可以在Google Play和F-Droid上下载)是一款开源且不需要root,运行在Android上极其强大的linux模拟器,支持apt管理软件包,支持python,ruby,go,nodejs…甚至可以手机作为反向代理、或Web服务器
安装好打开之后,你将看到这样的界面
使用
提高输入效率
打开Termux之后,我们面对的是一个命令行界面,常用的手机输入工具,搜狗之类的,并没有功能键,无法输入esc、ctrl、alt、tab…
Termux提供了一些解决方案:
音量键(-)模拟Ctrl,所以你要中止输入到一半的命令,只好按下音量键(-)+c
即可(等效于Ctrl+c)
你也可以使用音量键(+)+q
显示扩展键:ESC、CTR、ALT、TAB、-、/、|
你有多种方式提高输入效率:
- 使用蓝牙键盘
- Hacker’s Keyboard: 一个输入法App,提供一切你需要的按键,方便地在Android上输入快捷键组合、特殊符号,提高Coding和CLI的效率
- 在电脑中使用ssh接入Termux
- 安装Jupyter Notebook,在电脑中使用浏览器连接Termux(可以在网页中使用terminal)
在以上多种方式中,我最喜欢Jupyter Notebook
安装Jupyter Notebook
apt install clang python python-dev fftw libzmq libzmq-dev freetype freetype-dev libpng libpng-dev pkg-config
(目前(2017.12.24)默认安装的Python版本是3.6.4
)pip install jupyter
jupyter notebook --ip=0.0.0.0
假设你的手机在局域网里的ip为:192.168.0.100
,那么访问你在局域网中的浏览器里输入192.168.0.100:8888
即可,接下来会要求你输入token,如此一来远程访问便没有安全问题。token在jupyter notebook
运行起来之后手机界面中会有,如截图中所示:
在浏览器中输入token之后,即可使用浏览器来访问termux。选择Terminal:
之后你便可以在浏览器中进入termux的terminal,和ssh进入几乎相同
安装依赖
进入linux,我做的第一件事一般是把我日常使用的工具装好。Termux支持apt管理软件包,所以这一切来的很轻松:
apt install tmux fish vim git
公网访问
我们如何把手机中的端口暴露到公网呢,有两种方式都很方便:
- 使用ssh反向代理(使用autossh解决隧道的稳定性问题)
- 使用ngrok(使用ngrok arm版本)
如此一来手机中运行的网站你就可以在公网访问它,当然你也可以把ssh端口暴露到外网,这样你可以在任何有网络连接的地方连接到你的手机里。前提是Termux处于运行状态
使用Python驱动手机
结下来才是精彩之处
我们先安装termux的插件Termux:API,用于访问手机硬件。安装完Termux:API App之后,还需要在terminal里安装termux-api:apt install termux-api
,之后就可以在terminal中操控手机硬件,这样一来我们可以以编程的方式来控制手机,
什么 “亲爱的每天早上6点钟准时电话喊你起床”,还不是从不晚点!什么“短信一定秒回哦” 还不是毫秒级的速度!什么“今天是你的生日,我准时在12点给你发了这条祝福短信” 还不是差一秒绝对是网络延迟!
巧伤诚 :(
展示一些好用的api
- 获取手机剪贴板内容:
termux-clipboard-get
- 设置剪贴板内容:
termux-clipboard-set 你好啊
之后你在手机中粘贴内容时,便会把你好啊
粘贴出来。利用剪切板接口,你可以方便地在电脑和手机间传输内容,而不必通过微信、QQ之类的东西
- 获取联系人列表:
termux-contact-list
- 发送短信:
termux-sms-send -n 10010 hello
通过以上指令我们成功给10010发了hello
更多有趣的连接可以参考: Termux:API
有了这些接口,我们可以在Python中使用subprocess来操控手机。已经有人做了简单包装,以供python调用termux-api: termux_python
邪恶一下
使用Termux你可以轻松把手机打造为一个渗透工具
日常使用的nmap当然没有问题(当然你可以以轻松使用routersploit、slowloris、Hydra),惊人的是竟然连Metasploit Framework都可以使用!
如果你对使用termux来做渗透感兴趣,参考termux Hacking
2018.06.03更新
最近看到这篇文章访问的人比较多,做个更新
termux和termux:api今年做了一个更新,增加了好几个有趣的api,其中我最喜欢termux-sensors,这个api能帮我们拿到几乎所有的手机传感器数据!
此外我之前fork了一个项目,简单用python包装了一下termux:api: termux_python
参考
文章作者 种瓜
上次更新 2017-12-24