深度解析Linux經過日誌反查入侵

有一個朋友的服務器發現有入侵的痕跡後來處理解決可是因爲對方把日誌都清理了無疑給排查工做增長了許多難度。恰好手裏有些資料我就整理整理貼出來分享一下。其實日誌的做用是很是大的。學會使用經過日誌來排查解決咱們工做中遇到的一些問題是頗有必要的。linux

大綱shell

Linux日誌系統簡介安全

Linux日誌分析bash

Linux日誌入侵發現服務器

實例分析網絡

Linux日誌系統簡介session

日誌的主要用途是系統審計、監測追蹤和分析統計。less

爲了保證 Linux 系統正常運行、準確解決遇到的各類各樣的系統問題認真地讀取日誌文件是管理員的一項很是重要的任務。ssh

UNIX/ Linux採用了syslog工具來實現此功能若是配置正確的話全部在主機上發生的事情都會被記錄下來無論是好的仍是壞的。工具

什麼是 syslog

Linux 內核由不少子系統組成包括網絡、文件訪問、內存管理等。子系統須要給用戶傳送一些消息這些消息內容包括消息的來源及其重要性等。全部的子系統都要把消息送到一個能夠維護的公用消息區因而就有了 syslog。

syslog 是一個綜合的日誌記錄系統。它的主要功能是方便日誌管理和分類存放日誌。 syslog 使程序設計者從繁重的、機械的編寫日誌文件代碼的工做中解脫出來使管理員更好地控制日誌的記錄過程。

syslog 能設置成根據輸出信息的程序或重要程度將信息排序到不一樣的文件。例如因爲核心信息更重要且須要有規律地閱讀以肯定問題出在哪裏因此要把核心信息與其餘信息分開來單獨定向到一個分離的文件中。

管理員能夠經過編輯 /etc/syslog.conf 來配置它們的行爲。

syslogd的配置文件

syslogd 的配置文件 /etc/syslog.conf 規定了系統中須要監視的事件和相應的日誌的保存位置。

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.* /dev/console

# 將 info 或更高級別的消息送到 /var/log/messages

# 除了 mail/news/authpriv/cron 之外。

# 其中*是通配符表明任何設備none 表示不對任何級別的信息進行記錄。

*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

# 將 authpirv 設備的任何級別的信息記錄到 /var/log/secure 文件中

# 這主要是一些和認證、權限使用相關的信息。

authpriv.* /var/log/secure

# 將 mail 設備中的任何級別的信息記錄到 /var/log/maillog 文件中這主要是和電子郵件相關的信息。

mail.* -/var/log/maillog

# 將 cron 設備中的任何級別的信息記錄到 /var/log/cron 文件中

# 這主要是和系統中按期執行的任務相關的信息。

cron.* /var/log/cron

# 將任何設備的 emerg 級別或更高級別的消息發送給全部正在系統上的用戶。

*.emerg *

# 將 uucp 和 news 設備的 crit 級別或更高級別的消息記錄到 /var/log/spooler 文件中。

uucp,news.crit /var/log/spooler

# 將和本地系統啓動相關的信息記錄到 /var/log/boot.log 文件中。

local7.* /var/log/boot.log

# 將 news 設備的 crit 級別的消息記錄到 /var/log/news/news.crit 文件中。

news.=crit /var/log/news/news.crit

# 將 news 設備的 err 級別的消息記錄到 /var/log/news/news.err 文件中。

news.=err /var/log/news/news.err

# 將 news 設備的 notice 或更高級別的消息記錄到 /var/log/news/news.notice 文件中。

news.notice

syslogd配置設備級別動做wKiom1MTej7DDx8ZAART_GXy9Vo596.jpg

級別字段

wKiom1MTeuHhRQm_AAGczARMX_8963.jpg

動做字段

wKiom1MTewST6IXaAAHKHyEmPKw030.jpg

常見的日誌文件

wKiom1MTe0KAmXfrAAICv54ZwwE034.jpg

