CTF工具安装

在线工具收集

离线方式安装python第三方包

  1. 安装setuptools 离线安装:安装包上传至Linux系统 在线安装:wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python setup.py build
python setup.py install
  1. 安装pip3 离线安装:安装包上传至Linux系统
tar -xf 文件名
cd 进入解压文件

sudo python3 setup.py install
  1. 安装其它第三方包
上传离线安装wheel包
pip3 install xxx.whl

Crypto工具

python3安装Crypto模块

建议用python3.7及以上的Python版本 pip install pycryptodome

gmpy2

Mac OS 直接安装 pip3 install gmpy2 会报错,解决方式如下:

brew install libmpc pip3 install gmpy2

采用brew进行安装的时候会自动安装mpfr和gmpy

安装好了后,查了下libmpc mpfr是什么:

libmpc是一个C库,用于复数的算术,具有任意高的精度和正确的舍入结果。 它将固定精度实数浮点数的IEEE-754标准的原则扩展为复数,为每个操作提供明确的语义。 同时,高精度的操作速度是主要的设计目标。

MPFR库是一个C库,用于具有正确舍入的多精度浮点计算。

pwntools

pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple

比如这个报错:

pwnlib.exception.PwnlibException: Could not find 'objcopy' installed for ContextType()
Try installing binutils for this architecture:
https://docs.pwntools.com/en/stable/install/binutils.html

Mac OS 只这样安装完有问题,还要安装 binutils

pwndbg

Linux安装

参考这里: https://github.com/pwndbg/pwndbg

git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh

Mac安装

因为Mac系统基于Unix内核,这样安装会有问题,不能成功,所以在Mac OS上安装pwndbg的推荐方式是Docker安装(对于搭建渗透测试环境来说,Docker是个神器)

➜  [/Users/TesterCC] docker search pwndbg
NAME                              DESCRIPTION                  STARS               OFFICIAL            AUTOMATED
jthorpe6/pwndbg                                                0
disconnect3d/pwndbg                                            0
shangkuei/pwndbg                                               0
lxzmads/pwndbgenv                                              0
equation314/pwndbg_qemu_emulate                                0
johnee/pwndbg                                                  0
beswing/ubuntu-17.10-for-pwn      CTF Pwn , Pwntools, pwndbg   0

一般来说Docker image选用STARS数最多的。

试试docker search vulhub,有不少好用的镜像。

具体步骤:

1.拉取镜像
docker pull jthorpe6/pwndbg

2.用pwndbg调试程序
举例:目标程序 crackme 文件放在 /Users/TesterCC/Desktop 下,要将这个目录和Docker中的/tmp/目录映射。 实际/tmp/crackme 访问的是 /Users/TesterCC/Desktop/crackme

docker run -it --privileged -v /Users/TesterCC/Desktop:/tmp/ jthorpe6/pwndbg /tmp/crackme


3.Docker交互式启动container 

给Docker中的代码调试时经常使用。

docker run -it container_id /bin/bash

vulhub

构建环境

git clone git@github.com:vulhub/vulhub.git

# Enter the directory of vulnerability/environment
cd flask/ssti

# Compile environment
docker-compose build

# Run environment
docker-compose up -d

删除容器

进入对应目录 docker-compose down -v

注意这样只是删除docker容器,如果要删除镜像,还是用通过docker imagesdocker rmi xxx来删除docker镜像。