top of page

How To Carrier Unlock Mobile Devices

How To Carrier Unlock Mobile Devices | Black Hat HQ

Carrier Unlocking Mobile Devices


Here's the carrier unlock methodology on mobile devices. This is a(n) article / guide on how to carrier unlock mobile devices.


What You're Actually Testing


Carrier locking is a security control that prevents a device from being activated on an unauthorized network. For organizations, it's relevant in three scenarios:


Scenario

Why It Matters

Fleet procurement verification

Organization paid for carrier-locked devices at a discount. Are they actually locked, or did the vendor ship unlocked units at the locked price?

Device loss/theft deterrence

A stolen carrier-locked device is harder to resell or repurpose on another network, reducing theft incentive.

Insider threat / device repurposing

Can a terminated employee carrier-unlock a company device and keep using it?


Check Current Carrier Lock Status


Before attempting any unlock, verify the actual lock state of each device.


iPhone


bash

# Settings → General → About
# Scroll to "Carrier Lock"
# States:
#   "No SIM restrictions" = fully unlocked
#   "SIM locked" = carrier locked

# Or via IMEI lookup (more reliable)
# Dial *#06# to get IMEI
# Then query Apple's activation server:
curl -s "https://sickw.com/api.php?format=JSON&key=YOUR_API_KEY&imei=IMEI_HERE" | jq '.simlock'

Command-line approach with an iPhone backup tool:


bash

# Using libimobiledevice
ideviceinfo -k CarrierLockStatus
# 0 = unlocked, 1 = locked

Android


bash

# Method 1: Dialer code (universal)
*#7465625#           # Check lock status on most Android
*#*#7378423#*#*       # Sony service menu → Service info → SIM Lock

# Method 2: ADB
adb shell getprop gsm.sim.state
# ABSENT, READY, LOCKED, NETWORK_LOCKED

adb shell getprop persist.radio.carrierlock
# true = locked

# Method 3: Direct check via radio
adb shell dumpsys telephony.registry | grep mCarrierLocked

Bulk Fleet Check


bash

#!/bin/bash
# fleet_lock_check.sh — verify lock status across fleet

DEVICES=(
  "device1_serial:IMEI1"
  "device2_serial:IMEI2"
  "device3_serial:IMEI3"
)

for device in "${DEVICES[@]}"; do
  SERIAL="${device%%:*}"
  IMEI="${device##*:}"
  
  echo "[*] Checking $SERIAL ($IMEI)..."
  
  # Query via SickW, IMEI.info, or direct carrier API
  STATUS=$(curl -s "https://sickw.com/api.php?key=API_KEY&imei=$IMEI" | jq -r '.simlock_status')
  
  if [[ "$STATUS" == "Locked" ]]; then
    echo "    ✓ Locked (expected)"
  else
    echo "    ✗ UNLOCKED (potential finding)"
  fi
done

Carrier Unlock Methods


These are the actual methods. As a hacker, you're testing which ones work against your organization's devices.


Method A: Carrier-Provided Unlock (Legitimate/Pentest Baseline)


Every carrier has a device unlock policy. Test whether the organization's devices qualify.


bash

# AT&T Device Unlock Portal
# https://www.att.com/deviceunlock/
# Requirements:
#   - Device active on AT&T for 60+ days
#   - Account in good standing
#   - Device not reported lost/stolen
#   - Installment plan fully paid

# T-Mobile Device Unlock
# https://www.t-mobile.com/support/devices/unlock-your-mobile-wireless-device
# Requirements:
#   - Device active for 40+ days
#   - Account in good standing
#   - Device fully paid off

# Verizon
# https://www.verizon.com/support/device-unlocking-policy/
# Most Verizon postpaid devices auto-unlock after 60 days
# Prepaid: 60 days after activation

Hacker's angle: If the organization recently switched carriers or terminated lines, devices may qualify for carrier unlock and employees may have the account info to request it themselves.


bash

# Test: Can a non-admin employee unlock via carrier portal?
# 1. Navigate to carrier unlock page
# 2. Enter device IMEI (printed on box, or dial *#06#)
# 3. If prompted for account PIN/SSN — does employee have it?
# 4. If unlock approved — finding: insider unlock possible

Method B: Third-Party IMEI Unlock Services


These services pay carrier insiders or use carrier partner credentials to submit unlock requests. They're widely available but their legality varies by jurisdiction.


bash

# Common services (for testing purposes):
# - doctorSIM, UnlockBase, CellUnlocker.net
# - DirectUnlocks, IMEI Authority

# Test process:
# 1. Submit IMEI to service
# 2. Pay fee (typically $10-50 for standard, $50-200 for premium/fast)
# 3. Service processes through carrier back-end
# 4. Unlock confirmation arrives via email (typically 1-72 hours)
# 5. Insert non-original carrier SIM → device activates on new network

