728x90

컴퓨터는 0과 1로만 작동하는데 

 

이것을 기계어라고 부른다.

 

우리는 엄청난 기계를 감당할 수 없다.

 

구분하기 어렵고 해석하기 어렵기 때문이다.

 

그렇다면

 

우리가 이해하기 위해서는 어떤 과정을 거치게 되는 걸까?

 

Low Level Language 에 속하는 어셈블리어라는게 탄생했다.

 

그럼 여기서 Low Level Language에 대해 간단하게 설명하자면

 

기계가 이해하기 쉬운 언어에 가까운게 Low Level Language 이다.

 

C, JAVA, Python 과 같은 언어는 무엇일까?

 

바로 High Level Language 이다.

 

사람이 이해하기 쉬운 언어에 가깝다!

 

 다시 어셈블리어로 돌아와서

 

어셈블리어에는 OpcodeOperand로 이루어져있다.

 

 


 

728x90
728x90

마지막 트레이닝이다.

 

열심해 해보자

 

 

 

 

 

- SetUID를 조작하면 관리자 권한 (root)를 얻을 수 있따.

 

 

 

- 레이스 컨디션 : 한정된 자원을 동시에 이용하려는 여러 프로세스가 지원의 이용을 위해 경쟁을 벌이는 현상

- IFS 버그 : IFS 변수는 도스에서 사용하지 않는 변수이다. 이것은 사용자의 명령해중 공백 구분자를 표시하는 것으로 디폴트 값은 '' 이다.

- 버퍼오버플로우 : 버퍼 오버런은 메모리를 다루는 곳에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다.

- 포맷 스트링 어택 : 포맷팅을 수행하는 printf() 같은 특정한 C 함수들에서 검사되지 않은 사용자 입력을 포맷 스트링 파라미터로 사용하는 것으로부터 나온다.


이번에는 파일에 SetUID가 있는지 알아보는 과정이다.

 

- ls -al /usr/bin/passwd 를 입력해서 확인해본다.

- s는 x를 포함하고 있는데 바로 이것이 SetUID이다.

 

 

 

- find / -perm -4000 을 입력하면 "/ 부터 SetUID가 걸린 모든 파일을 찾아준다.

- 4000 앞에 "-"는 "적어도" 라는 뜻이다.

- -perm 은 "권한을 찾겠다" 는 옵션이다.

- 4 는 SetUID를 의미한다.

 

 

 

 

- 본 문제를 풀 때 SetUID가 걸린 파일을 찾아 다음으로 넘어가는 방식이다.

 

- 이번에는 SetUID에 대한 이해를 해보았다.

- 시스템 해킹이 이렇게 접근한다고 알고 있었지만 직접 명령어를 타이핑한 경험은 처음이다.

- 본 문제를 풀면서 발전해보자

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 9  (0) 2021.03.14
FTZ Training 8  (0) 2021.03.13
FTZ Training 7  (0) 2021.03.13
FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
728x90

벌써 마지막이 다가온다.

 

언제나 마지막은 아쉬운 법

 

하지만

 

본 문제는 남았기에 열심히 해보자

 

 

보안인으로써 중요한 권한에 대한 내용이다.

 

 

- 권한을 사용자마다 다르게 부여해서 다른 사용자의 내요을 볼 수 없게하는 것도 권한에 예이다.

 

- 리눅스는 4가지 종류의 사용자가 있다.

  • 유저 : 자신을 의미한다. abc로 로그인하면 abc라는 유저가 된다. 
  • 그룹 : 모든 유저는 하나 이상의 그룹에 속하게 된다. 임의로 이 그룹을 변경하지 않는 한 모든 유저는 자신의 유저네임과 같은 이름의 그룹에 속하게 된다.
  • 아더 : 유저와 그룹을 제외한 모든 사용자를 의미한다.
  • 루트 : 절대적인 권한을 가지고 있는 사용자이다. 루트 권한을 가지고 있는 자는 어떤 권한에도 구애받지 않는 상태로 파일들을 제어할 수 있게된다. 절대적인 루트 권한을 얻기위해 하는 것이 "해킹"이다.

 

- id 를 입력하면 본인이 속해 있는 정보에 대해 알 수 있다.

 

 

 

- rwx 에서 각 뜻은

  • r : 읽기권한
  • w : 쓰기권한
  • x : 실행권한 

 

 

