보안

해커스쿨 트레이닝 6~10

벌게진눈 2013. 8. 28. 15:24
반응형

패스워드 파일이란 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일


리눅스는 서버의 용도로 사용되기 때문에, 수시로 새로운 데이터들이 업데이트 되기 마련입니다. 따라서 데이터들이 손실되는것을 방지하기 위해 "백업"을 하는것은 필수이며, 이 백업을 할 때 오늘 배운 압축 명령어들이 사용됩니다.


합치기 : tar cvf 합칠파일이름 합칠파일들

해제하기 : tar xvf 해저할파일


c -Create : 새로운 파일을 만드는 옵션

x -eXract : 압축을 해제시키는 옵션

v -View    : 압축이 되거나 풀리는 과정을 출력하는 옵션.

f -file      :파일로서 백업을 하겠다는 옵션


tar는 압축을 하면 용량이 늘어난다. 압축이라기 보다는 붙여놓는다는 의미이며

해제할때 속도가 빠르다는 장점이 있다. gzip은 압축시 용량이 줄어드는대신 파일은 하나씩 압축할수 있고 tar는 여러 파일을 하나의 파일로 만들수있다.

확장자

tar tar프로그램을 사용하여 압축된 파일로서, 사실 압축이 아닌 여러 파일들이 하나로 뭉쳐져 있는 파일이다.

gz gzip프로그램의 사용하여 압축된 파일이다.

tar.gz tar프로그램을 사용하여 파일을 합친 후, 또 다시 gzip을 사용하여 압축을 한 파일이라고 예상할 수 있다.

tgz 위의 tar.gz을 합쳐서 tgz라는 확장자로 만들때도 있다.


텍스트 파일 생성법

1. 쉘 프롬프트 상태에서, cat > 파일이름.txt 라고 입력한다

2. 원하는 내용을 주욱 써내려간다

3. 컴트럴키와 D키를 동시에 누른다


위와 같은 과정을 거치면 새로운 파일이 뚝딱 생성이 된다. 그런데 1번에서 나온 cat > 파일이름.txt이 무슨뜻인지 배우고 넘어가자. 여기서 중요한건 > 바로 이 문자인데 이것은 리다이렉션 이라고 읽으며 방향을 전환한다. 라는 뜻을 가지고 있다

방향을 전환한다 이게 무슨 말일까 리눅스에선 보통 실행 결과를 모니터로 출력한다. 예를 들어 그냥 cat이라고 입력한후 아무 글자나 마구 입력하면 그대로 모니터로 나타난다.

이제 우리는 리다이렉션을 사용하여 그 입력 결과를 모니터가 아닌 파일로 보내버린다. 즉 출력의 방향을 전환한것이다. > 이것은 왼쪽으로 입을 떡하니 벌리고 있다 이것을 해석하면 나는 왼쪽에서 출력되는것을 받아서 오른쪽의 입력으로 보내버리겠다가 된다. -> 화살표로 생각하자

이제 다시 cat > 파일이름.txt 를 보면 어떤 의미인지 이해되는가?

바로 우리가 cat명령을 사용하여 입력하는 모든 글자들을 모아서 파일이름.txt로 보내버려라란 뜻이다. 

그리고 리눅스에서 이제그만 을 의미하는 컨트롤 +D키를 누르면 우리가 입력한 글자들이 들어가있는 파일이름.txt가 생성된다.

만약 지금처럼 서버에 test.txt.라는 파일이 있을때, cat > test.txt 라고 입력을 하면 기존의 내용은 몽땅 사라지고 새로운 내용으로 파일이 다시 만들어진다. 그럼 기존의 내용을 보존시키면서 글자를 써 넣으려면 리다이렉션을 두번 이용한다.


-컴파일 방법 : 쉘 프롬프트에 다음과 같이 입력한다

 "gcc -o 프로그램이림 소스파일이름


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

유저 이것은 자신을 의미한다. 만약 mmung2라는 아이디로 로그인하면 mmung2가 된다 

