본문 바로가기

Security/System9

JNI (Java Native Interface) 보호되어 있는 글 입니다. 2019. 6. 7.
Buffer Overflow-2 [소스코드 1]- Buffer Overflow공격을 진행하기 전에 우선 아래의 소스코드를 분석해본다.- Callee인 Func함수에서의 스택 구조는 아래와 같다. 0012FB68 BUF[4] 공간 => Test 0012FB6C EBP => sta 0012FB70 RET => ck B 0012FB74 uffe 0012FB78 r Ov 0012FB7C er F 0012FB80 low 0012FB84 0000 0012FB88 0000 ... ...- memcpy함수를 실행하면 EBP는 물론 RET까지 attack배열의 문자열로 덮어 버린다. 즉, memcpy함수는 Buffer Overflow에 취약한 함수임을 알 수 있다. [소스코드 2]- 그렇다면 RET값을 임의의 값으로 변경할 수 있지 않을까? 라는 의문.. 2018. 1. 29.
Buffer Overflow-1 - 실습은 RedHat에서 진행한다.- 2편으로 넘어가기 전에 공격이 어떤식으로 진행되는지 간단하게 살펴본다. 자세한건 2편부터 소개한다. [실습 1]- 우선 아래와 같은 코드를 bof.c라는 이름으로 작성하여 분석해본다. - 작성한 bof.c파일을 컴파일해준다. (gdb를 사용할 것이기 때문에 꼭 -g옵션을 넣어줘야 한다.) - gdb를 실행한다. (-q 옵션은 gdb를 처음에 실행할때 나오는 문구를 보여주지 않는 옵션이다.) - 브레이크 포인트를 걸기 전에 소스 코드를 한번 확인한다. - strcpy함수가 6번째 줄에 위치해 있으므로 6에 브레이크 포인트를 걸어준다. - AAA인자를 넘겨 실행한다. - argv[1]에 넘겨준 AAA가 잘 들어갔는지 확인한다. - buffer을 확인해보니 아직 strc.. 2018. 1. 27.
RET값 변조 * 문제)-> 다음 코드에서 RET 값을 적절히 변경하여 첫 번째 printf함수가 아닌 다음 printf함수가 수행되도록 수정해본다. * cdecl 함수호출 규약에서의 풀이- 일단 아래와 같이 코드를 바꿔주면 문제를 해결할 수 있다. - 우선 main함수에서 0040101C가 Func함수, 00401029가 첫 번째 printf함수, 00401036이 두 번째 printf함수라는 것을 확인한다.- 첫 번째 함수를 건너 뛰고 두 번째 함수를 실행시켜야 하기 때문에 RET값을 첫 번째 printf함수를 실행하고 난 뒤의 주소로 바꾸어 줘야 한다. - 포인터 연산으로 RET값을 바꾸기 전에는 아래와 같이 RET값이 정상적으로 들어가져 있다. - 포인터 연산을 한 뒤에는 두 번째 함수를 실행하기 바로 전의 주.. 2018. 1. 27.
adminstrator, root 계정 패스워드 초기화 방법 - adminstrator(Windows)나 root(Linux)의 패스워드가 기억이 안나는 경우 유용하게 사용되는 패스워드 초기화 방법이다. * Windows XP- 일단 iso파일로 부팅해야 한다. 1. 부팅 시 F2키를 눌러 BIOS모드로 들어간다. 2. boot 탭에서 CD-ROM 젤 위로 오게한다.(CD-ROM을 위로 옮길때는 +키를 사용한다.) 3. exit탭에서 save on change을선택한다. 4. 1번 선택 돼있으니까 Ente키를 누른다. 5. 1번 선택 돼있으니까 Enter키를 누른다. 6. 1번 선택 돼있으니까 Enter키를 누른다. 7. adiminstrator로 돼있으니까 Enter키를 누른다. 8. 1번을 선택하고 Enter키를 누른다.- 이때 password cleard!라.. 2018. 1. 13.
리눅스 취약점 * /etc/passwd 파일의 root의 패스워드 x 필드를 지우면?-> Centos : 패스워드없어짐 -> Red Hat : RedHat에서는 패스워드 안 없어짐(하위 버전임에도 불구하고) 2018. 1. 8.
패스워드 크래킹 * 패스워드 크래킹- 해당 시스템에 저장되어 있는 비밀번호를 알아내는 기술 * 암호화- 데이터 전송 시 데이터가 손실되거나 변경되는 것을 방지하기 위해 데이터를 변환하여 전송하는 방법- 대칭형 DES, 비대칭형 RSA * 해시- 임의의 데이터로부터 짧은 전자지문을 만들어내는 방법- 해시 함수는 데이터를 자르고 치환하거나 위치를 바꾸는 방법을 사용해 결과를 만들어 냄- 리눅스 - md5(취약)- 왼도우 - lm, ntlm -> ntlmv2 * 패스워드 크래킹 방법1. Brute Force Attack- 패스워드에 사용될 수 있는 문자열의 범위를 정하고 그 범위 내에서 가능한 모든 값을 대입- 언젠간 뚫림- 시간이 상대적으로 오래 걸림 2. Dictionary Attack- 패스워드로 사용할 만한 것을 사전.. 2018. 1. 7.
SetUID와 권한상승 * 파일과 디렉터리 생성 시 기본 권한- 파일 -> 644- 디렉터리 -> 755 * 파일, 디렉터리의 기본 생성 최고 권한(umask 활용)파일 -> 666 (chmod로 실행권한 줄 수 있음 -일반 파일에 실행권한을 부여 하면 파일 색(실행 파일)이 연두색으로 변함)디렉터리 -> 777 * /etc/profile 파일- umask 설정 돼 있음 * SetUID- 프로그램 실행 시 파일 소유자의 권한으로 실행 * /etc/shadow 파일의 접근권한- ---------- 권한 설정이 안 돼있어도 소유자(root)는 열람 가능 * /usr/sbin/passwd 명령어의 접근권한- rwsr-xr-x- 비밀번호를 바꿀때는 /etc/shadow파일에 접근해야 하는데 SetUID를 통하여 일반 사용자들도 /et.. 2018. 1. 7.
[Kali] 무차별 대입 공격 2017. 3. 20.