- 정보를 분석하는 방법은 위 그림과 같은 순서로 진행이 된다.

- 어떤 권한을 가지고 있는지 어떤 그룹에 속해 있는지 쉽게 구분할 수 있다.

 

 

 

 

- 이번에는 다른 사용자(test2) 이다.

- 다른 점은 trainer1과 guest 권한이 다르고 나머지 사용자에 대한 권한도 다르다.

 

 

 

- 우리는 사용자를 구분하는 방법을 배웠고

- 사용자에 따른 권한이 다를 수 있다는 부분을 알게되었다.

 

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 10  (0) 2021.03.14
FTZ Training 8  (0) 2021.03.13
FTZ Training 7  (0) 2021.03.13
FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
728x90

FTZ Training 8

 

이제부터 파일을 생성하고 컴파일하는 과정을 배운다.

 

눈크게 뜨고 배워보자

 

- cat > 생성파일이름.txt 명령어를 입력하면

- 원하는 파일을 만들 수 있다.

- > 뜻하는 것은 cat로 작성한 내용을 생성파일이름.txt에 보내겠다는 뜻입니다.

 

 

- cat > test.txt 명령어로 내용을 입력해서 저장해보았따.

 

 

- 만약 위 처럼 > 을 사용해서 내용을 저장했다면,

- 한번 더 하면 내용이 바뀌는데

- 내용을 추가하기 위해서는?

- cat >> test.txt 로 입력하면 리다이렉션이 두번이다.

- 내용이 아래 새롭게 추가된다. 

 

 

 

- cat > program.c에 프로그램 코드를 작성해주면

- 프로그램 소스가 만들어진다.

 

 

- gcc -o program.exe program.c 를 입력하면

- 컴파일이 성공적으로 되었다.

 

 

- 성공적으로 끝난 컴파일 과정을 실행해보자

- /home/trainer8/program.exe 명령어를 입력하면 program.exe 위치에서 실행되어

- 10 + 20 = 30이라는 값이 나온다.

 

 

 

- 소스 코드를 작성해 보았고

- 컴파일해서

- 실행해 보았다.

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 10  (0) 2021.03.14
FTZ Training 9  (0) 2021.03.14
FTZ Training 7  (0) 2021.03.13
FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
728x90

FTZ Training 7

 

지금까지 리눅스를 사용하면서

 

압축파일을 해제한 경험이 있다.

 

하지만 

 

압축을 해본 경험은 없던거 같다.

 

이번에 배울 내용은 압축에 관한 내용이다.

 

리눅스에서 압축을 할 때 사용되는 명령어는 두개이다.

 

- tar

- gzip

 

먼저 tar을 사용해보자

- tar cvf songs.tar * 을 입력하면 현재 디렉토리에 있는 모든파일* 을 songs라는 

- 새로운 파일로 합친다 는 명령어이다.

- 명령어를 통해서 songs.tar이라는 합친 파일이 생성 되었다.

 

 

 

- tar은 압축파일이 아니다

- 파일을 합친 것 이다.

- 용량을 확인해 보면 압축을 한 크기가 아니다.

 

 

그렇다면 

 

gzip은 어떨까?

 

- gzip songs.tar 명령어를 통해서 합쳤던 파일 songs.tar을 songs.tar.gz로 압축했습니다.

- 파일 용량을 보면 압축이 되었다는것을 알 수 있습니다.

 

 

이번에는 

 

지금까지 과정에 역순으로

 

해제를 해보자

 

해체는 조립에 역순! 이라는 말이 있다.

 

- gzip -d songs.tar.gz 명령어를 입력하니 용량이 늘어난 songs.tar로 변했다.

- 압축을 한 상태가 해제 된 것이다.

 

 

 

- tar xvf songs.tar 명령어를 입력하니

- 합쳐진 파일이 다시 분해가 되었다.

 

 

- 앞으로 리눅스에서 백업을 할 경우에 tar과 gzip순서로 하면 빠르게 할 수 있다.

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 9  (0) 2021.03.14
FTZ Training 8  (0) 2021.03.13
FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
FTZ Training 4  (0) 2021.03.13
728x90

FTZ Training 6

 

모든게 중요하지만 패스워드 파일 분석 방법

 

이름만 들어도 중요해 보인다.

 

