본문 바로가기

3. Pwnable (포너블)

(57)
[2022.03.12] "생활코딩-Linux" 강의 듣기 [무료] 생활코딩 - Linux - 인프런 | 강의 (inflearn.com) [무료] 생활코딩 - Linux - 인프런 | 강의 본 수업에서는 리눅스의 사용법을 다룹니다. 특히 초심자들이 어려워하는 부분이 명령어를 이용해서 컴퓨터를 제어하는 법입니다. 여기서는 초심자가 명령어를 사용하는데 필요한 가장 보편적 www.inflearn.com 1. 터미널을 통해서 리눅스를 제어할 때 중요한 것 1) 명령어를 통해서 제어한다. (문자를 입력해서 명령한다.) 2) 우리가 내리는 명령은 현재 우리가 머물고 있는 디렉토리에서 내려진다. ① 명령을 내리기 위해서는 언제나 어떤 디렉토리에서 머물고 있는지를 확인하고, 기억해야 한다. 혼동하면 혼란스러운 상황을 야기할 수 있다. 2. 명령어 정리 1) ls: 디렉토리를 ..
[2021.11.20] Over The Wire 21-27, 달고나문서 Ch4 Over The Wire Level20→21 TCP를 이용하여 지정된 포트 번호에 데이터를 전송하는데, 이때 bandit20에 로그인할 때 사용한 패스워드를 올바르게 전송하면 다음 단계의 패스워드를 얻을 수 있다. 오늘은 11월 21일이니 1121번 포트를 열었다. nc 명령을 이용해 1121번 포트로 band20의 패스워드를 전송하고, 다른 터미널을 열어 데이터를 전송받으면 level21의 패스워드를 얻을 수 있다. Level21→22 bandit21부터 23까지는 cron.d 디렉토리를 이용해 문제를 풀어야 한다. /etc/cron.d/ 디렉토리에 들어가 다음 단계인 cronjob_bandit22 파일을 확인해 보면 usr/bin/cronjob_bandit22.sh를 재부팅할 때마다, 수시로 /dev..
[2021.11.13] OverTheWire 11-20, 달고나문서 -p.17 Over The Wire Bandit Level 10 → Level 11 힌트: 다음 단계의 패스워드는 data.txt라는 파일에 저장되어 있으며, base 64로 암호화된 data를 가지고 있다. 1. ls 입력 후 파일 존재 확인 2. cat 파일명 입력 후 파일 내용 확인 3. base64로 암호화되어있는 파일을 base64로 decode 시켜줘서 파일 내용 확인 Bandit Level 11 → Level 12 힌트: 다음 단계의 패스워드는 data.txt라는 파일에 저장되어 있으며, 모든 대소문자 글자는 알파벳 순 13번 째 뒤 자리 글자로 교체되어있다. 1. ls 입력 후 파일 존재 확인 2. cat 파일명 입력 후 파일 내용 확인 3. tr 을 통해 파일 내용 확인 tr + ‘문자열 1’ + ..
[2021.11.07] OverTheWire 0-10, 달고나문서 -p.12 OverTheWire 0-10 중 새로운 명령어를 사용한 부분이었던 8-10까지의 내용과 달고나 문서 12페이지 까지의 내용을 정리 합니다. [level 8-9] ls 명령어로 파일 확인 data.txt파일을 확인해보면 여러 문제가 출력되고 있는 것을 확인 sort 명령어로 정렬한 후 uniq 명령어 옵션 -u를 사용하여 중복된 것을 제거하고 중복되지 않은 것만 출력 -> 패스워드 확인 가능! sort[-옵션][-o 저장된 파일명]정렬할 파일명[-m병합할 파일명] – 사용자가 지정한 파일의 내용을 정렬할 때 사용 uniq[options][파일명] – 특정 파일 내의 같은 문장이 두 번 이상 연속되는 가의 여부를 확인하거나 연속될 경우에 유일한 문장으로 만들어 주는 역할을 함 [level 9-10] ls ..
[2021.09.25] 해커스쿨 F.T.Z Level11~15 풀이 Level11 $프로그램이름 인자값 명령을 주면 실행 동안 잠깐 uid가 3092로 바뀌고 인자값을 str 배열에 복사해 그 문자열을 출력해 준다. 이때 strcpy 함수가 복사하는 값의 길이를 검증하지 않음을 이용해 버퍼 오버플로우 공격을 일으킬 수 있다. 이를 위해 우리가 알아야 할 것은, str 버퍼와 ret 시작 주소값의 거리차 ret 시작 주소에 넣어줄 쉘코드 1. $cp attackme ./tmp 명령으로 파일을 다른 디렉토리로 복사해주고 gdb로 attackme 파일을 열어 main을 덤프하면 아래와 같다. 눈여겨 봐야 할 곳은 strcpy 함수를 호출하기 전, str 버퍼를 할당시키는 부분이다. 소스코드에서 설정한 str의 버퍼는 256byte인데 ebp-264의 주소부터 입력받는다는 것을..
[2021.09.18] 해커스쿨 F.T.Z Level9, 10 풀이 및 Level11 풀이 방향 Level9 level9로 로그인 후 cat hint를 입력해 힌트 파일을 확인한다. bof 파일의 코드에 대해 분석해 보면 다음과 같다. 크기가 10인 char형 배열 buf2와 buf를 정의한다. fgets 함수를 통해 크기 40만큼의 값을 입력받고, buf에 삽입한다. 이때, buf2의 앞 두 자리가 go라면 level10의 권한(uid: 3010)으로 bash를 실행한다. buf2에 값을 직접 입력할 수 없는 점, buf2의 값에 따라 level10 권한으로 bash를 실행할 수 있는 점(, 그리고 파일 이름이 bof인 점) 등으로 미루어 보았을 때, 이 문제는 버퍼 오버플로우를 이용해야 한다는 것을 알 수 있다. *버퍼 오버플로우란? : 버퍼 오버플로(영어: buffer overflow) 또는 ..
[2021. 09. 11] 해커스쿨 F.T.Z를 통한 기초 명령어 실전 활용 팀명 : 파이브(5)너블 활동 일시 : 2021.09.11 13:35 ~ 14:55 2주차 활동 계획 : 해커스쿨 F.T.Z 리눅스 공부(2) 학습 내용: 해커스쿨 F.T.Z trainer 과정에서 습득한 리눅스 기초 명령어 실전 문제에 활용 (level과정 중 level1-level5 진행) level1 1.ls -l 명령어 입력 2.파일 목록에 hint 파일 존재 확인 3. cat hint로 hint 내용 확인 => ‘level2 권한에 setuid가 걸린 파일을 찾는다’ 4. setuid 아이디가 걸린 파일을 찾을 때 => find / -user level2 -perm -4000 2>/dev/null 입력 5. permission denied 되지 않는 파일 => /bin/ExecuteMe 파일 존..
[2021. 09. 04] 해커스쿨 F.T.Z를 통한 리눅스 기초 명령어 습득 팀명 : 파이브(5)너블 활동 일시 : 2021.09.04 14:00 ~ 15:00 1주차 활동 계획 : 해커스쿨 F.T.Z 리눅스 공부(1) 학습 내용: 해커스쿨 F.T.Z를 통한 리눅스 기초 명령어 습득 파이브(5)너블팀의 본격적인 스터디가 시작되었습니다! 첫 스터디로 해커스쿨 F.T.Z를 통해 리눅스 기초 명령어를 습득 하는 시간을 가졌으며, FTZ 트레이닝 과정: trainer 1단계부터 10단계까지 진행하였습니다. FTZ trainer1 프롬포트는 항상 대기상태에서 어떤 명령을 내리기 만을 기다린다. 리눅스의 가장 기초적인 명령어 ls​ ls : 파일,디렉토리 리스트 출력 ls -l : 파일, 디렉토리 리스트 상세하게 출력 ls -a : 숨겨진 파일,디렉토리 리스트 출력 ls -al: 숨겨진 파..