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

좋은 웹페이지 즐겨찾기