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. 做一个U盘的学习路线

    最近想研究一个U盘,然后顺便熟悉一下USB协议.因为USB协议比较复杂, 常用的复杂外设除了WiFi,Ethernet,SDIO和USB这些就是USB了,学习USB的时候肯定要拿一个东西下手,所以简单 ...

  2. 关于web桌面应用的集成解决方案

    背景 毫无疑问,面对一个新的项目需求,我们首先想到的就是web. 确实,web太方便了,基于浏览器对OS的适配,我们可以很快速的实现某个需求的页面UI,而无需考虑OS的兼容差异. 再经过jq.boot ...

  3. 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 百篇博客分析OpenHarmony源码 | v36.04

    百篇博客系列篇.本篇为: v36.xx 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CP ...

  4. Redis之品鉴之旅(一)

    Redis之品鉴之旅(一) 好知识就如好酒,需要我们坐下来,静静的慢慢的去品鉴.Redis作为主流nosql数据库,在提升性能的方面是不可或缺的.下面就拿好小板凳,我们慢慢的来一一品鉴. 1)redi ...

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

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

  6. 讲师征集| .NET Conf China 2021正式启动

    最近社区小伙伴们一直在为11月即将在武汉举办的 第三届.NET中国峰会而忙碌,社区活动官网设计和开发工作还在进行,我们在国庆节的前一天晚上向社区正式启动了活动的序幕,也就是我们确定好了举办地点.时间, ...

  7. mysql通过logstash同步数据到es

    大小写问题很严重 input 1.statement:mysql的连接使用 jdk版本有强要求 2.jdbc_driver_library:jar包的版本有对应要求 3.jdbc_driver_cla ...

  8. nginx禁止IP访问系统

    server { listen 80 default; server_name _; if ($host ~ "\d+\.\d+\.\d+\.\d") { return 404; ...

  9. 15-ThreadLocalRandom类剖析

    ThraedLocalRandom类是JDK7在JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷. Random类及其缺陷 下面看一下java.util.Random的使用方法. ...

  10. 微信小程序_快速入门01

    这段时间,嗯,大四课程已经结束了,工作也已经找到了,但是呢,到公司报道的时间还没到,哈哈,马上就开始人生的第一份工作了,怎么说确实有点期待~ 在这段时间一方面为第一份工作做各种准备,另一方面也没有停止 ...