5 Commits
main ... 2.0

Author SHA1 Message Date
platinumstufff
367fbba7c6 add ipwnder for a4 2025-06-30 22:23:09 +03:00
platinumstufff
21c8c4cf1d fix 2025-06-30 22:21:11 +03:00
platinumstufff
2c3bbeca2d some changes, new bruteforce binary 2025-06-30 00:37:39 +03:00
platinumstufff
fde54630f5 Update README.md 2025-05-15 23:52:04 +03:00
platinumstufff
e34c569a82 a4 support(probably xd) 2025-05-15 23:51:18 +03:00
5 changed files with 64 additions and 52 deletions

View File

@@ -1,6 +1,6 @@
<h1 align="center">iwannabrute</h1>
<p align="center">
Bruteforce A5-A6 numeric password with ease.
Bruteforce A4-A6 numeric password with ease.
</p>
# Prerequsites
@@ -34,7 +34,6 @@ The tool will use the AES engine as much as possible with no restrictions at the
# Soon™
- Linux support
- A4 support
- Disable password automatically
# Other Stuff

BIN
bin/Darwin/ipwnder Executable file

Binary file not shown.

BIN
resources/bruteforce Normal file → Executable file

Binary file not shown.

View File

@@ -38,6 +38,6 @@ for file in com.apple.springboard.plist.???????; do
rm "$file" > /dev/null
fi
done
# mv /mnt2/mobile/Library/Preferences/com.apple.springboard.plist /mnt2/mobile/Library/Preferences/com.apple.springboard.plist.bak > /dev/null
# rm /mnt2/mobile/Library/Preferences/com.apple.springboard.plist > /dev/null
# rm /mnt2/mobile/Library/SpringBoard/LockoutStateJournal.plist > /dev/null
mv /mnt2/mobile/Library/Preferences/com.apple.springboard.plist /mnt2/mobile/Library/Preferences/com.apple.springboard.plist.bak > /dev/null
rm /mnt2/mobile/Library/Preferences/com.apple.springboard.plist > /dev/null
rm /mnt2/mobile/Library/SpringBoard/LockoutStateJournal.plist > /dev/null

View File