Hacker's angle: Test whether:


  • The unlock service accepts your organization's device IMEIs (not blacklisted for business accounts)

  • The unlock actually works (inserting a test SIM from a different carrier)

  • There are any alerts to the organization's carrier account


Method C: Factory Unlock Codes (Older Android)


Some manufacturers allow unlocking via dialer code (mostly older models):


bash

# Samsung (older models, pre-2019)
# Requires unlock code — usually obtained from carrier or third-party
# Dial: #7465625*638*UNLOCK_CODE#
# Or: #0111*UNLOCK_CODE#

# LG
# 2945#*MODEL_NUMBER# → Service Menu → Network Lock → Enter Code

# Motorola
# Requires specific code per IMEI
# Dial: #073887*UNLOCK_CODE#

# Huawei (pre-ban)
# Requires NCK code (Network Control Key)
# Insert non-original SIM → prompts for NCK code

Hacker's angle: If the organization has older Android devices still in the fleet, test whether unlock codes from third-party services actually work.


Method D: Manufacturer Direct Unlock


Some manufacturers have their own unlock programs:


bash

# OnePlus
# OEM Unlock in Developer Options (for bootloader)
# Carrier unlock is separate — but carrier-agnostic OnePlus phones 
# may not be carrier-locked at all on certain SKUs

# Google Pixel
# All Pixels sold directly by Google are carrier-unlocked
# Pixel from Verizon: auto-unlock after 60 days
# "OEM Unlocking" toggle in Developer Options — grayed out if carrier-locked

# Xiaomi/Redmi/POCO
# Mi Unlock tool for bootloader
# Carrier lock is rare outside Chinese carrier variants

Method E: Hardware-Based Unlock (Chip Reprogramming)


Some repair shops offer "hardware unlocks" — these involve physically modifying or replacing baseband components:


bash

# Common techniques:
# 1. JTAG/SWD flashing — reprogram baseband chip directly
# 2. EEPROM replacement — swap or reprogram the NAND flash
# 3. Service box tools — Octoplus, Z3X, SigmaKey
# 4. Unlock via factory/engineering firmware

# These require:
# - Phone disassembly
# - Specialized hardware (Octoplus Box: $200-800)
# - Model-specific firmware files

Hacker's angle: This is the most extreme method. Test if any local repair shop will attempt it on an organization device. If they will, it demonstrates that physical security of lost/stolen devices matters more than carrier lock.


Manufacturer-Specific Unlock Testing


iPhone Carrier Unlock


bash

# iPhones have two lock systems:
# 1. Carrier lock — prevents SIM from another carrier
#    Check: Settings → General → About → Carrier Lock
#    Bypass: Only through Apple's activation server (carrier-submitted request)
#    RSIM/Gevey SIM interposers can sometimes bypass (tricks phone into 
#    thinking it's on the home carrier)

# 2. Activation Lock (iCloud lock) — prevents reactivation after wipe
#    Check: https://www.icloud.com/activationlock/
#    Bypass: Requires original owner credentials or Apple unlock approval
#    (Not the same as carrier lock — often confused)

# RSIM / Gevey SIM Testing:
# 1. Purchase RSIM/Gevey interposer for target device model
# 2. Program interposer with carrier ICCID
# 3. Insert interposer + target SIM into iPhone
# 4. Follow on-screen carrier activation
# 5. Test: does device now function on unauthorized carrier?

Hacker's value: Test whether RSIM/Gevey interposers work against the organization's iPhone fleet. These are $5-15 devices that can bypass carrier locking on certain iOS versions. They don't always survive iOS updates.


Carrier Unlock By Specific Carrier - Testing Fast Tracks


Carrier

Normal Unlock Time

Fastest Method

Pentest Angle

AT&T

2-5 days via portal

Instant via employee insider

Can employee submit with account info?

T-Mobile

24-72 hours via app

Instant via T-Force (Twitter DM)

Social engineering the support channel

Verizon

Auto after 60 days

Already unlocked on most postpaid

Verify: are "locked" Verizon devices actually locked?

Sprint (now T-Mobile)

48-72 hours

T-Mobile migration unlock

Legacy Sprint devices may be auto-unlocked

Xfinity Mobile

48 hours

Portal request with account

Can employee access Xfinity account?

Spectrum Mobile

24-48 hours

Phone support

Social engineering test

Dish/Boost

12 months active required

Longest hold

Test if org's Dish devices qualify yet


Comprehensive Pentest Workflow


bash

#!/bin/bash
# carrier_unlock_pentest.sh — full fleet testing

echo "=== CARRIER UNLOCK PENTEST ==="
echo ""

# Phase 1: Inventory & Lock Status
echo "--- Phase 1: Lock Status Verification ---"
for device in "${DEVICES[@]}"; do
  check_lock_status "$device"
done

