Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Android-PIN-Bruteforce — 안드로이드 휴대폰(또는 기기)의 잠금 화면 PIN을 무차별 대입(bruteforce)하여 잠금 해제하세요. Kali Nethunter 휴대폰을 안드로이드 기기용 무차별 PIN 크래킹 도구로 변환하세요! (루트 권한 불필요, ADB 불필요) | Kitploit
도구/GitHubGitHub/urbanadventurer/android-pin-bruteforce
Android SecurityPassword AttacksHardware HackingMobile Security
GitHuburbanadventurer/android-pin-bruteforce

Android-PIN-Bruteforce

안드로이드 휴대폰(또는 기기)의 잠금 화면 PIN을 무차별 대입(bruteforce)하여 잠금 해제하세요. Kali Nethunter 휴대폰을 안드로이드 기기용 무차별 PIN 크래킹 도구로 변환하세요! (루트 권한 불필요, ADB 불필요)

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
4.8k832694년 전Kitploit 검토 완료

🔓📱 Android-PIN-Bruteforce

잠금 화면 PIN을 무차별 대입하여 Android 휴대폰(또는 기기)을 잠금 해제하세요.

Kali Nethunter 휴대폰을 Android 기기용 무차별 PIN 크래커로 바꿔보세요!

📱 작동 방식

USB OTG 케이블을 사용하여 잠긴 휴대폰을 Nethunter 기기에 연결합니다. 키보드를 에뮬레이션하여 자동으로 PIN을 시도하고, 너무 많은 잘못된 추측 후에 대기합니다.

How to Connect Phones

[Nethunter phone] <--> [USB cable] <--> [USB OTG adaptor] <--> [Locked Android phone]

USB HID Gadget 드라이버는 USB 휴먼 인터페이스 장치(HID)의 에뮬레이션을 제공합니다. 이를 통해 Android Nethunter 기기가 잠긴 휴대폰에 키보드 입력을 에뮬레이션할 수 있습니다. 마치 잠긴 휴대폰에 키보드를 연결하고 키를 누르는 것과 같습니다.

⏱ Samsung S5로 4자리 PIN을 모두 시도하는 데 약 16.6시간이 걸리지만, 최적화된 PIN 목록을 사용하면 훨씬 적은 시간이 소요됩니다.

필요 사항

  • 잠긴 Android 휴대폰
  • Nethunter 휴대폰(또는 HID 커널을 지원하는 루팅된 Android 기기)
  • USB OTG(On The Go) 케이블/어댑터(USB male Micro-B to female USB A) 및 표준 충전 케이블(USB male Micro-B to male A)
  • 그게 전부입니다!

🌟 장점

  • NetHunter 휴대폰을 Android PIN 크래킹 머신으로 변환
  • 다른 방법과 달리 잠긴 휴대폰에서 ADB나 USB 디버깅이 활성화되어 있지 않아도 됨
  • 잠긴 Android 휴대폰을 루팅할 필요 없음
  • Rubber Ducky, Teensy, Cellebrite, XPIN Clip 등 특수 하드웨어를 구매할 필요 없음
  • 백오프 시간을 쉽게 수정하여 다른 유형의 기기를 크랙할 수 있음
  • 실제로 작동합니다!

⭐ 기능

  • 1~10자리 PIN 크랙 지원
  • 다양한 휴대폰을 지원하기 위한 구성 파일 사용
  • 3, 4, 5, 6자리 PIN을 위한 최적화된 PIN 목록
  • 저전력 경고를 포함한 휴대폰 팝업 우회
  • 휴대폰이 분리되거나 전원이 꺼졌을 때 감지하고 5초마다 재시도하며 대기
  • X회 PIN 시도 후 N초 지연 설정 가능
  • 로그 파일

설치

TBC

스크립트 실행

스크립트를 /sdcard/에 설치한 경우, 다음 명령어로 실행할 수 있습니다.bash ./android-pin-bruteforce

Note that Android mounts /sdcard with the noexec flag. You can verify this with mount.

Usage

root@kitploit:~
Android-PIN-Bruteforce (0.2)는 잠금 화면 PIN을 브루트포싱하여 안드로이드 폰(또는 기기)의 잠금을 해제하는 데 사용됩니다.
  자세한 정보: https://github.com/urbanadventurer/Android-PIN-Bruteforce

