今日公司有台SERVER被入侵,修改了帳號密碼,應該也有植入木馬程式………還好前陣子把環境移植到 VM ESXi Server環境,對系統做了備份,故今日很快的恢復系統運作,但對於被入侵的Server,看不出端倪,因為系統日誌檔被刪除了,但對外防火牆的記錄看不出有任何對該台Server異常連線的記錄,故有點擔心是由內部引起的………

已請管理的同事對該台Server做了一些安全上的設定:
1.找時間關閉Guest,要連線請都使用帳號密碼連線(無AD就將使用者本機帳號密碼也建立一份在SERVER上),分享目錄請把Everyone權限拿掉,改特定帳號密碼。
2.關閉奇怪的帳號 kurt$ , 這帳號既然有本機Admin權限。怎麼來的也不清楚,只知道是廠商裝完系統後出現的帳號。

找了一下怎麼備份日誌檔,雖然並不能百分百記錄到駭客入侵前所有記錄,但多一份備份就多一份機會找出問題點,當然希望以後是用不到才是。

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

文章出處:http://forum.slime.com.tw/thread65618.html

日誌對於系統安全的作用是顯而易見的,無論是網路管理員還是黑客都非常重視日誌,一個有經驗的管理員往往能夠迅速通過日誌瞭解到系統的安全效能,而一個聰明的黑客往往會在入侵成功 後迅速清除掉對自己不利的日誌。下面我們就來討論一下日誌的安全和新增問題。
  一:概述:
  Windows 2000的系統日誌文件有應用程式日誌,安全日誌、系統日誌、DNS伺服器日誌等等,應用程式日誌、安全日誌、系統日誌、DNS日誌預設位置:%systemroot%\system32\config,預設文件大小512KB。
  安全日誌文件:%systemroot%\system32\config\SecEvent.EVT
  系統日誌文件:%systemroot%\system32\config\SysEvent.EVT
  應用程式日誌文件:%systemroot%\system32\config\AppEvent.EVT
  這些LOG文件在註冊表中的:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog有的管理員很可能將這些日誌重定位。其中EVENTLOG下面有很多的子表,裡面可查到以上日誌的定位目錄。
  二:作為網路管理員:
  1.日誌的安全配置:
  預設的條件下,日誌的大小為512KB大小,如果超出則會報錯,並且不會再記錄任何日誌。所以首要工作是更改預設大小,具體方法:註冊表中HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog對應的每個日誌如系統,安全,應用程式等均有一個maxsize子鍵,修改即可。
  下面給出一個來自微軟站點的一個指令碼,利用VMI來設定日誌最大25MB,並允許日誌自行覆蓋14天前的日誌:
該指令碼利用的是WMI對像, WMI(Windows Management Instrumentation)技術是微軟提供的Windows下的系統系統管理工具。通過該工具可以在本機或者管理客戶端系統中幾乎一切的信息。很多專業的網路系統管理工具都是關於WMI開發的。該工具在Win2000以及WinNT下是標準工具,在Win9X下是擴展安裝選項。所以以下的程式碼在2000以上均可執行成功。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!\\" & _
strComputer & "\root\cimv2") \'獲得VMI對像
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For each objLogfile in colLogFiles
strLogFileName = objLogfile.Name
Set wmiSWbemObject = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!\\.\root\cimv2:" _
& "Win32_NTEventlogFile.Name=\'" & strLogFileName & "\'")
wmiSWbemObject.MaxFileSize = 2500000000
wmiSWbemObject.OverwriteOutdated = 14
wmiSWbemObject.Put_
Next
  將上述指令碼用記事本儲存碟為vbs為後面的即可使用。
  另外需要說明的是程式碼中的strComputer="."在Windows指令碼中的含義相當於localhost,如果要在遠端主機上執行程式碼,只需要把"."改動為主機名,當然首先得擁有對方主機的管理員權限並建立IPC連接.本文中的程式碼所出現的strComputer均可作如此改動。
  2. 日誌的查詢與制作備份:
  一個優秀的管理員是應該養成制作備份日誌的習慣,如果有條件的話還應該把日誌轉存到制作備份電腦上或直接轉儲到列印機上,在這裡推薦微軟的resourceKit工具箱中的dumpel.exe,他的常用方法:
  dumpel -f filename -s \\server -l log
  -f filename 輸出日誌的位置和檔案名
  -s \\server 輸出遠端電腦日誌
  -l log log 可選的為system,security,application,可能還有別的如DNS等.
  如要把目標伺服器server上的系統日誌轉存為backupsystem.log可以用以下格式:
  dumpel \\server -l system -f backupsystem.log
  再利用計劃工作可以實現定期制作備份系統日誌。
  另外利用指令碼編程的VMI對象也可以輕而易舉的實現日誌制作備份:
