OS/Solaris

0420 공부정리 명령어 추가 정리

dp. 2011. 4. 26. 00:55

# uname -X
System = SunOS
Node = sol-25
Release = 5.10
KernelID = Generic_142910-17
Machine = i86pc
BusType = <unknown>
Serial = <unknown>
Users = <unknown>
OEM# = 0
Origin# = 1
NumCPU = 1

# unma
unma: 없음
#
# uname -a
SunOS sol-25 5.10 Generic_142910-17 i86pc i386 i86pc
# id
uid=0(root) gid=0(root)
#
#
# groups
root other bin sys adm uucp mail tty lp nuucp daemon
# id -a
uid=0(root) gid=0(root) groups=0(root),1(other),2(bin),3(sys),4(adm),5(uucp),6(mail),7(tty),8(lp),9(nuucp),12(daemon)
# users
root root

# w
  1시51분오후  현재 가동중 19분,  2 사용자,  로드 평균: 0.16, 0.23, 0.27
사용자     터미늘           로그인시간  휴지   JCPU   PCPU  활동
root     console       1시41분오후    11     16         /usr/bin/gnome-session
root     pts/3         1시44분오후     3      3      3  sh
# who
root       console       4월 19일  13:41        (:0)     //접속을 위해서 
root       pts/3         4월 19일  13:44        (:0.0)  // ip address
# finger
Login       Name               TTY         Idle    When    Where
root     Super-User            console          Tue 13:41  :0
root     Super-User            pts/3            Tue 13:44  :0.0
#

/var/adm/utmpx    은 접속자의 아이피 주소가 기록되고 수정이 불가한 파일이라, 공격자가 삭제하는 파일중 하나다
======>>>> w, who 

finger 은 각 접속한 사용자의 정보 현황을 알 수 있다.    조작된 정보로 부터 결과를 가져오기 때문에 현업에선 사용안함
예 > finger -lmp (메일확인했는지)



분석적인 접근  = 평균을 항상 인지 하고 있다가 이상이 있으면 확인 


df 는 파티션의 용량을 확인,,, 관리자가 평소 확인해 놓고 있다가. 늘어난 경우 조치를 취할 수 있다.

 
# uptime
  2시20분오후  현재 가동중 47분,  2 사용자,  로드 평균: 0.14, 0.12, 0.17   (5분전, 10분전, 15분전 cpu로드)
#
이후 이상이 있으면 메모리 사용량을 확인해 볼 수 가 있다. 

prstat현재 메모리에서 돌아가는 프로세스의 현황 보기   
# prstat
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
   734 root       34M   27M sleep   24    0   0:00:53 5.3% Xorg/1
  1847 root      192M   36M sleep   44    0   0:00:24 2.1% gedit/1
  1814 root      155M   23M sleep   59    0   0:00:08 0.8% gnome-terminal/2
  1426 root       67M 9972K sleep   59    0   0:00:18 0.7% mixer_applet2/1
  1896 root     5076K 2884K cpu0    59    0   0:00:00 0.4% prstat/1
  1189 root      122M   17M sleep   47    0   0:00:03 0.3% metacity/1
   884 noaccess  127M  117M sleep   59    0   0:00:29 0.3% java/18
  1422 root       98M   16M sleep   59    0   0:00:02 0.3% wnck-applet/1
   955 root       37M   33M sleep   59    0   0:00:10 0.3% iiimd/6
  1236 root      138M   31M sleep   59    0   0:00:06 0.3% gnome-panel/1
  1410 root       50M   46M sleep   59    0   0:00:17 0.2% java/30
   958 root       12M 9828K sleep   59    0   0:00:08 0.2% gconfd-2/1
  1424 root       70M   13M sleep   59    0   0:00:04 0.1% gnome-netstatus/1
  1051 root      119M   14M sleep   59    0   0:00:01 0.1% compo
q : 빠져나오기


각 컴퓨터를 구별하는것은 맥주소
포트 = >서비스  => 프로세스  (순방향은 맞지만 역방향은 아닐수도있다)




# netstat -na | more  에서 포트번호 확인하기

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
-------------------- -------------------- ----- ------ ----- ------ -----------
      *.*                  *.*                0      0 49152      0 IDLE
      *.111                *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.32771              *.*                0      0 49152      0 LISTEN
      *.32772              *.*                0      0 49152      0 LISTEN
      *.4045               *.*                0      0 49152      0 LISTEN
