π‘angr-PT
Last updated
Last updated
AngrPTμ ν΅μ¬κΈ°λ₯μ λ€μκ³Ό κ°μ΅λλ€.
IOCTL RIPλ²μ μΆμ
IOCTL μ μ½μ‘°κ±΄ λΆμ
μ μλ³μ μ’ μμ± λΆμ
λ§μ λλΌμ΄λ²κ° IoControlμ μ΄μ©νμ¬ μ μ μ μνΈμμ©μ νκΈ° λλ¬Έμ Windows Driverμ λΆμμ μμ΄μ κ°μ₯ μ€μν κ²μ λλΌμ΄λ²κ° νΉμ IoControl Codeλ₯Ό ν΅ν΄ μ΄λ ν λμμ νλμ§ μλ³νλ κ²μ λλ€.
IDA Hex Rayκ²°κ³Ό μλμ κ°μ΄ switch / caseλ¬ΈμΌλ‘ ννλλ κ²½μ°λ μμμ§λ§, λλΆλΆμ Driverμ½λκ° κ° IoControl Codeκ° νΉμ λ³μμμ Offsetμ λΉΌμ κ³μ°μ΄ λμ΄ λΆμμ ν° μ΄λ €μμ΄ μμμ΅λλ€.
λλ¬Έμ μ ν¬λ κ° IoControl Codeλ₯Ό μλ³νκ³ IDA Hex Rayκ²°κ³Όμμ IoControl Codeλ³ λ°μ΄λ리μμOffsetμ μ μνμ¬ λΆμκ°μ νΈμλ₯Ό μ 곡ν©λλ€.
λλΌμ΄λ²κ° λ€μν κΈ°λ₯μ μ§μνκΈ° μν΄μλ μ κ²λ λͺ κ° λ§κ²λ μμκ°μ IoControl Codeλ₯Ό κ°μ§λλ€.
ex) λ°±μ λλΌμ΄λ²μκ²½μ° 50κ° μ΄μμ IOCTLμ΄ μμμ.
κ° IoControl Codeμλ μλ‘ λ€λ₯Έ μ μ½ μ‘°κ±΄μ΄ μκ³ , κ° μ μ½μ‘°κ±΄μ λΆμνλ λ°μλ μκ°μ΄ μλΉν μμλ©λλ€.
λ§μ μ μ½μ‘°κ±΄μ λΆμνλλ°μ μκ°μ μ€μ΄κΈ° μν΄ Symbolic Executionμ μ΄μ©νμ¬ κ° IOCTLλ³ μ μ½μ‘°κ±΄μ λΆμνμ΅λλ€.
λΆμλ μ μ½μ‘°κ±΄μ Fuzzingκ³Όμ μ€μ μ ν¨ν μ½λ λΆλΆμ μ€ννμ¬ λ λμ 컀λ²λ¦¬μ§λ₯Ό μ»κ³ λ λ§μ Crashλ₯Ό λ°κ²¬ν νλ₯ μ λμΌ μ μμ΅λλ€.
μ μμ μΈ μ μ½μ‘°κ±΄μ ꡬνκΈ° μν κΈ°μ€μ IRPꡬ쑰체μ IoStatus Codeλ₯Ό Symbolic Variableλ‘ λ§λ€μ΄ μλ κΈ°μ€μ λ°λΌ νλ¨νμμ΅λλ€.
100κ° μ΄μμ λλΌμ΄λ²λ₯Ό λΆμνλ©΄μ IoControl Codeκ°μ μ’ μμ±μΌλ‘ μΈν λ²κ·Έ μΌμ΄μ€λ μμμ΅λλ€.
μ΄λ¬ν λ²κ·Έ μΌμ΄μ€λ€μ νΉμ§μ λμΌν μ μλ³μ 곡μ
λΌλ νΉμ§μ΄ μμμ΅λλ€.
μ μλ³μμ’
μμ±μΌλ‘ μΈν λ²κ·Έ μΌμ΄μ€λ Fuzzing κ³Όμ μ€μ μλ³νκΈ° μν΄ Angrλ₯Ό μ΄μ©ν΄ λμΌν μ μλ³μλ₯Ό 곡μ
νλ IoControl Codeλ₯Ό κ·Έλ£Ήν
νμ΅λλ€.
κ·Έλ£Ήνλ
IoControl Codeλ€μ μ΄ν Fuzzingλ¨κ²μμ μ’
μμ±μ κ³ λ €ν λ²κ·Έ μΌμ΄μ€λ₯Ό μ°Ύλλ°μ μ¬μ©λ©λλ€.