- 지금까지 패스워드만 담은 건줄 알았다.

- 패스워드 파일에는 서버를 사용하는 사용자들의 모든 정보를 기록해 놓는 파일이다.

- 그래서 중요하다.

 

 

- 보안 기사에서 자주 나오는 문제이다.

- 필드는 7개로 나뉜다.

- 각자 다른 의미가 있다.

- 첫번째 필드는 서버에 로그인할 때 사용되는 아이디(계정)을 뜻한다.

 

 

 

- 두번째 필드패스워드를 뜻하게 된다. 

- X인데? 패스워드라고?

- 지금까지 다양한 암호화 방식으로 문자열(패스워드)를 암호화 했지만 계속해서 뚫렸다.

- 그러한 X들을 모아서 /etc/shadow/ 라는 파일을 만들었다.

- shadow는 관리자가 아닌 사람은 쳐다도 못봤다.

 

 

 

- 세번째, 네번째 필드는 컴퓨터를 위한 숫자를 사용하여 사용자를 판단하는데 사용합니다.

 

 

- 다섯번째 필드사용자 이름을 뜻한다. 

- 여섯번째 필드는 사용자가 로그인 시 기본 디렉토리 위치를 뜻한다.

 

 

 

- 일곱번째 필드로그인 시 실행되는 프로그램을 뜻한다.

 

 

 

- 이번 시간에는 각 필드가 뜻하는 정보를 배웠다.

- 보안 기사에서 많이 틀렸던 문제라 참.. 

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 8  (0) 2021.03.13
FTZ Training 7  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
FTZ Training 4  (0) 2021.03.13
FTZ Training 3  (0) 2021.03.09
728x90

FTZ Training 5

- 아니요.

- 전혀요.

- 나중에는 어려울 꺼 같아요.

 

어렵지 않은 리눅스를 해보자

 

- 아아 이건 좀 논란 여지가 있지만

- 실력입니다. 정보 입니다.

- 무조건 실력,,,

 

 

- whoami 를 입력하면 자신이 누구인지 알 수 있다.

 

 

- id 를 입력하면 자세한 자신의 정보가 나온다. 

- 거짓말쟁이.. 아까는 정보가 중요하다면서..

 

 

- cat /etc/passwd를 입력하면 passwd 내용을 볼 수 있다.

 

 

 

- uname -a 를 입력하면 커널 버전을 볼 수 있다.

 

 

 

- 해킹에 가장 마지막 관리자 권한을 탈취하는게 목표라고 할 정도로 관리자 권한은 모든 시스템에 대한 권한이 있다.

 

 

 

