文章总结: 本文详细介绍了在ARM架构MacBook上搭建x86PWN程序调试环境的完整流程。作者使用UTM虚拟机运行Ubuntu22.04Server,配置SSH连接和共享文件夹,并安装了pwntools、pwndbg等PWN必备工具。文章还提供了使用tmux进行调试分屏显示的方法,为ARM架构Mac用户提供了解决x86程序调试需求的实用方案。
综合评分: 89
文章分类: 二进制安全,WEB安全,安全工具,实战经验
ARM架构macbook调试x86 PWN程序之环境配置
原创
F1rstb100d
智佳网络安全
2025年12月7日 09:30
北京
由于原来的拯救者Y9000P是在太沉了,无奈入手了一个新款macbook。但又喜欢打PWN,于是准备试着在mac的M系列ARM架构芯片上搭建一个x86架构ELF的gdb调试环境。
在此记录一下踩坑过程,以防下次万一搞坏掉了还能快速恢复回来。
下载UTM.dmg虚拟机https://github.com/utmapp/UTM
下载Ubuntu22.04Server镜像https://mirrors.ustc.edu.cn/ubuntu-releases/22.04/
安装UTM虚拟机,选择模拟,导入下载的iso镜像,默认核心4G内存64G硬盘,一直下一步
进入Ubuntu安装界面,可选择最小化安装,并跳过除ssh以外的安装以节省安装时间(有需要之后挂上梯子再装也不迟)
安装完成先看下ip地址,然后直接iterm2连接ssh,并执行以下内容
ip addrsudo apt install net-toolssudo apt install openssh-serversudo systemctl start sshsudo systemctl enable sshssh [email protected]
配置ssh自动登录
ssh-keygen -t rsa -b 2048 #如果mac ~/.ssh/已有的话可跳过ssh-copy-id [email protected] u22='ssh [email protected]'
配置共享文件夹(可以最后再配)
sudo apt install spice-vdagent spice-webdavd #图形化配置UTM共享选项,目录共享模式选择SPICE WebDAVsudo apt install davfs2 #安装davfs2实现挂载
#直接使用以下指令挂载davfssudo mount -t davfs http://localhost:9843 <your ubuntu path>如:sudo mount -t davfs http://localhost:9843 ~/macos#然后让输入用户名密码,一路回车或者输入1 1也行
#实现开机免密自动挂载sudo vim /etc/davfs2/davfs2.conf # use_locks 0sudo vim /etc/davfs2/secrets #最后一行添加http://localhost:9843 1 1
#保存退出,此时可以取消挂载,并重新挂载试一下,不需要回车了,可以直接挂载成功sudo umount <your ubuntu path>如:sudo mount -t davfs http://localhost:9843 <your ubuntu path>
#随后开启开机自动挂载,添加配置信息到如下文件sudo vim /etc/fstab#添加 http://localhost:9843 <你的虚拟机内路径> davfs defaults 0 0
再配置一下代理(或者直接clash tun全局代理省事)
apt install proxychainsvim /etc/proxychains.conf 或者是 ~/.proxychains/proxychains.conf
strict_chainproxy_dnsremote_dns_subnet 224tcp_read_time_out 15000tcp_connect_time_out 8000localnet 127.0.0.0/255.0.0.0quiet_mode在ProxyList最后增加socks5 192.168.31.90 7891 #注意clash需要开启允许局域网连接
至此基础工作就已经完成了,可以ssh优雅的连到后台UTM虚拟的无界面Ubuntu上了
正式配置pwn环境
sudo apt-get install python3-pipsudo apt install libssl-dev libffi-dev build-essential git vimpip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple# 增加pwntools安装checksec和ROPgedget的环境变量echo $PATHexport PATH=$PATH:/home/用户名/.local/binsource ~/.bashrc
mkdir toolscd toolsgit clone https://github.com/longld/peda.gitgit clone https://github.com/scwuaptx/Pwngdb.gitgit clone https://github.com/pwndbg/pwndbgcd pwndbg/./setup.sh#等,有卡住的话配代理cp Pwngdb/.gdbinit ~vim ~/.gdbinit#注释掉第一行的peda的,然后在下一行添加source ~/tools/pwndbg/gdbinit.py
sudo apt install gcc ruby-devsudo gem install seccomp-toolspip3 install ropperpip3 install LibcSearchersudo apt-get install qemu-user qemu-systemgit clone https://github.com/matrix1001/glibc-all-in-one.git cd glibc-all-in-onevim update_list #改为#!/usr/bin/python3./update_list
sudo apt-get install patchelfsudo gem install one_gadgetsudo apt-get install zstdsudo apt-get install tmux
最后运行脚本的时候为了调试加上一行
context.terminal = ['tmux', 'splitw', '-h', '-p', '75']
然后输入u22 ssh连上去先输入tmux进程,再运行python exp.py就能自动使用tmux分屏调试了
如果想要调整分屏比例大小又记不住快捷键的话,可以考虑把鼠标支持功能打开,修改~/.tmux.conf
set -g mouse on
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:智佳网络安全 F1rstb100d《ARM架构macbook调试x86 PWN程序之环境配置》