Android应用神器:高级终端Termux

时间:2024-03-10 15:12:11

 注:本文几乎照搬国光大佬的博客,此文仅作为笔记,且不完整。建议点击连接直达国光博客


 

简介

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运行基于文本的游戏。

 下载

Google Play

F-droid

酷安

软件截图

安装后界面

基本操作

长按屏幕  出现菜单

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目录,可以很方便地进行一些配置.


在管理员身份下,输入 exit 可回到普通用户身份。

手机已经root

安装tsu,这是一个su的termux版本,用来在termux上替代su:

1 pkg install tsu

然后终端下面输入:

1 tsu

即可切换root用户,这个时候会弹出root授权提示,给予其root权限,效果图如下:


在管理员身份下,输入 exit 可回到普通用户身份。

信息安全

因为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完美的支持PythonPerl等语言,所以有太多优秀的信息安全工具值得大家去发现了,这里我就不一一列举了.

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 

然后分别使用ipythonipython2进入py2py3控制台:

编辑器

终端下有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_rsaid_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

进入终端地图


操作方法

 

  • 方向键 移动
  • az键 放大缩小
  • 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] 清华大学开源软件镜像站