unix系統的日誌(shala)

valleygrain發表於2009-09-16
unix系統日誌檔案通常是存放在"/var/log and /var/adm"目錄下的。通常我們可以檢視syslog.conf來看看日誌配置的情況.如:cat /etc/syslog.conf



其中sunos的在/var/log 和 /var/adm下.還有/usr/adm為/var/adm的的連結.

redhat的在/var/log 和 /var/run下.

下面的是sun os5.7中的日誌樣本.



# ls /var/adm

acct    log      messages.1    passwd    sulog   vold.log

aculog   messages   messages.2    sa      utmp    wtmp

lastlog   messages.0  messages.3    spellhist   utmpx   wtmpx



# ls /var/log

authlog      syslog    syslog.1   syslog.3

sysidconfig.log  syslog.0   syslog.2   syslog.4



下面的是redhat6.2中的日誌樣本.



# ls /var/log

boot.log   dmesg       messages.2    secure     uucp

boot.log.1  htmlaccess.log  messages.3    secure.1    wtmp

boot.log.2  httpd       messages.4    secure.2    wtmp.1

boot.log.3  lastlog      netconf.log   secure.3    xferlog

boot.log.4  mailllog      netconf.log.1  secure.4    xferlog.1

cron     maillog      netconf.log.2  sendmail.st   xferlog.2

cron.1    maillog.1     netconf.log.3  spooler     xferlog.3

cron.2    maillog.2     netconf.log.4  spooler.1    xferlog.4

cron.3    maillog.3     news       spooler.2

cron.4    maillog.4     normal.log    spooler.3

daily.log   messages     realtime.log   spooler.4

daily.sh   messages.1     samba       transfer.log



# ls /var/run

atd.pid    gpm.pid    klogd.pid   random-seed    treemenu.cache

crond.pid   identd.pid   netreport   runlevel.dir   utmp

ftp.pids-all inetd.pid   news      syslogd.pid



一般我們要清除的日誌有

lastlog

utmp(utmpx)

wtmp(wtmpx)

messages

syslog

sulog



此外,各種shell還會記錄使用者使用的命令歷史,它使用使用者主目錄下的檔案來記錄這些命令歷史,通常這個檔案的名字為.sh_history(ksh),.history(csh),或.bash_history(bash)等。



一般把以上說的日誌給擦一下,就可以了.:)

下面我來說說上面這些我們要清除的日誌的相關資料和清除方法.更詳細的資料和其他的日誌請你檢視相關資料.



首先我們說說這幾種日誌的功能.->它記錄的是什麼?



lastlog



lastlog記錄每個使用者的最近一次的登陸時間和每個使用者的最初目的地.

當一個使用者登陸到unix系統時,註冊程式在lastlog檔案中查詢該使用者的uid ,如果該程式找到了該使用者的uid,unix就會顯示最後一次登陸的時間和TTY(終端號)

下面是一個例子:

SunOS 5.7

login: gao

Password:

No directory! Logging in with home=/

Last login: Sun Feb 4 22:18:25 from 211.167.1.24

Sun Microsystems Inc. SunOS 5.7 Generic October 1998 $



.然後註冊程式用新的登陸時間和TTY資訊更新lastlog檔案,而且該程式帶更新utmp wtmp.檔案.



utmp



utmp 日誌記錄以前登陸到系統中的所有使用者.這個檔案隨著用進入和離開系統而不斷的變化.它還會為系統中的使用者保持很長的歷史記錄,utmp日誌通常儲存在/etc/utmp,可以使用w 和who 命令檢視utmp.但其他的一些命令也可以訪問這個檔案.:)比如finger users.現在的utmp一般都有一個utmpx檔案做為日誌記錄的補充.別忘了擦這個pp哦.:)



wtmp



wtmp檔案記錄使用者登陸和退出事件,它和utmp類似.但它隨著登陸的次數的增加它會變得越來越大.有些系統的ftp訪問也在這個檔案裡記錄.同時它也記錄正常的系統退出時間.可以使用last和ac命令訪問它.



syslog & messages