wKioL1MTez2C0bWqAAHJ3SxWtMs992.jpg

日誌系統主要分爲三類

系統接入日誌:

多個程序會記錄該日誌記錄到/var/log/wtmp和/var/run/utmp文件中telnet、ssh等程序會更新wtmp和utmp文件系統管理員能夠根據該日誌跟蹤到誰在什麼時候登陸到系統。

進程統計日誌:

linux內核記錄該日誌當一個進程終止時進程統計文件pacct或acct中會進行記錄。進程統計日誌能夠供系統管理員分析系統使用者對系統進行的配置以及對文件進行的操做。

錯誤日誌:

Syslog日誌系統已經被許多設備兼容Linux的syslog能夠記錄系統事件主要由syslogd程序執行Linux系統下各類進程、用戶程序和內核均可以經過Syslog文件記錄重要信息錯誤日誌記錄在/var/log/messages中。有許多Linux/Unix程序建立日誌。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日誌。

經常使用的日誌文件解析

/var/log/boot.log

該文件記錄了系統在引導過程當中發生的事件就是Linux系統開機自檢過程顯示的信息。

/var/log/cron

該日誌文件記錄crontab守護進程crond所派生的子進程的動做前面加上用戶、登陸時間和PID以及派生出的進程的動做。CMD的一個動做是cron派生出一個調度進程的常見狀況。REPLACE替換動做記錄用戶對它的cron文件的更新該文件列出了要週期性執行的任務調度。 RELOAD動做在REPLACE動做後不久發生這意味着cron注意到一個用戶的cron文件被更新而cron須要把它從新裝入內存。該文件可能會查到一些反常的狀況。

/var/log/maillog

該日誌文件記錄了每個發送到系統或從系統發出的電子郵件的活動。它能夠用來查看用戶使用哪一個系統發送工具或把數據發送到哪一個系統。

QUOTE:

Sep 4 17:23:52 UNIX sendmail[1950]: g849Npp01950: from=root, size=25,

class=0, nrcpts=1,

msgid=<200209040923.g849Npp01950@redhat.pfcc.com.cn>, relay=root@localhost

Sep 4 17:23:55 UNIX sendmail[1950]: g849Npp01950: to=lzy@fcceec.net,

ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:03, mailer=esmtp, pri=30025,

relay=fcceec.net. [10.152.8.2], dsn=2.0.0, stat=Sent (Message queued)

/var/log/messages

該日誌文件是許多進程日誌文件的彙總從該文件能夠看出任何入侵企圖或成功的入侵。如如下幾行

QUOTE:

Sep 3 08:30:17 UNIX login[1275]: FAILED LOGIN 2 FROM (null) FOR suying,

Authentication failure

Sep 4 17:40:28 UNIX -- suying[2017]: LOGINON pts/1 BY suying FROM

fcceec.www.ec8.pfcc.com.cn

Sep 4 17:40:39 UNIX su(pam_unix)[2048]: session opened for user root by suying(uid=999)

/var/log/syslog

默認RedHat Linux不生成該日誌文件但能夠配置/etc/syslog.conf讓系統生成該日誌文件。它和/etc/log/messages日誌文件不一樣它只記錄警告信息經常是系統出問題的信息因此更應該關注該文件。要讓系統生成該日誌文件在/etc/syslog.conf文件中加上*.warning /var/log/syslog

該日誌文件能記錄當用戶登陸時login記錄下的錯誤口令、Sendmail的問題、su命令執行失敗等信息。下面是一條記錄

QUOTE:

Sep 6 16:47:52 UNIX login(pam_unix)[2384]: check pass; user unknown

/var/log/secure

該日誌文件記錄與安全相關的信息。該日誌文件的部份內容以下

QUOTE:

Sep 4 16:05:09 UNIX xinetd[711]: START: ftp pid=1815 from=127.0.0.1

Sep 4 16:05:09 UNIX xinetd[1815]: USERID: ftp OTHER :root

