본문 바로가기

분류 전체보기

[Lv.1] Gate LOB Redhat은 보호기법이 적용되어 있지 않은, 취약점이 무수히 많이 존재하는 환경입니다. 이 환경에서 Gate 문제는 기본적인 bof 취약점만 가지고 있기 때문에 쉘을 얻어낼 수 있는 방법 또한 다양합니다. 이걸 다 적기에는 제가 너무 힘들기 때문에 문제 풀 때마다 알려드리고 싶은 게 생각나면 다른 방법으로도 접근하는 방법을 보여드리고자 합니다. Login : gatepass : gate Gate 문제입니다. 코드를 보아하니 아주 대놓고 stack corruption을 일으켜주라고 하네요. 심지어 dep, aslr도 없기 때문에 스택에 쉘코드를 올려놓아 쉘을 띄우는 방법과 RTL, 환경변수에 쉘코드를 올려놓는 방법, argv[2]에 쉘코드를 올려놓는 방법, ... 등등 여러 방법이 있습니다. 우선.. 더보기
들어가기 전, 편한 환경에서 풀기 위한 환경세팅 그냥 가상환경 (vmware랄지 페러렐즈랄지.. 버박이랄지.) 에서 돌리셔도 무관하지만 LOB 환경에서 직접 풀기엔 불편함(오로지 터미널만 보이기 때문에, 그리고 창도 1개만 띄우기 때문에 여러모로 불편함)이 너무 많기 때문에 전 LOB를 켜고 LOB의 ip주소를 알아내어 다른 환경 (윈도우랄지 리눅스) 에서 LOB에 붙도록 하겠습니다. LOB, gate로 접속한 화면입니다. 여기서 ifconfig를 하면 명령어가 없다고 나오므로 /sbin/ifconfig 를 실행해줍니다. 그럼 주소가 10.211.55.20 으로 나오는데 (이건 제 환경이기 때문에 이렇게 나오고 여러분이 실행하면 다른 주소가 나옵니다.) 이걸 실제 리눅스에서 telnet 10.211.55.20으로 붙는다면? 와우? 창을 여러개 띄워놓고.. 더보기
[Linux] colorscheme molokai 세팅 제 티스토리에 있는 powerline, peda, ohmyzsh의 agnoster 테마, colorscheme 등을 적용하시면 이렇게 됩니다.터미널은 그냥 편하신대로 설정하시면 되고요. 근데 colorscheme 의 molokai는 그냥 vim74의 color에 복붙해서 갖다쓰기만 하면 적용이 안되므로 방법을 알려드리겠습니다. 우선 이걸 받아서 사용할 우분투의 /usr/share/vim/vim74/colors에 복사합니다. 그 후, cd ..;cd .. 로 /usr/share/vim 폴더로 이동하시고 vim vimrc로 vimrc를 켜서 이걸 그대로 적어주시면 됩니다. colorscheme molokaiset t_Co=256let g:molokai_original = 1 더보기
[Linux] vim powerline 설정하는 방법 -- INSERT -- 위에 라인이 powerline입니다.예쁘기도 하고 유용해요. 어느 분의 블로그에서 긁어온 방법이라 이렇게 긁어오기도 죄송하지만.. ㅠ 다음에 제가 리눅스 분석할 환경 설정할 때 개인적으로 읽을 글이기도 하고..이런 글 찾는 분도 많으실 것 같아서 명령어 부분만 긁어왔습니다. (작성자님 죄송합니다 ㅠ) 출처 : http://humb1ec0ding.github.io/2013/11/26/ubuntu-powerline-beautify-the-stateline.html여기로 들어가시면 아주 자세하게 그림으로 나와있어요. 자세한 설명 보고싶으시면 여기로 들어가셔서 보시면 되요. sudo apt-get install python-pip git 파이썬 2.7이나 3.3이 필요하다고 해서 일단 설.. 더보기
8. Core Dump Analysis ( gdb ) 강의 중 코어 덤프를 이용해 분석하는 방법을 알고 싶다는 분이 계셔서 저도 한번 공부해볼겸, gdb를 이용한 Core Dump 분석방법을 포스팅합니다. 이 강의는 거의 그림으로 대체될 것 같은 느낌이 물씬 드네요 ㅋㅋㅋ;gdb 외에도 objdump로 분석하는 방법이 있지만, 아직 제가 거기까지는 공부 못했네요. 이 글 마저 포스팅하고 공부한 뒤 추가로 올리겠습니다. 그러합니다. 제가 크기가 작은 바이너리를 분석해서 where이나 backtrace를 했을 때에 저런 결과만 나왔는데, 크기가 큰 바이너리를 분석할 때, 각 frame 별로 (#0, #1, #2 ...) 정보를 확인할 수 있습니다. frame 0, frame 1, frame 2처럼 명령어를 적어주시면 그 프레임에 관련된 정보가 출력됩니다. 이 .. 더보기
7. Use After Free (uaf, uaf.c 바이너리, 코드 요청하셔서 올려드립니다.) 8번째 강의는 Use After Free입니다. 말 그대로 사용한 후 해제했을 때 취약점이 일어날 수 있습니다. 정확히는 heap space에서 alloc된 공간을 free하고 reuse할 때에 일어날 수 있는 취약점입니다. 이 use after free는 browser exploit을 할 때에 자주 쓰이는 기법인데 heap spray와 병행해서 사용합니다. 여튼, use after free에 대해 간단한 원리정도? 설명하도록 하겠습니다. 1. Heap? use and free 스택과 힙은 이런 특성을 가지고 있습니다. 스택은 정적으로 할당되기 때문에 컴파일 시 미리 스택에 공간이 할당되어 있습니다. 그렇기 때문에 스택에 생성될 배열 사이즈.. 더보기
6. Return Oriented Programming (ROP) 6. python programming 관련 동영상입니다. 설명은 생략하도록 할게요. 필요하신 분은 참고하세요! python 바이너리 사용법은 ./python [port] 입니다. 7. ROP 6은 건너뛰고 왜 7이냐면, 중간에 python basic programming 이 있었지만 설명할 게 별로 없으므로 넘어가기로 했습니다. 이번 7번째 강의시간은 Return Oriented Programming을 배워보도록 합니다. 이 기법은 리얼월드에서도 자주 쓰이는 기법으로 , 아직까지 ROP를 막는 방법이 연구되지 않았습니다. ROP(Return Oriented Programming)는 현재 수행중인 프로그램 코드 안에 존재하는 서브루틴이 리턴 명령어에 닿기 전에 선별된 기계 명령어 또는 기계 명령어 덩어리.. 더보기
리스트의 문자열을 int 형태로 변환 list_a = ['1', '2', '3', '4'] -> list_a = [1, 2, 3, 4] 로 바꾸고 싶을 때, python 2. list_a = map(int, list_a) python 3. list_a = list(map(int, list_a)) 를 해주면 된다. 혹은 list_a = [int (i) for i in list_a] 더보기
5. Format String Attack (FSB) Shayete 입니다. 5번째 강의는 포맷스트링 버그에 대해 알아보도록 하겠습니다. 포맷스트링버그는 개발자가 printf()함수 구현 시, 해킹 공격을 고려하지 않고 개발하여 생긴 보안 취약점입니다. printf()를 "printf(buf)" 와 같은 형태로 사용했을 때 출력할 buf의 값이 포맷스트링이라면 buf 값을 문자로 취급하는게 아닌, 서식문자로 취급하여 취약점이 일어날 수 있습니다. 위의 그림에서 보이듯이 fgets() 로 buf에 서식문자를 집어넣고 그걸 printf() 로 출력했을 때 출력될 buf 배열에 서식문자가 있을 경우, buf배열을 가리키는 주소의 다음 4바이트 위치를 참조하여 그 서식문자의 기능대로 출력합니다. 이게 무슨말일까요. printf나 scanf에 쓰이는 서식문자는 위와.. 더보기
최신 우분투 환경에서 환경변수를 이용한 쉘코드 테스팅 시스템해킹 수업 중 해커스쿨 ftz나 lob를 접하신 분들이 환경변수를 이용해 쉘을 얻고싶으시다는 질문을 하여 글을 쓰게 됬습니다. 제가 포스팅할 환경은 Ubuntu 14.04 3 32bit와 64bit 입니다. 32비트와 64비트는 비슷하지만 64비트 주소값이 8바이트가 들어간다는 점에서 약간 접근이 힘들 수도 있습니다. 기본적인 Stack Corruption을 일으켜 환경변수를 이용한 쉘 획득을 해보겠습니다. 1. 32bit Test 테스트할 코드는 아주 간단합니다. 버퍼를 20만큼 채워서 sfp 4바이트 넣고 return address 4바이트를 채우면 우리가 원하는 eip를 제어할 수 있습니다. gcc -fno-stack-protector -mpreferred-stack-boundary=2 -o .. 더보기