목록전체 글 (36)
아메바시큐리티
문제 Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 풀이. 먼저 Windbg32를 이용해 해당 문제 파일을 열어보자. 파일을 열어보니, 엄청나게 많은 jne, jb, jae 등과 같은 jump 관련 명령어가 많은 것을 알 수 있다. 이와 같은 파일들은 주로 packing이 되어 있는 경우가 많다. unpacking을 진행해보자. upx unpacker를 이용해서 unpack한 결과, unpack이 되었다. unpack한 파일을 다시 windbg로 열어보자. 내용을 살펴보던중, Serial 번호를 확인하는 분기문의 위치를 확인할 수 있었다. 해당 분기분을 보면, ..
문제 HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 답 5 풀이 위의 그림은 windbg를 이용해 해당 문제 파일을 열어본 결과이다. 코드를 분석해보면, GetDrvieTypeA를 호출한후, esi에 +3, eax에 -2를 해준 결과를 비교한다. 해당 결과의 값이 같다면, CD-ROM으로 인식하는 것을 알 수 있다. 기본적으로 함수의 Return값은 EAX 레지스터에 기록되므로, BreakPoint를 이용하여 해당 함수의 현재 return값을 확인해보자. 현재 GetDriveTypeA를 실행하면 return값이 3이 되는 것을 알 수 있다. 이제 해당 코드를 비교하는 cmp까지 진행한 후 다시 레지스터의 상태를 확인해보자. CD-ROM으로 인식하기 ..
로그인 과정 (1) 사용자 계정과 패스워드 입력 (2) 로그인 담당 프로그램이 입력한 패스워드의 해시값과, /etc/shadow에 기록된 해시 값을 비교(이전에는 /etc/passwd사용) (3) 패스워드 확인 후 로그인 프로그램은 쉘이 사용할 변수들을 근거로 초기 환경을 설정 (4) 절차가 끝나면 로그인 쉘 실행 /etc/passwd UNIX는 시스템 관리자가 사용자 계정을 만들 때마다 해당 사용자와 관련된 정보를 /etc/passwd파일에 저장한다. passwd 파일에는 UNIX 시스템을 이용하는데 필요한 기본정보들이 저장되어 있다. 각 필드는 : 로 구분된다. [1] root : 유저 이름 [2] x : 비밀번호 (현재는 해시값을 shadow파일에 저장하여 /etc/passwd 에는 x로 표시되어 ..
Dictionary Attack 패스워드로 자주 사용되는 사전에 있는 단어, 키보드 자판의 일련순, 주민등록번호, 이름 등을 미리 Dictionary 파일로 만든 후 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 패스워드 크래킹 방법이다. Brute Force Attack 패스워드에 사용될 수 있는 문자열의 범위를 정하고, 그 범위 내에서 생성 가능한 모든 패스워드를 생성하여 이를 하나씩 대입, 패스워드 일치 여부를 확인하는 패스워드 크래킹 방법 일반적으로 사전 대입 공격이 실패하면 해당 공격을 사용하는 편이다. Hybrid Attack Dictionary Attack과 Brute Force Attack의 혼합 버전. Dictionary 파일에 있는 문자열에 문자,숫자 등을 추가하여 무작위로 대입하..
SID란? SID란 윈도우의 각 사용자가 그룹에 부여되는 고유한 식별 번호를 의미한다. Windows는 사용자가 로그인을 수행하면 접근 토큰이 생성되며, 해당 토큰에는 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 보안식별자(SID)정보가 담겨있다. 접근 토큰의 사본은 그 사용자에 의해 시작된 모든 프로세스에게 할당되어 프로세스에게 사용자의 접근권한에 맞는 권한을 부여한다. SAM 파일에 SID 정보가 저장되어 있다. 관리자 권한으로 실행한 프로세스 확인 보안토큰에 SID가 할당되어있고, 프로세스를 실행할 때는 이러한 보한토큰의 사본을 프로세스에게 넘겨준다고 했다. 그래서 관리자 권한으로 실행시 관리자의 보안토큰이 넘어가는지 확인해보았다. 하지만 프로세스가 가지고 있는 토큰은 유저의 보안토..
윈도우 인증 구성 요소 (1) Local Security Authority = LSA 모든 계정의 로그인에 대한 검증 및 시스템 자원(파일)에 대한 접근 권한을 검사한다. 여기에 해당되는 로그인에는 로컬로그인 뿐만 아니라 원격로그인 역시 포함된다. 계정명과 SID를 매칭하여 SRM이 생성한 감사 로그를 기록한다. NT 보안의 중심 서비스이며 Security Subsystem이라고 불린다. (2) Security Account Manager = SAM 사용자/그룹 계정 정보에 대한 데이터베이스를 관리한다. 사용자 로그인 정보와 SAM 파일에 저장된 사용자 패스워드 정보를 비교해 인증 여부를 결정한다. * SAM 파일은 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스이다. 윈도우가..
데이터 통신 프로토콜 - 데이터 통신에 있어서 신뢰성 있게 효율적이고 안전하게 정보를 주고받기 위해서 정보의 송/수진자측 또는 네트워크 내에서 사전에 약속된 규약 또는 규범 - 주로 송신자측에서 수신자측을 호출하여 연결하는 과정, 통신회선에서의 접속 방식, 등에 대한 다양한 규약을 포함 1) 주요 구성 요소 - 무엇을 어떻게 그리고 언제 통신할지에 대한 규정 - 구문, 의미, 타이밍으로 구성 Synatax - 데이터의 구조나 형식. - 데이터가 표현되는 순서 Semantics - 의미는 비트의 영역별 의미를 나타냄 - 특정 패턴을 어떻게 해석하고, 그를 기반으로 어떤 동작을 할 것인가를 결정 Timing - 데이터를 언제 보낼지 - 데이터를 얼마나 빠른 속도로 보낼지 OSI 모델과 TCP/IP 프로토콜 ..
블록 체인 - 온라인 금융 거래 정보를 블록으로 연결하여 P2P, 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자들의 개인 디지털 장비에 분산/저장시켜 공동으로 관리하는 방식 - 주식,부동산 등의 거래에도 적용 가능 - 토지 권리 양도, 가정 현관 키 등 보안에 관한 다양한 분야에 활용 가능 - 대표적인 예 : 비트코인 블록체인의 기술적 특성 1) De-centralization - 블록체인의 가장 중요한 기술적 특성 - 거래 기록이 담긴 원장을 정부나 은행과 같은 제 3자가 관리하지 않고, 참여자들이 직접 검증과 승인 및 합의 등의 활동을 통해 만들고 관리 2) Transparency - 새로운 블록은 생성되자마자 동시에 모든 참여자에게 전송되어 공유 - 블록의 거래 기록은 누구나 볼 수 있음 -..