惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
Vercel News
Vercel News
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
Help Net Security
Help Net Security
月光博客
月光博客
N
News and Events Feed by Topic
Cloudbric
Cloudbric
博客园 - 司徒正美
L
LangChain Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tenable Blog
The Register - Security
The Register - Security
The Hacker News
The Hacker News
I
InfoQ
The Last Watchdog
The Last Watchdog
MyScale Blog
MyScale Blog
Schneier on Security
Schneier on Security
WordPress大学
WordPress大学
小众软件
小众软件
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
K
Kaspersky official blog
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
F
Fortinet All Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Security @ Cisco Blogs
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
C
Cisco Blogs
N
News and Events Feed by Topic
V2EX - 技术
V2EX - 技术
Latest news
Latest news
PCI Perspectives
PCI Perspectives
T
The Blog of Author Tim Ferriss
P
Palo Alto Networks Blog
T
Tor Project blog
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Webroot Blog
Webroot Blog
Attack and Defense Labs
Attack and Defense Labs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事 blockly与结对编程
神器之Termux
2017-12-24 · via 夜行人

前言

自从丢了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

参考