ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

基于Ubuntu搭建Pwn调试环境

2022-05-18 19:02:26  阅读:340  来源: 互联网

标签:gcc root Ubuntu apt tools linux Pwn 安装 调试


Pwn环境配置

本文演示使用干净的Vmware下安装的的 Ubuntu 18.04 LTS镜像 配置以下Pwn环境:

  • OS(系统)配置
    • VMware Tools
    • net-tools
    • open-vm-tools
    • 更换软件源
    • vim
    • 开启root账户权限
  • 其它环境配置
    • git
    • gcc
    • python3-pip
    • python3
    • qemu
    • gdb-multiarch
  • Pwn工具
    • pwn-tools
    • pwndbg、peda、gef
    • seccomp-tools
    • LibcSearcher
    • patchelf
    • ARM PWN
      • gcc-arm-linux-gnueabi
      • gcc-aarch64-linux-gnu
    • MIPS PWN
      • gcc-mips-linux-gnu
      • gcc-mipsel-linux-gnu
      • gcc-mips64-linux-gnuabi64
      • gcc-mips64el-linux-gnuabi64

为了一些命令可以让大家通用,所以都会加上sudo等权限语句,这样即便你不使用root账户或挑选任何一个小节直接观看和执行命令都是没有问题的

Ubuntu 18.04是一个常用的版本,即便是更高的版本以下安装方式都是可用的。

我当前用的是Ubuntu18.04.6目前使用的是glibc2.27版本,还是主流的PWN Pwn题中的版本,所以选了这个

# 查看glibc版本
ldd --version

image-20220518105246251

Ubuntu OS配置

需要下载操作系统和虚拟机的小伙伴一定要认准官网啊,毕竟大家可是搞安全的,要专业!(๑•̀ㅂ•́)و✧

Ubuntu官网:https://ubuntu.com/

VMware Workstation:https://www.vmware.com/

安装Vmware Tools

VMware Tools是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。

选中当前操Ubuntu虚拟机,点击菜单栏虚拟机-> 安装 Vmware Tools

image-20220517155818188

然后打开一个终端,将当前用户临时切换为root账户

# 临时切换root用户权限
sudo su

# vmware-tools被放在/media/用户/VMware Tools目录下,使用命令将其进行解压,然后输出到/tmp目录下,因为media目录下是只读的
tar -zxvf /media/用户名/VMware\ Tools/VMwareTools-xx.x.xx-xxxxx.tar.gz -C /tmp

image-20220517162616646

# 切换到解压后的vmware-tools目录下
cd /tmp/vmware-tools-distrib/

# 执行vmware-install.pl文件
./vmware-install.pl

# 提示是否要安装open-vm-tools[Do you still want to proceed with this installation?] 这里选择yes
yes
# 安装完成后重启系统
reboot

image-20220517163335776

安装net-tools

Linux网络基础工具。构成Linux操作系统NET-3网络分布的基础程序集。

net-tools提供了基本的网络相关操作,如ifconfig,而Ubuntu默认没有安装net-tools,所以这里安装一下

# 临时切换到root权限
sudo su

# 更新软件索引并安装net-tools工具
apt update && apt install net-tools

image-20220517170528043

安装完成后,可以执行一下ifconfig命令来验证是否安装成功

image-20220517170740678

安装open-vm-tools

open-vm-tools 是VMwareTools 的开源实现,由一套虚拟化实用程序组成,这些程序可增强虚拟机在 VMware 环境中的功能。

open-vm-tools提供VMware 虚拟机文件复制、复制粘贴功能

# 更新软件索引并移除系统中安装过的open-vm-tools
sudo apt update && apt autoremove open-vm-tools

# 安装open-vm-tools --安装过程中一路默认回车即可
sudo apt install open-vm-tools-desktop

# 安装完成后,重启系统
reboot

image-20220517171136138

重启后,可自由 宿主机<->虚拟机 拖拽文件、复制粘贴等快捷键

image-20220517164400402

替换软件源

软件源是指linux系统在线安装的软件包的来源,是操作系统官方发布的软件安装包的一个集合,即应用程序安装仓库。

这里官方源真的太慢了老是安装软件失败,还是换成阿里云的Ubuntu软件源吧

# 临时切换root权限
sudo su 

# 备份apt软件源
cp /etc/apt/sources.list /etc/apt/sources.list.old

# 编辑sources.list文件
vi /etc/apt/sources.list

image-20220517171927662

命令模式下使用dG即可清空文件中的所有内容,然后将以下内容复制到vi中,Ubuntu中粘贴快捷键为ctrl + shift + v

#  阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

然后使用:wq进行保存并退出操作

# 执行该命令验证一下源更换是否成功
apt update

image-20220517172348157

可以看到包含阿里云的地址,表示更换源成功

安装vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。

Ubuntu系统默认带了vi编辑器,但是vim更好用所以安装vim

# 临时切换到root权限
sudo su

# 安装
apt update && apt install vim

image-20220517172729392

选择Y即可

开启root账户

