随记体验 · 2023年11月17日 0

M3 ‘调教’手记

背景说明

终于鼓起勇气,将intel的MBP更换为M3,由于之前的intel MBP用了近4年,上面不仅部署了各种渗透环境,关键还有二进制的PWN环境,决定更换之前就听闻很多朋友吐槽M芯片的坑点,尤其是x86的模拟问题,于是将这几天来的’调教‘心得整理总结,希望有同样问题的朋友可以避免踩坑,同时也欢迎在评论区交流哈~

‘调教’记录

一开始拿到M3 MBP后,图省事,用了苹果自带的“迁移助理”对新旧两台电脑进行数据迁移,结果发现同步了近10小时,进度也才80%不到,后来经过推测,怀疑大概率是微信聊天记录的同步,最终不得不狠心点下‘放弃’,直接将新MBP设置为新电脑,因此才有了从0开始的‘调教’手记。

记录一:JDK问题导致的‘冰蝎’启动问题

下载后的冰蝎,直接双击JAR包无法直接打开,在命令行中使用:
java -jar behinder.jar
会提示javafx报错,因此首先需要解决javafx问题,首先打开

https://gluonhq.com/products/javafx/

file

在下方找到与你java sdk版本匹配的javafx,下载,然后可以将lib目录放入冰蝎同级目录。

然后发现依然无法双击启动,同样java -jar也无法启动,好在有其它同事曾经踩过该坑,告知解决方案,建立“自动操作”,写好脚本:

java --module-path [javafx lib目录] --add-modules javafx.controls,javafx.fxml -jar [冰蝎jar文件路径]

因此,以后每次启动‘冰蝎’,都需要从这个自动化脚本来启动,而无法双击一键启动。

记录二:Burpsuite 问题

之前在旧的intel MBP上,骨哥是安装的正版bp,结果发现到了新的MBP安装bp后,导入证书提示无效,后经查询,需要到bp公司网站提交申诉,说明由于电脑更换问题,让他们重新发送新的证书才可以。

后来想了想,反正正版 D版一样用,懒得折腾,索性直接装了D版,就是启动的话,不能像之前正版那样,一键安装+一键启动,同样需要使用‘自动操作’的脚本来实现启动burploader才可以。

记录三:x86 Ubuntu部署

在M芯片上,为了实现x86模拟,基本都使用的是QEMU进行模拟,在MBP上,目前有两种解决方案,一种是docker,另一种则是使用UTM,由于docker拉起的x86系统在gdb调试时会有问题,因此最终骨哥选择了UTM方案(以下图片来自互联网,并非骨哥安装时的截图

1、首先下载并安装UTM(略)

2、安装好UTM后,选择新建,选择模拟:

file

3、选择linux:

file

4、选择‘浏览’ 选中下载好的Ubuntu server的iso:

file

5、启动并开始安装,全选英文即可:

file

file

6、然后会自动DHCP获得IP地址:

file

7、默认时Ubuntu的国内镜像源,可以改为阿里云或其它国内源,我这里没改,直接保持默认:

file

8、磁盘分区,同样选择默认,我默认给了80G:

file

9、格式化警告,选择continue即可:

file

10、设置PC名、用户名及密码:

file

11、SSH安装,空格勾选安装,然后点Done:

file

12、下面什么都没选,直接Done:

file

13、Ok,然后就是安装了,一杯茶的功夫,安装就完成了。

file

14、安装完毕后,需要选择Reboot重启,重启时,记得将镜像ISO断掉:

file

15、等待启动完成后,根据前面DHCP的IP,就可以直接SSH远程登录虚拟机了,如果不记得IP,可以先使用用户名/密码登录虚拟机,然后安装net-tools:
sudo apt install net-tools
然后使用ifconfig查看IP即可。

PWN环境部署

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

然后再运行checksec就OK了:

file

5、然后是安装gdb插件:

mkdir tools
cd tools

5-1、peda
git clone https://github.com/longld/peda.git
5-2、Pwngdb
git clone https://github.com/scwuaptx/Pwngdb.git
5-3、pwngdbg

git clone https://github.com/pwndbg/pwndbg
cd pwndbg/
./setup.sh

6、配置插件:

cd ..
#tools目录下
cp Pwngdb/.gdbinit ~
vim ~/.gdbinit
#打开文件后文件内容修改如下,这里要注意source ~/pwndgb/gdbinit.py 
#一定要在source ~/Pwngdb/angelheap/gdbinit.py前面,要不然会使用默认配置。

file

测试看看:

file

7、安装seccomp-tools(查沙箱)

sudo apt install gcc ruby-dev
sudo gem install seccomp-tools

file

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

食用方法:

#更新最新版本的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

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

11、one_gadget:
sudo gem install one_gadget

file

12、Windows11&&IDA

安装Vmware Fusion 13.5.0,然后下载Windows 11 Pro ARM版本ISO,一路next安装激活即可。

IDA 7.7 略

file

OK,就这样,经历了近4天的‘调教’,终于将渗透环境、Android环境、PWN环境全部搞定。希望对你有所帮助。