# Phase 2: Carrier Unlock Attempt
echo ""
echo "--- Phase 2: Carrier Unlock Attempt ---"
echo "[*] Testing carrier portal unlock..."
carrier_portal_unlock_test "DEVICE_IMEI"

# Phase 3: Third-Party Service Test
echo ""
echo "--- Phase 3: Third-Party Unlock Service ---"
echo "[*] Submitting IMEI to unlock service..."
# Submit to service, document cost and turnaround

# Phase 4: RSIM/Gevey Test (if iPhone)
echo ""
echo "--- Phase 4: Physical Interposer Test ---"
echo "[*] Testing RSIM/Gevey interposer..."
test_interposer "DEVICE_MODEL"

# Phase 5: Social Engineering
echo ""
echo "--- Phase 5: Social Engineering ---"
echo "[*] Attempting carrier support social engineering..."
# Call carrier support as "employee who switched departments"
# Request unlock, document whether granted

echo ""
echo "=== TEST COMPLETE ==="

Operational Notes


Important: Device Wiping


  • iPhone: Carrier unlock is server-side. The device doesn't need to be wiped. After Apple's activation server updates the unlock status, insert a new SIM and the device activates.

  • Android: Most carrier unlocks don't require a wipe. Insert the new SIM, enter unlock code if prompted, device reboots and activates on the new carrier.

  • Factory reset DOES NOT remove carrier lock. The lock is stored on Apple's servers (iPhone) or in the baseband/modem firmware (Android).


IMEI Blacklisting


Carrier unlocking is separate from IMEI blacklisting. An unlocked device with a blacklisted (lost/stolen) IMEI will still be rejected by most carriers. Test for this:


bash

# Check IMEI blacklist status
curl -s "https://sickw.com/api.php?key=API_KEY&imei=$IMEI" | jq '.blacklist_status'

# Check multiple databases:
# - GSMA IMEI Database (global)
# - CTIA Stolen Phone Checker (US)
# - carrier-specific check tools

Report Template


markdown

## Finding M-009: Carrier Lock Bypass Assessment

Severity: Medium
Impact: Device loss/theft risk, procurement fraud indicator

### Lock Status Across Fleet (15 devices tested)
| Device | Expected Lock | Actual Lock | Finding |
|--------|--------------|-------------|---------|
| iPhone 14 Pro x5 | AT&T Locked | AT&T Locked | Compliant ✓ |
| iPhone 13 x3 | T-Mobile Locked | T-Mobile Locked | Compliant ✓ |
| iPhone SE x2 | T-Mobile Locked | UNLOCKED | **Vendor discrepancy** ✗ |
| Galaxy S23 x3 | Verizon Locked | Verizon Locked | Auto-unlock after 60d ⚠ |
| Galaxy A54 x2 | AT&T Locked | AT&T Locked | Compliant ✓ |

### Unlock Attempts
| Method | Target | Success? | Cost | Notes |
|--------|--------|----------|------|-------|
| AT&T portal | iPhone 14 Pro | Approved | Free | Processed instantly with account info |
| Third-party (IMEI Authority) | Galaxy S23 | Approved | $28 | 48hr turnaround |
| RSIM interposer | iPhone 13 | Approved | $8 | Survived iOS 17.4 reboot |
| Social eng (AT&T support) | iPhone 14 Pro | Approved | Free | CSR unlocked without verification |

### Key Findings
1. **2 iPhone SE devices were carrier-unlocked** despite being procured as T-Mobile locked — potential vendor fraud or procurement error
2. **Verizon devices auto-unlock after 60 days** — postpaid fleet is effectively unlocked after two months, negating theft deterrence value
3. **RSIM interposer works** — $8 device defeated carrier lock on all iPhones tested
4. **Carrier support social engineering successful** — 2/3 attempts resulted in unlock without proper identity verification
5. **Third-party unlock services** are fast, cheap, and reliable — no alert triggered to corporate carrier account

### Remediation
1. **Verify procurement:** Audit carrier-locked vs unlocked device invoices. The 2 unlocked iPhones may represent billing discrepancies of $100-150 per device.
2. **Carrier lock as theft control is unreliable:** Verizon postpaid fleet is effectively unlocked. Implement MDM-based device wipe and activation lock as primary theft controls instead.
3. **Account security:** Restrict who has access to carrier account credentials. The unlock portal tests showed any employee with the account PIN could unlock all devices.
4. **MDM enrollment over carrier lock:** Prioritize MDM activation lock and remote wipe. These survive carrier unlocking and factory resets.
5. **Asset tagging:** Physical asset tags reduce resale value, making carrier unlock less impactful.
6. **Accept limitation:** Carrier lock is a speed bump, not a security control. Treat it as such in the risk model.

Enroll In Online Cybersecurity & Hacking Classes/Courses | Black Hat HQ

Comments


bottom of page