명령어:
  crack                PIN 크래킹 시작
  resume               선택한 PIN부터 재개
  rewind               선택한 PIN부터 역순으로 PIN 크래킹
  diag                 진단 정보 표시
  version              버전 정보를 표시하고 종료

옵션:
  -f, --from PIN       이 PIN부터 재개
  -a, --attempts       잘못된 시도 횟수 NUM부터 시작
  -m, --mask REGEX     PIN의 알려진 자릿수에 마스크 사용
  -t, --type TYPE      PIN 또는 패턴 크래킹 선택
  -l, --length NUM     NUM 길이의 PIN 크래킹
  -c, --config FILE    로드할 설정 파일 지정
  -p, --pinlist FILE   사용자 정의 PIN 목록 지정
  -d, --dry-run        테스트용 시뮬레이션 실행. 키를 전송하지 않음.
  -v, --verbose        상세 로그 출력

사용법:
  android-pin-bruteforce <명령어> [옵션]```


## Supported Android Phones/Devices

This has been successfully tested with various phones including the Samsung S5, S7, Motorola G4 Plus and G5 Plus.

It can unlock Android versions 6.0.1 through to 10.0. The ability to perform a bruteforce attack doesn't depend on the Android version in use. It depends on how the device vendor developed their own lockscreen.

Check the Phone Database for more details
https://github.com/urbanadventurer/Android-PIN-Bruteforce/wiki/Phone-Database

## 🎳 PIN Lists

Optimised PIN lists are used by default unless the user selects a custom PIN list.  

### Cracking PINs of different lengths

Use the `--length` commandline option.

Use this command to crack a 3 digit PIN, 
`./android-pin-bruteforce crack --length 3`

Use this command to crack a 6 digit PIN
`./android-pin-bruteforce crack --length 6`

### Where did the optimised PIN lists come from?

The optimised PIN lists were generated by extracting numeric passwords from database leaks then sorting by frequency. All PINs that did not appear in the password leaks were appended to the list. 

The optimised PIN lists were generated from *Ga$$Pacc DB Leak* (21GB decompressed, 688M Accounts, 243 Databases, 138920 numeric passwords).

#### The 4 digit PIN list

The reason that the 4 digit PIN list is used from a different source is because it gives better results than the generated list from *Ga$$Pacc DB Leak*.

`optimised-pin-length-4.txt` is an optimised list of all possible 4 digit PINs, sorted by order of likelihood.
It can be found with the filename `pinlist.txt` at https://github.com/mandatoryprogrammer/droidbrute

This list is used with permission from Justin Engler & Paul Vines from Senior Security Engineer, iSEC Partners,
and was used in their Defcon talk, [Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)](https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler)

### Cracking with Masks

Masks use regular expressions with the standard grep extended format.

`./android-pin-bruteforce crack --mask "...[45]" --dry-run`

- To try all years from 1900 to 1999, use a mask of `19..`
- To try PINs that have a 1 in the first digit, and a 1 in the last digit, use a mask of `1..1`
- To try PINs that end in 4 or 5, use `...[45]`

## 📱 Configuration for different phones

Device manufacturers create their own lock screens that are different to the default or stock Android. 
To find out what keys your phone needs, plug a keyboard into the phone and try out different combinations.

Load a different configuration file, with the `--config FILE` commandline parameter.

Example:
`./android-pin-bruteforce --config ./config.samsung.s5 crack`

You can also edit the `config` file by customising the timing and keys sent.

The following configuration variables can be used to support a different phone's lockscreen.

타이밍

DELAY_BETWEEN_KEYS는 각 키가 전송된 후 대기할 시간(초)입니다.

DELAY_BETWEEN_KEYS=0.25

PROGRESSIVE_COOLDOWN_ARRAY 변수는 점진적 쿨다운을 사용자 정의하기 위한 다차원 배열 역할을 합니다.

PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________는 시도 번호입니다.

PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN은 쿨다운 전까지 시도할 횟수입니다.

PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____는 쿨다운 시간(초)입니다.

PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________=(1 11 41) PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN=(5 1 1) PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____=(30 30 60)

SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END는 쿨다운 기간 종료 몇 초 전에 키를 전송할지 정의합니다.

0으로 설정하면 비활성화됩니다.

SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END=5

SEND_KEYS_DISMISS_POPUPS_AT_COOLDOWN_END는 쿨다운 기간 종료 전에 메시지 및 팝업을 해제하기 위해 전송되는 키를 구성합니다.

SEND_KEYS_DISMISS_POPUPS_AT_COOLDOWN_END="enter enter enter"

KEYS_BEFORE_EACH_PIN은 잠금 화면이 나타나도록 입력되는 키를 구성합니다. 각 PIN 앞에 전송됩니다.

기본적으로 "escape enter"를 전송하지만, 일부 휴대폰은 다른 키에 반응합니다.

예시:

KEYS_BEFORE_EACH_PIN="ctrl_escape enter"

KEYS_BEFORE_EACH_PIN="escape space"

KEYS_BEFORE_EACH_PIN="escape enter"

KEYS_STAY_AWAKE_DURING_COOLDOWN은 쿨다운 기간 동안 휴대폰을 깨우기 위해 전송되는 키입니다.

KEYS_STAY_AWAKE_DURING_COOLDOWN="enter"

SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS는 키가 전송되는 빈도(초)입니다.

SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS=5

DELAY_BEFORE_STARTING은 무차별 대입 공격이 시작되기 전 대기할 시간(초)입니다.

DELAY_BEFORE_STARTING=2

KEYS_BEFORE_STARTING은 무차별 대입 공격이 시작되기 전에 전송되는 키를 구성합니다.

KEYS_BEFORE_STARTING="enter"```

