在开源技术日益普及的今天,对于 网络安全 从业者而言,能够迅速且准确地判断服务器是否遭受入侵至关重要。本文将结合实战经验,总结几种常见的服务器入侵场景,希望能为大家提供参考。
01
日志信息核查:蛛丝马迹的发现地
入侵者为了掩盖行踪,可能会删除服务器上的日志信息。因此,检查日志文件的完整性是首要任务。你需要确认日志文件是否仍然存在,或者是否被恶意清空。以下是一些常用的命令示例:
[root@hlmcen69n3 ~]# ll -h /var/log/*
-rw-------. 1 root root 2.6K Jul 7 18:31 /var/log/anaconda.ifcfg.log
-rw-------. 1 root root 23K Jul 7 18:31 /var/log/anaconda.log
-rw-------. 1 root root 26K Jul 7 18:31 /var/log/anaconda.program.log
-rw-------. 1 root root 63K Jul 7 18:31 /var/log/anaconda.storage.log
[root@hlmcen69n3 ~]# du -sh /var/log/*
8.0K /var/log/anaconda
4.0K /var/log/anaconda.ifcfg.log
24K /var/log/anaconda.log
28K /var/log/anaconda.program.log
64K /var/log/anaconda.storage.log
通过 ll -h
命令可以查看日志文件的详细信息,包括大小和修改时间。du -sh
命令则可以查看目录的总体大小。如果发现日志文件的大小异常或者缺失,就需要提高警惕。
02
用户账户异常:警惕新增的“陌生人”
入侵者可能会通过创建新的用户账户来长期潜伏。因此,务必仔细检查 /etc/passwd
和 /etc/shadow
文件,这两个文件分别存储了用户的基本信息和加密后的密码。
[root@hlmcen69n3 ~]# ll /etc/pass*
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd-
[root@hlmcen69n3 ~]# ll /etc/sha*
----------. 1 root root 816 Sep 15 11:36 /etc/shadow
----------. 1 root root 718 Sep 15 11:36 /etc/shadow-
重点关注是否有来历不明的用户账户,特别是那些具有高权限的用户。
03
密码文件篡改:防范权限提升的陷阱
除了新增用户,入侵者还可能直接修改现有的用户密码,特别是 root 用户的密码,以达到控制服务器的目的。同样需要查看 /etc/passwd
和 /etc/shadow
文件,检查是否存在异常的修改记录。
[root@hlmcen69n3 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@hlmcen69n3 ~]# more /etc/shadow
root:*LOCK*:14600::::::
bin:*:17246:0:99999:7:::
daemon:*:17246:0:99999:7::
注意观察用户密码字段是否被修改,以及是否存在异常的密码哈希值。
04
登录事件追踪:谁在偷偷摸摸?
通过查看 /var/log/lastlog
日志文件,可以追踪服务器最近的成功登录事件和最后一次不成功的登录事件。
[root@hlmcen69n3 ~]# lastlog
Username Port From Latest
root **Never logged in**
bin **Never logged in**
daemon **Never logged in**
重点关注是否存在异常的登录来源 IP 地址和登录时间。
05
实时在线用户:揪出“潜伏者”
使用 who
命令可以查看当前登录服务器的所有用户,对应的日志文件是 /var/run/utmp
。
[root@hlmcen69n3 ~]# who
stone pts/0 2017-09-20 16:17 (X.X.X.X)
test01 pts/2 2017-09-20 16:47 (X.X.X.X)
确认所有在线用户是否都是授权用户,并检查是否存在异常的终端连接。
06
历史登录用户:不放过任何可疑痕迹
通过 last
命令可以查看服务器创建以来所有登录过的用户,对应的日志文件是 /var/log/wtmp
。
[root@hlmcen69n3 ~]# last
test01 pts/1 X.X.X.X Wed Sep 20 16:50 still logged in
test01 pts/2 X.X.X.X Wed Sep 20 16:47 - 16:49 (00:02)
stone pts/1 X.X.X.X Wed Sep 20 16:46 - 16:47 (00:01)
stone pts/0 X.X.X.X Wed Sep 20 16:17 still logged in
仔细审查历史登录记录,查找是否存在异常的登录用户和登录时间段。
07
连接时长统计:谁在偷偷占用资源?
ac -dp
命令可以查看服务器所有用户的连接时长(小时),同样依赖于 /var/log/wtmp
日志文件。
[root@hlmcen69n3 ~]# ac -dp
stone 11.98
Sep 15 total 11.98
stone 67.06
Sep 18 total 67.06
stone 1.27
test01 0.24
Today total 1.50
对比用户的连接时长,如果发现某个用户的连接时长明显异常,就需要进一步调查。
08
流量异常监控:警惕“暗流涌动”
如果服务器产生了异常流量,可以使用 tcpdump
命令抓取网络包,分析流量情况。也可以使用 iperf
工具进行网络性能测试,评估是否存在异常流量。
09
安全日志分析:从 secure
中寻找线索
/var/log/secure
日志文件记录了与安全相关的事件,例如用户登录、权限验证等。通过分析该文件,可以尝试发现入侵者的蛛丝马迹。
[root@hlmcen69n3 ~]# cat /var/log/secure | grep -i "accepted password"
Sep 20 12:47:20 hlmcen69n3 sshd[37193]: Accepted password for stone from X.X.X.X port 15898 ssh2
Sep 20 16:17:47 hlmcen69n3 sshd[38206]: Accepted password for stone from X.X.X.X port 9140 ssh2
Sep 20 16:46:00 hlmcen69n3 sshd[38511]: Accepted password for stone from X.X.X.X port 2540 ssh2
Sep 20 16:47:16 hlmcen69n3 sshd[38605]: Accepted password for test01 from X.X.X.X port 10790 ssh2
Sep 20 16:50:04 hlmcen69n3 sshd[38652]: Accepted password for test01 from X.X.X.X port 28956 ssh2
重点关注 "Accepted password" 相关的日志,检查是否存在暴力破解、弱口令等安全问题。
10
异常进程排查:揪出幕后黑手
10.1、使用 top
命令识别可疑进程
通过 top
命令可以实时查看服务器的进程状态,重点关注 CPU 占用率、内存占用率异常的进程。
10.2、定位进程的可执行文件
在 /proc
虚拟文件系统目录下,可以找到每个进程对应的可执行文件。
[root@hlmcen69n3 ~]# ll /proc/1850/ | grep -i exe
lrwxrwxrwx. 1 root root 0 Sep 15 12:31 exe -> /usr/bin/python
[root@hlmcen69n3 ~]# ll /usr/bin/python
-rwxr-xr-x. 2 root root 9032 Aug 18 2016 /usr/bin/python
通过检查可执行文件的路径和属性,可以判断进程是否合法。
11
文件恢复:亡羊补牢,犹未晚矣
如果确认服务器已经被入侵,并且重要文件被删除,可以尝试找回被删除的文件。
11.1、文件删除原理
当进程打开某个文件时,即使该文件被删除,只要进程保持打开状态,文件仍然存在于磁盘中。进程可以通过文件描述符继续读取和写入该文件。
11.2、/proc
文件系统的作用
/proc
目录包含了反映内核和进程树的各种文件,这些文件实际上是内存中的映射,而不是磁盘上的真实文件。lsof
程序可以利用这些信息来显示进程的文件描述符和相关的文件名。
11.3、文件恢复步骤
当系统中的某个文件被意外删除后,如果还有进程正在访问该文件,就可以通过 lsof
从 /proc
目录下恢复该文件的内容。
例如,假设 /var/log/secure
文件被删除,恢复步骤如下:
- 确认文件已被删除:
[root@hlmcen69n3 ~]# ll /var/log/secure
ls: cannot access /var/log/secure: No such file or directory
- 使用
lsof
命令查看是否有进程打开该文件:
[root@hlmcen69n3 ~]# lsof | grep /var/log/secure
rsyslogd 1264 root 4w REG 8,1 3173904 263917 /var/log/secure (deleted)
- 从上面的信息可以看到 PID 1264(rsyslogd)打开了该文件,并且文件已被标记为删除。可以通过
/proc/1264/fd/4
查看文件内容:
[root@hlmcen69n3 ~]# tail /proc/1264/fd/4
Sep 20 16:47:21 hlmcen69n3 sshd[38511]: pam_unix(sshd:session): session closed for user stone
...
Sep 20 17:18:52 hlmcen69n3 sshd[38790]: Connection closed by 51.15.81.90
- 使用 I/O 重定向将文件内容恢复:
[root@hlmcen69n3 ~]# cat /proc/1264/fd/4 > /var/log/secure
- 再次查看
/var/log/secure
,确认文件已恢复。
对于日志文件和数据库等重要文件,这种恢复方法非常有效。
总结
服务器安全至关重要,希望以上排查方案能帮助大家及时发现并解决安全问题。请务必定期进行安全检查,防患于未然!
```
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************