透過檢視/etc/syslog.conf我們可以知道syslog記錄些什麼.:)

很多各種各樣的程式產生的日誌都由它記錄.

同時它還有一個syslogd程式為它服務.

在預設時,它把大多的資訊傳給/var/adm/messages



sulog



sulog為切換使用者命令su的使用記錄日誌.

他通常在/var/adm/sulog

如果你在機器上用過su命令,別忘了清除掉哦.:)





shell記錄



.sh_history(ksh),.history(csh),或.bash_history(bash)等,是shell執行時的歷史記錄.記錄使用者執行的命令.它一般存在於使用者的主目錄.別忘了去根目錄看看哦.我入侵機器時,也經常能發現別人的hacking記錄哦.:)所以你一定要記得清除.





1.日誌都是一些文字形式的檔案.最笨的方法是用文字編輯器來編輯日誌檔案.刪除相關的記錄.來達到擦拭腳印和隱藏自己的效果.

比如用vi等

但這樣做是很笨的.太麻煩,工作量太大.

如果有50臺機器要你處理,那麼,呵呵....看你忙到什麼時候

:)



2.以前我剛開始學unix時.經常用rm -f 來刪掉日誌.比如rm -f /usr/adm/lastlog

呵呵 

這樣做是很蠢的.

更容易被管理員發現有人入侵.但是,相對來說自己還是保護好了.:)

可以用在一些不太重要的機器上.



3.用 >; 定向符清除.

比如:

#cat >; /usr/log/lastlog

  ->這裡輸入你要的寫的東西.最好偽裝得像一些,也可以不輸入哦.:)

^d ->這裡的^d是按鍵 ctrl + d.

#

如果上戰場沒有帶日誌清除工具,我一般也用這個清除的.:)省事

要不找幾個舊的日誌覆蓋它:)





==========================================================

4.當然最好的是用日誌清除工具.

輸入幾個命令讓程式幫你擦:)



a.常見的日誌清除工具.

 一般的rootkit包裡有的:z2.c 和wted.c

很容易找到.

網上的教程很多都是介紹這兩個工具的使用的.

這裡我就不再論述了.:)節省時間.



b.這裡我提供一個我以前有段時間常用的日誌清除指令碼.

在HUCkit.zip裡的 cleaner.sh

我們這樣使用它



# chmod 755 cleaner.sh

# ./cleaner.sh

Log cleaner v0.5b By: Tragedy/Dor *

* Usage: cleaner.sh

# ./cleaner.sh username



其中,username 為你要清除日誌的的使用者帳號.

:)

比如:



#./cleaner.sh gao

Log cleaner v0.5b By: Tragedy/Dor OS

detection....

Detected SunOS

--- clog.sh

來方便的複製到主機.不用ftp 去取.:)

還有一個命令可以清除大部分的日誌.

這也是我常用它的原因.

但它做的太乾淨了,把以前的記錄也刪除了.:(

有時候也會不太乾淨.比如lastlog.utmp可能有時會清除不了.

所以,現在我一般結合兩個工具來清除日誌.



好的一般放在後面介紹.:)

下面介紹一個我覺得比較好的另一個日誌清除器.:)

在HUCkit.zip裡的wipe-1.00.tgz.

他完全可以清除

lastlog

utmp

utmpx

wtmp

wtmpx



:)

下面我們來看看.(示範工作平臺sunos 5.7)



# gzip -d wipe-1.00.tgz

# tar -xf wipe-1.00.tar

# cd wipe-1.00

# ls -al

總數32

drwxr-xr-x  2  root  root     512   2月 4 20:48   .

drwxrwxrwx  6  root  other    1024   2月 4 18:40   ..

-rw-r--r--  1  root  root     130   1997 1月 9   INSTALL

-rw-r--r--  1  root  staff    1389   1997 1月 9   Makefile

-rw-r--r--  1  root  root     498   1997 1月 9   README

-rw-r--r--  1  root  staff   10027   1997 1月 9   wipe.c

# make



Wipe v0.01 !