Sep 4 16:07:24 UNIX xinetd[711]: EXIT: ftp pid=1815 duration=135(sec)

Sep 4 16:10:05 UNIX xinetd[711]: START: ftp pid=1846 from=127.0.0.1

Sep 4 16:10:05 UNIX xinetd[1846]: USERID: ftp OTHER :root

Sep 4 16:16:26 UNIX xinetd[711]: EXIT: ftp pid=1846 duration=381(sec)

Sep 4 17:40:20 UNIX xinetd[711]: START: telnet pid=2016 from=10.152.8.2

/var/log/lastlog

該日誌文件記錄最近成功登陸的事件和最後一次不成功的登陸事件由login生成。在每次用戶登陸時被查詢該文件是二進制文件須要使用 lastlog命令查看根據UID排序顯示登陸名、端口號和上次登陸時間。若是某用戶歷來沒有登陸過就顯示爲"**Never logged in**"。該命令只能以root權限執行。簡單地輸入lastlog命令後就會看到相似以下的信息

QUOTE:

UsernamePort From Latest

root tty2 Tue Sep 3 08:32:27 +0800 2002

bin **Never logged in**

daemon **Never logged in**

adm **Never logged in**

lp **Never logged in**

系統帳戶諸如bin、daemon、adm、uucp、mail等決不該該登陸若是發現這些帳戶已經登陸就說明系統可能已經被入侵了。若發現記錄的時間不是用戶上次登陸的時間則說明該用戶的帳戶已經泄密了。

/var/log/wtmp

該日誌文件永久記錄每一個用戶登陸、註銷及系統的啓動、停機的事件。所以隨着系統正常運行時間的增長該文件的大小也會愈來愈大增長的速度取決於系統用戶登陸的次數。該日誌文件能夠用來查看用戶的登陸記錄last命令就經過訪問這個文件得到這些信息並以反序從後向前顯示用戶的登陸記錄last也能根據用戶、終端 tty或時間顯示相應的記錄。

命令last有兩個可選參數

last -u 用戶名顯示用戶上次登陸的狀況。

last -t 天數顯示指定天數以前的用戶登陸狀況。

/var/run/utmp

該日誌文件記錄有關當前登陸的每一個用戶的信息。所以這個文件會隨着用戶登陸和註銷系統而不斷變化它只保留當時聯機的用戶記錄不會爲用戶保留永久的記錄。系統中須要查詢當前用戶狀態的程序如 who、w、users、finger等就須要訪問這個文件。該日誌文件並不能包括全部精確的信息由於某些突發錯誤會終止用戶登陸會話而系統沒有及時更新 utmp記錄所以該日誌文件的記錄不是百分之百值得信賴的。

以上說起的3個文件/var/log/wtmp、/var/run/utmp、/var/log/lastlog是日誌子系統的關鍵文件都記錄了用戶登陸的狀況。這些文件的全部記錄都包含了時間戳。這些文件是按二進制保存的故不能用less、cat之類的命令直接查看這些文件而是須要使用相關命令經過這些文件而查看。

每次有一個用戶登陸時login程序在文件lastlog中查看用戶的UID。若是存在則把用戶上次登陸、註銷時間和主機名寫到標準輸出中而後 login程序在lastlog中記錄新的登陸時間打開utmp文件並插入用戶的utmp記錄。該記錄一直用到用戶登陸退出時刪除。utmp文件被各類命令使用包括who、w、users和finger。

下一步login程序打開文件wtmp附加用戶的utmp記錄。當用戶登陸退出時具備更新時間戳的同一utmp記錄附加到文件中。wtmp文件被程序last使用。

/var/log/xferlog

該日誌文件記錄FTP會話能夠顯示出用戶向FTP服務器或從服務器拷貝了什麼文件。該文件會顯示用戶拷貝到服務器上的用來入侵服務器的惡意程序以及該用戶拷貝了哪些文件供他使用。

