본문 바로가기

Security124

단말기 내 중요정보 저장 여부 취약점 개요 애플리케이션 사용 폴더 및 외부 저장소에 존재하는 파일 내 중요정보 저장 여부를 점검한다. 외부저장소에는 어떤 정보이든 서비스에 중요한 역할을 하는 정보를 저장해서는 안되며, 내부 저장소에 저장이 되더라도 암호화되어 안전하게 저장되어야 한다. 내부저장소와 외부저장소 안드로이드는 데이터를 저장할 때 내부 저장소와 내부 저장소로 나눌 수 있다. 내부 저장소 - 안드로이드 플랫폼, 시스템 등에서 사용되는 공간 - 안드로이드 API에 의해 권한이 통제 외부 저장소 - 애플리케이션 간 데이터 공유 가능 - WRITE_EXTERNAL_STROAGE 권한을 갖고 있는 애플리케이션은 설정에 따라 데이터를 읽고 쓰는 것이 가능 데이터를 저장하는 방법 1) Shared Preferences - 원시 데이터를 .. 2020. 10. 23.
메모리 내 중요정보 저장 여부 취약점 개요 앱에 입력하는 모든 입력값과 앱이 실행되는 모든 정보들이 메모리에 적재되어 실행된 후, 실행이 완료되면 다른 데이터들로 채워진다. 해당 이용자 단말기 메모리 영역에서 이용자 중요정보의 평문 노출 여부 점검한다. Honeycomb이후 버전의 메모리 구조 안드로이드에서는 자바 가상머신 대신 달빅 가상머신을 사용하여 앱을 구현한다. 프로세스가 실행될 때마다 달빅 가상 머신을 사용하여 동작에 필요한만큼 메모리를 할당하고, 더 사용해야 한다면 프로세스당 허용된 메모리 내에서 할당한다. (허용된 메모리 한계 이상을 사용하면 OOM(Out Of Menory)에러가 발생한다. 애플리케이션이 실행되는 동안 참조하고 정보를 저장하는 메모리 영역은 "Dalvik heap allocated" 영역이므로 해당 영역.. 2020. 10. 22.
Scapy를 이용한 tcp 통신(+패킷 재전송 및 변조) scapyscapy에 대한 자세한 설명은 아래 사이트에 나와있다.https://scapy.readthedocs.io/en/latest/Welcome to Scapy’s documentation! — Scapy 0 documentation© Copyright 2008-2020 Philippe Biondi and the Scapy community Revision 0f34ce77.scapy.readthedocs.io 3-way handshake123456789 #3 way handshake ip=IP(src="192.168.30.2", dst="192.168.30.3") syn_packet = TCP(sport=50000, dport=60000, flags="S", seq=100) synack_packet .. 2020. 6. 28.
산업제어시스템 보안 가이드 산업제어시스템(ICS) 보안 가이드(NIST SP 800-82 [Guide to Industrial Control Systems(ICS) Security]) https://www.krcert.or.kr/data/guideView.do?bulletin_writing_sequence=35433&queryString=YnVsbGV0aW5fd3JpdGluZ19zZXF1ZW5jZT0zNTQzMw== 2020. 5. 23.
Smurf Attack * Smurf Attack-> 원리Attacker가 출발지 IP를 Victim의 IP로 Spoofing하여 ICMP Request패킷을 시스템이 아주 많은 네트워크를 Broadcast하면 해당 패킷을 받은 네트워크가 Victim에게 ICMP Reply패킷을 대량으로 보내는 공격이다. -> 대응책1. 라우터에서 Direct Broadcast를 차단한다. (대부분의 라우터에서 이미 Default로 차단되어 있다.) [실습]실습을 진행하기 전 아래와 같이 토폴로지를 구성한다. - R1 : Attacker - R3 : VictimR1이 10.1.1.0 대역으로 R3의 IP로 Spoofing한 ICMP Request패킷을 Broadcast하여 10.1.1.0 네트워크가 R3로 대량의 ICMP Reply을 받을 수.. 2020. 3. 12.
PentesterLab 2 SQL Injection Example 1 (MAKE IT TRUE) PoC Example 2 (LIMIT-MAKE IT TRUE) PoC limit 함수반환되는 출력수를 제한하는 함수임 반환 행 수 제한 우회사용자 로그인 시, 쿼리에서 반환되는 사용자가 1명이도록 소스코드에서 제한하는 경우가 있음limit 함수를 사용하면 반환되는 행 수를 제한할 수 있으므로 이를 이용하면 됨 Example 3 (ESCAPE-MAKE IT TRUE) Hint싱글 쿼터를 입력해도 에러 메세지가 반환되지 않음 PoC Normal QuerySELECT * FROM users WHERE username='root' AND password='qwer'; Injection QuerySELECT * FROM users WHERE u.. 2020. 3. 8.
PentesterLab 1 SQL Injection Example 1 (STRING TYPE-MAKE IT TRUE)http://192.168.30.129/sqli/example1.php?name=root PoChttp://192.168.30.129/sqli/example1.php?name=root' or '1'='1http://192.168.30.129/sqli/example1.php?name=root' or 1=1-- -http://192.168.30.129/sqli/example1.php?name=root' or 1=1%23 주석 필터링 우회%23 : # MySQL 주석1. #2. -- (뒤에 공백이 있어야 주석으로 동작함)3. /**/ Example 2 (ERROR NO SPACE-MAKE IT TRUE)http://192.. 2020. 3. 6.
DVWA(Damn Vulnerable Web Application) Brute Force Low, MediumSTEP 1) 로그인 페이지의 Username과 Password 입력란에 임의의 문자열을 넣고 Login버튼을 눌렀더니 username, password 파라미터로 값이 전달되는 것을 확인했습니다. STEP 2) Brute Force 공격을 수행 후, 결과로 Length 길이가 다른 Payload1과 Payload2를 확인하였습니다. STEP 3) 획득한 Payload값을 각각 Username, Password에 입력하여 로그인하였습니다. Command Execution LowSTEP 1) ping이 가능한 입력 란에 ping 대상 IP주소와 여러 개의 명령어를 한 줄에 실행시킬 수 있는 문자인 ‘;’와 cat /etc/passwd 명령어를 적고 submit버튼을.. 2020. 3. 3.
CVE-2014-3566 (POODLE) POODLE(Padding Oracle On Downgraded Legacy Encryption) Padding Oracle On Downgraded Legacy Encryption 그대로 해석하면 다운 그레이드 된 레거시 암호화의 패딩 오라클(특정 입력을 받아 암호화 작업을 수행하는 시스템)이다. Downgraded Legacy Encryption는 SSL3.0로 Downgrade, Padding Oracle은 SSL3.0의 블록 암호화의 패딩 검증 취약점이라고 생각하면 된다. 즉, SSL3.0 취약점(블록 암호 암호의 패딩 검증)을 이용한 암호 해독 공격이다. cve : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566 조건 1) SSL 3... 2020. 2. 24.
CVE-2014-0160 (HeartBleed) HeartBleed - OpenSSL의 RFC6520 TLS/DTLS Heartbeat extension 구현이 표준을 따르지 않고 구현된 사실이 밝혀졌는데, 해당 취약점을 이용한 정보 탈취 공격이다. CVE : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160 조건 1) 영향받는 버전 - OpenSSL 1.0.1 ~ OpenSSL 1.0.1f - OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1 2) 영항받지 않는 버전 - OpenSSL 1.0.1g - OpenSSL 1.0.0대 버전 - OpenSSL 0.9.8대 버전 원리 OpenSSL 정해진 규격의 네트워크 보안 프로토콜을 범용 라이브러리를 구현하기 위한 목적으로 만들.. 2020. 2. 24.
DDMS(Dalvik Debug Monitoring Service) 설치 방법 1. JAVA SDK 설치 2. DDMS 다운로드 http://www.mediafire.com/file/2u0a1a6v3wuub8v/asdk_x86_r24.1.2.zip 2019. 6. 7.
JNI (Java Native Interface) 보호되어 있는 글 입니다. 2019. 6. 7.
안드로이드 루팅 탐지 안드로이드 루팅 탐지 SU 명령어로 확인 su 명령어가 실행여부로 확인 try { Runtime.getRuntime().exec("su"); } catch ( Exception e) { //Exception이 발생한다면 Rooting이 되지 않은 것으로 확인 } 프로세스 리스트로 확인 루팅 관련 프로세스 존재 여부로 확인 Runtime.getRuntime().exec("ps") 루팅 관련 어플 확인 루팅 관련 어플 설치여부로 확인 KingRoot spapaRoot owelRoot SU파일 존재 유무 확인 su 파일 존재 유무로 확인 /system/bin/su /system/xbin/su /sbin/su /system/su /system/bin/.ext/.su /system/usr/su-backup sys.. 2019. 6. 4.
Android Manifest.xml 파일 구조 https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko 2019. 6. 4.
smali(dalvik opcode) 참고 https://i2sec.github.io/files/2017-10-20/study_dalvik_smali.pdf https://www.slideshare.net/paller/understanding-the-dalvik-bytecode-with-the-dedexer-tool https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html https://hyeonbell.tistory.com/1 https://strongslaves.tistory.com/29 2019. 6. 4.