前言
在Ubuntu实践Github上几种热门的密码学工具,帮助CTFer有效实战。
Ubuntu
本文Ubuntu版本22.04,默认python版本3.10,自带openssl
Ubuntu22.04多个python版本切换
某些工具,比如ciphey,不能在python3.10上使用,所以需要在ubuntu内置多个python版本切换使用。
本文采用annaconda来管理python版本。
#创建虚拟环境,envx.x(虚拟环境名称)
conda create -n envx.x python=X.X(3.6、3.7等)
'''
如出现 WARNING: A newer version of conda exists.
则输入以下命令
conda clean --packages --tarballs #清除conda
conda update --all #更新conda
创建过程中出现 Proceed ([y]/n)?
即:是否确认将默认环境的包导入进虚拟环境中
'''
#激活虚拟环境
source activate envx.x
#退出虚拟环境
source deactivate envx.x
#删除虚拟环境
conda remove -n envx.x --all
#查看安装了哪些包
conda list
'''
可以在已激活的虚拟环境中安装一个包并查看,退出环境后,
再次查看默认环境的包,自行对比确认虚拟环境创建完成
'''
#查看当前存在哪些虚拟环境
conda env list
Sagemath
Sage基于并使用Python,Python程序可以在Sage中直接运行,也可以在Sage中使用Python的各种库。sage是Crypto学习者的利器。
安装
打开software即可安装。
但这里还是有换源的问题。
笔者这里因为网速还ok,一直用的官方自带cn源。
在这里换源尝试一下
sudo apt update
sudo apt upgrade
即可安装成功
①
在Ubuntu里打开后会自动在本地搭建一个Jupyter Notebook,自动弹出浏览器访问,本地访问对应的url。
可以直接打开对应sage或者python脚本进行编辑,但是不能运行。可以new一个python3或者sage的notebook来编写、调试、运行代码。
也可以在此处下载包。
②
在terminal运行脚本
sage xxx.py
③
将sage导入python脚本
可以在Python脚本中将Sage作为库导入。
注意:需要使用与Sage捆绑的Python版本(当前为python3.10.6)运行该Python脚本。要导入Sage,需要在Python脚本中添加以下内容:
from sage.all import *
若想运行脚本,
如②中python hi.sage.py
运行报错,但python hi.sage
可以运行
# This file was *autogenerated* from the file hi.sage
from sage.all_cmdline import * # import sage library
print('hi')
需要使用该选项调用Sage -python 它将使用Sage附带的Python版本运行脚本。
例如,如果Sage在你的 PATH 变量,则可以执行以下操作:
sage -python /path/to/my/script.py
另一种方法是编写Sage脚本并使用Sage本身运行该脚本。Sage脚本具有文件扩展名 .sage 和或多或少是一个Python脚本,但使用Sage特定的函数和命令。然后可以运行Sage脚本,如下所示:
sage /path/to/my/script.sage
这将负责加载必要的环境变量和默认导入。
Ciphey
自动化大量解密和解码的工具,例如多个基本编码,经典密码,哈希或更高级的加密,同时也支持自定义算法。据说比cyberchef更强。
日常在CTF中,偶尔会碰到一些不能一眼看出编码规则的字符串,这些字符串的编码规则或许并不复杂,但由于有限的知识面和脑洞并不能马上解码,严重影响效率。
安装过程中需要注意此工具对python版本的要求。
安装完成后,开箱即用
1.文件输入ciphey -f encrypted.txt
2.非限定输入ciphey -- "Encrypted input"
3.正常方式ciphey -t "Encrypted input"