ALL 61

FTZ: Level 5

가장 먼저 힌트를 읽어본다. 힌트에서 명시한 파일을 ls를 통해 살펴보니 setuid가 설정되어 있었다. 파일의 소유주가 level6이니, level6에 대한 권한이 주어진 것을 알 수 있다. 위와 같이 생성될 level5.tmp 파일에 대한 심볼릭 링크를 만들어두면 usr/bin/level5 에서 level5.tmp 파일을 만들고 삭제해도, 만든 내용은 심볼릭 링크를 통해 tmp에 저장되어있을 것이다. 위와 같이 /usr/bin/level5 를 실행한 후, tmp 파일을 열어보면 다음 비밀번호가 저장되어 있는 것을 확인할 수 있다. 이 문제가 레이스 컨디션 공격 조건을 갖춰서 그 방법으로도 진행해봄 *헛짓거리 해서 조사한 레이스 컨디션 개념 ...더보기 레이스 컨디션이라는 공격은 setuid를 이용하여..

Write-Up/FTZ 2019.09.19

함수 프롤로그/에필로그

기본적으로 프로그램이 실행될 때 수많은 함수들이 호출이 되고 다시 리턴된다. 보통 함수 호출은 스택을 통해 이루어지는데, 과정을 대략적으로 설명하면 다음과 같다. 1. 함수가 사용할 파라미터를 스택에 넣고, 함수 시작 주소로 점프한다. 2. 함수 내에서 사용할 스택 프레임을 구성한다. 3. 함수 내부 내용 수행 4. 함수를 호출한 주소로 돌아가기 위해 스택을 복원시킨다. 이때 2번 내용을 프롤로그, 4번 내용을 에필로그라고 한다. 먼저 프롤로그를 살펴보자. ① RET ② SFP 위 그림에서, 메모리의 제일 아래를 나타내는 주소가 EBP이면서 ESP인데, 복귀 주소(RET)를 스택 맨 아래에 넣어두고, SFP는 RET 위에, 이 바로 아래에 EBP로 설정해두고, ESP값에 EBP 값을 넣는 과정이 프롤로그..

Computer 2019.09.19

FTZ: level4

