PWN环境配置 系统: kali2022
最近想入门pwn了来记录一下环境搭建的步骤
0x00 配置root密码 为了方便调试最好用户直接为最高权限,可以避免一些问题
kali默认是是没有root密码的
需要手动配置
1 2 3 4 5 sudo passwd root //sudo提权配置root用户密码 [sudo] password for pwn: //输入当前用户密码 New password: //设置root密码 Retype new password: //再次输入root密码 passwd: password updated successfully //配置完成
然后用root用户登录就可以了
换源 阿里云
1 2 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
打开/etc/apt/sources.list将原来的源注释掉
把上面两行复制到文件中后执行
0x01 安装GDB
选择yes就可以
0x03 安装pwndbg 1 2 3 git clone https://github.com/pwndbg/pwndbg cd pwndbg./setup.sh
然后将pwndbg写入gdb配置文件
1 2 3 4 5 6 7 8 touch ~/.gdbinit echo 'source /root/pwndbg/gdbinit.py' > ~/.gdbinitecho 'set disassembly-flavor intel' >> ~/.gdbinitecho 'set context-output /dev/pts/2' >> ~/.gdbinit
后续的按需配置 0x04 patchelf 用来修改二进制文件的glibc版本
1 2 3 4 5 6 7 8 9 git clone https://github.com/NixOS/patchelf.git ./bootstrap.sh ./configure make make install make check
下面是替换glibc的命令
1 2 3 4 5 6 7 patchelf --set -interpreter /ld.so的路径 /需要替换libc的二进制文件 patchelf --replace-needed libc.so.6 /libc的地址 /需要替换libc的二进制文件 patchelf --set -interpreter /home/hacker/glibc-all-in-one/libs/2.23-0ubuntu3_i386/ld-2.23.so ./hacknote patchelf --replace-needed libc.so.6 /home/hacker/glibc-all-in-one/libs/2.23-0ubuntu3_i386/libc-2.23.so ./hacknote
有大佬写了bash脚本
1 2 3 4 5 6 7 8 9 10 11 set -xlibc_path=$1 elf_path=$2 patchelf_bin_path="/usr/local/bin/patchelf" if [ -f ${libc_path} /ld-[2].[0-9][0-9].so ]; then $patchelf_bin_path --set -interpreter $libc_path /ld-[2].[0-9][0-9].so $elf_path fi if [ -f $libc_path /libc-[2].[0-9][0-9].so ]; then $patchelf_bin_path --replace-needed libc.so.6 $libc_path /libc-[2].[0-9][0-9].so $elf_path fi set +x
只需要一条命令就可以修改了
1 2 ./patch.sh /glibc的路径 ./test ./patch.sh /home/hacker/glibc-all-in-one/libs/2.23-0ubuntu3_amd64 ./test
0x05 glibc-all-in-one 1 2 3 4 5 6 7 8 9 10 11 12 13 14 git clone https://github.com/matrix1001/glibc-all-in-one.git cd glibc-all-in-one./update cat list.txt ./download 2.23-0ubuntu3_i386
0x06 one_gadget
想到什么再继续补充
1 gem install seccomp-tools
报错可能是缺少依赖
1 sudo apt install gcc ruby-dev
项目地址
https://github.com/david942j/seccomp-tools
0x08 main_arena_offset 1 2 3 git clone https://github.com/bash-c/main_arena_offset.git cd main_arena_offset./main_arena_offset libc
计算main_arena偏移