IP Address Obfuscation(λ‚œλ…ν™”)

κ°œμš” λ‚œλ…ν™”λž€ μ†Œν”„νŠΈμ›¨μ–΄ μΈ‘λ©΄μ—μ„œ 일반적인 μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ²Œ λ˜λŠ” 역뢄석(Reverse engineering)을 μ§€μ—°μ‹œν‚€κΈ° μœ„ν•΄ μ˜λ„μ μœΌλ‘œ μˆ¨κΈ°λŠ” ν–‰μœ„μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ°˜λŒ€λ‘œ μ•…μ˜μ μΈ μ‚¬μš©μžλ“€μ€ "μ‚¬νšŒκ³΅ν•™ 기법", "λΈ”λž™λ¦¬μŠ€νŠΈ 둜직 우회", "읡λͺ…μ„±" 등을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•©λ‹ˆλ‹€. 일반적으둜 ꡬ글에 μ ‘μ†ν•˜κΈ° μœ„ν•΄ www.google.com 을 μž…λ ₯ν•˜μ—¬ μ§€μ •λœ DNS(Domain Name Server) λͺ…을 톡해 μ‰½κ²Œ μ ‘κ·Όν•˜κ³  μžˆμ§€λ§Œ μ„œλ²„μ˜ IPμ£Όμ†Œλ‘œλ„ λ™μΌν•˜κ²Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. URL 인코딩을 ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•˜μ§€λ§Œ "http%3a%2f%2f216.58.197.196" μ£Όμ†Œλ₯Ό λ³΄μ‹œλ©΄ 특수 λ¬Έμžμ—΄λ§Œ 인코딩 될 뿐 xxx.xxx.xxx.xxx 같이 "." 점으둜 κ΅¬λΆ„ν•˜μ—¬ μ „μ†‘ν•˜λŠ” 것은 마찬..

ETC
[iOS] Objection μ£Όμš” λͺ…λ Ήμ–΄

