본문 바로가기

🔐 Security/System

(9)
[시스템보안] 백도어 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018)1. SetUID형 로컬 백도어 설치와 이용하기9-1의 백도어는 SetUID 비트가 설정된 백도어를 발견해도 관리자가 쉽게 알지 못하게 변형된 것이다1) 백도어 생성하기백도어 소스, 백도어 인수 (char exec[100])'을 system 명령으로 실행한다.root 계정으로 컴파일하여 SetUID 비트 설정을 한 후 실행권한을 부여한다. 2) 백도어 동작하기백도어에 ls 명령어를 사용할 때 일반 ls 명령을 사용한 것과 같은 결과를 얻을 수 있다. id 명령을 실행해보면 일반계정임에도 uid와 gid가 0(관리자 계정)으로 출력된..
[시스템보안] 포맷 스트링 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. 포맷 스트링 공격 원리 이해하기1) test1.c 컴파일 진행하기vi 에디터로 test1.c 작성컴파일 및 실행해 보면 동작에는 문제가 없으나 보안에는 치명적인 함수 사용법이다. 2) test2.c 컴파일 실행하기char *buffer에 문자열을 입력할 때 %x 포맷 스트링 문자를 추가하여 test2.c를 작성한다.printf(buffer) 행에 브레이크 포인트 설정 후, wishfree 문자열 저장된 다음 메모리에 존재한 값인 0x8048440 값을 확인한다.buffer 포인터 (*buffer), 값(buffer), 주솟값..
[시스템보안] RTL 공격, DEP 우회, ASLR 우회 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다. 교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. RTL 공격 수행하기1) bugfile.c 컴파일하기bugfile.c를 컴파일 후 SetUID를 부여한다. 2) ret 주소 확인하기bugfile.c 파일의 ret 주소가 buffer에서 16바이트 위에 있음을 알 수 있다. 3) system 함수 주소 확인하기gdb에서 libc 영역에 존재하는 system 함수의 주소를 확인한다.system 함수의 주소는 0x4005aae0이다. 4) exit 함수 주소 확인하기마찬가지로 exit 함수 주소를 확인한다. exit 함수 주소는 0x4003b1e0이다. 5) “/bin/sh”..
[시스템보안] 스택 버퍼 오버플로우 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. gdb 분석으로 취약 프로그램의 스택 버퍼 오버플로 개념 이해하기(1) bugfile.c 컴파일하기vi 에디터를 사용하여 bugfile.c를 작성한 후, gdb로 디버깅하기 위해 -g 옵션을 사용하여 gcc로 컴파일한다.(2) gdb로 bugfile.c 소스 코드 확인하기gdb로 소스 코드를 확인한다. list 명령을 사용하여 특정 행(3~7행)의 범위를 조회한다.(3) 브레이크 포인트 설정하기 gdb로 디버깅을 수행할 때 프로그램 행 번호를 기준으로 진행하므로, 5행에 브레이크 포인트를 설정한다. (4) bugfile.c의..
[시스템보안] 패스워드 크래킹 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. 레인보우 테이블을 이용한 공격에서 체인 확인하기레인보우 테이블은 패스워드별로 해시 값을 미리 생성한 후, 크래킹 하려는 해시 값을 테이블에서 검색하여 원래 패스워드를 찾는 방식이다.“346343”과 “86AB6B3355F33F7CD62658FDDA5AF7D6” 사이의 체인을 확인해보자.최초 패스워드 “346343”에서 MD5 해시값을 구한다.MD5 해시값은 “A62798B2BFCF406BD76FCBC7A3679976“이 된다.여기서 R함수가 동작하여 해시값에서 무작위 패스워드를 추출하면 결과는 ”627982“가 된다.다시 ”..
[시스템보안] 심볼릭 링크, 레이스컨디션 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018)1. 심볼릭 링크 기능 알아보기(1) 심볼릭 링크 생성하기 : root 계정root 계정으로 심볼릭 링크를 생성한다. 심볼릭 링크 명령은 ln 명령에 “-s” 옵션을 사용하여 연결한다.링크 개수가 2로 변하지 않으며, 원본 파일을 확인해보면 일반 계정 소유와 그룹으 로 변경되어 있다.(2) 심볼릭 링크 파일 수정하기심볼릭 링크의 파일은 root 권한으로 해두어도 파일을 수정하는 데 문제가 없음을 확인한다.(3) 원본 파일과 권한 차이가 있는 심볼릭 링크 파일 수정하기심볼릭 링크 파일은 일반 계정(DCUsecu) 소유이고, 원본 파일..
[시스템보안] 파일 접근 권한, SetUID를 이용한 해킹 기법 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. 리눅스에서 파일 접근 권한 설정하기(1) 파일과 디렉터리를 생성할 때 기본 권한 확인사용자 명은 Host로 사용하였다.root 권한으로 사용되어 permission denied 되는 것을 확인하여 home 디렉터리로 이동한 후 touch a.txt 명령어로 임의의 파일을 생성, 디렉터리를 생성한다. 파일은 rw-r—r--(644), 디렉터리는 rwxr-xr-x(755)임을 확인할 수 있다.umask 로 현재 정보인 022를 확인한 후, 027로 변경한다.umask를 하게 되어 027로 바꾸게 되면 파일은 640, 디렉터리는 ..
[시스템보안] 스택 동작 이해 및 셸 코드 생성 및 실행 위 글은 2022년도 목포대학교 학점교류 '시스템보안' 수업에서 수행한 과제를 작성한 내용입니다.교재 : 시스템 해킹과 보안: 정보 보안 개론과 실습 3판, 양대일 (2018) 1. 프로그램 실행 과정에 따른 스택 동작 이해하기디렉터리를 만들고 어셈블리어를 테스트할 sample.c 코드를 vi로 작성하고 리눅스에서 컴파일한다.(ppt 자료에서 디렉터리는 chapter2로 정의했으나, 코드 오류와 캡처하지 못하여 부득이하게 chapter5로 작성)gcc –S –o sample.a sample.c로 컴파일한 후에 vi 에디터로 sample.a 파일을 열어준다.pushl %ebp로 최초 프레임 포인터 값을 스택에 저장하며 ebp는 함수 시작 전 기준점이 된다.ebp 전엔 ret이 저장되며 함수 종료 시 점프할..