From 06c31be13cd741319a787cb0a752dcc65399b0f0 Mon Sep 17 00:00:00 2001 From: Assaf Dori Date: Thu, 13 Jun 2024 07:56:36 +0300 Subject: [PATCH] added v2 script, dynamically fetching volume name --- bypass-mdm-v2.sh | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 bypass-mdm-v2.sh diff --git a/bypass-mdm-v2.sh b/bypass-mdm-v2.sh new file mode 100644 index 0000000..fa19258 --- /dev/null +++ b/bypass-mdm-v2.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +# Define color codes +RED='\033[1;31m' +GRN='\033[1;32m' +BLU='\033[1;34m' +YEL='\033[1;33m' +PUR='\033[1;35m' +CYAN='\033[1;36m' +NC='\033[0m' + +# Function to get the system volume name +get_system_volume() { + system_volume=$(diskutil info / | grep "Device Node" | awk -F': ' '{print $2}' | xargs diskutil info | grep "Volume Name" | awk -F': ' '{print $2}' | tr -d ' ') + echo "$system_volume" +} + +# Get the system volume name +system_volume=$(get_system_volume) + +# Display header +echo -e "${CYAN}Bypass MDM By Assaf Dori (assafdori.com)${NC}" +echo "" + +# Prompt user for choice +PS3='Please enter your choice: ' +options=("Bypass MDM from Recovery" "Reboot & Exit") +select opt in "${options[@]}"; do + case $opt in + "Bypass MDM from Recovery") + # Bypass MDM from Recovery + echo -e "${YEL}Bypass MDM from Recovery" + if [ -d "/Volumes/$system_volume - Data" ]; then + diskutil rename "$system_volume - Data" "Data" + fi + + # Create Temporary User + echo -e "${NC}Create a Temporary User" + read -p "Enter Temporary Fullname (Default is 'Apple'): " realName + realName="${realName:=Apple}" + read -p "Enter Temporary Username (Default is 'Apple'): " username + username="${username:=Apple}" + read -p "Enter Temporary Password (Default is '1234'): " passw + passw="${passw:=1234}" + + # Create User + dscl_path='/Volumes/Data/private/var/db/dslocal/nodes/Default' + echo -e "${GREEN}Creating Temporary User" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" UserShell "/bin/zsh" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" RealName "$realName" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" UniqueID "501" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" PrimaryGroupID "20" + mkdir "/Volumes/Data/Users/$username" + dscl -f "$dscl_path" localhost -create "/Local/Default/Users/$username" NFSHomeDirectory "/Users/$username" + dscl -f "$dscl_path" localhost -passwd "/Local/Default/Users/$username" "$passw" + dscl -f "$dscl_path" localhost -append "/Local/Default/Groups/admin" GroupMembership $username + + # Block MDM domains + echo "0.0.0.0 deviceenrollment.apple.com" >>/Volumes/"$system_volume"/etc/hosts + echo "0.0.0.0 mdmenrollment.apple.com" >>/Volumes/"$system_volume"/etc/hosts + echo "0.0.0.0 iprofiles.apple.com" >>/Volumes/"$system_volume"/etc/hosts + echo -e "${GRN}Successfully blocked MDM & Profile Domains" + + # Remove configuration profiles + touch /Volumes/Data/private/var/db/.AppleSetupDone + rm -rf /Volumes/"$system_volume"/var/db/ConfigurationProfiles/Settings/.cloudConfigHasActivationRecord + rm -rf /Volumes/"$system_volume"/var/db/ConfigurationProfiles/Settings/.cloudConfigRecordFound + touch /Volumes/"$system_volume"/var/db/ConfigurationProfiles/Settings/.cloudConfigProfileInstalled + touch /Volumes/"$system_volume"/var/db/ConfigurationProfiles/Settings/.cloudConfigRecordNotFound + + echo -e "${GRN}MDM enrollment has been bypassed!${NC}" + echo -e "${NC}Exit terminal and reboot your Mac.${NC}" + break + ;; + "Reboot & Exit") + # Reboot & Exit + echo "Rebooting..." + reboot + break + ;; + *) echo "Invalid option $REPLY" ;; + esac +done