그룹 모든 유저는 하나 이상의 그룹에 속하게 된다. 임의로 이 그룹을 변경하지 않는 한 모든 유저는 자신의 유저 네임과 같은 이름의 그룹에 속하게 된다

아더  이것은 유저와 그룹을 제외한 모든 다른 사람을 의미한다.

루트  절대적인 권한을 가지고 있는 사용자. 루트 권한을 가지고 있는 자는 어떤 권한에도 구애받지 않는 상태로 파일들을 제어할 수 있게 된다. 이 절대적인 루트 권한을 얻기위해 이것저것 가리지 ㅇ낳고 하는 일이 바로 해킹!!!


 rws rws rws

유저의권한 그룹 아더

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


Remote해킹 자신이 해킹하고자 하는 서버에 아이디를 가지고 있지 않을 때 아이디를 얻고자 시도하는 것을 말한다. 무작위로 아이디와 비밀번호를 입력하여 접속하는 방법에서부터 데몬의 취약점을 공략하여 접속하는 방법, 심지어 게시판이나 방명록을 이용하여 접속하는 방법까지 방법은 수십자기가 넘는다.

Local 해킹  해킹하고자 하는 서버에 일받 계정을 가지고 있을때 관리자 권한을 얻고자 시도하는 것을 말한다.


SetUID

Set이란 변경하다란 뜻을 가지고 있고 UID는 User ID의 약자이다. SetUID는 ID를 변경한다라고 해석된다. 설명하자면 SetUID는 일시적으로 자신의 ID를 변경하는 것을 말한다.

shdow파일은 루트에게 읽기 권한만 주어진다 그런데 각 유저는 어떻게 비밀번호를 변경할까

바로 SetUID를 이용해서

자신의 암호를 변경하는  passwd파일에 루트 권한의 SetUID가 걸려 있어서 일반 사용자들이 그 passwd파일을 실행하는 동안에는 루트로의 일시적인 아이디변경이 되는것이다. 결국 쉐도우 권한은 유저의 구너한이 아닌 루트의 권한으로 변경이된셈이다.

SetUID는 파일에 걸리고 걸린 파일을 실행하면 나의 아이디가 변경되며 실행이 끝나면 다시 원래의 아이디로 돌아온다.

레이스컨디션, IFS버그, 링크버그, 버퍼오버플로우, 포맷스트링어택

이러한 버그에 의해 루트 권한을 넘겨준 파일은 userhelper, imwhee1-solo, restore, screen등 수없이 많다.

해커스쿨 로그인 메뉴에 Local Exploit은 지금까지 발견된 해킹 기법을 모아 놓은곳이다.

 

find / -perm -4000

/에서부터 적어도 SetUID가 걸린 모든 파일을 찾아라

-가 적어도를 의미하며 -perm은 권한을 찾겠다라는 옵션 그뒤 4는 바로 SetUID를 의미하며 000은 rwx모두를 의미한다.

-perm 권한과 일치하는 파일을 찾는다

-name 이름과 일치하는 파일을 찾는다

-user 유져와 일치하는 파일을 찾는다

-group 그룹과 일치하는 파일을 찾는다.


해커스쿨의 레ㅔㄹ별 해킹을 통과하는 방법

1. 자신의 아이디가 level3라고 가정

2. level4로 넘어가기 위해서 level4의 권한으로 SetUID가 걸린 파일을 찾는다

 fing / -user level4 -perm -4000

4. 그럼 한개 이상의 파일이 발견된다

5. 그 파일은 임의로 작성된 멍청한 파일이다

6. 그 파일을 이용하여 level4의 쉘을 얻으면 성공

7. my-pass 라고 입력하면 level4의 패스워드!!!!


trainer6  -coffee

         7 -to the top

         8 -player

         9 -programming

         10  -best!

반응형

'보안' 카테고리의 다른 글

EnCase 에 대해서 - 주식회사 제트코 펌  (0) 2013.08.28
디지털 포렌식  (0) 2013.08.28
해커스쿨 트레이닝 1~5  (0) 2013.08.28
올리디버거 64비트 버전  (0) 2013.08.14
올리디버거 단축키  (0) 2013.08.14