背景说明
终于鼓起勇气,将Intel的MBP更换为M3,由于之前的intel MBP用了近4年,上面不仅部署了各种渗透环境,关键还有二进制的PWN环境,决定更换之前就听闻很多朋友吐槽M芯片的坑点,尤其是x86的模拟问题,于是将这几天来的’调教‘心得整理总结,希望有同样问题的朋友可以避免踩坑,同时也欢迎在评论区交流哈~
一开始拿到M3 MBP后,图省事,用了苹果自带的“迁移助理”对新旧两台电脑进行数据迁移,结果发现同步了近10小时,进度也才80%不到,后来经过推测,怀疑大概率是微信聊天记录的同步,最终不得不狠心点下‘放弃’,直接将新MBP设置为新电脑,因此才有了从0开始的‘调教’手记。
下载后的冰蝎,直接双击JAR包无法直接打开,在命令行中使用:java -jar behinder.jar
会提示javafx报错,因此首先需要解决javafx问题,首先打开
https://gluonhq.com/products/javafx/
在下方找到与你java sdk版本匹配的javafx,下载,然后可以将lib目录放入冰蝎同级目录。
然后发现依然无法双击启动,同样java -jar也无法启动,好在有其它同事曾经踩过该坑,告知解决方案,建立“自动操作”,写好脚本:
java --module-path [javafx lib目录] --add-modules javafx.controls,javafx.fxml -jar [冰蝎jar文件路径]
generic
92 Bytes
© Guge's Blog
因此,以后每次启动‘冰蝎’,都需要从这个自动化脚本来启动,而无法双击一键启动。
之前在旧的intel MBP上,骨哥是安装的正版bp,结果发现到了新的MBP安装bp后,导入证书提示无效,后经查询,需要到bp公司网站提交申诉,说明由于电脑更换问题,让他们重新发送新的证书才可以。
后来想了想,反正正版 D版一样用,懒得折腾,索性直接装了D版,就是启动的话,不能像之前正版那样,一键安装+一键启动,同样需要使用‘自动操作’的脚本来实现启动burploader才可以。
在M芯片上,为了实现x86模拟,基本都使用的是QEMU进行模拟,在MBP上,目前有两种解决方案,一种是docker,另一种则是使用UTM,由于docker拉起的x86系统在gdb调试时会有问题,因此最终骨哥选择了UTM方案(以下图片来自互联网,并非骨哥安装时的截图)
1、首先下载并安装UTM(略)
2、安装好UTM后,选择新建,选择模拟:
3、选择linux:
4、选择‘浏览’ 选中下载好的Ubuntu server的iso:
5、启动并开始安装,全选英文即可:
6、然后会自动DHCP获得IP地址:
7、默认时Ubuntu的国内镜像源,可以改为阿里云或其它国内源,我这里没改,直接保持默认:
8、磁盘分区,同样选择默认,我默认给了80G:
9、格式化警告,选择continue即可:
10、设置PC名、用户名及密码:
11、SSH安装,空格勾选安装,然后点Done:
12、下面什么都没选,直接Done:
13、Ok,然后就是安装了,一杯茶的功夫,安装就完成了。
14、安装完毕后,需要选择Reboot重启,重启时,记得将镜像ISO断掉:
15、等待启动完成后,根据前面DHCP的IP,就可以直接SSH远程登录虚拟机了,如果不记得IP,可以先使用用户名/密码登录虚拟机,然后安装net-tools:sudo apt install net-tools
然后使用ifconfig查看IP即可。
Ubuntu 20.04 server 默认是安装好python3的,版本为3.8.10。
1、安装pip:sudo apt-get install python3-pip
2、安装pwntools前的依赖:sudo apt instal libssl-dev libffi-dev build-essential git
3、安装pwntools:pip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple
4、pwntools安装完成后,会获得checksec 和 ROPgedget两个工具,但是在运行checksec时,会提示没有找到,因此需要设置一下环境变量:
echo $PATH
#在~/.bashrc内添加
export PATH=$PATH:/home/用户名/.local/bin
source ~/.bashrc
generic
81 Bytes
© Guge's Blog
然后再运行checksec就OK了:
5、然后是安装gdb插件:
mkdir tools
cd tools
generic
20 Bytes
© Guge's Blog
5-1、pedagit clone https://github.com/longld/peda.git
5-2、Pwngdbgit clone https://github.com/scwuaptx/Pwngdb.git
5-3、pwngdbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg/
./setup.sh
generic
64 Bytes
© Guge's Blog
6、配置插件:
cd ..
#tools目录下
cp Pwngdb/.gdbinit ~
vim ~/.gdbinit
#打开文件后文件内容修改如下,这里要注意source ~/pwndgb/gdbinit.py
#一定要在source ~/Pwngdb/angelheap/gdbinit.py前面,要不然会使用默认配置。
generic
155 Bytes
© Guge's Blog
测试看看:
7、安装seccomp-tools(查沙箱)
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools
generic
60 Bytes
© Guge's Blog
8、安装ropper:
pip3 install ropper
9、安装Glibc-all-in-one:
git clone https://github.com/matrix1001/glibc-all-in-one.git
cd glibc-all-in-one
vim update_list
改为#!/usr/bin/python3
generic
117 Bytes
© Guge's Blog
食用方法:
#更新最新版本的glibc
./update_list
#查看可下载的glibc
cat list
#根据题目所给的libc,找对应版本的连接器,并下载该连接器
./download 2.23-0ubuntu11.3_amd64
#下载好的libc就在libs目录下
ls libs/2.23-0ubuntu11.3_amd64/
#把ld文件和libc复制到pwn题同目录下
#一般来说使用时把标记的ld-2.23.so和libd-2.23.so拷贝在程序目录下即可
#.debug文件用于gdb调试
#在gdb设置setdebugf
generic
269 Bytes
© Guge's Blog
10、patchelf:sudo apt-get install patchelf
食用方法:
#使用
#查看题目原来的libc和ld “easyheap”为可执行程序 此处为例子
ldd easyheap
#替换libc
patchelf --replace-needed libc.so.6 ./libc-2.23.so ./easyheap
#设置ld文件
patchelf --set-interpreter ./ld-2.23.so ./easyheap
generic
184 Bytes
© Guge's Blog
11、one_gadget:sudo gem install one_gadget
12、Windows11&&IDA
安装Vmware Fusion 13.5.0,然后下载Windows 11 Pro ARM版本ISO,一路next安装激活即可。
IDA 7.7 略
OK,就这样,经历了近4天的‘调教’,终于将渗透环境、Android环境、PWN环境全部搞定,希望对你有所帮助。
感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~
====正文结束====