일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- wargame
- Pwnable.kr
- system hacking
- Buffer Overflow
- Payload
- 워게임
- OS
- Spring Framework
- BOF
- webhacking.kr
- hacking
- 정보보안기사 실기
- Spring
- Lord of BOF
- stack overflow
- Spring MVC
- SQL
- pwnable
- 해킹
- 네트워크
- 운영체제
- Operating System
- Shell code
- LOB
- 정보보안기사
- 웹해킹
- System
- 정보처리기사 실기
- webhacking
- PWN
- Today
- Total
목록IT 보안 (18)
DongDD's IT
[Cryptography] Diffie-Hellman, ECC Diffie-Hellman Key Exchange - 비밀 키를 공유하는 방법- 유한 필드의 exponentation에 기반하고 있음- 안전성은 이산 대수 문제(DLP, Discrete logarithms problem)의 어려움에 기반 Key Exchange 1. 큰 소수인 p를 선택 2. mod p의 primitive root인 g 설정 3. 수신자, 송신자는 a와 b를 선택하여 A = g^a mod p, B = g^b mod p를 계산 4. 계산된 A,B를 서로에게 전송하고 K = B^a mod p = A^b mod p를 계산 5. 계산에 의해 생긴 k를 비밀 키로 사용 Security 1. 이산 대수 문제의 어려움에 기반하여 안전성이 ..
[Cryptography] Public Key Cryptography - RSA Public key cryptography - 두개의 key 사용(public key, private key)- 비대칭키(asymmetric system)- 키 배포가 필요없어 대칭키 시스템의 문제 해결- Digital Signatures에 사용 Key 1. Public key- message를 암호화하는데 사용- 전자서명에서는 signature를 검증하기 위해 사용 2. Private Key- message를 복호화하는데 사용- 전자서명에서는 signature를 생성하기 위해 사용 Encryption/Decryption 1. Encryption- 수신자의 공개키를 이용하여 암호화하고 Ciphertext를 전송 2. Decr..
[Cryptography] Stream Cipher - RNG, PRNG, RC4 Random Number - Stream cipher에서 사용되는 Key stream을 생성하는데 사용 TRNG - 실제로 랜덤성을 가진 source를 이용하여 random bit stream 생성PRNG - Seed를 입력으로하는 알고리즘을 사용하여 random bit stream 생성- 공격자가 Seed를 알고 있을 경우, 해당 Seed를 이용해 같은 random number 재생성 1. Requirements- Randomness : random number처럼 보여야함(uniformity, scalability, consistency)- Unpredictability : Random한 수들의 규칙을 보고 앞, 뒤의 ..
[Cryptography] Modes of Operation(블록 암호 운용 모드) Modes of Operation - 하나의 비밀키를 사용하는 Private key system의 block cipher에서 안전한 암호화를 하기 위해 고안된 방법 Initial Vector(IV) - 암호화를 난수화하기 위해 사용되는 비트 블록- 난수화하기 위한 초기 벡터- 몇몇 운용 방법에 사용- IV를 전송할 때는 추후에 나올 ECB로 암호화하여 전송 Padding - 평문의 길이가 블록 크기의 배수가 아닐 경우, 모자란 평문 뒷 부분에 padding을 붙여 block의 배수로 맞추기 위한 방법 1. Padding 방법1) Zero Padding- 00 00 00 00으로 padding2) Bit Padding- 8..
[Cryptography] AES(Advanced Encryption Standard) AES 배경 - DES가 tehoretical attack과 exhaustive key search attack에 취약하기 때문에 대체를 위해 출현- AES 공모에서 Rijndael 선정 특징 - TDES보다 빠르고 강력함- symmetric block cipher- Block Size : 128 bit- Key Size : 128/192/256 bit- Round : 10/12/14 (key size에 따라)- Round Key size : 128 bit- DES와 달리 Feistel 구조가 아닌 SPN구조(Iterative) Encryption ex) AES Encryption- irreducible polynom..
DES(Data Encryption Standard) Modern Block Cipher - 고전 암호에서 Substitution과 Transposition이 결합되어 사용되면서 Modern Cipher로 넘어옴- 암호화 알고리즘에서 넓게 사용- 기밀성, 인증- DES가 Modern block cipher에 속함 Block Cipher vs Stream Cipher Block Cipher - plaintext를 특정 크기의 block으로 나눠 암호화, 복호화 수행- block 단위로 수행- stream cipher보다는 속도가 느림- 현재는 block cipher가 더 많이 쓰임- Encryption Algorithm과 Decryption Algorithm은 같을 수도 있고 다를 수도 있음(DES는 같음..
[Cryptography] Classical Ciphers Crpytography 용어 1. Plaintext(평문)- 암호화되지 않은 일반 문장 2. Ciphertext(암호문)- 평문을 암호화시킨 문장 3. Cipher- 암호화에 사용되는 알고리즘 4. Key- 암호화, 복호화에 사용되는 키 5. Encrypt(encipher)- 암호화(평문 -> 암호문) 6. Decrypt(decipher)- 복호화(암호문 -> 평문) 7. Cryptanalysis(암호해독)- key를 모른채로 암호문을 해독 분류 1. 암호화 타입에 따른 분류1) substitution(치환)- 특정 문자를 다른 문자로 치환하여 암호화 2) transposition(전치)- 문자들의 위치를 섞어 암호화 3) product- sub..
ARP Spoofing ARP Protocol - 패킷을 전송하는 경우, 목적지의 MAC Address를 모를 때, IP Address를 이용하여 MAC Address를 알 수 있게 해주는 프로토콜- ARP Table에 IP Address와 MAC Address가 mapping되어 저장- 송신자가 수신자의 MAC Address를 모르는 경우, ARP Protocol 과정을 거침 ARP Header - Hardware Type(2 bytes) : 네트워크 유형 선택(Ethernet : 1)- Protocol Type(2 bytes) : IPv4, IPv6 선택- Hardware Length(1 bytes) : MAC Address 길이 선택(Ethernet : 6)- Protocol Length(1 byt..
Format String Bug Format String - 변수의 출력 형식을 정해주는 인자를 의미한다.- %d(정수), %f(실수), %s(string), %p(pointer), %x(16진수) 등이 있다.- Format string bug에 주로 사용되는 인자-> %n : *int(쓰인 총 바이트 수)를 저장하는 인자-> %x : 16진수로 값을 알아오는데 사용되는 인자-> %p : 0x를 붙인 16진수 값으로 출력하는데 사용되는 인자 Process(printf)- 함수를 시작하기 전 함수에 인자로 사용된 값을 stack에 넣는다.- printf 함수를 시작하면 함수 인자로 받은 argv[1]부터 먼저 읽는다.- 인자를 읽다가 Format string을 만나게 되면 POP한 뒤 ESP가 가리키는 값..
리버싱 예제 - abex crackme2 Problem 맨 왼쪽은 시작화면이고 Name과 Serial을 입력받을 수 있는 텍스트 창과 버튼 3개로 이루어져있다. 아무것도 입력하지 않았을 시 최소 4자리 이상의 name을 입력해달라는 message가 출력되고 Name을 입력한 후 다시 눌렀을 때는 serial이 일치하지 않는다는 message가 출력된다. 입력한 Name과 Serial이 어떠한 검사를 통해 일치하다는 것이 확인되면 통과할 수 있는 문제인 것 같다. Analysis Ollydbg를 통해 실행하면 Entry point(0x00401238)에서 프로그램이 시작된다. 먼저 Code->Search for -> All referenced strings를 통해 출력되었던 message를 찾아보았고 위 ..