κ°œμš” μ•± 진단을 ν•˜μ‹œλŠ” 뢄듀이라면 λŒ€ν‘œμ μœΌλ‘œ Frida, Drozer λ“± 을 μ‚¬μš©ν•˜μ‹œλ©΄μ„œ 동적, 정적 진단을 ν•˜μ‹œμ§€λ§Œ Objectionμ΄λΌλŠ” νˆ΄μ„ μ‚¬μš©ν•˜μ‹œλ©΄ λͺ‡ 가지 도ꡬ듀과 μ‘°ν•©ν•˜μ—¬ λ‹€μ–‘ν•œ μ‹œλ„λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Objection은 Run-Time Exploration 즉 λŸ°νƒ€μž„μ„ μ‘°μž‘ν•˜μ—¬ κ³΅κ²©μžκ°€ μ›ν•˜λŠ” ν–‰μœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ ν•  수 μžˆλ„λ‘ ν”„λ‘œμ„ΈμŠ€μ— μ‹€μ‹œκ°„μœΌλ‘œ μ£Όμž…ν•˜μ—¬ μ‚¬μš©ν•˜λ©° Frida 기반으둜 λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— Python3 ν™˜κ²½μ—μ„œ frida ν™˜κ²½μ„ 사전에 κ΅¬μΆ•ν•΄μ£Όμ‹œκ³  pip install을 톡해 objection을 μ„€μΉ˜ν•΄μ•Ό λ©λ‹ˆλ‹€. *프리닀 ν™˜κ²½ ꡬ좕 guleum-zone.tistory.com/137 프리닀(Frida) ν™˜κ²½ ꡬ좕 κ°œμš” Fridaλž€ Oleκ°€ κ°œλ°œν•œ DBI(Dynamic Binary..

MOBILE
[Android] Data Storage(Plain/Encryption) 취약점

κ°œμš” Mobile OWASP Top 10 쀑 아직도 높은 μˆœμœ„κΆŒμ— 자리 작고 μžˆλŠ” 취약점 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 일반적으둜 κ°œλ°œμžλ“€μ΄ 앱을 개발 κ΅¬ν˜„ν•˜λŠ” λ‹¨κ³„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈ 츑에 μ €μž₯λ˜λŠ” λ°μ΄ν„°λŠ” 타 μ‚¬μš©μžλ“€μ΄ μ‰½κ²Œ μ•‘μ„ΈμŠ€ ν•˜μ§€ λͺ»ν•˜λ„둝 μ œν•œμ„ ν•˜μ§€λ§Œ μƒŒλ“œλ°•μŠ€ ν™˜κ²½μΌμ§€λΌλ„ λ£¨νŒ… λ˜λŠ” νƒˆμ˜₯을 톡해 높은 κΆŒν•œμ„ νšλ“ν•˜κ²Œ 되고 보호 κΈ°λŠ₯을 μ‰½κ²Œ μš°νšŒν•˜μ—¬ μ•‘μ„ΈμŠ€κ°€ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€. 보톡 μ•…μ„± μ•±μ΄λ‚˜ μ•…μ˜μ μΈ μ‚¬μš©μžκ°€ λΆ„μ‹€λœ 단말을 λŒ€μƒμœΌλ‘œ κ°œμΈμ •λ³΄λ₯Ό νšλ“ν•  κ°€λŠ₯성이 μ‘΄μž¬ν•©λ‹ˆλ‹€. 1.log file 2.Plist file 3.androidmanifest.xml / SharedPreferecnes.xml 4.SQLite databases 5.Binary data stores 6.SD Card 7.Cloud synced μœ„μ˜ ..

MOBILE
[Android] Content Provider 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ Content ProviderλŠ” "μ½˜ν…μΈ  제곡자 "λΌλŠ” 의미λ₯Ό 가지고 있으며 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 쀑앙 μ €μž₯μ†Œ 같은 역할을 ν•˜λŠ” 곡간에 λ‹€λ₯Έ 앱이 μ ‘κ·Όν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 주둜 파일 μ‹œμŠ€ν…œμ΄λ‚˜ SQLite λ°μ΄ν„°λ² μ΄μŠ€, Web 등을 ν†΅ν•΄μ„œ κ΄€λ¦¬ν•˜λ©° μ½˜ν…μΈ  ν”„λ‘œλ°”μ΄λ”λ₯Ό 톡해 λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ €μž₯된 데이터에 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ•± κ³Ό μ•± μ‚¬μ΄μ˜ 데이터 접근을 κ΄€λ¦¬ν•˜κ³  ν†΅μ œν•˜κΈ° μœ„ν•΄ "Content Resolver"λΌλŠ” μ€‘κ°œμž 역할이 μ‘΄μž¬ν•˜λŠ”λ° μ΄λ•Œ μ½˜ν…μΈ  제곡자의 μ£Όμ†ŒμΈ 즉 μ΄λ™ν•˜κ³ μž ν•˜λŠ” URIκ°€ λ“±λ‘λ˜μ–΄ μžˆμ–΄μ•Ό λ©λ‹ˆλ‹€. *uri ν˜•νƒœ -> content://user_dictionary/test λ“± Content ProviderλŠ” μ»΄ν¬λ„ŒνŠΈ 쀑 일뢀이기 ..

MOBILE
[Android] Broadcast Receiver 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ Broadcast ReceiverλŠ” "방솑 μˆ˜μ‹ μž"λΌλŠ” 의미λ₯Ό 가지고 있으며 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 4λŒ€ ꡬ성 λ‹¨μœ„μ€‘ ν•˜λ‚˜λ‘œ μΈν…νŠΈ(Intent)λΌλŠ” μΌμ’…μ˜ λ©”μ‹œμ§€ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ•ˆλ“œλ‘œμ΄λ“œμ™€ μ‚¬μš©μž 간에 μƒν˜Έμž‘μš©μ„ ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ Broadcast Receiverλž€ μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ μ‘΄μž¬ν•˜λŠ” μ΄λ²€νŠΈλ“€μ΄ λ°œμƒν•˜λ©΄ 각 κ°μ²΄λ“€λ‘œ μ μ ˆν•œ λΈŒλ‘œλ“œμΊμŠ€νŠΈ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄κ²Œ λœλŠ”λ° μ΄λ•Œ μ‹ ν˜Έλ₯Ό λ°›μ•„ 사전에 μ •μ˜ν•΄λ†“μ€ μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€. 사전에 μ •μ˜ 해놓은 μž‘μ—…μ΄λž€?? 배터리 μƒνƒœ μ•Œλ¦Ό(배터리 λΆ€μ‘±/μΆ©λΆ„) λ©”μ‹œμ§€ 솑/μˆ˜μ‹ (λ©”μ‹œμ§€κ°€ 전솑/μ‹€νŒ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€) μΈμ¦μ½”λ“œ μž…λ ₯ 사진 캑처(사진이 μ €μž₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€) λ§Œμ•½ λ³„λ„μ˜ κΆŒν•œμ΄ μ—†λŠ” 즉 μ•ˆμ „ν•˜μ§€ μ•Šμ€ λ¦¬μ‹œλ²„ 섀정을 ν•΄λ‘” 경우 μ‚¬μš©μžκ°€ λ°›λŠ” 정상적인 μ•Œλ¦Όμ„ 쀑간..

MOBILE
[Android] Activity Component 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ ActivityλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 4λŒ€ κ΅¬μ„±λ‹¨μœ„ 쀑 ν•„μˆ˜μ μΈ μš”μ†Œλ‘œ μΈν…νŠΈ(Intent)λΌλŠ” μΌμ’…μ˜ λ©”μ‹œμ§€ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 간에 μƒν˜Έμž‘μš©μ„ ν•˜λ©΄μ„œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν¬ν•¨ν•œ ν•˜λ‚˜μ˜ 화면을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 κ°€μž₯ 많이 μƒμš©λ˜λ©° 주둜 UI(User Interface)화면을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€. μ˜ˆμ‹œλ‘œ 이메일 μ•±μ˜ Activity에 λŒ€ν•΄ κ°„λ‹¨ν•˜κ²Œ μƒκ°ν•΄λ³΄μžλ©΄ (1) 이메일 λͺ©λ‘μ„ ν‘œμ‹œ (2) 이메일 μž‘μ„± (3) 전달받은 이메일 읽기 λ“± μ—¬λŸ¬ κΈ°λŠ₯이 μ‘΄μž¬ν•  κ²ƒμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ—¬λŸ¬ Activityκ°€ ν•¨κ»˜ λ™μž‘ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ 보기 μ‰¬μš΄ ν™˜κ²½μ„ κ΅¬μ„±ν•˜μ§€λ§Œ (1), (2), (3) 각각이 λ…λ¦½λ˜μ–΄ μ‹€ν–‰ λ©λ‹ˆλ‹€. 마치 (2) 이메일 μž‘μ„±μ„ ν•  λ•Œ μ‚¬μš©λ˜λŠ” Activityκ°€ ν—ˆμš©λ˜..

MOBILE
[Android] Rooting 탐지 우회(Objection)

κ°œμš” Rootingμ΄λž€ μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ μ œν•œλ˜μ–΄ μžˆλŠ” ν•˜μœ„ μ‹œμŠ€ν…œμ— λŒ€ν•΄ μ•‘μ„ΈμŠ€ ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것을 μ˜λ―Έν•˜λ©° 이λ₯Ό 톡해 μ‚¬μš©μž λ””λ°”μ΄μŠ€ λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•  수 μ—†λŠ” λ‹€μ–‘ν•œ μ‹œμŠ€ν…œ λͺ…령을 λ‚΄λ € μˆ˜μ • λ˜λŠ” μ‚­μ œκ°€ κ°€λŠ₯ν•˜λ©° 루트 κΆŒν•œμœΌλ‘œ 접근이 κ°€λŠ₯ν•œ 앱을 μ‚¬μš©ν•  μˆ˜λ„ 있게 λ©λ‹ˆλ‹€. λ£¨νŒ…μ„ ν•˜κ²Œλ˜λ©΄ μžμ‹ μ˜ μ‹œμŠ€ν…œ νŒŒμΌμ— 접근이 κ°€λŠ₯ν•΄ 지기 λ•Œλ¬Έμ— μ™„λ²½ν•˜κ²Œ μ œμ–΄κ°€ κ°€λŠ₯ν•΄μ Έ λ³΄μ•ˆμƒ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμ–΄ μ‹€μ œ 금육, 곡곡 κΈ°κ΄€μ—μ„œλŠ” λ£¨νŒ… 된 λ‹¨λ§μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜μ§€ μ•Šλ„λ‘ μ œμ–΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. Rooting 탐지 방법 1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ μ‹œ νŠΉμ • λͺ…λ Ήμ–΄ μ‹€ν–‰ 및 확인(SU λͺ…λ Ή 싀행확인) 2. λ£¨νŒ… 된 단말에 μ‘΄μž¬ν•˜λŠ” 파일 확인(/system/su, /system/app/Superuse.apk λ“±) 3...

MOBILE