16.04 不再受官方支持,因此我选择 18.04 作为我的日常环境。
然而,许多书籍和教程使用 16.04、glibc 2.23
2022年还是需要配置16.04的pwn环境,我知道18.04以上版本可以修改glibc版本达到题目要求,但是作为初学者,保持与教学环境一致很重要,避免因为环境造成额外影响。
ps:如果你认真看过《Linux二进制分析》这本书,并且详细实验过其中关于进程注入的章节,你就会知道我上面说的是有道理的。
配置允许root使用桌面环境登录
直接使用root来调试会省去很多麻烦,所以这里就直接使用root
默认情况下是允许root登录的,所以我们进行如下配置
1.设置root密码
2.为root配置bash环境
我们只是将当前用户的bash环境复制到root的根目录(/root/)
su root 切换到root用户(输入root密码)
cp /home/debug/. /root/
其中 debug 是当前用户的名称
3.配置允许root桌面登录
在root用户的权限下修改/usr/share//.conf.d/50-.conf文件内容
原文内容为:
我们来修改一下:
修改此步骤可以使用vim、nano、gedit等文本编辑器,或者直接执行以下命令
echo "-show--login=true" >> /usr/share//.conf.d/50-.conf
[Seat:*]
user-session=ubuntu
greeter-show-manual-login=true
用root权限修改/root/.文件
原文内容为:
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n || true
我们来修改一下最后一行
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
tty -s && mesg n || true
重新开始
输入账号和密码即可登录成功。
下面的操作都会直接在root桌面环境中进行,此时可以进行快照,避免下面的操作随着时间的推移而变得过时。
升级
16.04 自带的版本是 3.5.2,我们将其升级到 3.6
升级 3 是为了顺利安装
不建议使用任何 PPA 进行升级。事实上,可用于升级 16.04 的 PPA 已经不再可用。我们选择从源代码升级。
你可以参考我 2018 年写的一篇文章
下载3.6.15源代码
tar -xvf -3.6.15.tar.xz
进入-3.6.15文件夹
cd-3.6.15
安装依赖包
编译安装.6
./ --=/usr/local/ ---
制作
此命令需要一段时间
制作
发生错误。我们修改了 /usr/bin/
原本是这样的
我们将其更改为.5
此时输入的还是3.5.2版本
添加软链接
备份原有软链接
mv /usr/bin/ /usr/bin/.bak
创建新的软链接
ln -s /usr/local//bin/.6 /usr/bin/
ln -s /usr/local//bin/pip3 /usr/bin/pip3
解决
这时候如果随意输入一个不存在的命令,就会产生下面的错误警告
编辑此错误文件
vim /usr/lib/-未找到
将 #!/usr/bin/ 更改为 #!/usr/bin/.5
此时若输入不存在的命令,也会正常显示。
安装
我们进行升级以确保顺利安装
默认情况下会出现这个问题,此时我们需要升级pip3
升级 pip3
获得
获取pip.py
继续安装
pip3
安装成功
安装下载源代码
cd /根目录/
易于 git
git 克隆
光盘
./setup.sh
如果git clone的时候连接不畅,可以考虑打开压缩包直接下载,如果还是打不开网站,那你就知道我的意思了。
遗憾的是
哎呀,错误了。这个错误是什么原因造成的?
gdb 解释器
眼尖的朋友可能已经注意到了,我们已经把软链接改成了升级后的.6.15,但是为什么setup.sh用的还是3.5.2?而且pip还是8.1.1版本?
其实这里的版本并不是来自系统环境变量或者文件软链接,而是通过以下命令获取到的gdb默认的解释器
gdb -batch -q --nx -ex ‘pi;打印(“。”。join(.()[:2]))’
该指令在setup.sh中使用
这时候就想着升级一下gdb然后使用升级后的3.6.15版本作为解释器,很不幸失败了。接着就想着换一下gdb原本依赖的解释器,但是又找不到操作方法。其实仔细想想就知道,不重新安装的话,很难做到。
那么改变它的唯一方法就是
后来看到一篇文章,但是找不到具体链接
sys.stderr.write(f"ERROR: {exc}")
这个错误是因为 f- 语法是 .6 版本中添加的新功能,并且它是一个简单的语法。
详情请参阅
我们打开错误文件
/usr/local/lib/.5/dist-/pip//cli/main.py
经过搜索,我发现只有这里使用了 f- 语法。好吧,我们就把它改成 .5.2 接受的语法吧
升级.5.2对应pip3
重新执行./setup.sh
很遗憾,还是会出错,因为这里使用的pip是pip3-8.1.1,我们需要升级pip对应的.5.2版本。
获得
.5 get-pip.py 注意,这里是.5
重新执行./setup.sh
安装成功
再次修复 f- 语法问题
尝试一下
又出现错误了,不过这里我们不怕,我们知道是f-导致的,继续修改文件
/根////.py
变成
再试一次
完成了!记得拍张快照!!!
历史文章
要有态度,不要同意
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。