該文件的格式爲第一個域是日期和時間第二個域是下載文件所花費的秒數、遠程系統名稱、文件大小、本地路徑名、傳輸類型aASCIIb二進制、與壓縮相關的標誌或tar或"_"若是沒有壓縮的話、傳輸方向相對於服務器而言i表明進o表明出、訪問模式a匿名g輸入口令r真實用戶、用戶名、服務名一般是ftp、認證方法lRFC931或0認證用戶的ID或"*"。下面是該文件的一條記錄

QUOTE:

Wed Sep 4 08:14:03 2002 1 UNIX 275531

/var/ftp/lib/libnss_files-2.2.2.so b _ o a -root@UNIX ftp 0 * c

/var/log/Xfree86.x.log

該日誌文件記錄了X-Window啓動的狀況。

另外除了/var/log/外惡意用戶也可能在別的地方留下痕跡應該注意如下幾個地方root 和其餘帳戶的shell歷史文件用戶的各類郵箱如.sent、mbox以及存放在/var/spool/mail/ 和/var/spool/mqueue中的郵箱臨時文件/tmp、/usr/tmp、/var/tmp隱藏的目錄其餘惡意用戶建立的文件一般是以 "."開頭的具備隱藏屬性的文件等。

/var/log/kernlog

RedHat Linux默認沒有記錄該日誌文件。要啓用該日誌文件必須在/etc/syslog.conf文件中添加一行kern.* /var/log/kernlog 。這樣就啓用了向/var/log/kernlog文件中記錄全部內核消息的功能。該文件記錄了系統啓動時加載設備或使用設備的狀況。通常是正常的操做但若是記錄了沒有受權的用戶進行的這些操做就要注意由於有可能這就是惡意用戶的行爲。下面是該文件的部份內容

QUOTE:

Sep 5 09:38:42 UNIX kernel: NET4: Linux TCP/IP 1.0 for NET4.0

Sep 5 09:38:42 UNIX kernel: IP Protocols: ICMP, UDP, TCP, IGMP

Sep 5 09:38:42 UNIX kernel: IP: routing cache hash table of 512 buckets, 4Kbytes

查看日誌文件

絕大多很多天志文件是純文本文件每一行就是一個消息。只要是在Linux下可以處理純文本的工具都能用來查看日誌文件。可使用 cat、tac、more、less、tail 和 grep 進行查看。

日誌文件的格式

下面以 /var/log/messages 爲例說明其日誌文件的格式。該文件中每一行表示一個消息並且都由四個域的固定格式組成

時間標籤(Timestamp)表示消息發出的日期和時間。

主機名(Hostname)表示生成消息的計算機的名字。

生成消息的子系統的名字能夠是「Kernel」表示消息來自內核或者是進程的名字表示發出消息的程序的名字。在方括號裏的是進程的PID。

消息(Message)即消息的內容。

# syslog 發出的消息說明了守護進程已經在 Dec 1603:32:41 從新啓動了。

Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart.

# 在 Dec 1900:20:56 啓動了內核日誌 klogd

Dec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started.

# 在 Dec 1900:21:01 啓動了xinetd

Dec 19 00:21:01 cnetos5 xinetd[2418]: xinetd Version 2.3.14 started with libwrap

loadavg labeled-networking options compiled in.

實際上在 /var/log/message 文件中的消息都不是特別重要或緊急的

查看非文本格式日誌文件

一些日誌文件是二進制文件須要使用相應的命令進行讀取

lastlog

使用 lastlog 命令來檢查某特定用戶上次登陸的時間並格式化輸出上次登陸日誌 /var/log/lastlog 的內容。例如

wKiom1MTfqrAaKZOAAEZ2B5UGuA347.jpg

Linux系統中記錄用戶登入登出狀況的文件是wtmp文件記錄當前登陸用戶狀況的文件是utmp文件它們是Linux系統安全的重要文件。這兩個文件中全部的日誌都記錄了準確的時間。

