当我们主持安全检查或安全事件时,我们无法避免检查系统的安全性。在Linux安全检查中,您需要使用相关脚本来全面分析系统的安全性。一方面,您需要尽可能多地收集系统的相关信息,另一方面,当数量很大时,尽可能地提高效率。
Linux的
由于在安全检查中遇到多次检查时有数十台服务器要进行全面检查,如果使用手动脚本,一方面效率低,另一方面,安全检查员需要熟悉要检查的项目。
在这种情况下,我编写了一个Linux安全检查脚本,主要用于以下场景:
Linux主机安全检查;
在Linux主机上发生安全事件时,需要进行全面分析。
该脚本已经完成了一段时间,最近在应急响应小组中进行了讨论。结果发现,这种安全检查是对每个人的强烈需求。因此,检查脚本与每个人共享。分享的目的主要有两个:第一,改善每个人。 Linux安全检查的效率,释放每个人的精力;另一方面,我希望每个人都可以在使用过程中继续发现问题,并不断总结缺失的安全检查项目,以帮助改进检查脚本。因此,如果您在使用过程中有任何问题或建议,请随时与我同步。
首先,检查内容
总体框架
关于Linux安全检查,这里我总结了检查以下内容的主要需求:
(1)系统安全检查(进程,开放端口,连接,日志等)
这篇文章是当前个人脚本实现的功能;
(2)Rootkit
建议使用rootkit kill工具进行检查,例如rkhunter;
(3)Webshell
这种杀戮技术块相对困难,而不是该脚本需要实现的功能。对于此检查,您可以使用D shield进行检查(Linux可以将Web目录挂载到Windows进行检查);
(4)Web日志
(5)流动
这篇文章主要关注主持人的长期流量分析。目前,个人使用tshark实施基本流量分析,相应的改进将在以后进行。流量段可以从威胁情报中提取流量五元组,DNS流量,HTTP流量和数据,以进行深入分析。在后期阶段,个人将进行相关尝试,并在可能的情况下共享内容。2.系统安全检查框架
Image.png
Image.png
其次,实现了这一功能
功能设计
V1.0主要功能用于收集信息
V1.1主要功能分析原始数据并查找可疑或危险物品
V1.2增加了基线检查功能
V1.3可以自动处理相关的危险物品或可疑物品
目前在V1.2版本中,V1.3相关功能在后期得到了改进。
此外,可以对操作执行单击安全检查,并将检查结果保存到机器。只需在主机文本中输入相应的IP,帐户和密码即可。在操作中最小化人工干预。
2.每个脚本函数的描述
下载后整个脚本的目录结构如下:
Checkrulues:部分判断逻辑,目前只有端口的判断逻辑。在后期阶段,流程和应用程序可能存在漏洞等,并且逻辑放在这里用于安全检查。简单的判断逻辑可以直接在buy_linuxcheck.sh中实现。
Buying_linuxcheck.sh:核心检查逻辑;
Del.exp:删除脚本并检查远程服务器上的结果;
Get.exp:获取远程服务器上的安全检查结果;
Hosts.txt:要检查的服务器列表;
Login.sh:一键登录检查,只需要在安全检查期间运行脚本;
Put.exp:将安全检查脚本上传到远程服务器;
Readme.txt:使用相关文档;
Sh.exp:执行远程服务器上的安全检查脚本;
其中一些脚本如下所述。
(1)检查规则
判断逻辑主要放在两个文件中:一个是checkrules,格式是dat,建议在这里放置更复杂的判断逻辑,如下面的TCP危险端口,因为更多,如果放在buy_linuxcheck上。 sh中的代码有点冗长。以下是TCP高风险端口的判断逻辑。它主要基于特洛伊木马使用的端口号。这种判断的逻辑相对简单,可能存在误报。因此,需要进行人工干预分析。
Image.png
(2)buy_linuxcheck.sh
核心功能集合和判断逻辑,更简单的判断逻辑可以放在里面来判断。
Image.png
三,使用
它使用起来相对简单。将此脚本复制到您自己的Linux主机。您可以使用虚拟机将要检查的服务器的IP,帐户和密码放入hosts.txt目录并直接运行以实现一键式安全检查。相关业务
(1)将要检查的服务器IP,帐户和密码写入hosts.txt文件,格式如下:
IP:端口:用户: userpassword: rootpassword
用户是普通用户的帐户,端口是ssh登录端口,uesrpassword是普通帐户的密码,rootpassword是root密码。因此,添加普通用户是因为某些系统具有安全策略并且不允许root直接登录。正在检查的服务器允许root直接登录。您可以直接以root用户身份和root用户密码编写用户和用户密码。
Image.png
这里检查的服务器允许root直接登录,所以直接写root帐号和密码。
(2)运行安全检查脚本:sh login.sh
安全检查脚本在后台运行,等一下..
Image.png
(3)当您在远程服务器上看到检查脚本和检查结果时,检查结束。
Image.png
(4)检查结束后,远程服务器上的结果将保存到本地主机:
Image.png
四,测试结果说明
检查结束后,目录结构解压缩后,相应的结果如下:
Image.png
1. Check_file
保存的是检查的最终结果。看起来像这样..
Image.png
2.记录
Linux系统日志保存在目录中。当前的Web脚本未实现自动打包。原因是Web日志通常太大,保存的日志可能会从日志运行到当前日志。许多日志不需要检查。并进行分析,以便相关人员在检查过程中根据具体情况打包相应的日志。
Image.png
3. danger_file.txt
保存的是安全检查期间发现的问题:
Image.png
4. sysfile_md5.txt
系统密钥文件或系统文件的MD5值已保存。记录这些密钥文件的MD5。有两个主要功能:一个是定期检查,可以与第一个结果进行比较。你会被提示;另一种方法是将这些关键文件的MD5值运行到威胁情报库或virustotal,以找出可能的系统文件被替换。