awd
前言
这周都在出awd的题目,记录一下遇到的问题
SSH
在awd中需要通过ssh连接到靶机上,因此需要在dockerfile里配置好ssh的服务
1 |
|
同时需要设置时区,否则安装openssh-server时会卡在选择时区的选项
1 |
|
在sshd_config中配置好了ssh的端口为2222,因此在dockerfile中将2222的端口暴露出来
1 |
|
在运行docker的时候需要将2222端口映射出来
1 |
|
在awd中,可以释放文件进行文件的替换,因此需要将部署的文件设置为ctf的权限
1 |
|
libc
有时候会遇到本地的libc与docker搭建的ubuntu的libc版本不一致,那么只需要将本地的libc拷贝到docker中即可
1 |
|
- lib存放的就是本地的libc,需要注意的是libc是放在x86_64-linux-gnu下的,因此存放libc的路径为./lib/x86_64-linux-gnu/libc.so.6
- lib64则是链接文件,即存放ld-linux-x86-64.so.2
在docker部署之前需要修改这两个文件的权限
1 |
|
否则会出现/bin/sh权限不足的情况
docker_debug
有时候需要在docker部署的靶机上进行调试,在安装时将gdb,tmux,python3以及pwntools装好
1 |
|
在docker内安装gef即可,因为gef没pwndbg那么大,因此安装起来比较方便
tmux
由于在docker内使用的是命令行进行调试,因此需要进入tmux进行多窗口。记录一下用到的命令
- CRTL+B+空格:将上下屏切换到左右屏
- CRTL+B+方向键:切换上下左右的屏幕
patch
现在通常给pwn题打patch都会将patch的代码写在.eh_frame上,这个段在旧版本的ubuntu上是有可执行权限的,但是现在的ubuntu上可执行权限已经没有了,需要手动修改一下权限
使用010的模板可以快速找到ELF文件的段节之类的信息
找到.eh_frame所属的段上,修改为可执行权限,那么这个段就有可执行权限了
接着修改一下.eh_frame的节为可执行权限,那么在ida就会以代码的结果显示
待更新。。。
awd
https://h0pe-ay.github.io/awd/