持续更新中
前言
本人目前是钻研pwn,遇到很多linux指令大多都是翻自己之前的题解,发现十分麻烦,立此篇博客,方便个人以后的查询
所需的依赖都会用粗体标识,若有师傅发现无法正常使用对应指令,请自行下载
通用
(1)unzip解压zip文件
unzip file.zip
(2)g++编译c++程序
g++ hello.cpp -o hello
pwn
工具使用
(1)checksec检查文件保护
checksec file
(2)seccomp-tools检查沙箱
seccomp-tools dump ./file
(3)ropper查找gadget
ropper
ropper>file ./file
ropper>
(4)one_gadget查找libc里面的execve(‘/bin/sh’,0,0)
one_gadget ./libc.so
其它指令
(1)正则匹配查找libc文件里面的libc版本
strings libc.so.6 | grep ubuntu
(2)关闭地址随机化方便调试
sudo su
echo 0 > /proc/sys/kernel/randomize_va_space
(3)解压打包的文件系统
mkdir core
cp core.cpio ./core
cd core
mv ./core.cpio core.cpio.gz
#因为cpio是经过gzip压缩过的,必须更改名字,gunzip才认识
gunzip ./core.cpio.gz
#gunzip解压一会cpio才可以认识,不然就会报畸形数字
cpio -idmv < ./core.cpio
#cpio是解压指令 -idmv是它的四个参数
#-i或--extract 执行copy-in模式,还原备份档。
#-d或--make-directories 如有需要cpio会自行建立目录。
#-v或--verbose 详细显示指令的执行过程。
#-m或preserve-modification-time 不去更换文件的更改时间
(4)ropper找静态内核中的gadget
ropper --file ./vmlinux --nocolor > ropgadget.txt
(5)解压出静态内核
./extract-vmlinux bzImage > vmlinux
(6)重新打包内核
find . | cpio -o -H newc > ../core.cpio
(7)编译可执行文件脚本
gcc ./exploit.c -o exploit -static -masm=intel