level4의 hint를 확인해보면 다음과 같은 힌트를 얻을 수 있다. 명시된 /etc/xinetd.d라는 것은 디렉토리로, 슈퍼 데몬이다. 네트워크 서비스에 대한 접근제어, 로그인에 대한 접근 제어 등을 한다고 한다. 들어가서 어떤 파일이 있는지 리스트를 확인해보니 다음과 같이 backdoor라는 파일을 확인할 수 있었다. 원래 슈퍼데몬 내의 finger는 다음과 같은 기본 정보를 갖고 있는다. 각각의 옵션은 다음과 같은 의미를 갖는다 service 서비스 이름 { disable : 해당 서비스의 실행 여부 socket_type: 서비스의 소켓 유형. stream은 tcp를 의미. wait: no라고 하면 서비스 요청 처리 중 다음 요청이 들어오면 처리중인 요정이 끝날 때 까지 대기하겠다는 뜻 user..

Write-Up/FTZ 2019.09.19

FTZ: Level1

FTZ 서버는 root/hackerschool로 들어갈 수 있다. Xshell, ssh, putty 등등을 이용하여 해당 서버에 접속할 수 있도록 환경구축 한 후 시작. level1은 시작인만큼 아이디와 패스워드가 주어진다. ID: level1 PW: level1 로그인하면 유저 기본 폴더로 들어가지는데, ls를 통해 확인해보면 다음과 같은 파일들이 있는 것을 확인할 수 있다. 여기서 hint 파일은 매 레벨의 진행 방향을 알려주는 제일 중요한 파일이다. level1에서 힌트 파일을 열어보면 다음과 같은 설명글이 나온다. setuid는 간단하게, 내가 a로 로그인하고 있어도 b의 setuid가 설정된 프로그램을 실행한다면 그동안에는 b의 권한으로 실행할 수 있게 하는 개념이다. 특정 유저의 setuid가..

Write-Up/FTZ 2019.09.19

FTZ: level2

hint를 확인해보면 다음과 같은 문구가 나온다. 다음 명령어를 이용하여 level3 권한의 setuid를 가진 에디터를 찾는다. 실행하게 되면 다음과 같은 에디터가 나오게 된다. vim 에디터는 편집 중 쉘을 들어갈 수 있는데, 그 명령어는 :sh, :shell 등이 있다. 해당 명령어를 입력해주면 다음과 같이 쉘을 얻은 것을 알 수 있다. my-pass 명령어를 통해 level3의 비밀번호를 알 수 있고, 이 때 vim은 현재 백그라운드에서 존재하고 있기 때문에 exit 명령어를 통해 원래 vim으로 돌아올 수 있다. :q를 통해, vim을 벗어나고 level3으로 로그인해주면 된다.

Write-Up/FTZ 2019.09.19

FTZ : level3

setuid 를 통해 level4 권한의 autobin 찾기. 어규먼트에 문자열로 보내기 위해서는 "sdfsd sdfsdfs" 이런 식으로 따옴표로 묶어서 출력 명령어 동시 실행 : 세가지 방법이 있음 명령어1;명령어2;명령어3 : 성공 여부에 상관 없이 명령어 다 실행 명령어1&명령어2&명령어3: 앞의 명령어가 성공해야 뒤의 명령어가 실행 명령어1|명령어2|명령어3: 앞의 명령어가 실패해야 뒤의 명령어 실행 공격 방법 : /bin/autodig "aaa; my-pass" 앞의 명령어는 비정상적인 호스트 이름으로 실패할 것이기 때문에 세미콜론을 이용하여 명령어를 여러개 입력해줌. 뒤에는 level4의 비밀번호를 알기 위해 my-pass 명령어를 사용한다.

Write-Up/FTZ 2019.09.19

#2 이제 하드디스크를 읽어봅시다 (커널 로드)

1번 글에서 코드 설명을 하다 말긴 했는데... 남은 부분이 비디오 메모리 접근, 글자 색 설정하는 부분이라 천천히 입력하도록 하겠습니다. 앞에서 오프셋을 통해 MBR을 메모리에 올려, 비디오 메모리에 접근하여 글자를 출력할 수 있게 코드를 작성했습니다. 마지막에 매직 워드를 넣으므로써 BIOS 가 이 코드가 MBR임을 확인하게 하고. 프로그램을 마쳤습니다. 이번에 할 부분은 MBR을 통해 디스크의 나머지 부분을 메모리로 읽을 수 있도혹 한 후, 그 주소로 점프하도록 진행하려 합니다. 1. x86 CPU 메모리맵 a. Low Memory (< 1MiB) : 커널 단에서 접근 가능한 메모리 메모리 주소 묘사 0x00000 ~ 0x004FF 리얼모드 IVT, BDA(Bios Data Area) 0x00500..

#1 부트로더까지 어떻게 만들어봅시다

운영체제 수업을 들으면서 추가 공부를 위해 동기 네명 모아서 OS 개발 진행해보려고 함. 아마 개발이라고 해도 나와있는 코드 짜집기겠지만 기본적인 운영체제, 컴퓨터 구조에 대한 개념만 다시 잡을 수 있어도 좋은 경험일거라 생각했다. *주로 https://blog.naver.com/simhs93/221256938174 이 포스트 시리즈와 만들면서 배우는 OS 커널의 구조와 원리, 김범준 이 책을 참고하였습니다. 1. NASM 설치 https://www.nasm.us/pub/nasm/releasebuilds/2.14/win64/ Index of /pub/nasm/releasebuilds/2.14/win64 www.nasm.us 여기서 깔았음 installer 다운받으면 그냥 설치하는 프로그램 돌아가고 zip..

코딩, 그리고 컴퓨팅 사고.

컴퓨터 알고리즘이라는 강의를 듣던 중, 교수님의 '미래를 바꾸는 3가지 사고방식, 3CT' 라는 제목의 강연을 들을 기회가 있었다. 비판적 사고(Critical Thinking), 창의적 사고(Creative Thinking), 컴퓨팅 사고(Computational Thinking)을 설명해주셨는데 그 중에서도 최근에 제일 이슈가 되고 있는 컴퓨팅 사고에 관해서 강연을 진행하셨다. 컴퓨터 사고라는 용어의 등장과 그 필요성에 대해 설명을 들으면서, 이 글을 써야겠다는 마음이 생겼다. 컴퓨팅 사고는 프로그래머들이 프로그램을 만들 때 컴퓨터로 문제를 풀기 위해 생각하는 것을 의미한다. 이는 왜 갑자기 모두에게 필요한 소양이 되었을까? 컴퓨터가 해결할 수 있을 정도로 어떤 문제를 간소화시키고, 추상화시키고 그 ..

잡담&계획 2019.09.10

이미지가 모두 날아간 부분에 대해서

지금 보니까 웹해킹쪽 writeup 이미지가 모두 ...날아갔더라구요.... ㅎ.... 네이버 블로그에서 이동할 때 귀찮아서 복붙으로 진행했더니 그 귀찮음이 불러온 재앙같은 느낌입니다. 지금도 찾아오는 사람은 없어보이지만 주 분야가 웹해킹, 알고리즘 쪽에서 알고리즘, (뜬금없는) AI, 시각화로 바꼈습니다. 이제부터 뭐 조금씩 써봐야죠 알고리즘도 문제를 꽤 많이 풀어뒀는데 귀찮아서 안올린게 훨씬 많네요. -수정 웹해킹 15번 빼고는 다 돌아왔네요? 간만에 조회를 하는거라 로딩이 오래 걸린건가:Q 아마 근데 이 이후로 이미지를 넣어가며 쓸 일이 많이 있을... . ...까? 싶네요. 있을 정도로 제가 부지런했으면 좋겠습니다ㅣ

잡담&계획 2019.08.22