Root,也称为根用户,是Unix(如Solaris、AIX、BSD)和类UNIX系统(如Linux、QNX等),及Android和iOS移动设备系统中的唯一的超级用户,

开启Ubuntu root权限 -> Ubuntu默认禁用root账户,只能临时使用root权限,这样不方便我们个人使用所以开启root账户

首先重置root密码

# 重置root账户密码
sudo passwd root

# 输入当前用户密码
# [sudo] password for xxx:
# 输入要设置的root账户密码
# Enter new UNIX password:
# 重新输入root账户密码
# Retype new UNIX password:

image-20220517154004294

提示passwd: password updated successfully 表示密码修改完成

打开/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf文件,文件末尾增加两行:

# 临时切换root权限
sudo su

# 使用vim编辑器打开该文件
vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

# 将以下内容追加到文件中
greeter-show-manual-login=true
all-guest=false

image-20220517173811667

然后:wq 退出即可

# 编辑gdm-autologin文件 然后把标红的那一行注释掉
vim /etc/pam.d/gdm-autologin

image-20220517174123656

然后:wq保存退出即可

# 编辑gdm-password 然后把标红的那一行注释掉
vim /etc/pam.d/gdm-password

image-20220517174251769

然后:wq保存退出即可

# 编辑.profile文件
vim /root/.profile

image-20220517174419406

# 将原来的 mesg n || true注释掉,然后替换成tty -s&&mesg n || true
# 如果没有mesg n || true,那么就在文件末尾添加tty -s&&mesg n || true
tty -s&&mesg n || true

image-20220517174558975

然后:wq保存退出即可

重启系统,即可使用root账户登录,点Not listed,Username 输入 root,Password输入账户密码即可

image-20220517174831363

image-20220517174924160

image-20220517174948252

此时再次打开的终端就是root权限的了,这是因为我们当前登录的用户是root

image-20220517175115055

其它环境配置

安装git

Git是一个免费的、开源的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的一切事务。

平常使用的最多的功能是可以拉取github、gitee等开源社区的项目

# 更新软件索引并安装git工具
sudo apt update && apt install git

image-20220517175918912

检查以下安装是否成功

# git检查版本命令 用来验证安装是否成功
git --version

image-20220517180023716

有类似这样的输出表示安装成功

安装gcc

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。

对于个人用户或开发者而言主要可以用来编译一些c语言代码,自己想要编写一些demo的时候需要gcc进行编译

# 使用root权限安装gcc
sudo apt update && apt install gcc

# 安装完成后使用命令验证安装是否成功
gcc --version

image-20220517181533203

安装python3-pip

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

python包管理工具

# 安装pip
sudo apt update && apt install python3-pip

# 安装完成后使用命令验证安装是否成功
pip3 --version

image-20220517213853047

安装python3

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

python运行环境,这就不用解释了吧,运行python代码的

# 安装python
sudo apt update && apt install python3

# 安装完成后使用命令验证安装是否成功
python3 --version

image-20220517214322640

安装qemu

Qemu可以看成一款虚拟机,他可以模拟很多CPU架构。

QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛

# 安装qemu
sudo apt update && sudo apt install qemu-user qemu-system

# 安装完成后使用命令验证安装是否成功
qemu-system-x86_64 --version

image-20220517214713261

安装gdb-multiarch

用作gdb客户端进行调试,是任何架构的通用客户端

# 安装gdb-multiarch
sudo apt update && sudo apt install gdb-multiarch

# 安装完成后使用命令验证安装是否成功
gdb-multiarch --version

image-20220517215209859

Pwn工具

在主目录下创建一个存放pwn工具的目录,如env,这样就能将工具文件统一进行管理

# 在主目录下创建Env(envirment)文件夹
mkdir ~/Env

安装pwntools

pwntools是一个CTF框架和漏洞利用开发库,用Python开发,旨在让使用者简单快速的编写exploit。

pwntools有两种安装方法,一种是git项目后安装,另一种是pip直接安装。这里我们把pwntools git下来,但是用pip安装,因为后续的工具需要pwntools项目包里的脚本,pip安装不会出错。安装过程时间较长,保持网络状态良好

# clone git仓库源码
git clone https://github.com/Gallopsled/pwntools.git
sudo apt update && apt install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
pip3 list | grep pwntools

image-20220518084824767

安装pwndbg、peda、gef

pwndbg是一个gdb的插件,在ctf中pwn题目中使用非常方便,尤其是对堆的查看,有很多独有的指令。

peda一款实用的GDB插件 增强gdb的显示:在调试过程中着色并显示反汇编代码,寄存器和内存信息。

gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具。gef做为gdb的一个插件,方便快速调试使用。

# 拉取代码 	  -> 如果拉取不下来的话,可以先把这三个项目frok到自己的github仓库,然后使用ssh拉取即可
# 			-> 或者使用代理网络等
git clone https://github.com/pwndbg/pwndbg.git
git clone https://github.com/longld/peda.git
git clone https://github.com/hugsy/gef.git

