DINGA DINGA
article thumbnail
[LOB] wolfman → darkelf
SYSTEM/LOB 2021. 3. 14. 02:00

1. wolfman/love eyuna로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. darkelf.c 파일 확인 환경변수, buffer 사용이 불가하고 buffer의 ret값까지만 변조할 수 있다. 4. gdb로 실행 우선 권한 문제 해결을 위해 darkelf를 copyelf로 복사했다. strcpy가 실행된 후인 에 breakpoint를 걸었다. A 44개와 0xbfbfbfbf를 넣었다. esp를 확인해보니 아래와 같다. 첫줄부터 확인해보면 입력한 값이 성공적으로 들어간 것을 확인할 수 있다. 이것이 buffer의 주소다. 아래 0xbffffc24부터 다시 A가 확인되는데, 여기가 argv 인자값을 저장하는 스택의 주소다. 5..

article thumbnail
[LOB] orc → wolfman
SYSTEM/LOB 2021. 3. 14. 01:28

1. orc/cantata로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. cat 명령어로 wolfman.c 내용 확인 전 단계와 마찬가지로 환경변수를 사용할 수 없다. buffer hunter 부분을 보니 buffer도 사용할 수 없게 되어있다. 4. gdb로 실행 strcpy 함수가 호출되고 난 후인 에 break point를 걸고 스택메모리의 변화를 관찰한다. A 44개와 0xbfbfbfbf가 잘 들어간 것을 확인할 수 있다. 0xbffffaf4 주소를 이용할 것이다. 5. 공격 및 비밀번호 획득 공격코드는 다음과 같이 구성했다. ./wolfman `python -c 'print "\x90"*44+"\xf4\xfa\xff\xb..

article thumbnail
[LOB] goblin → orc
SYSTEM/LOB 2021. 3. 14. 00:32

1. goblin/hackers proof로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. cat 명령어로 orc.c 내용 확인 egghunter라는 주석이 보인다. egghunter는 memset함수를 이용해 환경변수를 초기화하기 때문에 이 문제에서는 환경변수를 사용할 수 없다. if문을 통해 argv[1][47]의 값이 '\xbf'여야 한다는 것을 알 수 있다. argv[1]에만 제한이 걸려있으므로 argv[2]를 활용하면 될 것 같다. 4. gdb로 실행 우선 권한 문제를 해결하기 위해 orc를 cpc 파일로 복사한다. gdb로 실행시키고 main 함수를 살펴본다. strcpy 함수가 호출되는 에 break를 건다. 위와 같이..

article thumbnail
[LOB] cobolt → goblin
SYSTEM/LOB 2021. 3. 4. 23:59

1. cobolt/hacking exposed로 로그인 2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인 3. goblin.c 내용 확인 버퍼의 크기가 16바이트로 작아 환경변수가 필요하고, gets함수가 사용되는 것을 알 수 있다. 4. 환경변수 선언 사용한 쉘코드는 다음과 같다. "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80" 5. 환경변수 값을 가져오는 get.c 파일 생성 6. 컴파일 후 실행 환경변수 shellcode의 주소: 0xbfffff65 7. 공격코드 구성 및 비밀번호 획득 환경변수 주소값을 바탕..

728x90