Popups

We send keys before the end of the cooldown period, or optionally during the cooldown period. This is to keep the lockscreen app active and to dismiss any popups about the number of incorrect PIN attempts or a low battery warning.

Test sending keys from the NetHunter phone

Test sending keys from the terminal

Use ssh from your laptop to the NetHunter phone, and use this command to test sending keys:

In this example, the enter key is sent.

echo "enter" | /system/xbin/hid-keyboard /dev/hidg0 keyboard

In this example, ctrl-escape is sent.

echo "left-ctrl escape" | /system/xbin/hid-keyboard /dev/hidg0 keyboard

Note: Sending combinations of keys in config file variables is different. Currently only ctrl_escape is supported.

In this example, keys a, b, c are sent.

echo a b c | /system/xbin/hid-keyboard /dev/hidg0 keyboard

Test sending keys from an app

This Android app is a virtual USB Keyboard that you can use to test sending keys.

https://store.nethunter.com/en/packages/remote.hid.keyboard.client/

How to send special keys

Use this list for the following variables:

  • KEYS_BEFORE_EACH_PIN
  • KEYS_STAY_AWAKE_DURING_COOLDOWN
  • KEYS_BEFORE_STARTING

To send special keys use the following labels. This list can be found in the hid_gadget_test source code.

To send more than one key at the same time, use the following list:

  • ctrl_escape (This sends left-ctrl and escape)

If you need more key combinations please open a new issue in the GitHub issues list.

Customising the Progressive Cooldown

The following section of the config file controls the progressive cooldown.

root@kitploit:~
## PROGRESSIVE_COOLDOWN_ARRAY 변수는 점진적 쿨다운을 사용자 지정하기 위한 다차원 배열 역할을 합니다.
## PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________는 시도 번호입니다.
## PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN은 쿨다운 전까지 시도할 횟수입니다.
## PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____은 초 단위의 쿨다운입니다.

PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________=(1  11 41)
PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN=(5   1  1)
PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____=(30 30 60)```

The array is the same as this table.

| attempt number   | attempts until cooldown  | cooldown   |
| ---------------- | ------------------------ | ---------- |
| 1                | 5                        | 30         |
| 11               | 1                        | 30         |
| 41               | 1                        | 60         |


### Why can't you use a laptop, or is a Windows or Linux version coming soon?

This script works by emulating USB Human Interface Devices (HID), in this case it is keyboard and mouse input. Laptops have uni-directional USB ports and an Android mobile device/ phone has a bi-directional USB port. A bi-directional port is required to emulate a keyboard.

This might change in the future as USB-C is supposed to be uni-directional.

### How Android emulates a keyboard

Keys are sent using `/system/xbin/hid-keyboard`. To test this and send the key 1 you can use `echo 1 | /system/xbin/hid-keyboard dev/hidg0 keyboard`

In Kali Nethunter, `/system/xbin/hid-keyboard` is a compiled copy of `hid_gadget_test.c`. This is a small program for testing the HID gadget driver that is included in the Linux Kernel. The source code for this file can be found at https://www.kernel.org/doc/html/latest/usb/gadget_hid.html and https://github.com/aagallag/hid_gadget_test.

## 🔧 Troubleshooting

### If it is not bruteforcing PINs

#### Check the orientation of the cables

The Nethunter phone should have a regular USB cable attached, while the locked phone should have an OTG adaptor attached.

The OTG cable should be connected to the locked Android phone. The regular USB cable should be connected to the Nethunter phone.

Refer to the graphic on how to connect the phones.

#### Check it is emulating a keyboard

You can verify that the NetHunter phone is succesfully emulating a keyboard by connecting it to a computer using a regular charging/data USB cable. Open a text editor like Notepad while it is cracking and you should see it entering PIN numbers into the text editor.

Note that you will not need an OTG cable for this. 

#### Try restarting the phones

Try powering off the phones and even taking out the batteries if that is possible.

#### Try new cables

Try using new cables/adaptors as you may have a faulty cable/adaptor.

### If it doesn't unlock the phone with a correct PIN

You might be sending keys too fast for the phone to process. Increase the DELAY_BETWEEN_KEYS variable in the config file.
💡 If you don't see 4 dots come up on the phone's screen then maybe it is not receiving 4 keys.

### 🔋 Managing Power Consumption

If your phone runs out of power too soon, follow these steps:

- Make sure both phones are fully charged to 100% before you begin
- Reduce the screen brightness on both the victim phone and NetHunter phone if possible
- Place both phones into Airplane mode, however you may want to enable WiFi to access the NetHunter phone via SSH.
- The locked phone will power the NetHunter phone, because it appears as a keyboard accessory
- Use a USB OTG cable with a Y splitter for an external power supply, to allow charging of the NetHunter phone while cracking
- Take breaks to charge your devices. Pause the script with CTRL-Z and resume with the `fg` shell command.
- Avoid the SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS configuration option. This will cause the locked phone to use more battery to keep the screen powered. Instead use the SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END option (Default).

### Check the Diagnostics Report

Use the command `diag` display diagnostic information.

```bash ./android-pin-bruteforce diag```
USB 케이블이 연결되었을 때 이 메시지를 받으면 잠긴 안드로이드 폰에서 배터리를 빼고 전원을 껐다 켜보세요.```[FAIL] HID USB device not ready. Return code from /system/xbin/hid-keyboard was 5.```

### How the usb-devices command works

The diagnostics command uses the `usb-devices` script but it is only necessary as part of determining whether the USB cables are incorrectly connected. This can be downloaded from
https://github.com/gregkh/usbutils/blob/master/usb-devices

### Use verbose output

Use the `--verbose` option to check the configuration is as expected. This is especially useful when you are modifying the configuration.

### Use the dry-run

Use the `--dry-run` option to check how it operates without sending any keys to a device. This is especially useful when you are modifying the configuration or during development.

Dry run will:

- Not send any keys
- Will continue instead of aborting if the `KEYBOARD_DEVICE` or `HID_KEYBOARD` is missing.

### HID USB Mode

Try this command in a shell on the NetHunter phone:
```/system/bin/setprop sys.usb.config hid```
## 💣 알려진 문제점

- 올바른 PIN이 입력되어 휴대폰 잠금이 해제되는 경우를 감지할 수 없습니다.
- 올바른 PIN을 찾기 전에 휴대폰 배터리가 🔋 방전될 수 있습니다.
- 출처를 알 수 없는 휴대폰 설정 파일을 검토 없이 신뢰하지 마십시오. 설정 파일은 셸 스크립트이며 악성 명령을 포함할 수 있습니다.

## 🚀 로드맵

- [완료] 작동함
- [완료] USB HID 오류 감지
- [완료] 사용법 및 명령줄 옵션/설정 파일 개선
- [완료] n자리 PIN에 대한 무차별 대입 추가
- [완료] 알려진 자릿수에 대한 마스크
- [완료] PIN 목록을 역순으로 크랙 (가장 최근에 잠금 해제된 PIN 찾기)
- [완료] 설정 가능한 잠금 화면 프롬프트 구현
- [완료] 10회 시도 후 쿨다운 변경 구현
- [작업 중] 무차별 대입할 더 많은 기기 찾기/테스트
- 진행률 표시줄 추가
- ETA 추가
- ASCII 아트
- NetHunter용 더 나은 GUI
- iPhone용 구현
- 휴대폰 잠금 해제 감지 (NetHunter 카메라를 센서로 사용?)
- Android 패턴 크랙 (일반적인 패턴 먼저 시도)

## 🙋 기여

풀 리퀘스트를 환영합니다. 주요 변경 사항의 경우, 먼저 이슈를 열어 변경하고자 하는 내용을 논의해 주십시오.

테스트를 적절히 업데이트해 주십시오.

## 😎 작성자 및 감사의 말

Andrew Horton (@urbanadventurer)이 개발하였습니다.

👏 다음 분들이 큰 도움을 주셨습니다:

- Vlad Filatov (@v1adf): 위키 휴대폰 데이터베이스를 위해 여러 휴대폰 테스트


### 동기

이 도구를 개발하게 된 원래 동기는 삼성 S5 Android 휴대폰의 잠금을 해제하기 위해서였습니다. 그 휴대폰은 사망한 분의 소유였으며, 가족들이 그 안의 데이터에 접근해야 했습니다. 당시 USB Rubber Ducky나 다른 하드웨어가 없어서 다양한 방법을 시도하다가 결국 새로운 것을 개발해야 한다고 깨달았습니다.

### 크레딧

최적화된 PIN 목록은 Justin Engler (@justinengler)와 Paul Vines (Senior Security Engineer, iSEC Partners)가 작성하였으며, 그들의 Defcon 강연 [Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)](https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler)에서 사용되었습니다.

### 그래픽

Andrew Horton이 디자인하였으며, 다음 무료 벡터 팩을 감사히 사용하였습니다:

- [USB Ports Isometric Free Vector by VisionHeldup](https://www.vecteezy.com/vector-art/159576-usb-ports-isometric-free-vector)
- [HDMI and USB Vector Set by Mary Winkler](https://www.vecteezy.com/vector-art/107006-hdmi-and-usb-vector-set)
- [Isometric Data Security Illustration by Rizal.Medanguide](https://www.vecteezy.com/vector-art/661831-isometric-data-security-illustration)
- Kali NetHunter 로고

## 🗿 잠긴 Android 휴대폰을 잠금 해제하는 다른 프로젝트 및 방법과의 비교

### 이 프로젝트가 독특한 점은 무엇인가요?

다른 오픈소스 Android PIN 크래킹 프로젝트가 있는데도 이 프로젝트가 독특한 이유에 대해 질문을 받았습니다.

Android-PIN-Bruteforce는 NetHunter 휴대폰에서 Android 휴대폰의 PIN을 크랙하며, 잠긴 휴대폰이 사전에 해킹될 필요가 없기 때문에 독특합니다.

작동 방식:
- Rubber Ducky, Celebrite, XPIN Clip과 같은 특수 하드웨어를 구매할 필요 없음.
- ADB나 루트 액세스가 필요 없음 (휴대폰이 사전에 해킹될 필요 없음).

| 프로젝트                                               | ADB/USB 디버깅  | 루트 필요 | 하드웨어 비용 필요 | 상업용  |
------------------------------------------------------- | ------------------ | ------------- | ------------------- | ----------- | 
| ⭐ Android-PIN-Bruteforce                             | 아니요             | 아니요        | NetHunter 휴대폰    | 아니요      | 
| github.com/PentesterES/AndroidPINCrack                | 예                 | 예            | 아니요              | 아니요      |
| github.com/ByteRockstar1996/Cracking-Android-Pin-Lock | 예                 | 예            | 아니요              | 아니요      |
| github.com/sch3m4/androidpatternlock                  | 예                 | 예            | 아니요              | 아니요      |
| github.com/georgenicolaou/androidlockcracker          | 예                 | 예            | 아니요              | 아니요      |
| github.com/MGF15/P-Decode                             | 예                 | 예            | 아니요              | 아니요      |
| github.com/BitesFor/ABL                               | 예                 | 예            | 아니요              | 아니요      |
| github.com/wuseman/WBRUTER                            | 예                 | 아니요        | 아니요              | 아니요      |
| github.com/Gh005t/Android-BruteForce                  | 예                 | 아니요        | 아니요              | 아니요      |
| github.com/mandatoryprogrammer/droidbrute             | 아니요             | 아니요        | Rubber Ducky $      | 아니요      |
| github.com/hak5darren/USB-Rubber-Ducky                | 아니요             | 아니요        | Rubber Ducky $      | 예          |
| github.com/bbrother/stm32f4androidbruteforce          | 아니요             | 아니요        | STM32F4 개발 보드 $ | 아니요      |
| hdb-team.com/product/hdbox/                           | 아니요             | 아니요        | HDBOX  $$           | 예          |
| xpinclip.com                                          | 아니요             | 아니요        | XPINClip  $$        | 예          |
| cellebrite.com/en/ufed/                               | 아니요             | 아니요        | Cellebrite UFED $$$ | 예          |

이 중 일부 프로젝트/제품은 정말 훌륭하지만 Android-PIN-Bruteforce와는 다른 목표를 달성합니다.

프로젝트가 gestures.key 또는 password.key를 요구하는 경우 루트가 필요하다고 표시했습니다.
프로젝트가 커스텀 부트로더를 요구하는 경우 ADB와 루트가 모두 필요하다고 표시했습니다.
이 표에 프로젝트를 추가하고 싶다면 새 이슈를 열어 주십시오.
각 프로젝트에 대한 링크는 📚 관련 프로젝트 및 추가 자료 섹션에 있습니다.

### 😭 일반 휴대폰 사용자

- [DataGenetics PIN 분석](https://datagenetics.com/blog/september32012/index.html)에서 상위 20개 PIN을 시도해 보십시오. 이 PIN은 휴대폰의 26.83%를 잠금 해제한다고 알려져 있습니다.
- SMS 잠금 화면 우회 앱 사용 (휴대폰이 잠기기 전에 앱 설치 필요)
- Samsung Find My Mobile 사용 (휴대폰이 잠기기 전에 설정해야 함)
- 잠금 화면 UI 충돌 (Android 5.0 및 5.1)
- Google 패턴 분실, PIN 분실 또는 비밀번호 분실 기능 사용 (Android 4.4 KitKat 및 이전 버전)
- 공장 초기화 (모든 데이터 손실 😭)

### 🤖 이미 Android ROM을 교체한 사용자

휴대폰이 이미 루팅되었거나, USB 디버깅이 활성화되었거나, adb가 활성화된 경우.

- 커스텀 리커버리(TWRP, CMW, Xrec 등 필요)를 사용하여 `Pattern Password Disable` ZIP을 플래시
- `/data/system/gesture.key` 또는 `password.key` 삭제 (잠긴 기기에서 루트 및 adb 필요)
- `/data/system/gesture.key` 및 `password.key` 크랙 (잠긴 기기에서 루트 및 adb 필요)
- sqlite3 데이터베이스 `settings.db` 업데이트 (잠긴 기기에서 루트 및 adb 필요)

### 🔬 법의학 조사관

이 방법들은 비용이 많이 들 수 있으며, 일반적으로 전문 휴대폰 법의학 조사관만 사용합니다.

난이도 및 비용 순서:

- USB 디버깅이 활성화된 경우 활용 (Oxygen Forensic Suite)
- 키보드 에뮬레이션을 통한 무차별 대입 (⭐ Android-PIN-Bruteforce, RubberDucky 공격, XPIN Clip, HBbox)
- JTAG (기기 보드의 TAP(테스트 액세스 포트)와 인터페이스)
- In-System Programming (ISP) (기기 보드의 플래시 메모리 칩 핀에 직접 연결)
- Chip Off (기기에서 플래시 메모리 칩을 탈착 및 제거)
- Clock Glitching / 전압 결함 주입 (PIN 제한을 우회하기 위한 하드웨어 CPU 타이밍 공격)
- 부트로더 익스플로잇 (부트로더를 공격하는 제로데이 익스플로잇. Grayshift의 GrayKey 및 Cellebrite)

JTAG, ISP, Chip Off 기술은 대부분의 기기가 암호화되어 있기 때문에 현재는 덜 유용합니다.
Clock glitching을 사용하는 휴대폰 PIN에 대한 실용적인 공격을 알지 못합니다. 이 기술을 사용하는 제품을 알고 계시면 알려주시기 바랍니다.

### 🕵 보안 전문가 및 기술 사용자

USB HID 키보드 무차별 대입을 전용 하드웨어와 함께 사용하십시오.

- RubberDucky와 Darren Kitchen의 Hak5 무차별 대입 스크립트
- USB Teensy용 스크립트 작성
- 고가의 법의학 하드웨어 구매
- 또는 NetHunter 휴대폰으로 Android-PIN-Bruteforce를 사용하십시오!

Android PIN 크래킹을 위해 RubberDucky 페이로드를 에뮬레이션하는 훌륭한 프로젝트 Duck Hunter를 사용하려는 시도는 실패했습니다. 페이로드 길이 때문에 휴대폰이 충돌했을 가능성이 있습니다.

## 📚 관련 프로젝트 및 추가 자료

### NetHunter가 없는 USB HID 하드웨어

hak5 12x17: USB Rubber Ducky로 16시간 안에 모든 4자리 Android PIN 해킹
https://archive.org/details/hak5_12x17

Hak5: USB Rubber Ducky
https://shop.hak5.org/products/usb-rubber-ducky-deluxe

USB-Rubber-Ducky 페이로드
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

Teensy
https://www.pjrc.com/teensy/

STM32F4Discovery 개발 보드로 Android 휴대폰 무차별 대입
https://github.com/bbrother/stm32f4androidbruteforce
https://hackaday.com/2013/11/10/brute-forcing-an-android-phone/

Mac EFI PIN에 대한 자동화된 무차별 대입 공격 (Teensy 사용)
https://orvtech.com/atacar-efi-pin-macbook-pro-en.html
https://hackaday.io/project/2196-efi-bruteforcer

Droidbrute: 통계적으로 생성된 단어 목록으로 효율성을 높인 Android PIN 크래킹 USB Rubber Ducky 페이로드
https://github.com/mandatoryprogrammer/droidbrute

hak5 에피소드 및 Android 무차별 대입 4자리 PIN에 대한 토론 포럼
https://forums.hak5.org/topic/28165-payload-android-brute-force-4-digit-pin/

### NetHunter HID 키보드 공격

NetHunter HID 키보드 공격
https://www.kali.org/docs/nethunter/nethunter-hid-attacks/

### Linux 커널 HID 지원

휴먼 인터페이스 장치 (HID)
https://www.kernel.org/doc/html/latest/hid/index.html#

Linux USB HID 가젯 드라이버 및 hid-keyboard 프로그램
https://www.kernel.org/doc/html/latest/usb/gadget_hid.html
https://github.com/aagallag/hid_gadget_test

usb-devices 스크립트
https://github.com/gregkh/usbutils/blob/master/usb-devices

### Android PIN 및 패턴 파일 크래킹

AndroidPINCrack - 해시와 솔트를 사용하여 Android 비밀번호 무차별 대입 (휴대폰에서 루트 필요)
https://github.com/PentesterES/AndroidPINCrack

Android Pattern Lock Cracker - SHA1 해시를 사용하여 Android 패턴 무차별 대입 (휴대폰에서 루트 필요)
https://github.com/sch3m4/androidpatternlock

### 일반 복구 방법

[Android][가이드] Android 비밀번호/패턴/얼굴/PIN 해킹 및 우회
https://forum.xda-developers.com/showthread.php?t=2620456

ADB 및 셸 스크립팅을 사용한 Android 무차별 대입
https://github.com/Gh005t/Android-BruteForce

### 법의학 방법 및 하드웨어

PATCtech 디지털 포렌식: Android 비밀번호 우회
http://patc.com/online/a/Portals/965/Android%20Passcode.pdf

XPIN Clip
https://xpinclip.com/

HDB Team의 HDBox
https://hdb-team.com/product/hdbox/

Cellebrite UFED
https://www.cellebrite.com/en/ufed/

Grayshift의 GrayKey
https://www.grayshift.com/graykey/

### PIN 분석

Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)
https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler

DataGenetics PIN 분석 https://datagenetics.com/blog/september32012/index.html
도구 다운로드
Key labelKey label
left-ctrlf6
right-ctrlf7
left-shiftf8
right-shiftf9
left-altf10
right-altf11
left-metaf12
right-metainsert
returnhome
escpageup
bckspcdel
tabend
spacebarpagedown
caps-lockright
f1left
f2down
f3kp-enter
f4up
f5num-lock