# 切换到pwndbg目录下
cd ~/tools/pwndbg
# 安装
./setup.sh
# 安装依赖插件
pip3 install keystone-engine ropper keystone-engine
# 可以通过编辑gdbinit挂载插件
vim ~/.gdbinit

# 这个根据自己的目录来就可以了
source /root/Env/pwndbg/gdbinit.py
#source /root/Env/peda/peda.py
#source /root/Env/gef/gef.py

#选中任意一个脚本后,输入gdb即可使用
gdb

选择其中任何一个插件后,然后将其它两个插件注释掉就好了,比如想使用pwndbg的时候:

image-20220518103728780

image-20220518104146480

使用peda:

image-20220518104619766

image-20220518104719087

使用gef:

image-20220518104748481

image-20220518104812393

安装seccomp-tools

seccomp-tools可以分析程序的seccomp状态,哪些被系统被禁用了安装

该项目旨在(但不限于)分析CTF pwn挑战中的seccomp沙盒。有些特性可能是特定于ctf的,但对于分析真实情况下的seccomp仍然有用

# 安装seccomp-tools
gem install seccomp-tools

# 安装完成后检查安装是否成功
seccomp-tools --version

image-20220518105956313

安装LibcSearcher

LibcSearcher是针对pwn做的python库,在做pwn题时寻找libc版本非常好用,使用方式也非常简单

这是针对CTF比赛所做的小工具,在泄露了Libc中的某一个函数地址后,常常为不知道对方所使用的操作系统及libc的版本而苦恼,常规方法就是挨个把常见的Libc.so从系统里拿出来,与泄露的地址对比一下最后12位(LibcSearcher自带libc-database

# 克隆代码
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
# 安装
python3 setup.py develop

# 查看是否安装成功
pip3 list | grep LibcSearcher

image-20220518111241855

image-20220518111216459

安装patchelf

patchelf 是一个用来修改elf格式的动态库和可执行程序的小工具,可以修改动态链接库的库名字,以及链接库的RPATH

这个真的是非常滴好用,因为在做题的时候无法避免会出现多版本libc题的情况,但是如果按照libc版本重装多个虚拟机的话实在是太费劲了,patchelf就可以直接修改题目所需的libc

# 更新索引并安装patchelf
sudo apt update && apt install patchelf 

# 验证安装是否成功
patchelf --version

image-20220518111457150

安装ARM PWN

基于ARM架构的PWN

ARM软件包 -> 具备ARM交叉编译gcc与ARM程序动态链接库

安装gcc-arm-linux-gnueabi

适用于 Arm Cortex-A 系列芯片,针对 32 位芯片,使用的是 glibc 库。可以用来编译 u-boot、linux kernel 以及应用程序。

# 安装gcc-arm-linux-gnueabi
sudo apt update && apt install gcc-arm-linux-gnueabi
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
arm-linux-gnueabi

有以下内容说明安装成功

image-20220518113622872

安装gcc-aarch64-linux-gnu

适用于 Arm Cortex-A 系列芯片,针对 64 位芯片,使用的是 glibc 库。可以用来编译 u-boot、linux kernel 以及应用程序。

# 安装gcc-aarch64-linux-gnu
sudo apt update && apt install gcc-aarch64-linux-gnu
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
aarch64-linux-gnu

有以下内容说明安装成功

image-20220518113746453

安装MIPS PWN

基于MIPS架构的PWN

具备MIPS交叉编译gcc与MIPS程序动态链接库

安装gcc-mips-linux-gnu

这是一个依赖包,为mips架构提供默认的GNU C交叉编译器。

# 安装gcc-mips-linux-gnu
sudo apt update && apt install gcc-mips-linux-gnu
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
mips-linux-gnu-

有以下内容说明安装成功

image-20220518114234351

安装gcc-mipsel-linux-gnu

这是一个为mipsel架构提供默认GNU C交叉编译器的依赖包。

# 安装gcc-mipsel-linux-gnu
sudo apt update && apt install gcc-mipsel-linux-gnu
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
mipsel-linux-gnu

有以下内容说明安装成功

image-20220518114412626

安装gcc-mips64-linux-gnuabi64

这是一个依赖包,为mips64架构提供默认的GNU C交叉编译器。

# 安装gcc-mips64-linux-gnuabi64
sudo apt update && apt install gcc-mips64-linux-gnuabi64
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
mips64-linux-gnuabi64

有以下内容说明安装成功

image-20220518114640470

安装gcc-mips64el-linux-gnuabi64

这是一个依赖包,为mips64el架构提供默认的GNU C交叉编译器。

# 安装gcc-mips64el-linux-gnuabi64
sudo apt update && apt install gcc-mips64el-linux-gnuabi64
# 输入Y继续安装
Y
# 输入以下内容然后按下tab键盘进行补全
mips64el-linux-gnuabi64

有以下内容说明安装成功

image-20220518114834781

标签:gcc,root,Ubuntu,apt,tools,linux,Pwn,安装,调试
来源: https://www.cnblogs.com/erosion2020/p/16285910.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有