목록전체 글 (89)
학사 나부랭이
이번에는 전에 나왔던 권한에 대해 알아보는 시간이에요. Permission Denied는 사용자의 권한으로는 접근할 수 없는 파일이나 폴더를 접근하고자 할 때 만나게 되는 메시지예요. 사용자의 종류 User: 사용자 자신이에요. 사용자가 purachino라는 아이디로 로그인하면 purachino가 되고 platina라는 아이디로 로그인하면 platina가 되죠. Group: 모든 User는 하나 이상의 group에 속하게 되는데요. 변경하지 않는 이상 자신의 user과 같은 이름의 그룹에 속해있어요. Others: User와 Group을 제외한 다른 사람들을 의미해요. Root: 절대적인 권한을 갖는 사용자예요. 어떤 Permission deny도 당하지 않죠. 이 권한을 억지로 얻으려고 하는 것이 해킹..
이번에는 파일을 만들고 컴파일하고 실행하는 방법을 배울 거예요. cat cat > filename을 명령하고 원하는 내용을 다 적었으면 ctrl + d로 종료하면 filename이라는 파일이 생성돼요. 여기서 >는 리다이렉션으로서 왼쪽에서 출력된 것을 오른쪽(test.txt)의 입력으로 보내겠다는 뜻이에요. 그리고 리다이렉션을 두 번 사용하면 추가적으로 입력할 수 있어요. 소스파일을 만들고 싶으면 확장자명을 txt대신 c로 저장하면 돼요. 컴파일과 실행 gcc -o filename.exe filename.c가 컴파일시킨 부분이며 아무런 에러가 없는 걸 봐서 성공적으로 컴파일이 되었네요. 프로그램을 실행하는 건 "절대 경로/프로그램명"처럼 해도 되지만 현재 위치에 있는 프로그램을 실행시키려면 "./프로그램..
학교 프린터 서버 구축한다고 신경을 못 썼네요. 시간 나면 서버 구축한 거도 올려야겠어요. 이번에는 리눅스로 파일을 압축하고 해제하는 방법을 알아보는 시간이에요. tar 파일을 합치거나 합쳐진 파일을 해제하기 위해서 사용하는 명령어이에요. 여기에는 cvf targetfile1 targetfile2 ... 옵션을 줘서 파일을 합칠 수 있고 xvf targetfile 옵션으로 해제할 수 있어요. c(Create): 새로운 파일을 만드는 옵션이에요. x(eXtract): 합쳐진 파일을 해제하는 옵션이에요. v(View): 합치거나 해제하는 과정을 출력하는 옵션이에요. f(File): 파일로서 백업 하겠다는 옵션이에요. tar는 압축하지 않고 단순히 합치기만 하는 프로그램이라 용량이 줄어드는 일은 없어요. 대신..
이번에는 지난 시간에 본 passwd 파일을 분석할 거예요. 먼저 cat /etc/passwd로 passwd 파일의 내용을 볼 수 있어요. 그럼 엄청나게 많은 문자열이 출력되는데 그중 첫째 줄만 가져와볼까요? ⓐ 서버에 로그인할 때 사용되는 계정이에요. ⓑ 리눅스 버전 5.0까지는 암호화된 패스워드가 있었으나 크래커들의 해독 시도로 더 어렵게 암호화하고... 서로 소모전만 계속하다가 x라는 문자 하나만 남기고 패스워드는 /etc/shadow라는 파일에 넣어버려 관리자 권한을 가지지 않으면 볼 수 조차 없도록 했어요. 이 방식이 탁월한 크랙을 피하는 방법이라 리눅스 6.0 이후 계속 사용되고 있어요. ⓒ, ⓓ 컴퓨터가 알아보기 쉽게 사용자 계정과 그룹을 숫자로 표현한 거예요. ⓔ 사용자의 이름이에요. ⓕ ..
이번에는 서버의 정보를 수집하는 방법을 배워요. 어떤 프로그램이 설치되었는지, 서버의 주인은 뭘 하고 있는지,. 어떤 OS로 서버를 만들었는지 등의 정보를 수집하게 될 거예요. whoami 자신이 누구인지 알려주는 명령어예요. id whoami 보다 더 많은 정보가 나와요. /etc/passwd passwd 파일에는 이 서버에 접속한 사람들의 계정이 들어가 있어요. uname -a 커널의 버전을 알려주는 명령어인데요, 이 버전에 따라 리눅스의 성능도 달라요. 같은 레드헷 6.0 리눅스더라도 커널 버전이 높다면 속도와 안정성이 좋아요. 이 커널만 가지고도 많은 서버의 root 권한을 획득할 수 있어요. /etc/*release 서버의 OS가 어떤 버전인지 알려줘요. 이게 뭘 실행하라는 건지 궁금해져서 한 ..
이번에는 디렉토리와 파일에 대해 배울 거예요. 먼저 디렉토리 같은 경우에는 bin(BINaries): ls, rm 등 필수적인 리눅스 실행 파일이 들어가 있어요. boot: 부팅 관련 파일과 리눅스의 심장인 커널이 들어있어요. dev(DEVice files): 하드웨어에 관한 정보가 파일 형태로 저장되어 있어요. etc: passwd, shadow, 리눅스 설정 파일 등 많은 중요한 파일이 들어있어요. home: 일반 사용자의 디렉토리가 있어요. guest, trainer1~10, level1~20이 있죠. lib(LIBraries): 많은 라이브러리 파일이 들어있어요. mnt(MouNT): mount 명령을 사용해 마운트 시킨 CD-rom, 플로피 디스켓 등이 들어가요. proc(PROCess): 프로..
이번에 배울 내용은 터미널과 네트워크에 관한 명령이에요. trainer에서 진행되는 일부 프로그램이 리눅스의 기능이 아니라 프로그래밍된 파일이라 그런지 여기서부터 옥에 티 같은 게 나타나요. 예전에 돗가비 초반 과제도 선배들이 이렇게 만들어준 프로그램을 리버싱 하기 같은 거였는데... w 현재 서버에 어떤 사람들이 접속하고 있는지 확인하는 명령어예요. USER: 어떤 ID로 로그인 했는지 보여줘요. 저희는 trainer3이라는 ID로 로그인되어 있네요. TTY: 콘솔로 접속했는지 터미널로 접속했는지 보여줘요. tty는 콘솔, pts는 터미널이고 그 뒤의 숫자는 몇 번째 터미널로 접속했는지 보여줘요. 동시에 텔넷에 접속하면 순서대로 pts/0, pts/1, pts/2의 PTS를 받아요. FROM: 접속한 ..
이번에 배울 내용은 디렉토리, 파일에 관한 명령어들이에요. 검색으로 찾으면 복잡하고 아직 사용하지 않는 레벨의 옵션도 많이 나오니까 저는 생각 안 날 때 보면서 하면 될 거 같아요. pwd(Print Working Directory 프롬프트에는 최하위 경로 즉, trainer2만 보여주지만 pwd를 사용하면 현재 위치의 전체 경로가 출력돼요. cd(Change Directory) 경로를 이동하는 명령어인데요, 여기에 ..를 함께 입력하면 /home/trainer2에 위치했다가 /home으로 이동한 걸 볼 수 있어요. cd에 디렉토리의 이름을 입력하면 그 디렉토리로 이동할 수도 있어요. 그리고 언제 어디서나 한 번에 최상위 디렉토리로 이동할 수 있는 /가 있는데요. /home/trainer2에서 한 번에 ..