전체 글 161

[문제 풀이로 배우는 시스템 해킹 테크닉] level5. 레이스 컨디션

* 레이스 컨디션- 다수의 프로세스가 서로 동일한 자원을 할당받기 위해 경쟁하는 상태 -> 레이스 컨디션 취약점이 존재하기 위한 최소한이 조건1. SUID가 걸려 있어야 함(다른 계정의 권한에 접근해야 하므로)2. 임시 파일을 생성해야 함3. 공격자가 임시로 생성되는 파일명을 정확하게 알아야 함 * 진행 흐름1. 공격 프로세스에서 /tmp/lvl6pass.txt파일을 만든다.2. 공격 프로세스에서 /tmp/lvl6pass.txt파일을 원본으로 하는 /tmp/level5.tmp링크파일을 만든다 (/tmp/level5.tmp링크가 취약한 프로세스가 생성하고 삭제하는 파일의 이름임)3. 레이스 컨디션 취약점이 있는 프로세스를 시작한다.4. 취약한 프로세스가 /tmp/level5.tmp파일을 생성하려고 하지만 ..

[문제 풀이로 배우는 시스템 해킹 테크닉] level4. xinted 백도어

* 로컬 백도어 : 로컬 시스템을 통해 백도어를 이용* 원격 백도어 : 네트워크를 통한 원격으로 백도어를 이용 hint파일을 열어 힌트를 얻어본다. 아래와 같은 힌트를 얻을 수 있다. /etc/xinted.d에 백도어가 있다는 뜻이므로 해당 디렉터리의 내용을 살펴본다.backdoor라는 서비스가 눈에 띈다. backdoor 서비스의 설정을 확인해 본다. 설정 항목별 의미 service finger 서비스의 이름 /etc/services 파일에 있는 서비스명으로 선택하는 것을 권장 disable = no 데몬을 비활성화하지 않음 flags = REUSE 서비스 포트가 사용중인 경우 해당 포트의 재사용을 허가 socket_type = stream TCP/IP프로토콜을 선택 wait = no 이미 서비스가 연..

[문제 풀이로 배우는 시스템 해킹 테크닉] level3. system()함수의 위험성

이 문제를 풀기 전에 먼저 알아야 할 것은 dig 이다.dig는 nslookup과 동일하게 도메인의 IP주소를 확인하는 프로그램이다.(기본적으로 유닉스 계열 OS에 탑재돼 있음)dig 사용법은 아래와 같다.dig @서버IP 도메인주소 version.bind chaos 옵션은 DNS서버 버전을 확인할 수 있는 옵션이다.(요즘에는 BIND설정에서 버전 요청에 대해 회신하지 않도록 설정하고 있으므로 취약한 DNS서버가 아니면 BIND버전에 대한 회신이 없다.) 이번에도 hint파일을 열어 힌트를 얻어본다. 그럼 아래와 같은 힌트를 얻을 수 있다.소스코드의 흐름을 보면먼저 "dig @"라는 문자열을 cmd배열에 넣는다."dig @"문자열 뒤에 autodig 명령어 다음에 입력된 문자열을 붙인다."dig @입력받..

[문제 풀이로 배우는 시스템 해킹 테크닉] level2

이 문제를 풀기 전에 먼저 알아야 할 것이 있다.바로 vi편집기의 명령어 실행 기능이다.:!명령어 를 입력하면 셸 화면으로 일시적으로 복귀하여 입력한 명령어를 실행한다.:sh 를 입력하면 셸을 실행할 수 있다.참고적으로 !앞에 r옵션을 추가하면 (즉, :r!명령어) 실행한 명령어의 결과값을 vi 편집기의 편집화면에 추가할 수 있다. 이번에도 hint파일을 열어 힌트를 얻어본다. level3의 권한을 일시적으로 얻을 수 있도록 level3계정의 권한에 SUID가 설정돼 있는 파일을 찾는다. 찾은 /usr/bin/editor파일을 실행시켜본다. vi 편집기와 똑같은 화면이 실행된다. level3 계정의 권한으로 vi편집기를 실행하게 되었으므로 my-pass명령을 실행시켜 패스워들을 알아낸다.

[문제 풀이로 배우는 시스템 해킹 테크닉] level1. 백도어

* 백도어-> 정상적인 아이디와 패스워드를 입력한 후 서버에서 본인이 맞는지 확인하는 과정을 회피하는 접근 경로-> 일반적인 인증을 통과, 원격 접속을 보장하고 plaintext에의 접근을 취득하는 등의 행동을 들키지 않고 행동하는 방법-> 설치된 프로그램의 형태를 취하기도 하고 기존 프로그램또는 하드웨어의 변형일 수도 있음 우선 ls로 디렉터리 안을 살펴보면 hint파일을 발견할 수 있다. hint파일 내용을 확인해 보면 아래와 같이 써져 있다.level2 권한에 setuid가 걸린 파일을 찾는다. 힌트를 확인했으니 find 명령으로 찾아본다.level2 권한이라고 했으니 -user level2 옵션을 주고,setuid가 걸려있다고 했으니 -perm -4000옵션을 준다.2> /dev/null은 표준 ..

대칭키 VS 비대칭키

대칭키 (=비밀키, 관용키) 비 대칭키 (=공개키) 설명 동일한 키를 사용하여 암호화, 복호화 동일하지 않은 키를 사용하여 암호화, 복호화 암호화 키 비밀키 공개키 복호화 키 비밀키 비밀키 비밀키 분배 필요 불필요 장점- 키의 길이가 짧음- 속도가 빠름- 관리해야 할 키가 상대적으로 적음- 확장성이 좋음단점 - 키 분배가 어려움- 관리해야 할 키가 많음- 키의 길이가 김- 속도가 느림비밀키 수n(n-1)/22n DES, AES, SEED RSA, Rabin, Diff-Hellman, ECC, DAS(DSS)