Utmp以及wtmp文件都是二進制文件不能經過tailcatvi或者重定向進行編輯。系統管理員須要經過命令獲取這兩個文件中包含的信息其中utmp文件中包含的信息能夠經過who、w、users和finger獲取 wtmp文件中包含的信息能夠經過last和ac獲取。

last

last 命令往回搜索 /var/log/wtmp 來顯示自從文件第一次建立以來登陸過的用戶

wKiom1MTfySACMLCAAH_eWLFklQ210.jpg

lastb

lastb 命令搜索 /var/log/btmp 來顯示登陸未成功的信息。例如

wKiom1MTf3-DkczHAADaP39u_N8043.jpg

who

who 命令查詢 wtmp 文件並報告當前登陸的每一個用戶。who 命令的缺省輸出包括用戶名、終端類型、登陸日期及遠程主機。例如

wKioL1MTf4_xrtyWAAB399sMAls456.jpg

who

經過該命令系統管理員能夠發現當前系統存在哪些不法用戶找到非法使用用戶後能夠經過多種手段限制該用戶或者該登陸IP繼續使用服務器。

在指明wtmp狀況下經過who命令能夠查詢到全部之前的記錄。下面是命令who /var/log/wtmp的運行結果顯示了自從wtmp文件建立、刪改以來的每一次登陸。

[root@ntbak ~]# who /var/log/wtmp

ntbackup pts/0 2011-06-03 14:18 (10.35.8.242)

root pts/3 2011-06-03 15:24 (10.35.117.80)

root pts/3 2011-06-03 15:48 (10.35.117.80)

ntbackup pts/0 2011-06-03 17:15 (10.35.8.242)

ntbackup pts/0 2011-06-07 10:15 (10.35.117.73)

ntbackup pts/3 2011-06-07 10:26 (10.35.117.73)

ntbackup pts/0 2011-06-07 10:45 (10.35.117.73)

ntbackup pts/4 2011-06-07 12:43 (10.35.117.73)

ntbackup pts/5 2011-06-07 13:41 (10.35.117.73)

ntbackup pts/0 2011-06-07 15:41 (10.35.117.73)

root pts/0 2011-06-07 21:12 (10.32.171.146)

ntbackup pts/0 2011-06-08 10:39 (10.35.117.73)

ntbackup pts/0 2011-06-09 19:43 (10.35.117.73)

ntbackup pts/0 2011-06-10 08:24 (10.35.117.73)

ntbackup pts/3 2011-06-10 08:34 (10.35.117.73)

ntbackup pts/4 2011-06-10 10:25 (10.35.117.73)

ntbackup pts/0 2011-06-10 12:34 (10.35.117.73)

ntbackup pts/0 2011-06-13 08:34 (10.35.117.73)

root pts/0 2011-06-13 15:42 (flashieldsdell.nt.jsNaNcc)

root pts/0 2011-06-14 14:44 (10.35.117.80)

root pts/0 2011-06-14 19:06 (10.35.117.80)

用於入侵檢測日誌

須要檢查的系統日誌文件主要包括通常信息日誌、網絡鏈接日誌、文件傳輸日誌以及用戶登陸日誌等。在檢查這些日誌時要特別注意時間記載分析日誌產生的時間是否合理。

可疑的日誌記錄

非正常時間凌晨的用戶登陸;

關鍵日誌記錄損壞尤爲是記錄用戶登陸登出信息的wtmp文件;

非正常IP的用戶登陸;

用戶登陸失敗甚至一再嘗試登陸並失敗的日誌記錄;

非正常的超級用戶權限切換su指令;

非正常的控制進程啓動或重啓記錄。

檢查步驟

users命令在一行打印出當前登陸的用戶信息每一個用戶名錶明對應一個登陸會話。結合who命令以及進程統計日誌能夠分析黑客僞造這兩個命令的狀況。運行該命令將以下所示:

root@ntbak ~]# users

root root root

[root@ntbak ~]# who

root tty1 2011-03-21 16:59

