(一)——如何用安卓手机优雅地写Python
一款很牛逼的神器——Termux。
一、关于Termux
(一)特性
1.类型
这是一款大小只有几百K的apk,安装后可以在Android手机上搭建一个完整的Linux环境。
2.工作方式
命令行,乍看之下很不友好,实则提供了很多隐藏的功能,实际上手之后非常好用。
3.关于软件源
Termux有官方的软件源,网速挺快,与Linux软件源保持同步。
4.关于root
无需root!无需root!无需root!不需要root权限Termux就可以正常运行,不过需求多的用户能root自然是最好了,很多需要root权限的命令就可以执行了,包括文件管理上也会很方便。
5.可拓展性
很强,挖个坑,以后介绍。
(二)安装与配置
我的设备:OnePlus6,系统Android 8.1.0
1.安装
推荐在官方途径下载,这里放上官网:
https://termux.com
你也可以直接百度搜索Termux,请自行辨别备选链接。
官网提供了两种下载方式,Google Play不会翻墙或者手机Google框架不完整的话还是不要使用了,强烈建议选择在F-Droid(也是一个软件商店,不过很干净)搜索下载,选择“Termux Terminal emulator with packages”,当前版本是0.60,更新于四个月前(2018年年初),更新得很新了。
下载完成后直接安装即可。
2.配置Python运行环境
打开之后就是很高(zhuang)端(bi)的命令行界面了,接下来我们按照下面的步骤进行环境配置(摸索了很久总结出的血泪教训。。T_T)。
(1)更新包
Linux用户应该很熟悉了:
apt update
apt upgrade
(2)安装Python
这里我们把Python2和Python3都装上(听我的不会错):
apt install python python-dev python2 python2-dev
不加版本号的python是指Python3。
到这里,Python就可以正常使用了,可以分别输入
python —version
python2 —version
来验证是否安装成功(注意version前是两根短横线)。
接下来我们就可以写第一个python程序啦!
输入python,回车,开始写代码:
EZ
分割线头疼预警!!!
(3)安装其他(进阶用户使用)
•clang和g++——这两个不是Python模块,是编译器,下面的安装有些需要用到。(g++需要的时间挺久,下载包就有200M+)
apt install clang
apt install g++
•lxml——比标准库里xml模块性能更强大的xml处理模块
这个模块依赖的包很多,需要先安装:
apt install libcrypt libcrypt-dev
apt install libxml2 libxml2-dev libxslt libxslt-dev python-libxml2 python-libxslt
还需要安装pip(不然执行不了pip命令):
apt install pip
接下来就可以安装了:
pip install lxml
•scrapy——专业爬虫库,依赖于lxml
先安装依赖项:
apt install openssl openssl-tool openssl-dev libffi libffi-dev
再安装:
pip install scrapy
•BeautifulSoup4——专业爬虫库
pip install BeautifulSoup4
pip install requests
•numpy——数学计算库
LDFLAGS=“-lm -lcompiler_rt” pip install numpy
•matplotlib——绘图模块
LDFLAGS=“-lm -lcompiler_rt” pip install matplotlib
•pandas——数据分析模块
LDFLAGS=“-lm -lcompiler_rt” pip install pandas
•Jupyter Notebook——超级好用的交互式记事本,下一篇会重点谈,和iPython公用内核,建议用这个
LDFLAGS=“-lm -lcompiler_rt” pip install jupyter
•demjson——json处理库
pip install demjson
常用的模块也就是这些了,其他的模块可以在需要的时候再进行安装。
之后就是自由发挥的时候了。
(二)——如何用安卓手机舒服地写Python
用惯了windows和图形化界面的大家,或多或少对命令行有些抵触,有没有好的解决方案呢?先看看在Termux上写Python是种怎样的体验吧。
一、Python shell交互模式体验
在命令行中输入python按回车即可进入python原生的交互模式。
交互模式以 >>> 开头,用户可以直接输入代码,回车后程序执行代码,如:
退出交互模式可输入
exit()
或
quit()
交互模式可以一行行执行代码,也可以直接粘贴代码块,不过需要注意缩进。
体验了一段时间之后,发现确实不适合长时间写代码,总结缺点如下:
1.黑底白字很刺眼,长时间看容易眼疲劳,伤眼(颜色可以修改,以后会介绍);
2.操作不易:
我们可以通过右滑屏幕左边呼出Termux的功能菜单,里面只有KEYBOARD和NEW SESSION两个功能和会话列表,长按KEYBOARD可以呼出隐藏的功能键盘,包含手机软键盘没有的功能键,比如tab、ctrl、shift、tab等,还有三种常用的线,如下图:
如此这般操作起来就很难受了,比如你输入了很长一串语句,突然发现前面的部分需要修改,你就得按住ctrl和b键,修改完之后,又得ctrl加f往后移动光标,大概修改了几次之后耐心就会被消磨的差不多了。
好在Termux提供了一个输入框,功能键盘向左滑动就可以看到,在这里面就可以通过点击来定位光标,不过输入框为单行,依然很不方便。
3.代码管理不方便,文件操作复杂,这两点就不说了,用过自然知道。
二、Jupyter的使用方法
那么有没有什么好的方案呢?当然是有的,下面给大家隆重介绍上一篇中提过的一个模块——Jupyter,先看看效果怎么样。
看见没!甚至可以画图!
如果依照上篇中的步骤操作的话,执行完
LDFLAGS=“-lm -lcompiler_rt” pip install jupyter
这条语句之后,你就已经成功安装Jupyter了,下面介绍使用方法。
执行语句:
jupyter notebook -ip 0.0.0.0
看到上面的输出就代表已经成功搭建好基于网页的开发环境,第一次运行时,网址后会有一串token,用于验证身份,我们不用管,直接将整个网址复制进浏览器中,如果还要求输入token,可以按照提示把token手动复制进网页,接下来你可以设置密码,以后再次进入就不需要再验证了。
以上是理想情况,我在手机上登录该网页时就碰到了这种情况。
原因还未知,暂且认为本机在解析这个地址时出现问题了吧,那问题怎么解决呢?
接着我想到了一个解决方案,不仅能解决这个问题,还可以把我们用于编程的设备变得更顺手!
思路就是把安装了Jupyter的手机和其他设备(比如平板电脑)置于同一局域网中,然后通过该设备访问该页面。
置于同一局域网可以通过连接同一路由器,或者用手机开启无线网络热点,其他设备接入该网络。我以手机开热点为例。
完成后,在命令行输入ifconfig查看手机IP地址,不过输出挺多看着挺烦,简单点就是在平板上的设置里查看Wi-Fi的信息:
其中的路由器地址就是手机在局域网中的IP地址,如果是连接的同一个路由器的情况,则可以通过在手机端查看Wi-Fi设置,找到本机IP地址。
接下来在平板的浏览器中输入:
比如
接下来就成功进入网页了,为加上token的话需要按照要求填入,然后设置密码,接下来就可以舒服地写代码了!
Jupyter分为三个部分,一个是文件管理(可以上传文件),一个是正在运行,包括正在运行的终端和记事本,还有一个用于启用和设置运算集群的引擎数,我们暂时用不到(其实我也不会用QAQ)。
接下来我们新建一个Python3,可以看到如下界面,接下来我们就可以像在各种现代化的(雾)IDE里面一样编程啦,可以正常换行,每个输入框可以放置若干行代码,一般一个整体放在一起,看个人喜好了,点击run可以运行该部分代码,还可以终止或者重启内核,大家可以自行摸索,总之用起来舒服多啦!
举个例子:
为什么又是Hello world!难道作者你只会这个吗???
你不懂,我试试新的开发环境就是喜欢Hello world!
这个系列只负责介绍,高级一点的可以以后再交流嘛,只要你有想法和思路,以后有意思的事可多了,比如这个:
你怕不怕?
(三)——如何用安卓手机Hacking世界
2014年,Offensive Security团队发布了第一个版本的Kali Linux,这是一个基于Linux,面向专业渗透测试和安全审计(可以理解为黑客专用)的系统,预装了大量用于渗透的软件,从信息收集到提权一应俱全,经过本人的亲身体验,功能确实十分强大。
(图片来自Kali官网)
那么试想一下,如果这么强大的系统可以移植到手机上,岂不是很牛逼?
这一点当然早就被人想到了,还是Offensive Security团队,发布了Kali Nethunter,基于原生Android系统,可以安装到手机和平板上,移植了PC版本的绝大多数功能,把Pocket Hacking变为现实。本人在闲置的Nexus系列平板上尝试过,接上外接无线网卡可以轻易渗透无线网络,使用公共无线网的小伙伴们可得注意了。
(图片来自Nethunter官网)
但是如果要刷Kali的话,移动设备基本就只好专门用来做渗透测试了,倒也可以在Linux Deploy上安装Kali,不过对于爱好者来说可能不太友好,对知识体系的要求高了很多,那基于Termux呢?
既然是个Linux,只要在手机上适当配置,也可以实现Pocket Hacking的目标吧!
答案是肯定的,甚至Termux的官网上也给出了专门的Termux Hacking页面,指引在Termux下配置渗透工具。
下面讲讲几个非常经典、功能强大的安全软件在Termux下的安装,至于其他软件和这些软件的使用方法,在此就不做讨论了。
一、Hydra
一个经典的密码爆破软件,安装命令很简单:
pkg install hydra
安装完成后,配合密码本或者密码生成的命令就可以使用了。
二、Metasploit Framework
一款十分经典的开源安全漏洞检测工具,可以用来发现漏洞、利用漏洞,有强大的漏洞库,可以生成想要的payload,配合nmap可以囊括从开始扫描直到提权的所有要求。
官网提供了两种安装方法,手动方式我翻了一下,果断翻回自动方式,毕竟方便多了:
cd $HOME
pkg install wget
wgethttps://Auxilus.github.io/metasploit.sh
bash metasploit.sh
第一行用于切换到安装目录,可以根据需求自己选择,第二行安装wget,是个命令行下的下载工具,第三行下载用于自动安装Metasploit的批处理文件,第四行bash执行批处理脚本,接下来等待就行了。(按照官网的说法,只要没有红色的报警提示,就是安装成功了,Good luck~)
安装完成后,使用命令
./msfconsole
就可以运行Metasploit了。
(这个载入图居然还有黑客帝国的梗~)
三、Nmap
一款非常经典的端口扫描工具,安装命令也非常简单:
pkg install nmap
使用也不介绍了,不过提醒一下,有些功能比如操作系统指纹识别需要root权限。
四、sqlmap
一款特别经典的sql注入工具,这个需要python2才能运行,安装命令如下:
git clonehttps://github.com/sqlmapproject/sqlmap.git
通过cd进入sqlmap路径之后,使用如下命令进入sqlmap:
python2 sqlmap.py
这样还是比较麻烦的,我们可以直接定义一个名为sqlmap的命令,以后使用的时候直接输入sqlmap后接参数就行了。
通过vim编辑profile文件添加命令,这个文件在termux中不一样,路径如下:
/usr/etc/profile
使用vim编辑该文件
vim profile
如果没有安装vim,通过命令
apt install vim
来安装vim。
在文件最后添加以下内容:
alias sqlmap=“python2 /sql的绝对路径/sqlmap.py”
就可以在任意路径使用sqlmap直接代替那一串啦!
五、RouterSploit
这是一个还算经典的路由器漏洞利用工具,需要python3,安装命令如下:
git clonehttps://github.com/reverse-shell/routersploit
使用和Sqlmap类似,进入routersploit路径后执行:
python rsf.py
注意,此处不是python2。也可以通过相同的方法定义命令,前面的Metasploit也是如此。
六、关于root权限的使用
如果想要更好的配合root权限使用Termux,可以使用termux-sudo,为命令提供root权限,安装命令如下:
git clonehttps://gitlab.com/st42/termux-sudo.git
然后进入路径,执行以下命令将其复制到bin目录:
cat sudo > /data/data/com.termux/files/usr/bin/sudo
chmod 700 /data/data/com.termux/files/usr/bin/sudo
之后就可以通过
sudo
来执行需要root权限的命令。
又到了自由发挥的时候啦,Termux系列到此结束啦(可拓展性由于缺乏硬件就不谈了)~
最后请各位注意
在探索发现的过程中
千万不要在违法的边缘试探哦~
妮可妮可妮~
- 发表于: 2018-06-13