* 자원복구 * - 이동형저장장치오류 : 장치를찾을수없습니다. 포맷하세요.. 복구방법 : 1) 포맷진행 - 빠른포맷 2) 데이터복구프로그램을이용하여복구국내 : finadata - 파티션복구 : Acronis Disk Directory Suit - 데이터복구 : R-studio http://www.data-recovery-software.net 복구시실제이동형저장장치용량보다 2-4 배크기의저장장치필요. 예 )2GB -> 4GB - 최근 10 일동안수정되거나새롭게생성된파일을찾아서 /var/forensicstoo/ 오늘날짜.txt 로저장 # find / -mtime -10 -print -xdev > /var/forensictoo/20090427.txt 웹해킹 - 브라우저에플러그인으로설치되어야하는툴 1) cooxie, websniper ( 소스보기 ) cooxie 값
=> 위쿠기값을웹창에다직접띄우면곧바로로그인가능 ( 그래서 cain & abe 이무섭다고..) - 시스템에설치되어야하는툴 => proxy 툴 - paros ( jre / jdk 설치 - 1.5 이상 ) http://www.javasoft.com 자바머신설치 Paros 실행 Proxy 설정
Paros 로정보긁어온상태 // 웹페이지접속시정보를긁어오는모습 - Burp proxy ====================== Linux 편 ================================ 1. 프로세스 # ps(process) -e: 모든프로세스출력 -f : 프로세스시작시간, 프로세스부모ID, 그프로세스에관련된사용자 ID, 명령이름과매개변수있다면모든정보출력 -p(pid) : 지정된프로세스에대한정보출력 -t (tty) : 지정된터미널에연관된프로세스정보 -u (user) : 지정된사용자연관프로세스정보 ps --hep
# ps -ef - UID PID( 부모 ID) PPID( 자식 ID) C STIME TTY TIME CMD 또다른프로세스보는방법 # top *** 공격당한시스템에서 ps 가변조되어있을경우에 ps 로는공격자가구동한 process 정보를제대로볼수없는데이때 사용하는프로그램 -- open 된파일들에대한정보를보여주는프로그램 # sof ( Lost Open Fie ) # sof more 화면분석. # fuser : 현재사용중인파일또는소켓이사용하는프로세스를확인하는명령어 열려있는포트와해당포트를사용중인프로세스확인하여백도어등의
* netstat -an 악성프로그램확인할수있음 ** 프로세스를백그라운드보내는 ( 실행 ) 방법 - # vi & - # vi bg ** 프로세스를포그라운드보내는 ( 실행 ) 방법 - # vi fg 계정전환 - su # su 계정 => 권한만변경 # su - 계정 => 환경변수까지모두바꾸는것 * 디스크사용현황 # du ( disk useage) : du -b : 바이트단위로출력 # df ( disk frdd ) : 현재디스크의여유공간확인현재마운트되어있는각파티션의전체용량, 사용량, 빈공간 ** 리눅스시스템보안 ( 침해대응 ) ㅇ [ 사 가장중요한명령어는 # find # find [ 검색시작위치 ] ( 옵션 ) [ 부가설정 ] [ 디렉토리 파일 ] # find / -name date * 파일구조 - 심볼릭링크 => 하드링크 => 파일속성 : d: 디렉토리 -: Reguar fie : Symboic Link c: Character Fie ( 터미널 ) s: Socket Fie 소켓기능을하는파일 p: Pipe Fie 파이프기능을하는파일 rwx : r - 4, w -2, x - 1 777 ( 소유자 / 그룹 / other )
rwsr-xr-x 임시사용자권한주기 (sticky bit) - UID - GID - SetUID - SetGID - RUID ( Rea UID ) : 실제 UID - RGID ( Rea GID ) : 실제 GID - EUID ( Effective UID ) : 유효 UID - EGID ( Effective GID ) : 유효 GID - umask - sticky bit - find - she ( 쉘 ) backdoor, 분석, 침해대응.
1. umask 란? 특별한퍼미션 setuid, setgid, sticky bit 솔라리스에서는여러가지환경설정파일을제공하는데, 이것은사용자를더욱자유롭고융통성있게만들어준다. 이런파일들은보통홈디렉토리안에위치하고있으며, '.' 으로시작하는파일들을말한다. 's -a' 명령으로파일의존재를확인할수있으며, 파일의이름은 "Resource Configuration" 이라는의미의 "rc" 라는스펠링으로끝나는경우가많다. Umask는처음파일이나디렉토리를만들면파일이나디렉토리에대한기본적인권한 (permission) 이자동설정되는데, 이러한것은시스템파일의 umask에의하여결정이된다. umask는.profie,.cshrc,.bashrc,.ogin과같은사용자프로파일에서설정한다. 2. umask의사용가 ) umask는 chmod와는정반대의개념으로사용된다. 예를들어, chmod 022라는명령어가해당그룹및다른사용자들에게쓰기권한을부여하지만, umask 022는해당그룹및다른사용자들에게쓰기권한을박탈하는것이다. Umask 디렉토리허가권파일허가권 002 775 664 007 770 660 020 757 646 070 705 604 022 755 644 나 ) 파일이나디렉토리를만들때마다, 접근권한은미리지정한값으로정해집니다. 이값은파일생성모드마스크에의하여정의된다. 이마스크값을살펴보려면다음과같은명령을사용한다. #umask 077 다 ) umask명령의결과로 077이라는숫자세개가보여지는데, 가끔 0이생략되기도한다. 이숫자값은파일의경우 666, 디렉토리의경우 777을빼어, 초기접근권한값을파악하는데, 사용된다. setuid, setgid 실행퍼미션에는 setuid와 setgid라는특별한퍼미션이있다. setuid는심볼릭모드로 's' 로표현되고 8진수모드로는 4000 으로표현된다. setuid 퍼미션이설정되어있는실행파일은실행되는동안에는그파일의소유자권한을가지게된다. 이러한이유때문에 root 소유의 setuid 퍼미션이포함되어있는파일은아주신중히관리를해야된다. 저는사용안하는 setuid 실행파일은 setuid 퍼미션을제거해서따로보관하고있습니다. setgid 퍼미션이포함되어있는실행파일은실행되는동안은그파일의소유그룹의권한을가지는것빼고는 setuid와같다. setgid의 8진수모드는 2000 이다. setuid 퍼미션을포함하고있는실행파일을 s -a 명령으로확인해보면다음과같이소유자실행퍼미션에 's' 라고되어있는것을확인할수있다. [root@rootman root]# s -a /bin/su -rwsr-xr-x 1 root root 14112 1월 16 2001 /bin/su setgid가포함되어있는실행파일을 s -a 명령으로확인하면소유그룹의실행퍼미션에 's' 가설정되어있는것을확인할수있을것이다. [root@rootman root]# s -a /usr/bin/man -rwxr-sr-x 1 root root 14112 2월 5 2001 /usr/bin/man fie1 이라는실행파일에 setuid 퍼미션을설정할때 [root@rootman root]# chmod 4755 fie1 fie1 이라는실행파일에 setgid 퍼미션을설정할때 [root@rootman root]# chmod 2755 fie1 sticky bit sticky bit도특별한퍼미션이다. other의쓰기권한에대한특별한퍼미션인데 /tmp 디렉토리와 /var/tmp 디렉토리에의퍼미션이 stickbit가포함되어있다. sticky bit는 8진수모드로는 1000으로설정되고심볼릭모드로는 't' 또는 'T' 로설정된다. 이 sticky bit가포함되어있는디렉토리에 other에쓰기권한이있을경우 other에해당하는사용자들은디렉토리안에파일을만들수는있어도디렉토리삭제는할수없다. sticky bit가포함되어있는대포적인디렉토리가 /tmp 디렉토리인데분명히 /tmp 디렉토리의퍼미에는 other에게쓰기권한이주어져있다. 그렇기때문에 /tmp 디렉토리에는누구나디렉토리와파일을만들수있다. 하지만 other에해당하는사용자는쓰기권한이있음에도불고하고 /tmp 디렉토리를지울수없는것이다. 그이유는 /tmp 디렉토리에는 sticky bit가설정되어있기때문이다. 당연히소유자는 sticky bit가설정되어있는디렉토리를삭제할수있다. 디렉토리가아닌파일에 sticky bit가설정되어있을때는 other 에게쓰기퍼미션이있어도파일을수정할순있지만그파일을삭제할수는없다. sticky bit의이런특징을이용하면공개서버에서는여러모로요기나게사용할수있을것이다. sticky bit를적용할려면당연히쓰기권한도주어야되다. sticky bit가포함되어있는디렉토리의 s -a 결과 [root@rootman root]# s -ad /tmp drwxrwxrwt 14 root root 4096 Aug 30 02:05 /tmp 라 ) 마스크값을바꾸기전체시스템에영향을미치기위해서는 /etc/profie 파일에 umask 값을수정해줘야한다. 49라인쯤에 umask 022 비스무레한것이있을것이다. 그값을수정해주면된다. 현재접속되어있는쉘에대해서만일회성으로바로잡으려면다음과같은명령을수행해준다. #umask nnn dir1 이라는디렉토리에 sticky bit를설정할때 [root@rootman root]# chmod 1707 dir1 --> 또는 chmod 1777 dir1 sticky bit가설정되어있는디렉토리를 other에해당되는사용자가디렉토리삭제명령을했을때 [rootman@rootman /tmp]# rm -rf dir1 rm: cannot remove directory `dir1': Operation not permitted [rootman@rootman /tmp]# s -ad dir1 drwx---rwt 2 root root 4096 Aug 30 18:42 dir1