- cat /etc/*release 를 입력하면 OS 버전을 확인 할 수 있따.

 

 

 


- rpm -qa 를 입력하면 패키지 정보를 얻을 수 있다.

 

 

 

- cat /proc/cpuinfo 를 입력하면 CPU에 정보를 수집할 수 있따.

 

 

 

- 이번 시간에는 OS에 다양한 정보를 얻는 방법을 배웠다.

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 7  (0) 2021.03.13
FTZ Training 6  (0) 2021.03.13
FTZ Training 4  (0) 2021.03.13
FTZ Training 3  (0) 2021.03.09
FTZ training 2  (0) 2021.03.09
728x90

FTA Training4

디렉토리 이동에 대한 부분을 배우는 것 같다. 

 

화이팅이다.

 

- ls -al  명령어로 디렉토리와 파일 목록을 보자

- bin : 이곳에는 가장 필수적인 리눅스 실행 파일들이 들어가 있다. ls, rm 모두 이곳에 들어가 있다.

- boot : 리눅스 부팅 관련 파일들과, 리눅스의 심장인 커널이라는것이 들어있다.

- dev : 이곳은 컴퓨터에 설치된 하드웨어에 관한 정보들이 파일 형태로 저장되어 있는 곳이다.

- etc : 중요한 파일들이 이곳에 들어가 있다. 패스워드 파일, 쉐도우 파일, 대부분의 리죽스 설정 파일 등

- home : 일반 사용자들의 디렉토리가 들어가는 곳이다. guest와 trainer1~10, level 1~10 모두 이 디렉토리안에 속해 있다.

- lib : 많은 라이브러리 파일들이 들어가 있다.

- mnt : mount 명령을 사용하여, 마운트 시킨 시디를 플로피 디스켓등이 들어가는 디렉토리 이다.

- proc : 프로세스들이 파일 형태로 저장되는 디렉토리 이다.

- root : 일반 사용자의 디렉토리는 /home 아래 존재 하짐나, 루트의 홈 디렉토리는 따로 이곳에 저장된다.

- sbin : 기본 명령을 제외한 시스템 관리용 실행파일 들이 들어 있는 디렉토리이다.

- tmp : 임시로 파일을 저장하는 디렉토리로서, 권한에 상관없이 누구나 이 디렉토리에 파일을 생성할 수 있다.

- usr : 다양한 응용 프로그램들이 설치되어 있는 곳 이다. 

- var : 시스템 운영 중에 생성되는 각종 임시 파일 들이 들어가 있으며, 외부 접속에 대한 로그 파일들이 바로 이곳에 저장된다.

 

 

- etc에 담긴 디렉토리와 파일들은 중요파일이 많기 때문에 중요시 해야한다.

 

- 이번에는 각 디렉토리가 하는 역할에 대해 알아 보았다.

- 중요하기 때문에 꼭 기억하고 넘어가자

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
FTZ Training 3  (0) 2021.03.09
FTZ training 2  (0) 2021.03.09
FTZ Training 1  (0) 2021.03.09
728x90

Training 3

지금까지 ls, pwd, cd, mkdir, rmdir, rm, cp, mv 등 기본적인 명령어를 배워보았다.

 

어렵지는 않지만, 그래도 기본을 튼튼하게 라고 생각하고 열심히 해보자

 


- 사용자들의 정보를 자세하게 보자

- finger -l 을 입력하면 사용자들의 정보를 볼 수 있다.

 

 

- 현재 접속한 서버의 ip를 확인해 보자

- ifconfig 명령어를 입력하면 ip를 확인할 수 있다.

 

 

(중간에 w 명령어 사진 생략됨,,, 잃어버림.,,,)

 

w 명령어를 입력하면 현재 접속된 사용자가 접속한 터미널의 종류를 볼 수 있다.

- pts 는 원격을 통해서 접속한 터미널이다.

- tty 는 서버에서 집적 접속한 터미널이다.

 

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
FTZ Training 4  (0) 2021.03.13
FTZ training 2  (0) 2021.03.09
FTZ Training 1  (0) 2021.03.09
728x90

저번에 이어서 

 

트레이닝 2번째를 시작해보자

 

Training 2

- pwd를 입력하면 현재 경로를 출력해서 경로를 확인 할 수 있다.

 

 

- cd.. 을 입력하면 경로에서 한 단계 위로 이동할 수 있다.

- pwd를 입력해보면 위에 경로로 이동했다는 것을 확인 할 수 있다.

 

 

- cd "원하는 디렉토리 명"을 입력하면 이동할 수 있다.

 

 

- cd / 을 입력하면 최상위 디렉터리로 이동할 수 있다.

 

 

- 새로운 디렉토리를 만들어보자

- mkdir "생성할 디렉토리 명" 을 입력하면 디렉토리가 생성된다.

 

 

- 이번에는 디렉토리를 지워보자.

- rmdir "삭제할 디렉토리 명" 을 입력하면 디렉토리는 지워지게 된다.

- 디렉토리를 삭제하는 용도이기 때문에 잘 사용하지 않는다.

- rm을 많이 사용한다.

 

 

- 복사를 해보자

- 복사를 할 때는 cp "복사할 파일 명" "새롭게 복사한 파일 명"

 

 

- 파일을 삭제해 보자

- rm "삭제할 파일 명" 을 입력하면 파일을 삭제 할 수 있다.

* rmdir과 rm에 차이가 있다. rmdir은 디렉토리를 지우는 명령어이고 꼭 디렉토리가 비워져있어야 한다.

 

 

- 파일명을 변경해보자

- mv "변경할 파일" "새롭게 변경할 파일 명" 을 입력하면 파일명이 입력한대로 변경이된다.

 

 

728x90

'pwn > FTZ 풀이' 카테고리의 다른 글

FTZ Training 6  (0) 2021.03.13
FTZ Training 5  (0) 2021.03.13
FTZ Training 4  (0) 2021.03.13
FTZ Training 3  (0) 2021.03.09
FTZ Training 1  (0) 2021.03.09

+ Recent posts