127.0.0.1.5987             *.*                0      0 49152      0 LISTEN
127.0.0.1.898              *.*                0      0 49152      0 LISTEN
127.0.0.1.32773            *.*                0      0 49152      0 LISTEN
127.0.0.1.5988             *.*                0      0 49152      0 LISTEN
127.0.0.1.32774            *.*                0      0 49152      0 LISTEN
      *.32775              *.*                0      0 49152      0 LISTEN
      *.7100               *.*                0      0 49152      0 LISTEN
      *.32776              *.*                0      0 49152      0 LISTEN
      *.32777              *.*                0      0 49152      0 LISTEN
      *.32778              *.*                0      0 49152      0 LISTEN
      *.32779              *.*                0      0 49152      0 LISTEN
      *.22                 *.*                0      0 49152      0 LISTEN
      *.32780              *.*                0      0 49152      0 LISTEN
      *.6481               *.*                0      0 49152      0 LISTEN
      *.6112               *.*                0      0 49152      0 LISTEN
      *.21                 *.*                0      0 49152      0 LISTEN
      *.23                 *.*                0      0 49152      0 LISTEN
      *.79                 *.*                0      0 49152      0 LISTEN
      *.513                *.*                0      0 49152      0 LISTEN
      *.514                *.*                0      0 49152      0 LISTEN
      *.32781              *.*                0      0 49152      0 LISTEN


  *.* 은 어느 아이피라도 접속가능함  


이스테블리시드나 릴레이티드상태면 통신한다
estabilishd 와 권한이 뚫리면 해킹된것

관리자가 통신상태에 대해 숙지하고 있어야 한다. 


lsof

pgrep




# ps -ef |grep ssh
    root   552     1   0 13:34:01 ?           0:00 /usr/lib/ssh/sshd
# cd /proc/552
# ls
as         contracts  ctl        fd         lpsinfo    lusage     map        pagedata   priv       rmap       sigact     usage      xmap
auxv       cred       cwd        ldt        lstatus    lwp        object     path       psinfo     root       status     watch

# ls
as         contracts  ctl        fd         lpsinfo    lusage     map        pagedata   priv       rmap       sigact     usage      xmap
auxv       cred       cwd        ldt        lstatus    lwp        object     path       psinfo     root       status     watch

# ls -al
총 8278
dr-x--x--x   5 root     root         864  4월 19일  13:34 .
dr-xr-xr-x  89 root     root      130496  4월 19일  15:05 ..
-rw-------   1 root     root     4067328  4월 19일  13:34 as
-r--------   1 root     root         168  4월 19일  13:34 auxv
dr-x------   2 root     root          32  4월 19일  13:34 contracts
-r--------   1 root     root          32  4월 19일  13:34 cred
--w-------   1 root     root           0  4월 19일  13:34 ctl
lr-x------   1 root     root           0  4월 19일  13:34 cwd ->                            ///루트권한으로 실행되고있다 를 보여줌
dr-x------   2 root     root         144  4월 19일  13:34 fd
-r--------   1 root     root           0  4월 19일  13:34 ldt
-r--r--r--   1 root     root         120  4월 19일  13:34 lpsinfo
-r--------   1 root     root         816  4월 19일  13:34 lstatus
-r--r--r--   1 root     root         536  4월 19일  13:34 lusage
dr-xr-xr-x   3 root     root          64  4월 19일  13:34 lwp
-r--------   1 root     root        5280  4월 19일  13:34 map
dr-x------   2 root     root        1056  4월 19일  13:34 object
-r--------   1 root     root        6560  4월 19일  13:34 pagedata
dr-x------   2 root     root        1200  4월 19일  13:34 path
-r--------   1 root     root          72  4월 19일  13:34 priv
-r--r--r--   1 root     root         336  4월 19일  13:34 psinfo
-r--------   1 root     root        5280  4월 19일  13:34 rmap
lr-x------   1 root     root           0  4월 19일  13:34 root ->                             ///루트권한으로 실행되고있다를 보여줌
-r--------   1 root     root        1536  4월 19일  13:34 sigact
-r--------   1 root     root        1136  4월 19일  13:34 status
-r--r--r--   1 root     root         256  4월 19일  13:34 usage
-r--------   1 root     root           0  4월 19일  13:34 watch
-r--------   1 root     root        8360  4월 19일  13:34 xmap