root pts/0 2011-06-14 19:06 (10.35.117.80)

root pts/2 2011-03-13 14:21 (:1.0)

last命令與who /var/log/wtmp命令輸出結果類似。經過使用以及對比着兩個輸出系統管理員能夠對使用系統的用戶進行審計和考覈及時發現問題解決問題。運行該命令以下所示:

[root@ntbak ~]# last

root pts/0 10.35.117.80 Tue Jun 14 19:06 still logged in

root pts/0 flashieldsdell.n Mon Jun 13 15:42 - 19:21 (03:38)

ntbackup pts/0 10.35.117.73 Mon Jun 13 08:34 - 09:11 (00:37) ……

ntbackup pts/0 10.35.8.242 Fri Jun 3 14:18 - 16:29 (02:11)

若是使用上述命令顯示的信息太多比較難區分能夠經過grep命令或者對last命令指明用戶來顯示其登陸信息便可。例如: 只顯示root的歷史登陸信息則以下所示:

[root@ntbak ~]# last root

root pts/0 10.35.117.80 Tue Jun 14 19:06 still logged in

root pts/0 10.35.117.80 Tue Jun 14 14:44 - 16:58 (02:14)

root pts/0 flashieldsdell.n Mon Jun 13 15:42 - 19:21 (03:38)

root pts/0 10.32.171.146 Tue Jun 7 21:12 - 23:24 (02:11)

root pts/3 10.35.117.80 Fri Jun 3 15:48 - 18:04 (02:16)

root pts/3 10.35.117.80 Fri Jun 3 15:24 - 15:24 (00:00)

ac命令根據系統的wtmp文件中的登入登出信息生成用戶鏈接時間單位小時的報告以下所示

[root@ntbak ~]# ac –d

//ac -d命令,而後按回車鍵,將顯示天天的總的鏈接時間

Jun 3 total 6.68

Jun 7 total 18.89

Jun 8 total 9.92

Jun 9 total 11.00

Jun 10 total 9.28

Jun 13 total 4.26

Today total 2.84

[root@ntbak ~]# ac –p

//ac -p命令,而後按回車鍵,將顯示每一個用戶的總的鏈接時間

ntbackup 51.92

root 10.95

total 62.87

lastlog命令經過格式化輸出上次登陸日誌/var/log/lastlog的內容能夠顯示用戶上次登陸的時間。它能夠顯示登陸用戶名、登陸使用方式tty/pts和上次登陸時間。若是一個用戶從未登陸過則顯示「**Never logged**」。。運行該命令以下所示:

[root@working]# lastlog

UsernamePort From Latest

root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

Linux入侵案列分析

ps一下發現有幾個異常的程序以下圖一所示有一個sendmail程序還有一個異常的SCREEN程序。

wKioL1MTgVLxIKI7AADneIxtWM0532.jpg

用netstat –an看一下發現比較奇怪的端口1985還有一個/dev/gpmctl的數據流之前是沒有過的

wKiom1MTgbTyVUXpAAF1_qo6gfw948.jpg

來到/var/log目錄下看一下secure日誌

從10月9號上午11:01:22開始一直到10月10號的凌晨03:37:33期間不斷有用戶對機器進行ssh的野蠻濫用並且從日誌中能夠看到進行弱口令帳號測試的不是一臺機器而是來自幾臺不一樣的機器

140.123.230.*(臺灣) 211.173.47.* (韓國) 164.164.149.* (印度) 210.118.26.* 韓國 217.199.173.* 英國 218.5.117.* 福建泉州 211.90.95.* 江蘇聯通

wKioL1MTgcCShJJnAAEC5f5b2_8185.jpg

用last日誌看一下過去的登錄記錄以下圖四顯示能夠看出從域名floman2.mediasat登錄用nslookup查詢居然找不到這個域名。

wKiom1MTghuA7FrlAAFPfzRv-xI494.jpg

