-
-
【保姆级教程】pwn题如何配置和靶机一样的环境
-
2022-5-8 21:58 8424
-
苦于学pwn的时候没有找到博客讲述如何配制环境,于是自己记录一下供后面学习的师傅少走一点弯路
二进制文件+libc篇
准备工作
先需要安装两个工具
patchelf
1 2 3 4 5 6 7 8 9 | sudo apt - get install autoconf automake libtool git clone https: / / github.com / NixOS / patchelf.git cd patchelf . / bootstrap.sh . / configure make make check sudo make install cd .. |
glibc-all-in-one
1 | git clone https: / / github.com / matrix1001 / glibc - all - in - one |
记得下下来cd到glibc-master目录的时候先运行一下update_list,即:
1 | . / update_list |
如果发现有些时候list里面的版本下不了了,也可以用这个更新一下列表(然后你就发现绝版了)
具体操作
以文章后面给的附件untidy_note为例(from iscc2022)
(1)先对libc文件来个strings看看版本
1 | strings libc - 2.27 .so | grep ubuntu |
(2)进入all in one 看看有无这个版本
1 | cd glibc |
1 | cat list |
(glibc是把glibc-all-in-one改过的名字)
发现绝版了,怎么办?
就先用1.5,先换上all-in-one里的libc试试,本地能打通远程应该没问题(有些时候会出现本地通了远程通不了的奇怪情况)
(3)下载2.27-1.5_amd64
1 | . / download 2.27 - 3ubuntu1 . 5_amd64 |
(4)把存在/glibc/lib里的刚下好的文件拖到你exp所在的目录
(因为./用起来太香了,而且也不用绑定什么奇奇怪怪的东西)
(5)愉快地连接libc和ld
先使用ldd命令看看连接前的情况:
连接:
1 | patchelf - - set - interpreter . / 2.27 - 3ubuntu1 . 5_amd64 / ld - 2.27 .so . / untidy_note |
1 | patchelf - - replace - needed libc.so. 6 . / 2.27 - 3ubuntu1 . 5_amd64 / libc - 2.27 .so . / untidy_note |
再用ldd或者直接vmmap看看
就换好了
docker篇
docker一般是会给readme的,但是有些题不太会给(就比如minil2022的mini_bug),那个就是考docker的一些语法,需要自己改一改dockerfile才能搭好环境
(还没复现等复现了再说说)
参考博客
安装不同glibc版本 堆实验_一路开花●-●的博客-CSDN博客_glibc-all-in-one
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
最后于 2022-5-11 20:14
被Nameless_a编辑
,原因:
赞赏
他的文章
谁下载
无
看原图