Usage: 'make ' where System types are:



  linux freebsd sunos4 solaris2 ultrix

  aix irix digital bsdi netbsd hpux



#



我們可以看到它需要出示 系統的選項.這些選項是:

  linux freebsd sunos4 solaris2 ultrix

  aix irix digital bsdi netbsd hpux



我們要清除相關的系統日誌就必須在相同的系統下編譯.

比如我們要在redhat等linux下編譯,就應為: make linux

在freebsd下編譯就應為:make freebsd

在sunos 4下編譯,就應為: make sunos4

在sunos 5以上的系統裡編譯,就應為:make solaris2



這裡我們用make solaris2

sunos 5 以上就叫做solaris了.

# make solaris2

gcc -O3 -DHAVE_LASTLOG_H -DHAVE_UTMPX -o wipe wipe.c

# ls -al

總數94

drwxr-xr-x  2  root  root   512   2月 4 21:03   .

drwxrwxrwx  6  root  other  1024   2月 4 18:40   ..

-rw-r--r--  1  root  root   130   1997 1月 9   INSTALL

-rw-r--r--  1  root  staff  1389   1997 1月 9   Makefile

-rw-r--r--  1  root  root    498   1997 1月 9   README

-rwxr-xr-x  1  root  other  30920   2月 4 21:03  wipe

-rw-r--r--  1  root  staff  10027   1997 1月 9   wipe.c

#./wipe



USAGE: wipe [ uwla ] ...options...



UTMP editing: Erase all usernames : wipe u [username]

  Erase one username on tty: wipe u [username] [tty]



WTMP editing: Erase last entry for user : wipe w [username]

  Erase last entry on tty : wipe w [username] [tty] LASTLOG



editing: Blank lastlog for user : wipe l [username] Alter lastlog

  entry : wipe l [username] [tty] [time] [host]

  Where [time] is in the format [YYMMddhhmm]



ACCT editing: Erase acct entries on tty : wipe a [username] [tty]





大家可以看到編譯好的wipe的使用方法.

其中 u 選項為 utmp utmpx 日誌擦除..

w 選項為 wtmp wtmpx 日誌擦除.

l 選項為 lastlog 日誌擦除.

a 為/var/adm/pacct日誌擦除.(一般不用這個.:)



其中[tty]為終端號.為在有多個相同帳號同時登陸時,清除日誌的使用選項.當然是要你的終端號哦.:)

大家可以用 w 命令查終端號.

比如:

# w

下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01

使用者名稱   終端號   登入時間   閒置   JCPU   PCPU   執行命令

gao    pts/1   下午 7:40        3          w



下面的是我在sunos 5.7上的具體的使用情況.:)



# w

下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01

使用者名稱   終端號   登入時間   閒置   JCPU   PCPU   執行命令

gao    pts/1   下午 7:40        3          w



# ./wipe u gao

Patching /var/adm/utmp .... Done.

Patching /var/adm/utmpx .... Done.



# w

下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01

使用者名稱   終端號   登入時間   閒置   JCPU   PCPU   執行命令



# ./wipe w gao

Patching /var/adm/wtmp .... Done.

Patching /var/adm/wtmpx .... Done.

# ./wipe l gao

Patching /var/adm/lastlog .... Done.



好了.

lastlog utmp utmpx wtmp wtmpx 擦完了.

大家看到 wipe u gao 了嗎?

為什麼我打了個w命令呢?

呵呵

想想.

所以我們一般在登陸進系統後就執行 wipe u gao.來隱藏自己.:)



當然我們不要忘了shell 記錄哦.

# ls -al /.*history

-rw------- 1 root other 456 2月 4 20:27 .sh_history

# rm -f .*history

# cd

# pwd

/home/gao

# ls -al /.*history

-rw------- 1 root other 456 2月 4 20:27 .sh_history

# rm -f .*history





ok, 一個指令碼加一個程式.再加一個操作,能保證你基本安全了.:)

當然如果你對系統有進一步瞭解,就能發現.這樣清除還是有問題的.:)[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9893498/viewspace-1027015/,如需轉載,請註明出處,否則將追究法律責任。

相關文章