Linux - Open Source S/W
권한 설정(env → 환경변수)
umask(0022) → 파일(666 - 022), 디렉터리(777 - 022)
권한 변경 명령어 = chmod 666 파일명, chmod u+x, o-x 파일명
Multi User - MAC(강제적 접근 통제) id(UID, GID=0), adduser, chown
계정 정보
①식별 = 알려진 식별자 변경
②인증 = 권한 확인
③인가 = 인증된 사용자 권한 부여
/etc/passwd 파일구조 → pwunconv
LoginName : Password : UID : GID : Comments : HomeDirectory : Shell
/etc/shadow 파일구조 → pwconv
LoginName : Encrypted : LastChange : 최소 사용기간 : 최대 사용기간 : Warn : 접속차단 일 수 : Expire : Reserved
Login.def = salt(난수), 최초 로그인시 변경 가능, 제약, 기간, 틀린횟수(초과시 PAM으로)
PAM = 리눅스 추가 인증 기능, 제약, 오류횟수, 응용 P/G이 사용하는 함수의 라이브러리 제공
- 인증과정 = 접근 → 요청 → 확인 → 반환 → P/F
- 출력 = lcredit:소문자, ucredit:대문자, dcredit:숫자, ocredit:특수문자
로그 파일(/var/log)
utmp = 현재 사용자(w, who) stat /var/run/utmp
lastlog = 마지막 로그인
wtmp = 로그인/아웃, reboot, consol 로그인(last)
btmp = 로그인 실패 정보(lastb)
secure = 원격 접속에 대한 로그
sulog = su 명령 로그, 사용자 바꿀 때 성공:+, 실패:-
syslog = 모든 로그, 로그 서버 만들 때 사용, 주체(로깅레벨, kern, mail, err, notice, kern * 파일명)
책임 추적성, tail -f secure, warm 스토리지 = 기록 한 번, 읽기 많이
부팅 단계
①BIOS = H/W 초기화
②Boot Sector = MBR
③Boot Loader = GRUB, LILO
④Init = PID1
⑤Run Level(/etc/rc.local)
⑥Daemon
Run Level
0 = PROM
1 = 시스템 접근 불가, 관리 단계
2 = 공유 안됨, 다중 사용자
3 = 공유 가능, 다중 사용자, mount
5 = 프로세스 중지, 파일 시스템, umount
6 = 재부팅 reboot, init6, shut down -r/-h
유닉스 구조
Kernel = CPU, 메모리, 파일 시스템 관리
Shell = 명령 해석
Root file system = 계층형 구조(/:root)
- 구조
- Boot block = 부팅 프로그램
- Data block = 사용자 데이터
- Super block = 파일 시스템 크기, 여유 공간, 블록 수, 빈 블록
- Inode = Number, 소유자, 파일 크기, 데이터 블록 주소, 변경 정보, 생성 시간
- 계층형이라 링크로 되어 있다. Is - li : 넘버, state 파일명 : 넘버, 권한, 일자
※ 링크
①하드 링크 = Inode 넘버 생성 (In 원본파일명 링크파일명)
②소프트링크 = 바로가기 (In -s 원본파일명 링크파일명)
파일 시스템 종류 = EXT4, 저널링(fsck) = 에러시 복구 용도
특수 파일
setuid(4000) = 실행 시 파일의 소유자 권한으로 실행(/usr/bin/passwd) 실행권한 O = rws, X = rwS
setgid(2000) = MBOX → 둘 다 권한 상승의 방법으로 사용 Backdoor = Trapdoor
stick bit(1000) = 임시 디렉터리, /root/tmp, rwx. rwx. rwt
※ find/ = 모든 디렉터리를 보는 명령어 find/ -perm -4000, find/ -mtime -1
※ 무작위 공격
-hydra -l root -P pass.txt 10.10.10.10(ssh/telnet/ftp/smb)
사전파일 만드는 명령어 = chrunch 4 4 1234 > pass.txt
※ crontap
특정 시간에 무엇을 실행하라, 날짜로 백업 파일 생성, ` = 실행하라
분시일월 파일명, 리눅스 at, 윈도우 at<작업 스케줄러>, /etc/cron.allow, /etc/cron.deny
echo `date "+%Y%m%d%H%M%S"`
tar cvf `date "+%Y%m%d%H%M%S"` /too"
※ 원격 명령어 실행
r-command = IP 주소만 같으면 인증 없이 사용
rep, rlogin, rsh, /etc/host.equiv, $HOME/.rhosts
※ ssh -config
permitRootLogin on = ssh는 console로만 로그인
MaxAuthtries 5 = 5번 틀리면 락
※ snort 설치 명령
apt-get update, apt-get install 파일명
※ netstat
네트워크 상태 확인
-a = 연결 및 수신 대기
-n = 주소와 포트번호
-e = 이더넷 통계 정보제공
-s = 프로토콜별 통계 옵션
※ 읽기 전용
✱리눅스 - root
-chattr +i/-i 파일명
-lsattr 파일명 = 파일 여부 확인
✱윈도우
-attrib r+ 파일명
-attrib 파일명 = 파일 여부 확인
속성 = 시스템(S), 읽기(R), 숨김(H), 저장됨(A)
※ 리눅스 관련 공격
buffer over flow → 해결법 = 길이 제한 strncpy, strncmp
formating string = 데이터 타입이 맞지 않을 시 발생
P/G 옵션
hping 127.0.0.1 --icmp --flod -a 10.10.10.10
①메모리 주소 노출 ②메모리의 값 볼 수 있음 ③임의의 값 삽입(shell code) → %n
백도어 은닉 기법
Linux
- 부팅 = Run Level, rc.loacl
- 사용자 변경 = getty, login.profile 사이에 은닉
- 현재 디렉터리, 명령어 파일로 위장(PATH):ls
Window
- 레지스트리, RUN, Dropper
- Slack 공간
Can Do It
brb
Author And Source
이 문제에 관하여(Linux - Open Source S/W), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wqend1001/Linux-Open-Source-SW저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)