下面給出制作備份application日誌的程式碼:
backuplog.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2") \'獲得 VMI對像
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName=\'Application\'") \'獲取日誌對像中的應用程式日誌
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("f:\application.evt") \'將日誌制作備份為f:\application.evt
If errBackupLog <> 0 Then
Wscript.Echo "The Application event log could not be backed up."
else Wscript.Echo "success backup log"
End If
Next
  程序說明:如果制作備份成功將視窗提示:"success backup log" 否則提示:"The Application event log could not be backed up",此處制作備份的日誌為application 制作備份位置為f:\application.evt,可以自行修改,此處制作備份的格式為evt的原始格式,用記事本開啟則為亂碼,這一點他不如dumpel用得方便。
  三:作為黑客
  1、日至清除
  一個入侵系統成功後的黑客第一件事便是清除日誌,如果以圖形界面遠端控制對方機器或是從終端登入進入,刪除日誌不是一件困難的事,由於日誌雖然也是作為一種服務執行,但不同於http,ftp這樣的服務,可以在指令行下先停止,再刪除,在m指令行下用net stop eventlog是不能停止的,所以有人認為在指令行下刪除日誌是很困難的,實際上不是這樣,下面介紹幾種方法:
  (1)借助第三方工具:如小榕的elsave.exe遠端清除system,applicaton,security的軟體,使用方法很簡單,首先利用獲得的管理員帳號與對方建立ipc會話,net use \\ip pass /user: user
然後指令行下:elsave -s \\ip -l application -C,這樣就刪除了安全日誌。
  其實利用這個軟體還可以進行制作備份日誌,只要加一個參數 -f filename就可以了,在此不再詳述。
  (2)利用指令碼編程中的VMI,也可以實現刪除日誌,首先獲得object對象,然後利用其clearEventLog()方法刪除日誌。來源碼:
cleanevent.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName=\'"&logs&"\'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
next
在上面的程式碼中,建立一個陣列,為application,security,system如果還有其他日誌也可以加入陣列。
  然後用一個for 循環,刪除陣列中的每一個元素,即各個日誌.
  2、新增日誌:
  刪除日誌後,任何一個有頭腦的管理員面對空空的日誌,馬上就會反應過來被入侵了,所以一個聰明的黑客的學會如何偽造日誌:
  (1)利用指令碼編程中的eventlog方法是創造日誌變得非常簡單;下面看一個程式碼
  createlog.vbs
  set ws=wscript.createobject("Wscript.shell")
  ws.logevent 0 ,"write log success" \'新增一個成功執行日誌
  這個程式碼很容易閱讀,首先獲得wscript的一個shell對象,然後利用shell對象的logevent方法
  logevent的用法:logevent eventtype,"description" [,remote system]
  eventtype 為日誌類型,可以使用的如下:0 代表成功執行;1 執行出錯;2 警告;4 信息;8 成功審計;16 故障審計
  所以上面程式碼中,把0改為1,2,4,8,16均可,引號下的為日誌描述。
  這種方法寫的日誌有一個缺點,只能寫到應用程式日誌,而且日至來源只能為wsh,即Windows scripting host,所以不能起太多的隱蔽作用。
  (2)微軟為了方便系統管理員和程序員,在xp下有個新的指令行工具,eventcreate.exe,利用它,新增日誌更加簡單。
  eventcreate -s server -l logname -u username -p password -so source -t eventtype -id id -d description
  含義:-s 為遠端主機新增日誌: -u 遠端主機的用戶名 -p 遠端主機的用戶密碼
  -l 日誌;可以新增system和application 不能新增security日誌,
  -so 日誌來源,可以是任何日誌 -t 日誌類型 如information信息,error錯誤,warning 警告,
  -d 日誌描述,可以是任意語句 -id 自主日誌為1-1000之內
  例如,我們要本機新增一個系統日誌,日至來源為admin,日誌類型是警告,描述為"this is a test",事件ID為500
  可以用如下參數
  eventcreate -l system -so administrator -t warning -d "this is a test" -id 500
  這個工具不能新增安全日誌。至於如何新增安全日誌,希望大家能夠找到一個好方法!

No Money No Hone 發表在 痞客邦 PIXNET 留言(0) 人氣()