版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深度解析CentOS通过日志反查入侵昨 天晚上群里有一个朋友的服务器发现有入侵的痕迹后来处理解决但是由于对方把日志都清理了无疑给排查工作增加了许多难度。刚好手里有些资料我就整理整理贴出 来分享一下。其实日志的作用是非常大的。学会使用通过日志来排查解决我们工作中遇到的一些问题是很有必要的。下面就一一道来。大纲Linux日志系统简介Linux日志分析Linux日志入侵发现实例分析Linux日志系统简介日志的主要用途是系统审计、监测追踪和分析统计。为了保证 Linux 系统正常运行、准确解决遇到的各种各样的系统问题认真地读取日志文件是管理员的一项非常重要的任务。UNIX/ Linux采用了syslo
2、g工具来实现此功能如果配置正确的话所有在主机上发生的事情都会被记录下来不管是好的还是坏的。什么是 syslogLinux 内核由很多子系统组成包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区于是就有了 syslog。syslog 是一个综合的日志记录系统。它的主要功能是方便日志管理和分类存放日志。 syslog 使程序设计者从繁重的、机械的编写日志文件代码的工作中解脱出来使管理员更好地控制日志的记录过程。syslog 能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如由于核心信息
3、更重要且需要有规律地阅读以确定问题出在哪里所以要把核心信息与其他信息分开来单独定向到一个分离的文件中。管理员可以通过编辑 /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# 除了
4、 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/lo
5、g/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#
6、 将 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.noticesyslogd配置设备级别动作级别字段动作字段常见的日志文件日志系统主要分为三类系统接入日志:多个程序会记录
7、该日志记录到/var/log/wtmp和/var/run/utmp文件中telnet、ssh等程序会更新wtmp和utmp文件系统管理员可以根据该日志跟踪到谁在何时登录到系统。进程统计日志:linux内核记录该日志当一个进程终止时进程统计文件pacct或acct中会进行记录。进程统计日志可以供系统管理员分析系统使用者对系统进行的配置以及对文件进行的操作。错误日志:Syslog日 志系统已经被许多设备兼容Linux的syslog可以记录系统事件主要由syslogd程序执行Linux系统下各种进程、用户程序和内核都可以通过 Syslog文件记录重要信息错误日志记录在/var/log/message
8、s中。有许多Linux/Unix程序创建日志。像HTTP和FTP这样提 供网络服务的服务器也保持详细的日志。常用的日志文件解析/var/log/boot.log该文件记录了系统在引导过程中发生的事件就是Linux系统开机自检过程显示的信息。/var/log/cron该 日志文件记录crontab守护进程crond所派生的子进程的动作前面加上用户、登录时间和PID以及派生出的进程的动作。CMD的一个动作是cron 派生出一个调度进程的常见情况。REPLACE替换动作记录用户对它的cron文件的更新该文件列出了要周期性执行的任务调度。 RELOAD动作在REPLACE动作后不久发生这意味着cron
9、注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到 一些反常的情况。/var/log/maillog该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。QUOTE:Sep 4 17:23:52 UNIX sendmail1950: g849Npp01950: from=root, size=25,class=0, nrcpts=1,msgid=, relay=rootlocalhostSep 4 17:23:55 UNIX sendmail1950: g849Npp01950: to=lzy
10、,ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:03, mailer=esmtp, pri=30025,relay=. , dsn=2.0.0, stat=Sent (Message queued)/var/log/messages该日志文件是许多进程日志文件的汇总从该文件可以看出任何入侵企图或成功的入侵。如以下几行QUOTE:Sep 3 08:30:17 UNIX login1275: FAILED LOGIN 2 FROM (null) FOR suying,Authentication failureSep 4 17
11、:40:28 UNIX - suying2017: LOGINON pts/1 BY suying FROMSep 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文件中加上*.
12、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 xinetd711: START: ftp pid=1815 from=Sep 4 16:05:09 UNIX xinetd1815: U
13、SERID: ftp OTHER :rootSep 4 16:07:24 UNIX xinetd711: EXIT: ftp pid=1815 duration=135(sec)Sep 4 16:10:05 UNIX xinetd711: START: ftp pid=1846 from=Sep 4 16:10:05 UNIX xinetd1846: USERID: ftp OTHER :rootSep 4 16:16:26 UNIX xinetd711: EXIT: ftp pid=1846 duration=381(sec)Sep 4 17:40:20 UNIX xine
14、td711: START: telnet pid=2016 from=/var/log/lastlog该 日志文件记录最近成功登录的事件和最后一次不成功的登录事件由login生成。在每次用户登录时被查询该文件是二进制文件需要使用 lastlog命令查看根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过就显示为*Never logged in*。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似如下的信息QUOTE:UsernamePort From Latestroot tty2 Tue Sep 3 08:32:27 +0800
15、2002bin *Never logged in*daemon *Never logged in*adm *Never logged in*lp *Never logged in*系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录如果发现这些账户已经登录就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间则说明该用户的账户已经泄密了。/var/log/wtmp该 日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加该文件的大小也会越来越大增加的速度取决于系统用户登录的 次数。该日志文件可以用来查看用户的登录记录last
16、命令就通过访问这个文件获得这些信息并以反序从后向前显示用户的登录记录last也能根据用户、终端 tty或时间显示相应的记录。命令last有两个可选参数last -u 用户名显示用户上次登录的情况。last -t 天数显示指定天数之前的用户登录情况。/var/run/utmp该 日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化它只保留当时联机的用户记录不会为用户保留永久的记录。系统 中需要查询当前用户状态的程序如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息因为某些突发错误会终止用户登录会话而系统没有及时更新
17、 utmp记录因此该日志文件的记录不是百分之百值得信赖的。以 上提及的3个文件/var/log/wtmp、/var/run/utmp、/var/log/lastlog是日志子系统的关键文件都记录了用户登录的 情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的故不能用less、cat之类的命令直接查看这些文件而是需要使用相关命令通过这些文 件而查看。每 次有一个用户登录时login程序在文件lastlog中查看用户的UID。如果存在则把用户上次登录、注销时间和主机名写到标准输出中然后 login程序在lastlog中记录新的登录时间打开utmp文件并插入用户的utmp记录。该记录一
18、直用到用户登录退出时删除。utmp文件被各种命 令使用包括who、w、users和finger。下一步login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。/var/log/xferlog该日志文件记录FTP会话可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序以及该用户拷贝了哪些文件供他使用。该文件的格式为第一个域是日期和时间第二个域是下载文 件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型aASCIIb二进制、与压缩相关的标志
19、或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 -rootUNIX ftp 0 * c/var/log/Xfree86.x.log该日志文件记录了X-Window启动的情况。另 外除了/var/log/外恶意用户也可能在别的地方留下痕迹应该注意以下几个地方root 和
20、其他账户的shell历史文件用户的各种邮箱如.sent、mbox以及存放在/var/spool/mail/ 和/var/spool/mqueue中的邮箱临时文件/tmp、/usr/tmp、/var/tmp隐藏的目录其他恶意用户创建的文件通常是以 .开头的具有隐藏属性的文件等。/var/log/kernlogRedHat Linux默 认没有记录该日志文件。要启用该日志文件必须在/etc/syslog.conf文件中添加一行kern.* /var/log/kernlog 。这样就启用了向/var/log/kernlog文件中记录所有内核消息的功能。该文件记录了系统启动时加载设备或使用设备的情况。
21、一般是正常的操作但 如果记录了没有授权的用户进行的这些操作就要注意因为有可能这就是恶意用户的行为。下面是该文件的部分内容QUOTE:Sep 5 09:38:42 UNIX kernel: NET4: Linux TCP/IP 1.0 for NET4.0Sep 5 09:38:42 UNIX kernel: IP Protocols: ICMP, UDP, TCP, IGMPSep 5 09:38:42 UNIX kernel: IP: routing cache hash table of 512 buckets, 4Kbytes查看日志文件绝大多数日志文件是纯文本文件每一行就是一个消息。只
22、要是在Linux下能够处理纯文本的工具都能用来查看日志文件。可以使用 cat、tac、more、less、tail 和 grep 进行查看。日志文件的格式下面以 /var/log/messages 为例说明其日志文件的格式。该文件中每一行表示一个消息而且都由四个域的固定格式组成时间标签(Timestamp)表示消息发出的日期和时间。主机名(Hostname)表示生成消息的计算机的名字。生成消息的子系统的名字可以是“Kernel”表示消息来自内核或者是进程的名字表示发出消息的程序的名字。在方括号里的是进程的PID。消息(Message)即消息的内容。# syslog 发出的消息说明了守护进程已经
23、在 Dec 1603:32:41 重新启动了。Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart.# 在 Dec 1900:20:56 启动了内核日志 klogdDec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started.# 在 Dec 1900:21:01 启动了xinetdDec 19 00:21:01 cnetos5 xinetd2418: xinetd Version 2.3.14 started with libwraploadavg labeled
24、-networking options compiled in.实际上在 /var/log/message 文件中的消息都不是特别重要或紧急的查看非文本格式日志文件一些日志文件是二进制文件需要使用相应的命令进行读取lastlog使用 lastlog 命令来检查某特定用户上次登录的时间并格式化输出上次登录日志 /var/log/lastlog 的内容。例如Linux系统中记录用户登入登出情况的文件是wtmp文件记录当前登录用户情况的文件是utmp文件它们是Linux系统安全的重要文件。这两个文件中所有的日志都记录了准确的时间。Utmp以及wtmp文件都是二进制文件不能通过tailcatvi或者重
25、定向进行编辑。系统管理员需要通过命令获取这两个文件中包含的信息其中utmp文件中包含的信息可以通过who、w、users和finger获取 wtmp文件中包含的信息可以通过last和ac获取。lastlast 命令往回搜索 /var/log/wtmp 来显示自从文件第一次创建以来登录过的用户lastblastb 命令搜索 /var/log/btmp 来显示登录未成功的信息。例如whowho 命令查询 wtmp 文件并报告当前登录的每个用户。who 命令的缺省输出包括用户名、终端类型、登录日期及远程主机。例如who通过该命令系统管理员可以发现当前系统存在哪些不法用户找到非法使用用户后可以通过多种
26、手段限制该用户或者该登录IP继续使用服务器。在指明wtmp情况下通过who命令可以查询到所有以前的记录。下面是命令who /var/log/wtmp的运行结果显示了自从wtmp文件创建、删改以来的每一次登录。rootntbak # who /var/log/wtmpntbackup pts/0 2011-06-03 14:18 (42)root pts/3 2011-06-03 15:24 (0)root pts/3 2011-06-03 15:48 (0)ntbackup pts/0 2011-06-03 17:15 (10.35
27、.8.242)ntbackup pts/0 2011-06-07 10:15 (3)ntbackup pts/3 2011-06-07 10:26 (3)ntbackup pts/0 2011-06-07 10:45 (3)ntbackup pts/4 2011-06-07 12:43 (3)ntbackup pts/5 2011-06-07 13:41 (3)ntbackup pts/0 2011-06-07 15:41 (3)root pts/0 2011-0
28、6-07 21:12 (46)ntbackup pts/0 2011-06-08 10:39 (3)ntbackup pts/0 2011-06-09 19:43 (3)ntbackup pts/0 2011-06-10 08:24 (3)ntbackup pts/3 2011-06-10 08:34 (3)ntbackup pts/4 2011-06-10 10:25 (3)ntbackup pts/0 2011-06-10 12:34 (
29、3)ntbackup pts/0 2011-06-13 08:34 (3)root pts/0 2011-06-13 15:42 (flashieldsdell.nt.jsNaNcc)root pts/0 2011-06-14 14:44 (0)root pts/0 2011-06-14 19:06 (0)用于入侵检测日志需要检查的系统日志文件主要包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时要特别注意时间记载分析日志产生的时间是否合理。可疑的日志记录非正常时间凌晨的用户登录;关键日志记录损坏尤
30、其是记录用户登录登出信息的wtmp文件;非正常IP的用户登录;用户登录失败甚至一再尝试登录并失败的日志记录;非正常的超级用户权限切换su指令;非正常的控制进程启动或重启记录。检查步骤users命令在一行打印出当前登录的用户信息每个用户名代表对应一个登录会话。结合who命令以及进程统计日志可以分析黑客伪造这两个命令的情况。运行该命令将如下所示:rootntbak # usersroot root rootrootntbak # whoroot tty1 2011-03-21 16:59root pts/0 2011-06-14 19:06 (0)root pts/2 201
31、1-03-13 14:21 (:1.0)last命令与who /var/log/wtmp命令输出结果相似。通过使用以及对比着两个输出系统管理员可以对使用系统的用户进行审计和考核及时发现问题解决问题。运行该命令如下所示:rootntbak # lastroot pts/0 0 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 3 Mon Jun 13 08:34 - 09:11 (00:
32、37) ntbackup pts/0 42 Fri Jun 3 14:18 - 16:29 (02:11) 如果使用上述命令显示的信息太多比较难区分可以通过grep命令或者对last命令指明用户来显示其登录信息即可。例如: 只显示root的历史登录信息则如下所示:rootntbak # last rootroot pts/0 0 Tue Jun 14 19:06 still logged in root pts/0 0 Tue Jun 14 14:44 - 16:58 (02:14) root pts/0 flashieldsdel
33、l.n Mon Jun 13 15:42 - 19:21 (03:38) root pts/0 46 Tue Jun 7 21:12 - 23:24 (02:11) root pts/3 0 Fri Jun 3 15:48 - 18:04 (02:16) root pts/3 0 Fri Jun 3 15:24 - 15:24 (00:00)ac命令根据系统的wtmp文件中的登入登出信息生成用户连接时间单位小时的报告如下所示rootntbak # ac d /ac -d命令,然后按回车键,将显示每天的总的连接时间Jun 3 to
34、tal 6.68Jun 7 total 18.89Jun 8 total 9.92Jun 9 total 11.00Jun 10 total 9.28Jun 13 total 4.26Today total 2.84rootntbak # ac p/ac -p命令,然后按回车键,将显示每个用户的总的连接时间 ntbackup 51.92 root 10.95 total 62.87lastlog命令通过格式化输出上次登录日志/var/log/lastlog的内容可以显示用户上次登录的时间。它可以显示登录用户名、登录使用方式tty/pts和上次登录时间。如果一个用户从未登录过则显示“*Never
35、 logged*”。运行该命令如下所示:rootworking# lastlogUsernamePort From Latestroot pts/1 29 二 5月 10 10:13:26 +0800 2005opal pts/1 29 二 5月 10 10:13:26 +0800 2005Linux入侵案列分析ps一下发现有几个异常的程序如下图一所示有一个sendmail程序还有一个异常的SCREEN程序。用netstat an看一下发现比较奇怪的端口1985还有一个/dev/gpmctl的数据流以前是没有过的来到/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.* 江苏联通用last日志看一下过去的登陆记录如下图四显示可以看出从域名floman2.mediasat登陆用nslookup查询竟然找不到这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华师大版初中科学神经调节的基本方式(26课件)
- 华师大版初中科学动物的生殖发育(40课件)
- 技术保密制度
- 客户需求与投诉处理制度
- 福建省龙岩市连城县第一中学2023-2024学年高三1月调研考试数学试题
- 大同市重点中学2024年高三4月月考数学试题
- 算法设计与分析 课件 8.1-分支限界 - 引例 - 0-1背包问题
- 2024年重庆客运从业资格考试题库及答案解析
- 2024年温州客运从业资格考试题
- 2024年客运从业资格证实际操作考试内容
- 脑卒中后吞咽障碍患者进食护理(2023年中华护理学会团体标准)
- DB21T 2885-2023居住建筑节能设计标准
- 压覆矿产资源调查评估规范
- 2023秋二年级上册《小学生数学报》数学学习能力调研卷
- 项目三婴幼儿皮肤疾病预防与照护
- 第3课时-六宫格数独课件
- 教学课件-律师实务
- 亮化工程可行性研究报告
- (完整版)病例演讲比赛PPT模板
- 社科类课题申报工作辅导报告课件
- 2023-2024学年广东省广州市小学语文六年级期末高分试卷详细参考答案解析
评论
0/150
提交评论