===========================================
신뢰하는 포트와 서비스를 끝까지 확인하는 방법!

ps로 확인하고 pmap으로 맵을 확인해서 마지막까지 신뢰할 수 있는 서비스를 확인한다. 그래야 완벽히 안전함을 증명 , 이후 과정은 리버싱

      netstat 로 열린 포트 확인하고 해당포트의 서비스 확인
-->   ps -ef | grep  으로 프로세서 ID확인  
-->   cd /proc/ID번호    
-->   pmap ID번호 (여기서 참고하는 모든 라이브러리를 보여줌)

# ls -al *map
-r--------   1 root     root        5280  4월 19일  13:34 map
-r--------   1 root     root        5280  4월 19일  13:34 rmap
-r--------   1 root     root        8360  4월 19일  13:34 xmap
 
# pmap 552 | more
552:    /usr/lib/ssh/sshd
08045000      12K rw---    [ stack ]
08050000     308K r-x--  /usr/lib/ssh/sshd
080AD000      12K rw---  /usr/lib/ssh/sshd
080B0000      60K rw---    [ heap ]
D0AD0000       8K r-x--  /usr/lib/locale/ko/methods_ko.so.3
D0AE1000       4K rwx--  /usr/lib/locale/ko/methods_ko.so.3
D0AF0000      60K r-x--  /usr/lib/locale/ko/ko.so.3
D0B0E000       8K rwx--  /usr/lib/locale/ko/ko.so.3
D0B20000      40K r-x--  /usr/sfw/lib/libcrypto_extra.so.0.9.7
D0B3A000       4K rw---  /usr/sfw/lib/libcrypto_extra.so.0.9.7
D0B40000      28K r-x--  /lib/libnvpair.so.1
D0B57000       4K rw---  /lib/libnvpair.so.1
D0B60000      12K r-x--  /lib/libsecdb.so.1
D0B73000       4K rw---  /lib/libsecdb.so.1
D0B80000      56K r-x--  /lib/libmd.so.1
D0B9E000       4K rw---  /lib/libmd.so.1
D0BA0000    1080K r-x--  /lib/libc.so.1
D0CBE000      32K rwx--  /lib/libc.so.1
D0CC6000       8K rwx--  /lib/libc.so.1
D0CD0000      16K r-x--  /lib/libcontract.so.1
D0CE4000       4K rw---  /lib/libcontract.so.1
D0CF0000      12K r-x--  /lib/libcmd.so.1
D0D03000       4K rw---  /lib/libcmd.so.1
D0D10000      44K r-x--  /usr/lib/libgss.so.1
D0D2B000       4K rw---  /usr/lib/libgss.so.1
D0D30000     948K r-x--  /usr/sfw/lib/libcrypto.so.0.9.7
D0E2D000      80K rw---  /usr/sfw/lib/libcrypto.so.0.9.7
D0E41000       8K rw---  /usr/sfw/lib/libcrypto.so.0.9.7
D0E50000      24K r-x--  /usr/sfw/lib/libwrap.so.1.0
D0E60000       4K r--s-  dev:293,3 ino:450694984
D0E66000       4K rw---  /usr/sfw/lib/libwrap.so.1.0
D0E67000       4K rw---  /usr/sfw/lib/libwrap.so.1.0
D0E70000     116K r-x--  /lib/libbsm.so.1
D0E90000      24K rwx--    [ anon ]
D0E9D000      20K rw---  /lib/libbsm.so.1
D0EA2000       4K rw---  /lib/libbsm.so.1
D0EB0000      24K r-x--  /lib/libpam.so.1
D0EC0000       4K rwx--    [ anon ]
D0EC6000       4K rw---  /lib/libpam.so.1
D0ED0000      60K r-x--  /usr/lib/libz.so.1
D0EE0000       4K rwx--    [ anon ]
D0EEE000       4K rwx--  /usr/lib/libz.so.1
D0EF0000     516K r-x--  /lib/libnsl.so.1
D0F81000      20K rw---  /lib/libnsl.so.1
D0F86000      32K rw---  /lib/libnsl.so.1
D0F90000      44K r-x--  /lib/libsocket.so.1