再看看wtmp日誌用who wtmp看到以下圖五的日誌這裏顯示的域名是floman2.mediasat.ro用nslookup能夠查到域名服務器是位於羅馬尼亞dns服務器ip爲193.231.170.*。

wKioL1MTgk3A0dpdAAC_hKtpPRA860.jpg

咱們來定位一下在圖一中發現的sendmail程序的來源發現sendmail是位於/etc/log.d/scripts/service目錄下應該就是sendmail腳本就用來轉發所謂的垃圾郵件。只需將這些腳本刪除就能夠解決發送垃圾郵件的問題。可是服務器中有其它異常的進程被別人hacking了這個解決起來就困難多了。

wKioL1MTgo_xuYYbAAB-7v2iRo4340.jpg

再來定位一下圖一中異常的screen程序用命令 Locate screen來定位輸出以下圖所示看來有不少文件要查啊。從圖中能夠看出「.screen」以.開始的目錄這應該是一個隱藏的目錄。

wKiom1MTgu6iPoeDAADWNJv0QHc139.jpg

來到/home/upload目錄用ls命令看不到果然是隱藏了。隱藏也沒有關係能夠直接進入.screen目錄。

wKioL1MTgvSQhwnrAABXu0ZX5eE066.jpg

用ls la 發現有不少爲0字節的文件以下圖十二所示類型以p開頭的這是管道文件管道是linux下的一個重要概念傳統的文件是把一個程序的輸出通過暫存文件轉換成另外一個程序的輸入而管道的做用是把一個程序的輸出接到另外一個程序的輸入而不通過任何中間文件。管道的特性也決定了咱們不可以看到這裏文件的內容。

wKioL1MTgxrjGAYaAADg5c1_jhM400.jpg

進入到/home/upload中的文件名爲空的隱藏目錄發現其中有2個子目錄以下圖十所示。

wKiom1MTg3PjPMyjAACPOdgpWoE181.jpg

進入到scan目錄裏面的內容以下圖十一所示其中go.sh和s是腳本

目錄scan裏的程序實現對局域網內開放某個端口的機器掃描並保存掃描結果目錄mech裏是一個bot程序當運行裏面的bash程序時會自動鏈接到IRC聊天室。

wKioL1MTg3mAII2YAABcAbARyE8512.jpgwKioL1MTg3uQgR0qAABymIYeiCk045.jpg

在啓動文件中咱們發現一個異常的程序

wKioL1MTg6GwBNDqAAFKxQKZMS0511.jpg

原本覺得刪除了啓動腳本中的異常程序以及upload中的隱藏文件夾’‘和’.screen’和/etc/log.d這個目錄就好了後來在檢查日誌messages的時候發現一個異常以下圖。

wKiom1MTg_Wg60L_AAGcI1zmsq0724.jpg

發現一個uid0的bone用戶uid0不是管理員用戶嗎咱們到/etc/passwd中發現果然是存在一個root用戶bone,如圖十五所示說明入侵者已經取得了系統的最高權限。將其刪除。

wKioL1MTg_SQtYvMAACzU5eNQqE339.jpg

由於機器中存在sendmail的腳本故有郵件存在目錄爲/var/spool/mail經查看發現存在以下的幾個文件都是爲空。刪除這個目錄Rm –rf mail注意到/etc/passwd存在一個mail用戶將這個刪除。

經過調查分析和日誌取證找出異常程序和入侵賬戶。從咱們後面的分析日誌中分析得出系統被入侵的緣由是由於存在一個存在密碼爲passwd的弱口令賬號入侵者經過探測到這個弱口令賬戶遠程登錄到系統而且利用一些方法提升了權限最後獲得了管理員root權限。

其實在服務器部署完後安全工做咱們也要作的很是到位,避免留過多的隱患給有壞心眼的人。以前我有發表過一遍安所有署方面的帖子,連接是:http://ks0101.blog.51cto.com/8639108/1365721有興趣能夠看看,會起到很大做用的。

相關文章
相關標籤/搜索