@@ -1,6 +1,6 @@
#!/bin/bash
script_version="1.2.0"
script_version="2.0"
mk_bruteforce_ramdisk() {
device=$1
@@ -254,7 +254,6 @@ set_tool_paths() {
ideviceinstaller+="$dir/ideviceinstaller"
idevicerestore+="$dir/idevicerestore"
ifuse="$(command -v ifuse)"
ipwnder+="$dir/ipwnder"
irecovery+="$dir/irecovery"
irecovery2+="$dir/irecovery2"
irecovery3+="../$dir/irecovery"
@@ -271,7 +270,6 @@ set_tool_paths() {
}
check_ramdisk_cache(){
ramdisk_path="ramdisks/bruteforce-$deviceid-$ios_version"
@@ -297,24 +295,20 @@ check_ramdisk_cache(){
}
pwn_device() {
if [ "$is_fake_device" = true ]; then
echo "device is fake, exiting"
exit
fi
if [[ -z "${is_a5+x}" ]]; then
echo "Detected $device_name ($deviceid)."
# check if device in pwndfu already
if (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (DFU Mode)' >> /dev/null | bin/Darwin/irecovery -q 2> /dev/null | grep 'PWND' >> /dev/null); then
echo "Device already in pwnDFU. Continuing..."
echo "Device already in pwnDFU mode."
ipwndfu send_ibss
else
case $pwnder in
"ipwndfu") ipwndfu pwn ;;
esac
return
fi
else
#pwndfu code
case $pwnder in
a5)
echo ""
echo ""
echo "Detected A5 device."
@@ -332,8 +326,20 @@ pwn_device() {
echo "Device in pwnDFU mode detected!"
ipwndfu send_ibss
fi
;;
ipwndfu)
echo "Using ipwndu for pwning..."
ipwndfu pwn
;;
ipwnder)
echo "Using ipwnder for pwning..."
ipwnder
;;
*)
echo "ipwnder value is empty. wtf"
exit 1
;;
esac
}
ipwndfu() {
@@ -457,6 +463,12 @@ ipwndfu() {
}
ipwnder() {
echo "Pwning device using ipwnder"
./bin/Darwin/ipwnder
}
download_file() {
# usage: download_file {link} {target location} {sha1}
local filename="$(basename $2)"
@@ -500,30 +512,31 @@ get_device_info() {
deviceid=$(bin/Darwin/irecovery -q | grep PRODUCT | sed 's/PRODUCT: //')
fi
case $deviceid in
# "iPhone3,1") device_name="iPhone 4 (GSM)" pwnder="ipwnder32" ;;
# "iPhone3,2") device_name="iPhone 4 (GSM, Rev A)" pwnder="ipwnder32" ;;
# "iPhone3,3") device_name="iPhone 4 (CDMA)" pwnder="ipwnder32";;
"iPhone4,1") device_name="iPhone 4S" is_a5=true;;
"iPhone5,1") device_name="iPhone 5 (GSM)" pwnder="ipwndfu";;
"iPhone5,2") device_name="iPhone 5 (Global)" pwnder="ipwndfu";;
"iPhone5,3") device_name="iPhone 5C (GSM)" pwnder="ipwndfu";;
"iPhone5,4") device_name="iPhone 5C (Global)" pwnder="ipwndfu";;
# "iPad1,1") device_name="iPad 1" pwnder="ipwnder32";;
"iPad2,1") device_name="iPad 2 (Wi-Fi)" is_a5=true;;
"iPad2,2") device_name="iPad 2 (GSM)" is_a5=true;;
"iPad2,3") device_name="iPad 2 (CDMA)" is_a5=true;;
"iPad2,4") device_name="iPad 2 (Wi-Fi, Rev A)" is_a5=true;;
"iPad2,5") device_name="iPad mini 1 (Wi-Fi)" is_a5=true;;
"iPad2,6") device_name="iPad mini 1 (GSM)" is_a5=true;;
"iPad2,7") device_name="iPad mini 1 (Global)" is_a5=true;;
"iPad3,1") device_name="iPad 3 (Wi-Fi)" is_a5=true;;
"iPad3,2") device_name="iPad 3 (CDMA)" is_a5=true;;
"iPad3,3") device_name="iPad 3 (GSM)" is_a5=true;;
"iPad3,4") device_name="iPad 4 (Wi-Fi)" pwnder="ipwndfu";;
"iPad3,5") device_name="iPad 4 (GSM)" pwnder="ipwndfu";;
"iPad3,6") device_name="iPad 4 (Global)" pwnder="ipwndfu";;
"iPod4,1") device_name="iPod touch 4" is_a5=true;;
"iPod5,1") device_name="iPod touch 5" is_a5=true;;
"iPhone3,1") device_name="iPhone 4 (GSM)" default_version="7.1.2" pwnder="ipwnder32" ;;
"iPhone3,2") device_name="iPhone 4 (GSM, Rev A)" default_version="7.1.2" pwnder="ipwnder32" ;;
"iPhone3,3") device_name="iPhone 4 (CDMA)" default_version="7.1.2" pwnder="ipwnder32";;
"iPhone4,1") device_name="iPhone 4S" default_version="9.0.2" pwnder="a5";;
"iPhone5,1") device_name="iPhone 5 (GSM)" default_version="9.0.2" pwnder="ipwndfu";;
"iPhone5,2") device_name="iPhone 5 (Global)" default_version="9.0.2" pwnder="ipwndfu";;
"iPhone5,3") device_name="iPhone 5C (GSM)" default_version="9.0.2" pwnder="ipwndfu";;
"iPhone5,4") device_name="iPhone 5C (Global)" default_version="9.0.2" pwnder="ipwndfu";;
# Disabled due iOS 5.1.1 is last version for iPad 1(aes patch needs to be reworked)
# "iPad1,1") device_name="iPad 1" default_version="5.1.1" pwnder="ipwnder32";;
"iPad2,1") device_name="iPad 2 (Wi-Fi)" default_version="9.0.2" pwnder="a5";;
"iPad2,2") device_name="iPad 2 (GSM)" default_version="9.0.2" pwnder="a5";;
"iPad2,3") device_name="iPad 2 (CDMA)" default_version="9.0.2" pwnder="a5";;
"iPad2,4") device_name="iPad 2 (Wi-Fi, Rev A)" default_version="9.0.2" pwnder="a5";;
"iPad2,5") device_name="iPad mini 1 (Wi-Fi)" default_version="9.0.2" pwnder="a5";;
"iPad2,6") device_name="iPad mini 1 (GSM)" default_version="9.0.2" pwnder="a5";;
"iPad2,7") device_name="iPad mini 1 (Global)" default_version="9.0.2" pwnder="a5";;
"iPad3,1") device_name="iPad 3 (Wi-Fi)" default_version="9.0.2" pwnder="a5";;
"iPad3,2") device_name="iPad 3 (CDMA)" default_version="9.0.2" pwnder="a5";;
"iPad3,3") device_name="iPad 3 (GSM)" default_version="9.0.2" pwnder="a5";;
"iPad3,4") device_name="iPad 4 (Wi-Fi)" default_version="9.0.2" pwnder="ipwndfu";;
"iPad3,5") device_name="iPad 4 (GSM)" default_version="9.0.2" pwnder="ipwndfu";;
"iPad3,6") device_name="iPad 4 (Global)" default_version="9.0.2" pwnder="ipwndfu";;
"iPod4,1") device_name="iPod touch 4" default_version="6.1.6" pwnder="ipwnder32";;
"iPod5,1") device_name="iPod touch 5" default_version="9.0.2" pwnder="a5";;
*) device_name="Unsupported device" unsupported=true;;
esac
if [[ -z "${unsupported+x}" ]]; then
@@ -746,7 +759,7 @@ if [[ ! -e "./resources/firstrun" || $(cat "./resources/firstrun") != "$platform
fi
get_device_info "$@"
echo ""
echo "Enter ramdisk version (9.0.2 is default)"
echo "Enter ramdisk version ($default_version is default)"
echo ""
read -p "Version:" ios_version
major="${ios_version%%.*}"
@@ -754,7 +767,7 @@ if [ "$major" = "10" ]; then
echo "For iOS 10.x devices use 9.0.2 ramdisk."
exit
fi
ios_version=${ios_version:-9.0.2}
ios_version="${ios_version:-$default_version}"
echo ""
echo "Checking is Ramdisk exists."