grep은 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어입니다. 리눅스에서 가장 많이, 또 가장 유용하게 사용되는 명령어 중 하나입니다. grep 은 기본 사용법을 알아봅시다. 1. grep [패턴] [파일명] 특정 패턴을 기준으로 파일내용을 검색합니다. 패턴이 포함되는 라인(line)을 출력해줍니다. /etc/passwd 파일에서 root 패턴을 찾으면 root 문자열이 포함된 line을 찾아주고 /etc/passwd 파일에서 ro 패턴을 찾으면 ro 문자열이 포함된 line을 찾아줍니다. ro 패턴으로 검색하면 당연히 root 도 포함됩니다. 2. grep [패턴] [복수 파일명] /var/log/ 에 아래와 같이 순차적으로 작성된 로그파일이 있을때 * 를 사용하면 grep 으로 복수 파..
id : bandit8 password : TESKZC0XvTetK0S9xNwm25STk5iWrBvP (2023. 3월 기준) 패스워드가 data.txt 파일에 들어있는데 딱 한번만 발생하는 라인에 있다고 합니다. 무슨 말인지 살펴봅시다. 패스워드 암호문 앞에 딱히 힌트는 없습니다만, 문제 가이드를 보니 저 암호문들이 여러번 중복되서 나올 것 같습니다. 이번엔 sort 와 uniq 명령어를 다룰 수 있어야 합니다. 더보기 sort data.txt 를 실행하면 data.txt 의 내용이 순서대로 정렬됩니다. 실제 파일내용이 수정되는 것은 아니고, 화면출력만 정렬되어서 나옵니다. sort data.txt 로 출력하면 캡쳐화면에 담기가 까다로워서 sort data.txt 옆에 | less 를 붙였습니다. | ..
id : bandit7 password : z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S (2023.3 기준) 패스워드가 data.txt 파일에 들어있는데 millionth 라는 단어 옆에 있다고 합니다. 일단 홈디렉토리를 살펴보니 data.txt 의 용량이 예사롭지 않습니다. ls -alh 옵션으로 4MB 용량임을 확인했습니다. -h 옵션 설명은 ls 사용법에 업데이트 했습니다. wc 명령어를 사용하면 파일내용의 크기를 알 수 있습니다. 98567 lines, 197133 words, 4184396 bytes 의 크기네요 cat 으로 data.txt 를 읽어보면 내용이 너무 많아서 ctrl + c 로 중단할 수 밖에 없습니다. more data.txt 나 less data.txt 로 내용을..
ls -al 을 사용하면 파일의 상세 정보를 확인할 수 있습니다. 1. 퍼미션(파일 권한) 붉은 경계선 안쪽의 문자들이 각 파일별 퍼미션를 타나내는 정보입니다. 노란색으로 구분된 inhere 디렉토리의 퍼미션을 기준으로 살펴봅시다 첫 칸은 파일 종류를 나타내며 d 는 디렉터리를 의미합니다. 퍼미션 첫 글자 파일종류 문자 유형 - 보통 파일 b 블록 장치 c 문자열 장치 d 디렉터리 l 심볼릭 링크 p 또는 = named pipe/FIFO s 소켓 그 다음 세칸(rwx)는 소유자(owner)의 권한을 나타냅니다. (readable) w(writable) x(excutable) 즉 소유자 권한이 rwx 라는 건 이 파일의 소유자들은 이 파일을 읽고, 쓰고, 실행할 수 있다는 말입니다. 그 다음 세칸(r-x)..
id : bandit6 password : P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU (2023.03 기준) 어딘가 디렉토리안에 패스워드가 저장되어 있는데 다음 속성들을 가지고 있다고 합니다. - 소유자는 bandit7 - 소유그룹은 bandit6 - 33byte 사이즈 find 사용법(2) 를 공부하고 직접 해결해봅시다. 더보기 이제는 password 파일이 home 디렉토리에 존재하지 않습니다. 최상위 경로(/) 를 기준으로 find 에 필요한 옵션을 넣어서 검색해봅니다. 중간중간 permission denied 가 나타나는 파일들은 신경쓰지 않아도 됩니다. 실제 해당파일의 other user 의 read 권한이 부여되어 있지않아 bandit6 user 로는 권한이 거부되어 확인이 불..
find 는 특정 디렉토리에서 부터 내가 원하는 조건의 파일을 찾아주는 명령어 입니다. 특정 디렉토리에서 부터 라는 말은 해당 디렉토리의 하위 디렉토리를 포함해서 찾아준다는 것입니다. 예를 들어 아래와 같이 /home/test 폴더가 있고 그 안에 test00, test01, test02 폴더가 하위폴더로 존재하는 구조에서 "/home/test 에서 부터 이름에 "txt"가 들어가는 파일을 찾아주세요" 라는 식의 명령을 수행하면 하위 폴더도 포함해서 검색을 합니다. 아래와 같이 하위 폴더 및 파일이 존재할 때 find 를 사용해서 파일을 검색해봅시다. 1. find 2. find [경로] -name "[이름패턴]" 2. find [경로] -size [사이즈] 3. find [경로] -readable 4...
id : bandit5 password : lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR (2023.03월 기준) inhere 디렉토리안에 패스워드가 저장되어 있는데 다음 속성들을 가지고 있다고 합니다. - 사람이 읽을 수 있고 - 1033 byte 사이즈이고 - 실행이 불가능한 파일 우선 inhere 폴더 먼저 살펴봅시다. inhere 아래 20개의 하위폴더 maybehereXX 가 있네요 ls -al 로 maybehere00 을 살펴보니 엄청 다양한 파일이 있습니다. ls -al 로 매 폴더마다 확인하기엔 번거로우니 한번에 전체 폴더를 한번 살펴 볼까요? 사진에서는 좀 잘리지만 여러분들이 putty 환경에서 동일하게 따라왔다면 마우스 스크롤을 통해서 전체 폴더 내용을 확인할 수 있을 것 ..
별, 스타, 애스터리스크, 눈꽃 등으로 불리우는 이 문자는 간단하게 모든 글자를 뜻한다고 이해하시면 됩니다. 예를 들어 아래와 같은 파일이 있을때 c:\file1.txt c:\file2.txt c:\file3.txt 아래와 같은 식으로 mv 명령어가 작동할 수 있습니다. mv c:\file*.txt d:\ * 자리에는 아무 문자나 들어갈 수 있기 때문에 file1.txt file2.txt file3.txt 가 모두 해당이 되게 됩니다. 아니면 아래와 같은 방식도 가능합니다. mv c:\*.txt d:\ 위 명령은 c:\ 밑에 모든 txt 파일을 d:\ 로 mv 시키는 명령입니다. 아까와 비교했을때 적용대상이 더 많아지겠죠? 중요한건 * 이라고 해서 딱 한글자만 의미하는게 아니라 여러글자의 조합도 모두 해..
id : bandit4 password : 2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe (2023.03월 기준) inhere 디렉토리안에 사람이 읽을 수 있는 파일에만 다음 레벨의 패스워드가 저장되어 있다고 합니다. 같이 살펴봅시다. 더보기 접속 후 사용자 홈 디렉토리를 살펴봅니다. - 로 시작하는 -file00 ~ -file09 까지 파일이 존재합니다. cat 으로 읽어보았는데 깨진 메세지가 출력됩니다. file 로 파일형식을 확인해보니 ascii 기반의 text 파일이 아닌 binary data 파일임을 확인할 수 있습니다. 한번에 여러 파일을 읽어봅시다. cat ./* 식으로 사용하면 현재 디렉토리의 모든 파일을 대상으로 cat 을 실행합니다. (cat ./-file00 ./-file..
- Total
- Today
- Yesterday
- gz
- Strings
- natas7
- OpenSSL
- nc
- find
- 리눅스
- Encode
- BASE64
- 32bit
- 웹보안
- ssh
- 웹보안공부
- 리터럴
- SSL
- OverTheWire
- X32
- 압축파일
- grep
- HTTPS
- tr
- solution
- Bandit
- Linux
- java
- Natas
- tar
- 풀이
- bz2
- over the wire
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |