macOS 系统初始化设置指南,涵盖系统设置、软件配置和开发环境搭建,帮助你快速配置一台适合开发的 macOS 设备。
🖥️ 系统设置 实用命令
取消 4 位数密码限制
1 pwpolicy -clearaccountpolicies
允许安装任意来源的 App
1 sudo spctl --master-disable
Xcode 命令行工具
程序坞自动隐藏加速
1 2 3 4 5 defaults write com.apple.dock autohide-time-modifier -float 0.5 && killall Dock defaults write com.apple.dock autohide-delay -int 0 && killall Dock
恢复:
1 2 3 4 5 defaults delete com.apple.dock autohide-time-modifier && killall Dock defaults delete com.apple.Dock autohide-delay && killall Dock
个人习惯 输入法 装个搜狗吧,官方的中文输入法有 BUG,会导致死机
光标响应 重复率最快,延迟设置最低
三指拖移 如果有触控板的话这个必开
💻 软件设置 iTerm2
主题自带的 Minimal 不错
新建一个自己的配置,并设置为默认 Set as Default,在新的配置里面可以进行字体相关的设置,字体大小我设置的是 12 号,使用的是 macOS 自带的 Monaco 字体
一些窗口设置
🧑💻 开发配置 Vim macOS 自带的 vim 是没有任何配色的,可以搞点颜色
先在用户目录下新建一个 vim 的配置文件:
内容如下:
1 2 3 set nu colorscheme desert syntax on
Node.js 主要用来跑 Hexo,又因为 Node.js 版本也比较凌乱,所以这里主要是通过 nvm 来进行配置管理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashexport NVM_DIR="$HOME /.nvm" [ -s "$NVM_DIR /nvm.sh" ] && \. "$NVM_DIR /nvm.sh" [ -s "$NVM_DIR /bash_completion" ] && \. "$NVM_DIR /bash_completion" zsh nvm --version 0.39.7 nvm version nvm install stable nvm current
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 nvm ls-remote nvm install v18.16.1 nvm install <version> nvm ls nvm uninstall <version> nvm use <version>
Homebrew Homebrew 是 macOS(或 Linux)缺失的软件包的管理器,开发必备神器,安装也比较简单(网络 OK 的情况):
1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) "
安装完成后,如果没有 brew 命令的话,就继续配置 zsh 环境变量(上面安装完会提示 COPY 运行即可):
1 (echo ; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' ) >> /Users/security/.zprofile
brew 常用软件推荐:
1 2 3 4 5 6 7 8 brew install cask brew install qlmarkdown brew install syntax-highlight
brew 的基本使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 brew update brew search [关键词] brew info [软件名] brew list brew upgrade [软件名] brew cleanup brew uninstall [软件名]
Oh My Zsh Oh My Zsh 这个 zsh 美化增强脚本,来让自己的终端 Shell 颜值更逼格:
1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) "
Zsh 插件推荐:
1 2 3 4 5 6 7 8 ➜ brew install autojump git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM /plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM /plugins/zsh-syntax-highlighting
在 ~/.zshrc 中配置启用这些插件:
1 plugins=(其他的插件...... autojump zsh-autosuggestions zsh-syntax-highlighting)
其他功能配置:
1 2 3 4 5 echo "DISABLE_MAGIC_FUNCTIONS=true" >> ~/.zshrcecho " zstyle ':omz:update' mode disabled" >> ~/.zshrc
Python 简单使用 iPython 还是建议装一下,平时调试会比较方便:
不过个人还是建议使用 pyenv 来管理 Python。
pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本,Linux 和 macOS 强烈建议使用 pyenv 来管理我们的 Python 版本,优雅高效且不会破坏掉系统自带的 Python 环境:
接着为 pyenv 配置 shell 环境,提高工作效率,可自动联想 Tab 补全我们本地安装的 Python 版本:
1 echo 'eval "$(pyenv init -)"' >> ~/.zshrc
安装 Python 也很简单:
1 2 3 4 5 6 7 8 9 10 11 12 pyenv versions pyenv version pyenv install -l pyenv install pypy3.10-7.3.16 pyenv uninstall pypy3.10-7.3.16
版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:
1 2 3 4 5 6 7 8 9 10 pyenv global <python版本> pyenv shell <python版本> pyenv shell --unset pyenv local <python版本>
pyenv 的 global、local、shell 的优先级关系是:shell > local > global
🧩 一些我用不到的但是你可能用到的 启动台自定义行和列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 defaults write com.apple.dock springboard-columns -int 7 defaults write com.apple.dock springboard-rows -int 6 killall Dock defaults write com.apple.dock springboard-rows Default defaults write com.apple.dock springboard-columns Default killall Dock
防火墙 同时一些软件是破解版,屏蔽 Hosts 大法也太不优雅了,还是搞个正经的防火墙软件比较靠谱,国光这里主推:Little Snitch
这个破解版不确定多不多,但是正版的序列号貌似可以多人复用,所以价格理论上也不贵的,师傅们可以自己去了解一下。
Git 如果要使用 Github 协作项目的话,那么 GitHub 会根据我们本地的 Git 配置去箱显示对应的 commit 记录的头像:
1 2 3 4 5 git config --global user.email "[email protected] " git config --global user.name "张三"
Java 无论是 Oracle JDK 还是近期比较流行的 Azul Zulu JDK ,我们都可以先自己安装一遍,默认都在安装在
/Library/Java/JavaVirtualMachines 目录下:
所以我们切换版本时候就不是很优雅,这里推荐使用 jevn 来切换我们的 Java 版本,类似于 pyenv 一样,很优雅:
brew 安装后我们得配置一下 zshrc 的环境:
1 2 echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc
然后新开个标签页即可正常使用 jenv 来管理我们的 Java 环境了,下面是 jenv 的基本使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 jenv version jenv add /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/ jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/ jenv versions jenv global <java 版本> jenv shell <java 版本> jenv shell --unset jenv local <java 版本>
下面是简单的 jenv 使用演示效果图,真的很优雅:
MySQL 安装 MySQL:
MySQL 服务相关:
接着初始化 MySQL 设置,主要配置一下 root 密码已经是否远程登录登,根据提示来操作就行了:
1 mysql_secure_installation
数据库外连,这是个可选操作 根据自己的实际情况自行决定是否开启(有被攻击的风险):
1 2 mysql > grant all on * .* to root@'%' identified by '你设置的密码' with grant option; mysql > flush privileges;
大家根据实际情况来决定是否开启外连。
Redis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 brew install redis brew services info redis brew services start redis redis-clisudo vim /opt/homebrew/etc/redis.conf
proxychains-ng 终端命令行下代理神器,可以让指定的命令走设置好的代理,内网渗透、XX 上网必备工具:
1 2 3 4 5 brew install proxychains-ng vim /opt/homebrew/etc/proxychains.conf
将结尾的 socks4 127.0.0.1 9095 改为我们自己的代理端口即可。
下面是常用的几个命令:
1 2 3 4 5 6 7 8 proxychains4 curl https://www.google.com.hk proxychains4 -q /bin/bash proxychains4 -q /bin/zsh
如果发现你的 proxychains 并不能代理的话,尝试关掉 SIP 后再试试看。
Gitbook Gitbook 确实是一个写文档的神器,安装还是有坑的:就是使用高版本的 Node.js 安装会出各种玄学问题,换 10.X 的版本即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 nvm install v10.24.1 nvm use v10.24.1 /usr/sbin/softwareupdate --install-rosetta --agree-to-license npm install -g gitbook-cli gitbook -V CLI version: 2.3.2 GitBook version: 3.2.3
MkDocs MkDoc 是有一个优雅的写文档神器,使用 Python 安装很方便:
1 2 3 4 5 6 7 8 pyenv local 3.9.17 pip install mkdocs pip install mkdocs-material
Docker Desktop 1 2 3 4 5 6 brew install --cask docker docker pull docker.io/kalilinux/kali-rolling docker run --name "KaliLinux" --tty --interactive kalilinux/kali-rolling
OrbStack OrbStack 是一种在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻便且简单的方法。可以将其视为强大的 WSL 和 Docker Desktop 替代方案,全部集成在一个易于使用的应用程序中。
1 2 3 4 5 brew install orbstack docker context use orbstack
Docker
Linux 子系统
Docker 的一些镜像国内拉取很慢,我们可以配置一下一些国内的加速源:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "ipv6" : true , "registry-mirrors" : [ "http://hub-mirror.c.163.com" , "https://registry.docker-cn.com" , "https://mirror.baidubce.com" , "https://kn77wnbv.mirror.aliyuncs.com" , "https://y0qd3iq.mirror.aliyuncs.com" , "https://6kx4zyno.mirror.aliyuncs.com" , "https://0dj0t5fb.mirror.aliyuncs.com" , "https://docker.nju.edu.cn" , "https://kuamavit.mirror.aliyuncs.com" , "https://y0qd3iq.mirror.aliyuncs.com" , "https://docker.mirrors.ustc.edu.cn" ] }
速度果然确快了很多:
Parallels Desktop Parallels Desktop for mac Crack 18.1.1.53328 破解项目:https://git.icrack.day/somebasj/ParallelsDesktopCrack.git
根据教程下载指定版本的 PD:https://download.parallels.com/desktop/v18/18.1.1-53328/ParallelsDesktop-18.1.1-53328.dmg
正常安装好,先不要登录 PD 账号。接着克隆项目并运行自动化破解脚本:
1 2 3 4 5 git clone https://git.icrack.day/somebasj/ParallelsDesktopCrack.gitcd ParallelsDesktopCrack && chmod +x ./install.sh && sudo ./install.sh
破解过程还是很顺利的,Parallels Desktop 18 确实 YYDS:
我们需要屏蔽以下的 Hosts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 127.0.0.1 download.parallels.com 127.0.0.1 update.parallels.com 127.0.0.1 desktop.parallels.com 127.0.0.1 download.parallels.com.cdn.cloudflare.net 127.0.0.1 update.parallels.com.cdn.cloudflare.net 127.0.0.1 desktop.parallels.com.cdn.cloudflare.net 127.0.0.1 www.parallels.cn 127.0.0.1 www.parallels.com 127.0.0.1 www.parallels.de 127.0.0.1 www.parallels.es 127.0.0.1 www.parallels.fr 127.0.0.1 www.parallels.nl 127.0.0.1 www.parallels.pt 127.0.0.1 www.parallels.ru 127.0.0.1 www.parallelskorea.com 127.0.0.1 reportus.parallels.com 127.0.0.1 parallels.cn 127.0.0.1 parallels.com 127.0.0.1 parallels.de 127.0.0.1 parallels.es 127.0.0.1 parallels.fr 127.0.0.1 parallels.nl 127.0.0.1 parallels.pt 127.0.0.1 parallels.ru 127.0.0.1 parallelskorea.com 127.0.0.1 pax-manager.myparallels.com 127.0.0.1 myparallels.com 127.0.0.1 my.parallels.com
但是 Parallels Desktop 会很猥琐的去偷偷取消注释我们的 hosts 文件,所以我们一上来就安利的 Little Snitch 就很优雅,很有必要了。
最后发现 M1 下的 PD 虚拟机 120Hz 的 Windows 体验确实很丝滑:
实用工具
命令增强
1 2 3 4 5 6 brew install tree brew install neofetch brew install fastfetch
网络相关
1 2 3 4 5 6 ➜ brew install iproute2mac brew install frps brew install frpc
媒体处理
1 2 3 4 5 6 7 8 9 brew install imagemagick brew install ffmpeg brew install you-get brew install httrack
安全工具 主机探测 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 brew install nmap brew install masscan brew install arp-scan arp-scan --localnet Interface: en0, type : EN10MB, MAC: c8:89:f3:b3:24:1d, IPv4: 10.1.1.180 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 10.1.1.1 00:0c:29:7c:19:2f VMware, Inc. 10.1.1.10 a0:36:9f:89:ad:30 Intel Corporate 10.1.1.11 00:0c:29:b1:fa:11 VMware, Inc. 10.1.1.100 00:11:32:fa:6e:7c Synology Incorporated 10.1.1.218 a8:a1:59:9f:57:aa ASRock Incorporation 10.1.1.128 ec:4d:3e:86:cb:2e Beijing Xiaomi Mobile Software Co., Ltd 10.1.1.199 78:11:dc:7d:d5:9a XIAOMI Electronics,CO.,LTD brew install naabu
子域收集 1 2 3 4 5 brew install subfinder brew install findomain
SQL 注入
目录扫描
文件分析 1 2 3 4 5 brew install binwalk brew install exiftool
移动安全
macOS 安装 adb
1 2 brew install --cask android-platform-tools
密码破解 1 2 3 4 5 6 7 8 brew install hashcat brew install john brew install aircrack-ng
下载最新版本的安装包:https://osx.metasploit.com/metasploitframework-latest.pkg
安装很简单,双击 metasploitframework-latest.pkg 安装包,一步步往下安装就可以了,macOS 下手动升级 Metasploit 版本国光这里建议也这样升级,比较方便省心。
macOS 下 Metasploit 的可执行文件的位置为:/opt/metasploit-framework/bin,所以我们需要收到配置一下环境变量:
1 echo 'export PATH="$PATH:/opt/metasploit-framework/bin/"' >> ~/.zshrc
接着新开个终端即可正常识别到 msf 系列的命令了:
1 2 3 4 5 6 7 8 9 10 ~ msfconsole ** Welcome to Metasploit Framework Initial Setup ** Please answer a few questions to get started. Would you like to use and setup a new database (recommended)? y Writing client authentication configuration file /Users/security/.msf4/db/pg_hba.conf
Burp Suite 首先官网下载 截止 2023 年 07 月 09 日 最新的稳定版 2023.06.2:
先正常安装打开的话是提示需要激活的,我们关掉 BP 先不管它。使用之前的 TrojanAZhen/BurpSuitePro-2.1 注册机并不能正常工作了,这是因为从 2022.9 开始提示 BP 官方换了注册机制,所以我们得使用新的注册机才可以。
新版注册机的地址为:h3110w0r1d-y/BurpLoaderKeygen
下载下来,将其放入到 BP Jar 包的同级目录下:
首先先带着注册机运行一下 BP:
1 cd /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app && "/Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java" "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" "--add-opens=java.base/java.lang=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" "-javaagent:BurpLoaderKeygen.jar" "-jar" "/Applications/Burp Suite Professional.app/Contents/Resources/app/burpsuite_pro.jar"
提示需要激活,先放这儿:
另开一个终端,运行注册机:
1 /Applications/Burp\ Suite\ Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java -jar /Applications/Burp\ Suite\ Professional.app/Contents/Resources/app/BurpLoaderKeygen.jar
像之前一样,常规走一下注册流程即可:
但是不能每次启动都需要借助这两串命令行吧,这也太不优雅了,所以需要我们编辑 vmoptions.txt 文件,直接将之前的参数追加到 vmoptions.txt 后面:
1 2 3 4 5 6 7 echo "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/java.lang=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "--add-opens=java.base/jdk.internal.org.objectweb.asm.Opcodes=ALL-UNNAMED" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "-javaagent:BurpLoaderKeygen.jar" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txtecho "-Xmx2048m" >> /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt
效果如下:
之后直接在应用程序里面启动 BP 就可以了,和官方正版使用毫无差别,优雅永不过时~
综合扫描 AWVS 使用 Docker 搭建 Acunetix Web Vulnerability Scanner(AWVS)扫描器的很方便的, 我的 M1 Macbook 测试也可以跑 x86 的 Dokcer 容器:
1 2 3 4 5 docker pull secfa/docker-awvs docker run -d --name "AWVS" -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs
搭建完成后访问:https://YOUR_IP:13443/ 即可
默认的用户名为:[email protected] 密码为:Admin123
Nessus Tenable Nessus® Essentials 是一款免费漏洞扫描程序,可作为漏洞评估的绝佳切入点。可获得无异于 Nessus Professional 订阅用户所享的强大扫描程序,支持扫描 16 个 IP 也足够我们个人使用了。
简而言之就是 Essentials 是 适用于教育工作者、学生以及网络安全领域的入门从业人员,功能和 Nessus Professional 没区别,只是批量扫描的 IP 变少了。
首先我们得使用企业域名注册获取激活码,注册地址:https://zh-cn.tenable.com/products/nessus/nessus-essentials
小 Tips:国内的 qq 和 163、gmail 这类大众域名多半是不行的,我这里使用的是 com 域名绑定的 QQ 邮箱注册的,这样很容易获取到激活码。
有激活码的话,Docker 搭建 Nessus 就简单很多了。
1 2 3 4 5 docker pull tenableofficial/nessus docker run -d --name "Nessus" -p 18834:8834 -e ACTIVATION_CODE=<你的激活码> -e USERNAME=<自定义用户名> -e PASSWORD=<自定义密码> tenableofficial/nessus
搭建完成后访问:https://YOUR_IP:18834/ 即可:
访问出现没有出现 Nessus 界面?(移动网络可能会初始化识别,建议电信或者企业专线网络,或者挂代理或者软路由)
1 2 3 docker exec -it Nessus bashcd /opt/scripts ./configure_scanner.py
搭建好看了,看了可以看到我们的免费激活码支持做多 16 台设备,且插件都可以保持更新到最新版本,且激活码有效期有好几年呢,足够我们日常使用了:
OSV-Scanner Google 新开源的漏洞扫描器,主要使用了 OSV-Scanner 来查找项目依赖漏洞。
漏洞来源全球各大漏洞库:
支持扫描自以下项目的漏洞:AlmaLinux、Alpine、Android、crates.io、Debian GNU/Linux、GitHub Actions、Go、Hex、Linux kernel、Maven、npm、NuGet、OSS-Fuzz、Packagist、Pub、PyPI、Rocky Linux、RubyGems……
使用细节大家可以参考官方文档:https://google.github.io/osv-scanner/usage/
这里只做简单的的使用:
1 osv-scanner -r /path/to/your/dir