Security
Block cipher mode of operation
Block cipher mode of operation
2016.11.25AES GCM도 CTR의 variation인데, Galois의 수학적 성질을 이용.CCM은 CTR에 CBC를 합친거 같은 mode.GCM이 CCM보다 좋은 성능을 냄. GCM은 stream cipher처럼 동작.병렬처리 가능. CTR
동기식, 비동기식 stream cipher
동기식, 비동기식 stream cipher
2016.11.18stream에서 동기식, 비동기식 차이는 key가 평문이나 암호문에 독립적이면 동기식, 종속적이면 비동기식이다. 동기식독립적일 경우 1bit error는 1bit에만 파급되나, (후속 암호문에 오류 파급되지 않음)1bit 추가/손실은 이후 XOR을 당기거나 밀어서 복호화에 실패한다.그래서 전송시에 동기화가 필요하다. 내부상태를 맞춰야하니까.난수열을 암호화 할 input과 독립적으로 생성하는 경우암/복호화에서 상호 동기화 필수의도적인 변조가 복호화 단계에서 검출 불가전송도중 변조되어도 후속 암호문에 오류 파급되지 않음 비동기식비동기식(자기동기식, 종속적)일 경우 내부상태에 의존하지 않아 동기화가 필요없는 대신 이전에 생성된 평문이나 암호문에 종속적이다. 따라서 1bit error/추가/삭제가 발생하면 일부..
jmp, call instruction 주소 계산
jmp, call instruction 주소 계산
2016.11.15Intel x86 architecture에서 JMP, CALL 명령어는 5Byte로 opcode와 operand는 다음과 같다.```cJMP : E9 XX XX XX XXCALL : E8 XX XX XX XX```이 때 operand는 절대주소 값이 아니라, 현 위치 기준 상대주소다. 따라서```cXX XX XX XX = 목적지주소 - 현재명령어주소 - 5 ( Little Endian 정렬 )```-5(Byte)는 JMP, CALL 명령어의 크기 만큼 빼주는 것. ex) 402000에서 401000으로 간다면```c402000 - 401000 - 5 = FF FF EF FB E9 FB EF FF FF``` 절대주소를 사용하고 싶은 경우```c mov eax, 401000 jmp *eax```call도 동..
FTZ : ; cat, FSB
FTZ : ; cat, FSB
2016.11.15ftz 서버에 붙어서 하는거랑, 직접 vmware를 이용해 구축해서 하는거랑 차이가 있다. 직접 구축하라고 배포되고 있는 iso파일은 OS가 red hat 9라서 그런 듯.ftz 서버에 붙으면 버그도 없고, ASLR도 꺼져있고, setuid 걸려있어도 gdb 사용이 가능해서 상당히 난이도가 내려감.기본 쉘에서는 0xc0인가?를 넘어가면 둘로 쪼개지며 이상하게 입력되는 버그가 있어 csh를 사용해야 한다. 처음에 귀찮아서 shell script로 짰는데 안돼서 system 함수로 같은 기능하게 하는 프로그램을 짰더니 된다.xinetd가 쉘 명령어를 인식 못하기 때문인 것 같다. 왜 생성되는 임시파일을 cp로 얻는게 안되냐면, 아마 주어진 race condition 취약점이 있는 프로그램이 파일 쓰기부터 삭..
LOB gate ~ skeleton → golem
LOB gate ~ skeleton → golem
2016.11.15bash 버그 때문에 반드시 bash2를 사용해야 한다는 점 주의. 구축하고 나서 netconfig로 설정해주어야 telnet 접속이 가능하다. ff를 넣으면 00으로 바뀜. 왜 ff가 00으로 바뀌는건지 찾아보니 bash버그가 있다고 한다. 그래서 bash2를 사용해야 한다고. 별거 없음. 버퍼가 작을 뿐. gets를 이용해 stdin으로 받는다는 것이 차이점.세가지 방법이 생각났는데,1) hex값을 ASCII문자로 변경해서 복붙2) ASCII code표 보고 입력 가능한 문자 hex값을 고려해 본 다음 가능한 메모리 공간에 적재.- 이건 불가능할거같다. 프로세스에 삽입하는 데이터의 위치를 내가 임의로 지정할 수 없다.3) 파일입출력을 이용해 hex data를 바로 쓰는 방법. file descript..
BOF, Buffer OverFlow ( local exploit )
BOF, Buffer OverFlow ( local exploit )
2016.11.10이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[webhacking.kr] 18 : SQL injection 공백 / and 우선순위
[webhacking.kr] 18 : SQL injection 공백 / and 우선순위
2016.10.29이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
FSB, Format String Attack/Bug
FSB, Format String Attack/Bug
2016.10.23#1 %08x / n$``c %x``보다 ``c %08x``를 사용하는 편이 보기도 좋고, 출력 문자 개수 맞추기도 편하다.``c %hn`` 이전에 선행 출력 문자 개수를 만들 때도 ``c %*x || %*d``를 사용한다. + 특정 위치 데이터를 출력하려면 ``c n$`` 이용한다. #2 %hn``c %n``이 작용하는 순간 그 위치 포함 +4 bytes가 ``c 0``으로 초기화 되면서 값이 써진다. 그래서 ``c %n``으로 쓰려면 하위주소 부터 쓰고 상위주소를 써야 이후에 쓰는 ``c %n``이 이전에 쓴 하위 2 bytes 값을 덮어 쓰지 않는다.그러나 이렇게 하위주소 부터 쓰고 상위주소를 써도, 4 bytes를 잡고 쓰게 되므로 다음 2 bytes를 덮어 써서 그 부분의 데이터가 손실된다.따라..
Tools - Reversing, bf tool
Tools - Reversing, bf tool
2016.09.25이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
PKCS ( Public Key Cryptography Standards )
PKCS ( Public Key Cryptography Standards )
2016.09.14Public Key Cryptography standards, 공개키 암호 표준 ( wiki ) RSA부터 Diffie-Hellman, Password-Based Encryption, Digital Signature까지 공개키에 관련된 RFC를 볼 수 있다. 현재 PKI 표준은 X.509다. ( ITU-T ) PKCS #7 ( RFC 2315 ) Cryptographic Message Syntax Standard ( Digital Envelope ) The enveloped-data content type consists of ①encrypted content of any type and ②encrypted content-encryption keys for one or more recipients. (필..
Birthday Problem & Attack
Birthday Problem & Attack
2016.09.10n명의 사람이 있을 때 생일이 같은 사람이 둘 이상 있을 확률이 p(n)이면,이를 적어도 1명도 겹치지 않을 확률로 바꿀 수 있으므로 이고, 이다. p(n) = 0.5일 때 n은 22.xxx이므로 23명 이상일 때 p(n)은 50% 이상이 된다. Birthday Attack암호학적 해시 함수의 해시 충돌을 찾아내기 위해 몇 번의 시도가 필요한지를 알아내기 위한 방법이다. 실제 birthday attack에서는 가짓수가 365가 아닌 ``c 2^24`` 등 매우 큰 수인데, factorial ( 계승 ) 을 사용하면 계산이 어렵다.따라서 적당히 approximation시켜 사용한다. : 총 가짓수 ( 365일 ) : 시도 횟수 ( 사람 수 ) 일 때, 라는 간단한 식이 나온다. factorial 근사는 스..
Prefetch, Superfetch
Prefetch, Superfetch
2016.09.07Prefetch프리패치(Prefetch)는 윈도우 XP 이후 운영체제에서 제공하는 메모리 관리 정책으로, 실행파일을 메모리로 로딩할 때의 효율을 최대한 끌어올리기 위한 목적으로 개발되었다. 실행 파일이 사용하는 시스템 자원을 프리패치 파일(.pf)에 저장해 두었다가, 부팅 시에 프리패치를 모두 메모리에 로드하는 방식이다. (실제 사용할 때에는 메모리 매핑 해주는 방식) 프리패치 파일에 저장되는 정보 중 분석에 유용한 목록은 아래와 같다. 실행 파일 이름실행 파일의 실행 횟수실행 파일의 마지막 실행 시간프리패치 파일의 생성 시간(파일 최초 실행 시간)실행된 볼륨의 정보실행파일 실행 시 참조하는 파일의 목록 하지만 프리패치의 사용은 메모리의 페이징 아웃 기법(오래 사용되지 않는 메모리 영역을 잠시 보조저장장..