Android应用神器:高级终端Termux
注:本文几乎照搬国光大佬的博客,此文仅作为笔记,且不完整。建议点击连接直达国光博客
简介
Termux is an Android terminal emulator and Linux environment application that works directly with no rooting or setup required. A minimal base system is installed automatically, additional packages are available using the APT package manager.
Termux 是运行在 Android 上的 terminal。不需要root,运行于内部存储(不在SD卡上)。
开源且不需要root,支持apt管理软件包,十分方便安装软件包,完美支持Python,PHP,Ruby,Go,Nodejs,MySQL等。随着智能设备的普及和性能的不断提升,如今的手机、平板等的硬件标准已达到了初级桌面计算机的硬件标准,用心去打造完全可以把手机变成一个强大的工具.
自带了一个包管理器,可以安装许多现代化的开发和系统维护工具。比如:neovim,tmux,zsh,clang,gcc,weechat,irssi …
部分功能
高级终端Termux组合了强大的终端模拟和拓展Linux包收集支持。
• 享受bash 和 zsh。
• 使用nano 和 vim编辑文件。
• 通过ssh访问服务器。
• 使用gcc和clang编译代码。
• 使用python控制台来作为口袋计算器。
• 使用git 和 subversion检查项目。
• 使用frotz运行基于文本的游戏。
下载
软件截图
基本操作
长按屏幕 出现菜单
Copy | 复制 | |
Paste | 粘贴 | |
More | 更多 | |
Select URL | 选择网址 | |
Share transcript | 分享副本 | |
Reset | 重置 | |
Kill process | 杀死当前会话进程 | |
Style | 风格 | |
Keep screen on | 保持屏幕开启 | |
Help | 帮助 |
左滑进入多窗口导航栏
常用快捷键
Ctrl
键是终端用户常用的按键 – 但大多数触摸键盘都没有这个按键。为此,Termux使用音量减小按钮
来模拟Ctrl
键。
例如,在触摸键盘上按音量减小
+ L
发送与在硬件键盘上按Ctrl + L
相同的输入。
Ctrl+A
-> 将光标移动到行首Ctrl+C
-> 中止当前进程Ctrl+D
-> 注销终端会话Ctrl+E
-> 将光标移动到行尾Ctrl+K
-> 从光标删除到行尾Ctrl+L
-> 清除终端Ctrl+Z
-> 挂起(发送SIGTSTP到)当前进程
音量加键
也可以作为产生特定输入的特殊键
.
音量加+E
-> Esc键音量加+T
-> Tab键音量加+1
-> F1(和音量增加+ 2→F2等)音量加+0
-> F10音量加+B
-> Alt + B,使用readline时返回一个单词音量加+F
-> Alt + F,使用readline时转发一个单词音量加+X
-> Alt+X音量加+W
-> 向上箭头键音量加+A
-> 向左箭头键音量加+S
-> 向下箭头键音量加+D
-> 向右箭头键音量加+L
-> | (管道字符)音量加+H
-> 〜(波浪号字符)音量加+U
-> _ (下划线字符)音量加+P
-> 上一页音量加+N
-> 下一页音量加+.
-> Ctrl + \(SIGQUIT)音量加+V
-> 显示音量控制音量加+Q
-> 显示额外的按键视图
基本命令
Termux
除了支持apt
命令外,还在此基础上封装了pkg
命令,pkg
命令向下兼容apt
命令.apt
命令大家应该都比较熟悉了,这里直接简单的介绍下pkg
命令:
pkg search <query> 搜索包
pkg install <package> 安装包
pkg uninstall <package> 卸载包
pkg reinstall <package> 重新安装包
pkg update 更新源
pkg upgrade 升级软件包
pkg list-all 列出可供安装的所有包
pkg list-installed 列出已经安装的包
pkg shoe <package> 显示某个包的详细信息
pkg files <package> 显示某个包的相关文件夹路径
目录环境结构
~ > echo $HOME /data/data/com.termux/files/home ~ > echo $PREFIX /data/data/com.termux/files/usr ~ > echo $TMPPREFIX /data/data/com.termux/files/usr/tmp/zsh
长期使用Linux的朋友可能会发现,这个HOME路径看上去可能不太一样,为了方便,Termux
提供了一个特殊的环境变量:PREFIX
更换国内源
一键 更换Termux
清华大学源,加快软件包下载速度.
sed -i 's@https://termux.net@https://mirrors.tuna.tsinghua.edu.cn/termux@' $PREFIX/etc/apt/sources.list pkg up
手动
设置默认编辑器 export EDITOR=vi
编辑源文件 apt edit-sources
将原来的 https://termux.net 官方源替换为 http://mirrors.tuna.tsinghua.edu.cn/termux
在vi编辑器里,输入第一个i
进入编辑模式(插入),下面会给出提示“INSERT”,此时再打字就是在光标左边插入字符。等修改完毕后,按住音量上,同时输入e
,即可退出编辑模式。再输入:wq
保存并退出vi。
或者直接编辑源文件
上面是官方推荐的方法,其实还有更简单的方法,类似于Linux下直接去编辑源文件:
vi $PREFIX/etc/apt/sources.list
Termux优化
安装基本工具
pkg install vim curl wget git unzip unrar
添加一行导航栏
原本只有一行,连左右移动光标都没有
1 # 如果.termux目录不存在 请自己建立这个目录 2 mkdir .termux 3 # 写入: 4 vim ~/.termux/termux.properties 5 extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']] 6 # 保存并关闭 vim命令:“:wq” (去掉双引号),退出termux命令: exit ,重新打开
终端配色
主要使用了 zsh 来替代bash作为默认shell.使用一键安装脚本来安装,一步到位,顺便启动了外置存储,可以直接访问SD卡下的目录.
执行下面这个命令确保已经安装好了curl
pkg install curl sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
Android6.0以上会弹框确认是否授权,允许
授权后Termux
可以方便的访问SD卡文件.
脚本允许后先后有如下两个选项:
Enter a number, leave blank to not to change: 14 Enter a number, leave blank to not to change: 6
分别选择背景色
和字体
想要继续更改挑选配色的话,继续运行脚本来再次筛选:
$ ~/termux-ohmyzsh/install.sh
exit 重启sessions
会话生效配置
访问外置存储优化
执行过上面的zsh
一键配置脚本后,并且授予文件访问权限的话,会在家目录生成storage
目录,并且生成若干目录,软连接都指向外置存储卡的相应目录
oh my zsh主题配色
编辑.zshrc
配置文件
$ vim .zshrc
第一行可以看到,默认的主题是agnoster
主题:
在 .oh-my-zsh/themes 目录下放着 oh-my-zsh 所有的主题配置文件.
agnoster
robbyrussell
jaischeema
re5et
junkfood
cloud
random
当然如果你是个变态的话,可以尝试random
主题,每打开一个会话配色主题都是随机的.
ZSH_THEME="random"
修改启动问候语
默认的启动问候语如下:
这个对于初学者有一定的帮助在前期,随着对Termux
的熟悉,这个默认的问候语就会显得比较臃肿.
编辑问候语文件直接修改问候语:
1 vim $PREFIX/etc/motd
修改完的效果如下:
管理员身份
手机没有root
利用proot
工具来模拟某些需要root的环境
1 pkg install proot
然后终端下面输入:
1 termux-chroot
即可模拟root
环境
在这个proot
环境下面,相当于是进入了home
目录,可以很方便地进行一些配置.
手机已经root
安装tsu
,这是一个su
的termux版本,用来在termux上替代su
:
1 pkg install tsu
然后终端下面输入:
1 tsu
即可切换root
用户,这个时候会弹出root
授权提示,给予其root
权限,效果图如下:
信息安全
因为termux
可以很好的支持Python
,所以几乎所有用Python
编写的安全工具都是可以完美的运行使用的,总的来说可玩性还是比较高的。
Metasploit
安装Metasploit
Termux官方提供的自动话脚本安装方法如下:
1 cd ~ 2 pkg install wget 3 wget https://Auxilus.github.io/metasploit.sh 4 bash metasploit.sh
注 在x86平台下自动化安装失败,想在x86平台下安装的参考 官方的文档 手动去安装.
这个过程平均耗时大约3分钟左右(使用国内的清华源的情况下).
配置msf数据库缓存
意外发现数据库居然都配置好了,启动msfconsole会
自动连接数据库了.
接下来重建数据库缓存
1 msf > db_rebuild_cache
这个时候立刻去搜索发现缓存依然没有建立,只能使用慢速搜索,这里其实是这个缓存建立需要时间,只要稍微等待一下就可以了.
国光以前这里做过测试,缓存建立的平均时间是3分钟左右.
然后就可以实现msf
秒搜索的效果了,无需等待,感觉比电脑上还要快呐
Nmap
端口扫描必备工具
1 pkg install nmap
hydra
Hydra是著名的黑客组织THC的一款开源暴力破解工具这是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。
1 pkg install hydra
sslscan
SSLscan主要探测基于ssl的服务,如https。SSLscan是一款探测目标服务器所支持的SSL加密算法工具。
SSlscan的代码托管在Github
1 pkg install sslscan
whatportis
whatportis是一款可以通过服务查询默认端口,或者是通过端口查询默认服务的工具,简单易用。在渗透测试过程中,如果需要查询某个端口绑定什么服务器,或者某个应用绑定的默认端口,可以使用whatportis查询。
1 pip2 install whatportis
SQLmap
SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具 官方项目地址
直接git clone
源码
git clone https://github.com/sqlmapproject/sqlmap.git cd sqlmap python2 sqlmap.py
RouterSploit
RouteSploit框架是一款开源的路由器等嵌入式设备漏洞检测及利用框架。
1 pip2 install requests 2 git clone https://github.com/reverse-shell/routersploit 3 cd routersploit 4 python2 rsf.py
Slowloris
低带宽的DoS工具
1 git clone https://github.com/gkbrk/slowloris.git cd slowloris 2 chmod +x slowloris.py
RED_HAWK
一款采用PHP语言开发的多合一型渗透测试工具,它可以帮助我们完成信息采集、SQL漏洞扫描和资源爬取等任务。
1 pkg install php 2 git clone https://github.com/Tuhinshubhra/RED_HAWK.git cd RED_HAWK 3 php rhawk.php
Cupp
Cupp是一款用Python语言写成的可交互性的字典生成脚本。尤其适合社会工程学,当你收集到目标的具体信息后,你就可以通过这个工具来智能化生成关于目标的字典。
git clone https://github.com/Mebus/cupp.git cd cupp python2 cupp.py
Hash-Buster
Hash Buster是一个用python编写的在线破解Hash的脚本,官方说5秒内破解,速度实际测试还不错哦~
1 git clone https://github.com/UltimateHackers/Hash-Buster.git cd Hash-Buster 2 python2 hash.py
D-TECT
D-TECT是一个用Python编写的先进的渗透测试工具,
- wordpress用户名枚举
- 敏感文件检测
- 子域名爆破
- 端口扫描
- Wordperss扫描
- XSS扫描
- SQL注入扫描等
git clone https://github.com/shawarkhanethicalhacker/D-TECT.git cd D-TECT python2 d-tect.py
WPSeku
WPSeku 是一个用 Python 写的简单的 WordPress 漏洞扫描器,它可以被用来扫描本地以及远程安装的 WordPress 来找出安全问题。被评为2017年最受欢迎的十大开源黑客工具。
git clone https://github.com/m4ll0k/WPSeku.git cd WPSeku pip3 install -r requirements.txt python3 wpseku.py
XSStrike
XSStrike是一种先进的XSS检测工具。它具有强大的模糊测试引擎.
git clone https://github.com/m4ll0k/WPSeku.git cd WPSeku pip3 install -r requirements.txt python3 wpseku.py
小结
因为Termux完美的支持Python
和Perl
等语言,所以有太多优秀的信息安全工具值得大家去发现了,这里我就不一一列举了.
Python环境部署
安装python2.7
pkg install python2
安装完成后,使用python2
命令启动python 2.7.14
环境.
安装python3
pkg instll python
安装完成后,使用python
命令启动python 3.6.5
环境.
升级pip版本
python2 -m pip install --upgrade pip
python -m pip install --upgrade pip
这两条命令分别升级了 pip2 和 pip3 到最新版.
pip版本查看
ipython
ipython是一个python的交互式shell,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。先安装clang
,否则直接使用pip
安装ipython
会失败报错.
1 pkg install clang 2 pip install ipython 3 pip3.6 install ipython
然后分别使用ipython
和ipython2
进入py2
和py3
控制台:
编辑器
终端下有vim
神器,并且官方也已经封装了vim-python
,对vim
进行了Python相关的优化.
pkg install vim-python
解决termux下的vim汉字乱码
在home目录下,新建 .vimrc 文件
vim .vimrc
添加内容如下:
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 set enc=utf8 set fencs=utf8,gbk,gb2312,gb18030
然后source
下变量:
source .vimrc
效果图
php
termux
封装的php版本是php 7.2.5
安装PHP
pkg install php
查看下版本
自
PHP5.4
之后 PHP内置了一个Web 服务器,来在termux
下尝试下PHP Web Server的简单使.
编写测试文件
在家目录下建一个www
文件夹: mkdir www
在www
文件夹下新建一个index.php
文件,其内容为
<?php phpinfo();?>
启动WebServer
php -S 127.0.0.1:8080 -t www/
浏览器访问效果如下:
termux ssh 连接电脑
有时候要操作电脑,这个时候有了termux
,躺在床上就可以操作电脑了,岂不是美滋滋~~
安装openssh
pkg install openssh
然后就可以直接ssh连接你的电脑了
前提是电脑安装了ssh服务
$ ssh sqlsec@192.168.1.8
手机连接操作电脑效果图:
电脑ssh连接Termux
安装openssh
同样也需要openssh
才可以
pkg install openssh
启动sshd
安装完成后,sshd
服务默认没有启动,所以得手动启动下:
sshd
因为手机上面低的端口有安全限制,所以这里的openssh
默认的sshd
默认的服务是8022
端口上的.ssh
的用户名用whoami
命令看下.
可以看到sshd
启动后,端口才可以看到.
PC端生成公钥
ssh
登录是key公钥模式登录,首先在PC端生成秘钥:
sqlsec@ubuntu:-> ssh-keygen -t rsa
执行完成后,会在家目录下创建3个文件id_rsa
, id_rsa.pub
, known_hosts
拷贝公钥到手机
然后把公钥id_rsa.pub
拷贝到手机的data\data\com.termux\files\home\.ssh
文件夹中.
将公钥拷贝到验证文件中
在Termux
下操作
cat id_rsa.pub > authorized_keys
PC端连接手机termux
sqlsec@ubuntu-> ssh -p8022 u0_a119@192.168.1.3
效果图
pc端连接手机termux 真心鸡肋呀~(忍不住自己吐槽下自己
一些无聊的尝试
一些无聊有趣的版块,如果你是一个正经讲究人,可以跳过这个板块以节约你的阅读时间.
nyancat 彩虹猫
彩虹貓(英语:Nyan Cat)是在2011年4月上传在Youtube 的视频,并且迅速爆红于网络,並在2011年YouTube浏览量最高的视频中排名第五.
pkg install nyancat
nyancat
什么鬼~完全Get不到国外人的趣味点~
终端二维码
Linux 命令行下的二维码,主要核心是这个网址:http://qrenco.de/
echo "http://www.sqlsec.com" |curl -F-=\<- qrenco.de
如果你不嫌无聊的话还可以扫描这个二维码,然后就打开我的博客了.
终端地图
一个基于nodejs
编写的命令行下的地图.
npm install mapscii -g
mapscii
进入终端地图
操作方法
- 方向键 移动
a
和z
键 放大缩小q
键 退出
终端下的地图!讲究人~ 如果你足够无聊的话,还可以尝试能不能在这个地图上找到自己所在的位置.
安装Linux
甚至还可以在Termux
里面在安装其他的Linux
发行版.
由于本文篇幅已经过长了,这里不在叙述了,感兴趣,能折腾的自己去找一些资料.下面列出目前网友们用Termux
可以成功安装的发行版:
- Ubuntu
- Arch
- Fedora
- Kali Nethunter
Ubuntu
Fedora
内网穿透
使用ngrok
或者frp
可以将Termux
上面搭建的网站映射到外网上去,手机建站
也不是不可能了.
Python Jupyter Notebook
Jupyter notebook(又称IPython notebook),支持运行超过40种编程语言。Python的一个强大的模块,成功安装的话可以实现比caddy
的效果,支持web
下的终端操作,支持代码高亮运行.由于这里需要安装大量文件,加上用户需求比较少,这一块感兴趣的话可以自己去探索.
总结
相对来说 国外的Termux DIY的氛围比国内好很多,Youtube上的视频都有很高的播放量:
参考资料来源:
[1] 国光
[2] Termux官方网站
[3] 清华大学开源软件镜像站