Vulnerability: Brute Force
λ¬΄μ°¨λ³ λμ 곡격 (Brute Force Attack)μ λν Practice μ΄λ€.
λ¬΄μ°¨λ³ λμ 곡격μ νΉμ μ 보λ₯Ό μμλ΄κΈ° μν΄ κ°λ₯ν λͺ¨λ κ°μ λμ νμ¬ μνλ μ 보λ₯Ό μμλ΄λ 곡격μ΄λ€.
μ¬λ¬κ°μ§μ§ λ°©λ²μ΄ μ‘΄μ¬νμ§λ§ κ°λ¨ν λ€μμ λκ°μ§λ₯Ό μκ°ν΄ λ³Ό μ μλ€.
1. λͺ¨λ κ²½μ°μ μ
곡격νλ λμμ λν κ°μΌλ‘μ κ°λ₯ν λͺ¨λ κ²½μ°μ μλ₯Ό λμ ν΄ λ³΄λ κ²μ΄λ€. κ° μ리μ λνμ¬ κ°λ₯ν λͺ¨λ λ¬Έμ, μ«μ, κΈ°νΈλ₯Ό λμ νμ¬ λ§λ€ μ μλ λͺ¨λ κ²½μ°μ μλ₯Ό μλν΄ λ³΄λ λ°©μμΌλ‘μ λ€μμ μ₯λ¨μ μ μκ°ν΄ λ³Ό μ μλ€.
μ₯μ
μκ°μ΄ μ€λ 걸리λλΌλ μΈμ κ°λ μ°Ύμ μ μλ€.
(κ³ μ±λ₯, λλμ μμμ μ΄μ©νλ©΄ λ λΉ λ₯΄κ² μ°Ύλ κ²μ΄ κ°λ₯νλ€.)
λ¨μ
ν¨μ€μλμ κΈΈμ΄κ° κΈΈμ΄μ§λ κ²½μ°, μ¬μ€μ κ³΅κ²©μ΄ μ΄λ ΅λ€.
(μκ°μ μΌλ‘, μμμ μΌλ‘ λ무 λ§μ κ²λ€μ΄ νμνκ² λλ€. λΆκ°λ₯. μ μλ μ μμ§λ§, μλ΅μκ° μ§μ°, κ³μ Lockκ³Ό κ°μ 보μμ‘°μΉλ§ μλλΌλ, κΈΈμ΄κ° κΈΈμ΄μ§λ©΄ μ€μ§μ μΌλ‘λ λμ λ§μΌλ‘λ λΆκ°λ₯νλ€κ³ λ³Ό μ μλ€.)
2. λμ λ리 곡격
λμ λ리λ λ§κ·Έλλ‘ μ¬μ μ΄λΌλ μλ―Έλ‘μ μ¬λλ€μ΄ μμ£Ό μ°λ κ°μ μ΄μ©νλ κ²μ΄λ€.
λ§μ μ¬λλ€μ΄ ν¨μ€μλ κ°μ κ°μ μμ±ν λ κΈ°μ΅νκΈ° μ¬μ΄ κ°μ μ¬μ©νλ κ²μ μμΌλ‘ μ΄μ©νλ κ²μ΄λ€.
worst password / most common password μ κ°μ΄ μ¬λλ€μ μ¬μ© λΉλ μκ° λμ κ°λ€μ λͺ¨μλ λͺ©λ‘(리μ€νΈ)λ₯Ό μ΄μ©νμ¬ κ° κ°μ λμ νλ λ°©μμ μ·¨νλ€.
μ₯μ
μ¬λλ€μ΄ 보μμ μΈ κ²μ μκ°νμ§ μκ±°λ, νΉμ μ¬μ΄νΈλ€μμ μ·¨μ½νκ³ , μ¬μ΄ λΉλ°λ²νΈλ₯Ό νμ©νλ κ²½μ°μ ν΄λΉ 리μ€νΈμ μΌμΉνλ κ°μ΄ μμ κ°λ₯μ±μ΄ λλ€. μ΄ κ²½μ°, λͺ¨λ κ²½μ°μ μλ₯Ό μ λ ₯νλ κ²μ λΉνμ¬ λΉ λ₯Έ μλλ₯Ό μ 곡ν μ μλ€.
λ¨μ
무μμ κ°μ μ¬μ©νλ€λ©΄ κ°μ΄ νμΌμ ν¬ν¨λμ΄ μμ§ μμ νλ₯ μ΄ λλ€. μ΄λ° κ²½μ° μ΄ λ°©λ²μΌλ‘λ μμλ΄κΈ° νλ€λ€κ³ λ³Ό μ μλ€.
(λͺ©λ‘μ΄ λ λ§μ νμΌμ μ΄μ©νκ±°λ, ν¨μ€μλ λ³ν λ° μ‘°ν©μ μ΄μ©νμ¬ λ λ§μ ν¨μ€μλμ λνμ¬ μλν΄ λ³Ό μ μκ² μ§λ§, λ§μ μκ°μ ν¬μνλλΌλ λͺ» μ°ΎμλΌ νλ₯ μ΄ μλ€λ ν° λ¨μ μ΄ μ‘΄μ¬νλ€.)
DVWA Brute Force μ€μ΅
μ€μ΅ νκ²½
- Windows Dockerλ₯Ό μ΄μ©ν DVWA
- Windows νκ²½μ Burp Suite
μ¬μ©λ κ³μ
admin / password
Security Level: Low
Low λ 벨μ κ²½μ°, μ·¨μ½μ μ΄ λ¨μνκΈ° λλ¬Έμ Burp Suiteμ Intruderλ₯Ό μ΄μ©νκΈ°λ‘ νλ€.
Burp Suiteμ Intruder κΈ°λ₯μ μ΄μ©νμ¬, Paylaod positionμμ λμμ password νλΌλ―Έν°λ‘ μ€μ νλ€.
Paylaodsμμ Top 200 most common passwords of the year μμ λ λλ³ κ°μ₯ νν λΉλ°λ²νΈ λͺ©λ‘μ κ°μ Έμμ λμ μ νλ λ°©μμΌλ‘ Brute Force λ₯Ό μ§ννλ €νλ€.
λ€μμ 2019 ~ 2023 λ λμ κ°μ₯ ννλ λΉλ°λ²νΈλ€ λͺ©λ‘μ΄λ€.
Reference
https://nordpass.com/most-common-passwords-list/
μμ 리μ€νΈλ₯Ό ν μ€νΈν νμ¬ λ€μκ³Ό κ°μ΄ μ 리νμκ³ μ΄λ₯Ό payload settingμ simple listλ‘μ λ£μ΄μ€λ€.
μμ λͺ©λ‘ μ€μ κ°μ₯ μ΅κ·Όμ top 200 most common passwords 2023μ μ΄μ©νλ€.
곡격μ μ€ννλ©΄ λ€μκ³Ό κ°μ΄ κ²°κ³Όλ₯Ό νμΈν μ μλ€.
μμ κ°μ΄ μ¬λ°λ₯΄μ§ μμ κ²½μ° λ€μκ³Ό κ°μ λ©μμ§λ₯Ό νμΈν μ μλ€.
Username and/or password incorrect.
λ°λ©΄ λͺ©λ‘μ ν΄λΉνλ λΉλ°λ²νΈκ° μ‘΄μ¬νμ¬, λ‘κ·ΈμΈμ μ±κ³΅ν κ²½μ° λ€μκ³Ό κ°μ΄ μλ΅(response)μ κΈΈμ΄κ° λ€λ₯Έ κ²μ νμΈν μ μκ³ , μ΄λ₯Ό νμΈν΄λ³΄λ©΄ μ±κ³΅μ μΌλ‘ λ‘κ·ΈμΈ λλ κ²μ νμΈν μ μλ€.
μμ κ²°κ³Όμμ λ³Ό μ μλ―μ΄, Low λ 벨μ κ²½μ° Burp Suiteμ Intruder κΈ°λ₯λ§μ μ΄μ©ν΄λ μ½κ² λ«μ μ μλ κ²μ νμΈν μ μλ€.
Security Level: Medium
Medium λ 벨μ κ²½μ°, λ‘κ·ΈμΈ μλκ° μ€ν¨νλ©΄ μΌμ μκ° νλ‘μΈμ€λ₯Ό sleep μμΌ λ€μ μλμ λν μκ°μ μ§μ°μν¨λ€.
νμ§λ§, Low λ 벨μμ μ§ννλ λ°©λ²κ³Ό κ°μ λ°©λ²μ μ·¨νλλΌλ, λ¨μ§ μκ°μ΄ μ‘°κΈ λ 걸릴 λΏ μ½κ² λ«λ¦¬κ² λλ€.κΈ°μ‘΄μ λ°©μκ³Ό κ°μ λ°©μμΌλ‘ μ§νν κ²°κ³Όλ₯Ό 보면 μλμ κ°λ€.
μ¬λ°λ₯΄μ§ μμ λΉλ°λ²νΈκ° μ λ ₯λ κ²½μ°μλ λ€μκ³Ό κ°μ΄ μλ΅ μκ°μ΄ 2000μ΄ λμ΄κ°κ² λλ€.
λ°λ©΄ μΌμΉνλ λΉλ°λ²νΈκ° μ λ ₯λλ κ²½μ°μλ μλ΅μκ°μ΄ νμ리 μλ‘ λΉ λ₯΄κ² μλ΅λλ©°, μλ΅μ κΈΈμ΄λ λ€λ₯Έ κ²μ νμΈν μ μλ€.
Security Level: High
High λ 벨μ κ²½μ° λ€μκ³Ό κ°μ΄ user_token μ΄λΌλ μ΄λ¦μ CSRF tokenμ΄ μ‘΄μ¬νλ€.
κ·Έλμ λΉλ°λ²νΈλ₯Ό λμ νλ λ°©μμ μμ΄ μμ Low, Medium λ°©μμμ μ¬μ©ν λ°©λ²μ κ·Έλλ‘ μ¬μ©νλ©΄ user_tokenμ΄ μΌμΉνμ§ μμ λ€μκ³Ό κ°μ΄ ν ν°μ΄ μΌμΉνμ§ μλ λ€λ λ©μμ§κ° λ¨κ² λκ³ , λ‘κ·ΈμΈ μλκ° μ λλ‘ λμ§ μλλ€.
λ°λΌμ μΆνμ λ€λ₯Έ λ°©μμ μ΄μ©νμ¬ μλν΄λ³΄κΈ°λ‘ νλ€.
High Levelμ κ²½μ°, Medium Levelμ λΉλ°λ²νΈκ° ν리λ κ²½μ° μλ΅ μκ°μ μ§μ°μν€λ λ°©μμ ν¬ν¨νλ€.
λλ€ν μκ°μ μ§μ°μν€λ κ²μ λ¬Όλ‘ μ΄κ³ , user_tokenμ μ¬μ©νμ¬ λ³΄μμ νκ²λλ€. νμ§λ§ GET λ°©μμ μ΄μ©νκ³ μκ³ , λλ€ν μκ° μ§μ°μ΄ μμ λΏ Brute Force κ³΅κ²©μ΄ λΆκ°λ₯νμ§ μλ€.
Security Level: Impossible
Impossible λ 벨μ κ²½μ° High Levelμ μ‘°μΉλ₯Ό κ°μ Έμ€λ©΄μλ, GET λ°©μ λμ POST λ°©μμ μ¬μ©νκ³ μλ€.
λν μΆκ°μ μΌλ‘, νλ¦° λΉλ°λ²νΈλ₯Ό μ¬λ¬λ² λμ νλ κ²½μ°, λ무 λ§μ νλ¦° μλκ° μμλ€λ©°, 15λΆκ° κ³μ μ Lock μμΌ, λ‘κ·ΈμΈ μλλ₯Ό λ§λ μ‘°μΉκ° λμ΄ μλ€.
μ΄λ₯Ό ν΅ν΄ Impossible Levelμ κ²½μ° Brute Force κ³΅κ²©μ΄ κ±°μ λΆκ°λ₯νλ€κ³ λ³Ό μ μλ€.
Brute Force λμ
1. μ κΈ μ€μ (Locking)
λ‘κ·ΈμΈ μ€ν¨ μ μΌμ μκ°λμ λ‘κ·ΈμΈμ μ ννλ λ°©λ²μ΄λ€.
μΌμ νμ μ΄μ ν리λ κ²½μ°μ μ κΈ μ‘°μΉλ₯Ό ν΅ν΄ λ‘κ·ΈμΈμ λ§λ λ°©λ²μ μ¬μ©νμ¬ λ¬΄μμ λμ 곡격μ μκ°μ μ§μ° μν¬ μλ μμ§λ§ μλ²½ν λ°©λ²μ΄λΌκ³ λ ν μ μλ€.
λν 곡격μκ° κ³ μμ μΌλ‘ νλ¦° κ°μ μ΄μ©ν λ‘κ·ΈμΈ μλλ₯Ό λ°λ³΅μ μΌλ‘ μνν¨μΌλ‘μ¨ νΉμ μ¬μ©μμ μ¬μ΄νΈ μ΄μ©μ λ§μ μ μκΈ° λλ¬Έμ μ’μ λ°©λ²μ΄λΌκ³ ν μλ μλ€. (μ μμ μΌλ‘ νλ¦° μλλ₯Όνμ¬, μ¬λ°λ₯Έ μ¬μ©μμ μ μμ μΈ μ΄μ©μ λ°©ν΄νλ κ²μ΄λ€.)
ex) μ€λ§νΈν° μ κΈν΄μ λ₯Ό μΌμ νμ μ΄μ νλ¦° κ²½μ°, "30μ΄ νμ λ€μ μλνμΈμ." μ κ°μ κ²μ μκ°ν μ μλ€.
νΉμ λ°©μμ ν΅ν μλκ° μΌμ νμκ° μ΄κ³Όλλ κ²½μ° μ°μ μ μΌλ‘ κ³μ μ μ κΈνκ³ , λ€λ₯Έ λ°©μμ ν΅ν λ‘κ·ΈμΈμ μ μνλλ‘ νλ κ²μ΄ μ’λ€.
ex) κ³μ μ΄ μ κΈ°λ κ²½μ°, μΆκ° μΈμ¦μ ν΅ν΄ κ³μ μ μ κΈμ ν΄μ ν μ μλ€.
2. μΊ‘μ± (CAPTCHA)
μλνλ νλ‘κ·Έλ¨μ΄ μμλ³Ό μ μλ κΈμ¨λ κ·Έλ¦Ό λ¬Έμλ₯Ό λ‘κ·ΈμΈ μλ μ ν¨κ» μ λ ₯νλλ‘ νλ λ°©λ²μ΄λ€. μλμΌλ‘ ν¨μ€μλλ₯Ό κ³μν΄μ λ³κ²½ν΄μ 보λ΄λ κ²μ΄ λΆκ°λ₯ν΄μ§λ€. (μΆκ°μ μΈ μΈμ¦μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ λ¨μ λμ μ΄ λΆκ°λ₯ν΄μ§λ€λ κ²μ΄λ€.)
μ΄κ²μ΄ μΉ μ¬μ΄νΈμμ νν μ¬μ©νλ ν΅μμ μΈ λ°©λ²μ΄λΌκ³ λ³Ό μ μλ€.
(νμ§λ§ AIμ λ°μ μΌλ‘ μ΄λ° κ²λ λ«μ μ μλ κ²μ΄ μλκ° νλ μκ°μ΄ λ λ€. μλν νλ‘κ·Έλ¨μ΄ μμλ³Ό μ μκ³ μΈκ°λ§ μλ³ κ°λ₯ν κ²μ μ΄μ©νλ κ²μ΄μ§λ§, AIμ λ°μ μ μν΄ μ΄λ°κ² μ‘°μ°¨λ μΈμν μ μμ κ°λ₯μ±μ΄ 컀μ§κ³ μλ€λ κ²μ μκ°ν΄λ³Όλ§ νλ€κ³ λ³Έλ€.)
μ§λ¬Έ νμ, μμ λ° λ³΄μμ λν μ§μ νμ