PWN环境搭建

本教程主要参考PWN虚拟机配置Linux Pwn入门教程-----环境配置星盟安全 PWN系列教程 PWN环境配置

需要的工具或系统

如何安装VM虚拟机,虚拟机如何安装kali系统,这里就不再介绍,读者可自行通过搜索引擎查找相关资料,这里主要记录下kali安装相关pwn工具的过程。

安装PWN工具

pwntools (CTF库、漏洞利用库)

#提前安装pip
sudo apt-get install python3-pip
#安装pwntools
pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple

pwngdb(GDB插件)

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

checksec(查保护)

安装完pwntools后,checksec会自动被安装上,此工具主要用来查程序保护。

checksec hackpwn

ROPGadget(二进制文件查找工具)

sudo pip install capstone
git clone https://github.com/JonathanSalwan/ROPgadget.git
cd ROPgadget
sudo python3 setup.py install

安装后运行ROPgadget会报错,然后按照此文章的方法解决即可https://blog.csdn.net/weixin_44061097/article/details/103133240

one_gadget(libc查找one gadget最佳RCE工具)

最开始按照https://www.yuque.com/hxfqg9/bin/hg3qeh 教程安装此工具遇到些坑,主要是因为ruby版本引起的,教程中是如下方式安装:

sudo apt-get install ruby -y
sudo apt-get install gem -y
sudo gem install one_gadget

但是用此方法安装one_gadget会报错,会显示one_gadget安装失败,解决办法是手动编译源码安装最新ruby 3.0版.

wget https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.2.tar.gz
tar -zxvf ruby-3.0.2.tar.gz
cd ruby-3.0.2
sudo ./configure
sudo make
sudo make install

make成功后应该是这种效果。

运行one_gadget命令

one_gadget /lib/x86_64-linux-gnu/libc.so.6

安装32位的库

在kali下安装lib32ncurses5会发现找不到包,需要将其改成lib32ncurses5-dev

sudo apt-get install lib32ncurses5-dev
sudo apt-get install lib32z1

LibcSearcher(清华大佬写的工具 获取libc对应版本和地址)

因为工具长久没有维护,也可用此在线网站工具https://libc.blukat.me/

git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop

git clone时候报错了。

发现是系统时间不正确,然后就找了资料同步了网络时间https://www.freesion.com/article/71991435396/,之后发现还是报错!后面又根据一篇文章说是要编译一个openssl版libcurl依赖的git才行,后面编译出来后还是报错,裂开了。

最后发现是macOS VMware的坑,要把桥接改成NAT共享模式并且修改DNS为114.114.114.114后就可以了。

main_arena_offset(用来计算 main_arena 的偏移)

这是一个bash脚本直接用就行。

git clone https://github.com/bash-c/main_arena_offset.git
cd main_arena_offset
./main_arena /lib/x86_64-linux-gnu/libc.so.6

也可以用dev2ero封装的py_main_arena_offsetpy模块来计算main_arena的偏移。

from pymao import *
libc = "/lib/x86_64-linux-gnu/libc.so.6"
main_arena_offset = gmao(blic)
main_arena_offset

seccomp-tools(用来读取seccomp沙箱规则)

docker版pwn环境

如果怕麻烦的话可以直接用大神们打包好的docker版的pwn环境,skysider/pwndocker

命令行:

docker run -d \
--rm \
-h ${ctf_name} \
--name ${ctf_name} \
-v $(pwd)/${ctf_name}:/ctf/work \
-p 23946:23946 \
--cap-add=SYS_PTRACE \
skysider/pwndocker
docker exec -it ${ctf_name} /bin/bash

具体使用方法如下:

打开你的终端,然后比如你今天要打buuctf,那么在终端输入ctf_name=buuctf,然后再输入上面的命令行,并且此时你终端当前目录会多出一个buuctf的目录,你可以把pwn文件放进去这样就能同步到docker里面。

最后欢迎各位大佬加群学习交流PWN技术、或者re

PWN环境搭建的更多相关文章

  1. [零基础学IoT Pwn] 环境搭建

    [零基础学IoT Pwn] 环境搭建 0x00 前言 这里指的零基础其实是我们在实战中遇到一些基础问题,再相应的去补充学习理论知识,这样起码不会枯燥. 本系列主要是利用网上已知的IoT设备(路由器)漏 ...

  2. 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...

  3. Ubuntu22.04搭建PWN环境

    前言 最近尝试在Ubuntu最新的版本22.04版本上搭建PWN环境,有了之前在kali上搭建的经验,总的来说问题不大.但搭建的时候还是有不少地方出错了,好在搭建的过程中不断的拍摄快照,所以整个过程还 ...

  4. kali2021.4a搭建pwn环境

    最近电脑重装系统(吐槽一下,win11真的一言难尽),顺便在虚拟机装了最新版本的KaliLinux,顺带着搭建一下PWN环境.总的来说这次搭建PWN环境问题不大,按照之前安装的步骤,整个过程还算是比较 ...

  5. arm64 调试环境搭建及 ROP 实战

    前言 比赛的一个 arm 64 位的 pwn 题,通过这个题实践了 arm 64 下的 rop 以及调试环境搭建的方式. 题目文件 https://gitee.com/hac425/blog_data ...

  6. Deepin Pwn环境的配置

    要学习Pwn  Pwn环境那是必不可少滴! 我是新手,我也弄了好久,这里把经验分享给大家!这里感谢I春秋的"知世"老师的脚本!虽然写的不是很完美.还得我自己动手修改!PS:http ...

  7. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  8. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  9. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

随机推荐

  1. Sentry 监控 - Security Policy 安全策略报告

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  2. win10系统git的安装与使用命令

    一.git简介 git是一个开源的分布式版本控制系统,可以高效的进行项目版本管理.分布式相比集中式最大的区别在于:分布式开发者可以提交到本地,每个开发者通过克隆在本地机器上拷贝一个完整的git仓库. ...

  3. linux 上添加多个jdk

    1. 首先将你需要上传的jdk 上传并解压 2.你可以自定义解压的路径 3. alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_ ...

  4. P5748-集合划分计数【EGF,多项式exp】

    正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将\(n\)的排列分成若干个无序非空集合的方案. 输出答案对\(998244353\)取模. ...

  5. 基于预计算的全局光照(Global Illumination Based On Precomputation)

    目录 基于图像的光照(Image Based Lighting,IBL) The Split Sum Approximation 过滤环境贴图 预计算BRDF积分 预计算辐射度传输(Precomput ...

  6. 【Go】Golang实现gRPC的Proxy的原理

    背景 gRPC是Google开始的一个RPC服务框架, 是英文全名为Google Remote Procedure Call的简称. 广泛的应用在有RPC场景的业务系统中,一些架构中将gRPC请求都经 ...

  7. 三千字介绍Redis主从+哨兵+集群

    一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...

  8. 【Golang】三个点(...)用法

    众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办? 这里的三个点(-),就给我们编程人员带来很大的灵活性,具体如下 在Golang中,三个点一共会用在四个地方(话说三个点 ...

  9. AtCoder Beginner Contest 221 A~E题解

    目录 A - Seismic magnitude scales B - typo C - Select Mul D - Online games E - LEQ 发挥比较好的一场,就来搓篇题解. F ...

  10. 数值计算:Legendre多项式

    Legendre多项式的概念以及正交特性在此不多作描述,可以参考数学物理方程相关教材,本文主要讨论在数值计算中对于Legendre多项式以及其导数的计算方法. Legendre多项式的计算 递推公式 ...