시스템을 키면서 i, e옵션을 사용하여 CLI로 접속
부팅에서 필요한 내용
swap 옆에 init /bin/bash를 넣고 reboot
bash에서 패스워드를 변경을 한 뒤 사용할 수 있음
부팅 시 사용되는 Grubfile을 잠궈둘 수 있음
암호화 하고자 하는 파일을 실행해야 hash가 생성되기 때문에 백그라운드로 실행
암호를 설정하고 grub password의 hash값을 볼 수 있음
/etc/grub.d의 템플릿 섹션을 기반으로 설정파일 생성
해시 적용되어 grub 파일로 접속 시 username과 hash 값을 확인 하려고함
관리자는 서버시스템에 FTP나 NFS 등의 서버 서비스를 설정해두고
클라이언트는 FTP 서버에 연결해서 파일을 받는데 외부로 공유시킨 FTP 서버의 오픈 디렉터리에 접속하여 디렉터리 이동 또는 살펴보는 행위 등을 함
chroot 사용하면 어느 디렉터리의 가상 최상위 디렉터리 / 를 만들어서 더 이상의 상위 디렉터리로 이동하지 못하게 하는 것
ssh.sshd_config 파일 편집:
132번째 줄: Subsystem sftp 주석처리
133줄에 추가: Subsystem sftpp internal-sftp
Match Group sftp-group
ChrootDirectory /secure/%u
ForceCommand internal-sftp
ssh프로토콜 사용하여 원격으로 접속 할 경우 /ftp 상위 디렉터리로 이동할 수 있음
ls 할 경우 실제 root 사용의 하위디렉터리가 확인되지 않음
: 해당 상위 디렉터리는 가상의 최상위 디렉터리 임을 확인 할 수 있음
ftp에서 디렉터리를 새로 생성할 경우 원격지에서는 /root/ftp에 있는 것처럼 확인 할 수 있음
실제 서버에서는 terter이라는 사용자의 /ftp에 디렉터리가 생성되어있음
신규 파일의 보안 설정을 기존 파일의 보안 설정을 복사하거나 참조하게 해서 파일 생성 시 보안 속성 설정이 기존 파일들과 동일하게 설정되게 해주는 기법
보안 속성 설정 확인 ls -lZ|dZ 파일/디렉터리_명
SELinux를 enforcing으로 해두어도 외부에서 접속됨
restorecon은 이름대로 변경된 보안 context 속성을 원래대로 복구해줌
SELinux 보안 설정 시 사용
자동으로 파일을 모니터링해서 context가 변경된 것이 있으면 SELinux 설정에 맞춰
chattr : 속성 변경
lasttr : 속성 확인
setUID setGID Sticky Bit
root 소유의 파일/디렉터리에 Sticky Bit(1000)가 붙으면 Other에게도 권한이 있게 되므로 주의
실행권한이 있을 때만 적용되기 때문에 속성이 중요
파일/디렉터리의 사용자와 그룹은 setUID(4000)/setGID(2000) 해주면 일반사용자도 root 사용자의 파일/디렉터리를 사용할 수 있음
설정 파일, 개발 파일, 명령어 등과 같은 파일/디렉터리가 있을 때 파일/디렉터리에 대한 권한을 다 없애고 특정 사용자만 이용하게 하거나
특정 사용자가 만든 파일/디렉터리를 다른 사용자들도 들어와서 작업하게 하거나
특정 명령어 사용 제한 등에서 활용 할 수 있음
passwd 파일을 보면 사용자 권한을 확인하면 s(setUID)가 들어있는 것을 확인 할 수 있음
setGID 설정, 그룹자리에 권한이 변경되어있음을 확인 할 수 있음
Sticky Bit, 외부 사용자가 사용할 수 있음
#include <stdio.h>
main (int argc, char *argv[]) {
char exec[100];
setuid(0);
setgid(0);
sprintf(exec, agrv[1]);
system(exec);
}
C언어문 작성하고 컴파일하여 실행파일 저장 및 setuid 권한 할당
생성된 실행 파일을 대신할 실행 파일을 찾기
mv 명령어를 이용하여 c언어로 생성된 파일을 대신할 실행파일 명으로 변경하면
/usr/bin/gs 파일도 setuid설정됨
외부 사용자로부터 /etc/shadow 파일로 접속할 수 있음
** /usr/bin/gs 파일의 소유자가 root 사용자이고, setuid가 설정되어있음
그래서 setuid 권한으로 일반사용자가 shadow 파일에 접속할 수 있는 것