파일 속성 관리
-파일의 속성 정보 변경-
1. chown CMD
# chown -R user01:user01 file1
(시험에는 많이 나오나 실무에서는 잘 안 씀)
2. chgrp CMD
: 잘 안 쓰인다
3. chmod CMD (퍼미션 변경 방법)
심벌릭 모드 (symbolic mode) 문자 모드
옥탈 모드 (Octal mode) 숫자/수치 모드
: 둘 중 옥탈모드가 일반적으로 많이 사용됨.
심벌릭은 기존의 퍼미션을 알아야 한다는 단점.
옥탈(숫자모드식)은 기존의 퍼미션과 무관 / 매번 새로 주는 방식
-rw-r--r--1 root root 0 Feb 14 11:20 file1
-rwxr--r--1 root root 0 Feb 14 11:20 file1
심벌릭, 옥탈 사용 예)
# chmod u+x file1
# chmod 744 file
-퍼미션 정확한 의미-
파일과 디렉터리의
'퍼미션' 의미가 다르다.
파일 : r(read), w(write), x(excute)
디렉터리 : r ( ls CMD /ls – al로 안의 목록들을 볼 수 있다), w(생성/삭제), x(cd CMD)
[중요]
디렉터리 퍼미션에는x 권한이 반드시필요하다.
--x
-wx
r-x
rwx
이런 식으로
맨 마지막 x 권한이 없으면
아무것도 할 수 없다.
- 퍼미션 적용 순서-
UID를 비교하고 매칭되는 게 없으면 GID를 비교, 없으면
other permission을 비교한다.
1. umask CMD
파일과 폴더 생성 시 주어지는
default permission(002, 022, 027)
을 확인 및 바꿀 때 사용하는 명령어
관리자 ) /etc/bashrc : 모든 사용자에게 적용
사용자) /$HOME/.bashrc : 스스로만 적용
기본적으로 위 값을 뺀
디렉터리는 퍼미션 값은 755
파일은 644
가 기본값
- 특수 퍼미션 -
SetUID/SetGID/Sticky bit 의미
1. SetUID/SetGID
$ passwd 일반 사용자가
패스워드 명령어를 사용하여
자신의 암호를 바꿀 수 있는가? yes
내부적으로 봤을 때
etc/shadow의 암호화된 필드를 바꾸는 것,
다시 말해 해당 파일에 대해
$ ls –l /etc/shadow의 퍼미션을 보는 것.
$ ls –l /usr/bin/passwd
-rwsr-xr-x. 1 root root 28K 4월 1 12:57 /usr/bin/passwd*
passwd의 명령어는 해당 프로그램을 실행하는 동안에
root 권한으로 UID가 소유자 권한으로 임시적, 강제적으로 변경된다.
프로그램 이 끝나면 원래대로 돌아간다.
이처럼 일반 사용자가 자신의 권한을 넘어서
상위 권리자 권한을 사용해야 할 때가 있는데
그때 사용하는 특수 키워드들이 있다.
$ which su
$ ls –l /usr/bin/su
$ which sudo
$ ls –l /usr/bin/sudo
[참고]
# ls -ld /tmp
drwxrwxrwt. 78 root root 8.0K 8월 28 10:11 /tmp/
t로 끝나는 폴더는 게시판 성질의 파일,
rwx의 경우 모든 권한을 사용할 수 있는 반면
t로 끝나면 제한적으로 사용 가능
* 보통 악성/공격 파일 등을 tmp 폴더 안에 생성을 해 둔다.
2. SetUID/SetGID/Sticly bit 설정
Sticky는 디렉터리에만 적용 가능,
다른 사람 것 볼 수는 있지만 지울 수는 없음
# chmod 4755 file1
# chmod 2755 file1
# chmod 1777 file1
3. SetUID/SetGID/Sticly bit 관리
* 검색 (setuid 나 setgid 검색 명령어)
# find / \( -perm -4000 -o -perm -2000 \) -type f
* 목록화 카운터
# find / \( -perm -4000 -o -perm -2000 \) -type f > setuid.list
# find / \( -perm -4000 -o -perm -2000 \) -type f | wc -ㅣ > setuid.list
*관리
# chmod 755 /usr/bin/passwd
[참고] 0 day attack(당일), 1day attack(어제)
: 버그가 생성된 시점부터 패치가 나온 날까지 사이의 시점을 뜻한다.
: 패치가 안된 곳을 노려서 해킹
찾아 지우는 법
# find /home -perm -4000 -type f -exec rm { } \;
: 스케줄러에 등록해 두면 누군가 생성하는 순간 지워버리는 명령을 수행함!
[참고] 공격 구문 (C 언어) 기본 모델 형태
# vi attack.c
---------------------------------
main( ) {
setuid(0); setreuid(0, 0);
setgid(0); setregid(0, 0);
system("/bin/bash");
}
-------------------------------
# gcc -o attack attack.c
# chmod 4755 attack
Visual Editor
1. VI 편집기 환경 설정 ($HOME/.vimrc, $HOME/.exrc)
# vi ~/.vimrc
-------------------------------
set number (set nu)
set autoindent (set ai)
set tapstop=4 (set ts=4)
--------------------------------
사용자와 통신할 때 사용하는 명령어
1. 메일 보내기
mail/mailx CMD
# mail -s "[ ok ] linux211" admin@example.com < report.txt
2. wall
공지 뿌릴 때 씀.
# wall < /etc/MESS/work.txt
*스케줄러 등록하는 법
# crontab -e
분 시 일 월 요일 CMD
20 10-18 * * 1-5 wall< /etc/MESS/CoffeeTime.txt
10:20
11:20
12:20
13:20
14:20
15:20
16:20
17:20
18:20
관리자가 알아두면 유용한 명령어
1. cmp/diff CMD
두 개 파일을 비교할 때 쓰는 명령어
[실무예] 백업 설정 파일과 현재 설정 파일 비교
# diff httpd.conf httpd.conf.old
[실무예] Migration 이관작업
# /was1/* -> /was2/*
이관작업 후 확인 커맨드
# find /was1 | wc -l
# find /was2 | wc -l
# diff --recursive /was1 /was2
2. sort CMD
# 명령어의 출력 결과를 정렬하여 보는 방식
# CMD | sort -k 3
# CMD | sort -k 3 -r
[실무예]
# df -k 남아있는 용량을 보여줌
# du -sk /var
# cd /var ; du -sk * | sort -nr | more 용량 큰 순서대로 보고 싶을 때
3. file CMD
파일의 타입을 결정할 때 쓰는 커맨드
# file *
분석할 때 많이 사용된다.
[실무]
이 기종(리눅스 -윈도우)간
파일이 오가면 확장자가 사라지는 문제가 생긴다.
이때 file이라는 명령어로 확인을 해 준다.
[실습] 확장자가 변경되는 예 실습
# cd /test
# rm -rf /test/*
# cp -p /etc/passwd file1
# cp -p file1 file2
# cp -p file1 file3
# ls -lh
# zip file.zip file1 file2 file3
# ls -lh
# unzip -l file.zip
# rm -f file?
(인터넷) file.zip---- 다운로드 ---->file(?)
# mv file.zip file
(파일 받기(다운로드) - 파일 사용자)
# mv file.zip file
# file file
# mv file file.zip
# unzip file.zip (안에 내용을 확인할 때)
# ls -lh
검색 명령어
1. grep CMD
파일의 타입을 결정할 때 쓰는 커맨드
# grep OPTIONS PATTERN file1
OPTIONS : -l -r -n -v -i -w --color
PATTERN : * . ^root root$ [abc]
# CMD | grep sshd
# cat /etq/passwd | grep user01
# rpm -qa | grep httpd
# systemctl list-unit-files | grep ssh
# netstat -an | grep :22
# systemctl restart sshd
-실 사용 예-
# cat /etc/passwd | grep root
사용자의 정보를 확인하거나
사용자가 있는지 유무를 확인할 때
# grep root /etc/passwd (# cat /etc/passwd | grep root)
# CMD | grep root
# cat /etc/passwd | grep root
# rpm -qa | grep talk 전체 패키지 리스트
# ps -ef | grep rsyslogd 프로세서의 리스트 중 해당 파일이 있는지
# systemctl list-unit-files | grep ssh
# netstat -an | grep :22
-옵션 사용법-
"# grep OPTIONSPATTERN file1"
# grep -lroot /etc/hosts /etc/passwd /etc/group /* 여러 파일 중 검색 문자열 존재 파일 출력 */
root가 들어있는 list file을 찾아달라는 뜻이며 – l은 list file을 뜻한다 (파일의 이름만 보여줌)
# grep –r ens33 /etc/* (해당 폴더 아래 있는 원하는 검색어를 다 찾는다 /
파일의 이름과 내용을 모두 보여줌)
# grep -n root /etc/group /* -n: number line, 파일에서 root 문자열을 검색하고 라인 번호도 같이 출력 */
# grep -vroot /etc/passwd /* -v: inverse, except, 파일에서 검색 문자열을 제외하고 나머지 출력 */
# grep -iroot /etc/passwd /* -i: ignore case, 파일에서 검색 문자열의 대소문자를 구분하지 않음 */
# grep -wroot file1 /* -w: word */
# grep --colorroot /etc/passwd ( # alias grep / # alias egrep / centOS 7버전은 자동 세팅, 6이하는 직접
세팅해 줘야 한다)
다 외워야 함
-패턴 사용법-
* # grep 'ro*t' /etc/passwd 모든 내용
. # grep 'no...y' /etc/passwd 한 글자의 모든 의미
^root # grep '^root' /etc/passwd 라인의 처음
root$ # grep 'root$' /etc/group 뒤에 써야 하고 어떤 라인의 끝부분
[abc] # grep 'user0[123]' /etc/passwd
[참고] pcre (perl compatable regular expression) 변형 => grep RE
뭘 찾을 때 쓰는 규칙
'정보보안공부 > 정보보안전문과정' 카테고리의 다른 글
모의해킹 침해대응 정보보안 전문가 양성과정 Day6 (0) | 2020.09.09 |
---|---|
모의해킹 침해대응 정보보안 전문가 양성과정 Day5 (0) | 2020.09.08 |
모의해킹 침해대응 정보보안 전문가 양성과정 Day3 (0) | 2020.08.27 |
모의해킹 침해대응 정보보안 전문가 양성과정 Day2 (0) | 2020.08.26 |
모의해킹 침해대응 정보보안 전문가 양성과정 Day1 (2) | 2020.08.25 |