Windows隐藏账户处置

实验目的

理解windows隐藏账户建立原理,掌握windows隐藏账户处置过程

实验环境

一台windows server 2012 r2

实验原理

通过注册表实现隐藏账户的建立,可以通过手工来建立隐藏账户

实验步骤

一、使用命令行创建用户

1、打开命令行

image.png

2、新建test$用户

1
2
net user test$ sxf!7890 /add
net localgroup administrators test$ /add

二、观察test$用户

1、使用系统计算机管理工具

image.png

image.png

发现可以看到test$用户

2、使用命令行查看用户

在命令行输入

1
net user

无法看到test$用户

image.png

三、导出test$和administrator用户注册表信息

1、打开注册表

命令行中输入

1
regedit

image.png

2、获取SAM项权限

image.png

image.png

刷新权限

image.png

3、导出test$用户信息

导出下面键为test.reg

这里0X3EA为随机值,每台主机都会不一样

1
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\test$

image.png

image.png

4、导出test$的UID值

image.png

image.png

image.png

5、导出administrator的UID项

在windows下,administrator的UID固定为1F4

image.png

四、修改导出的注册表信息

1、将admin_id中的F值,复制到uid中的F值

编辑admin_id

image.png

复制F的值

image.png

编辑uid

image.png

粘贴F值

image.png

保存文件

image.png

五、删除test$用户,导入注册表

1、删除test$用户

使用下面命令

1
net user test$ /del

image.png

2、导入桌面上的 test 和 uid注册表文件

导入test

image.png

image.png

image.png

导入uid
image.png

image.png

image.png

六、查看隐藏账户

1、使用计算机管理,查看用户,并未发现test$

image.png

2、修改组策略,允许自定义用户登录

在命令提示符中输入

1
gpedit.msc

image.png

定位到安全选项,不显示最后的用户名

image.png

启用,确定

image.png

注销administrator用户

image.png

使用test$用户登录

输入用户名 test$
输入密码sxf!7890

image.png

登录成功

使用任务管理器,查看当前用户

image.png

image.png

实验总结

通过手动建立隐藏账户,了解windows隐藏账户工作原理。通过原理,反向可以处理隐藏账户。也可以使用一些工具处理隐藏账户。

沙箱分析浏览器病毒

实验目的

掌握windows下文件监控工作的应用

实验环境

一台windows server 2012 r2 ,浏览器被首页劫持。无法更改。病毒位和检测工具都位于环境之中。

实验原理

通过本地工具和云沙箱,监测样本运行,发现样本操作,进行针对性处理。

实验步骤

一、使用微软的process monitor监测病毒运行

本病毒是一个借助激活工具,二次打包后劫持浏览器的病毒。

病毒名为”mlxg.exe”,位于桌面mlxg文件夹中

image.png

打开微软的process monitor

image.png

双击打开,按图配置监控规则。
监控规则的含义是,监控进程名为mlxg.exe

点击OK

image.png

此时,我们还没有运行病毒,所以屏幕没有任何显示

image.png

二、运行病毒程序

双击mlxg.exe

image.png

运行

image.png

三、查看precess monitor

可以看到mlxg进程对系统的操作,

先停止捕获信息,(如果捕获太多,会让软件有些卡顿)

点一下放大镜,停止捕获

image.png

重点关注新建注册表和新建文件,可以重点发现一些操作和目录

创建一个DLL文件

image.png

写临时文件
image.png

写驱动文件

image.png

写EXE文件

image.png

过滤注册表操作

image.png

写注册表操作,尝试建立一个GRE隧道

image.png

四、使用云沙箱分析样本

打开桌面chrome浏览器,输入域名s.threatbook.cn

image.png

上传我们的病毒样本

image.png

因为我们是64位系统,所以选win7 64,查看报告,

image.png

等待,系统分析完成,可以查看处置建议

image.png

image.png

等等一系列处理

再可以使用桌面的pchunter或其它类似工具,进行应急响应处置

总结

使用分析工具,分析样本行为,然后针对性处理,是应急响应中的常用方法。

使用此方法的前提是知晓病毒来源与样本文件。怎么样找到此类文件,我们需要更多的经验和日志分析技巧。

勒索病毒处置

实验目的

掌握针对勒索病毒的判断、识别、处置方法

实验环境

一台Windows server 2012r2 已经中了勒索病毒

实验原理

识别勒索病毒,有些勒索病毒因为程序编写漏洞或开发者放弃,可以找到解密密钥。进行解密

实验步骤

一、观察勒索病毒

登录系统,发现桌面背景提示

image.png

初步可以判断,系统已经中了勒索病毒

尝试用记事本,打开桌面的文本文档

image.png

image.png

双击记事本

image.png

发现文件被加密,是乱码

image.png

确定中了勒索病毒

二、查看桌面提示关键字

通过桌面背景发现加密关键字

ENCRYPTED BY GANDCRAB 5.0.3

image.png

三、了解GRANCRAB勒索病毒

通常各大安全厂商有勒索病毒专区,如国际厂商kaspersky、bitdefender、avast、symantec,国内厂商Sangfor、360等

如Avast的

https://www.avast.com/zh-cn/ransomware-decryption-tools

image.png

如深信服的

http://edr.sangfor.com.cn/#/information/ransom_search

image.png

这里我们使用深信服的页面 搜索该病毒名

image.png

查看报告,该报告为5.2版本的病毒原理介绍

同学可以自行查看

四、尝试使用工具解密病毒

尝试去寻找不同的厂商的解密工具

在bitdefender寻找解密工具

image.png

在avast页面找到gandcrab的标签

image.png

下载软件

这里有很多不同版本的解密工具,为避免下载问题,实验环境中已经内置好解密工具。学员也可以自行尝试下载不同工具,尝试解密。

打开文件夹C:\USERS\download2\

双击运行软件BDGandCrabDecryptTool

image.png

同意许可

image.png

确定提示

image.png

选择要解密的文件夹,这里以桌面为例

image.png

image.png

开始解密
image.png

解密完成

image.png

再次查看桌面的记事本,已经解密成功。

image.png

接下就是备份解密后的文件,重装系统,安装补丁等操作

总结

勒索病毒并不是都像实验环境中这么容易解密。目前能解密的勒索病毒只是少数,我们更多的是需要加强对勒索病毒的防御。如使用EDR软件进行保护,或加强系统补丁安装。
主流勒索病毒传播都是通过RCE漏洞或弱口令进行自动化攻击,针对这两点做好防御,加强主动防御。可防范勒索病毒。

挖矿病毒处置

实验目的

了解挖矿病毒的现象,学会处置挖矿病毒

实验环境

一台Windows server 2012R2 已经中了控矿病毒

实验原理

通过任务管理器、进程、启动项等对挖矿病毒进行处置

实验步骤

一、登录系统,查看任务管理器
image.png

发现CPU占用满了,按CPU对进程排序

image.png

结束CPU占用高的进程

image.png

可以观察到 结束后,进程会重新自启动。确定有父进程。

转到进程详细信息

image.png

看到进程名为xmrig.exe

image.png

二、找到父进程

直接使用wmic工具

打开命令行

image.png

输入下面命令

1
wmic process where name='xmrig.exe' get caption,parentprocessid

image.png

找到父进程ID为1048

三、查找父进程启动方式

将任务管理器按PID排序,找到1048的进程

image.png

发现进程用户名为SYSTEM,通常SYSTEM用户是使用系统服务启动。查找系统服务

image.png

停用服务
image.png

停用服务后,发现xmrig.exe进程也停止。CPU利用率也降下来

image.png

四、处理文件和服务

此病毒仅使用服务加载,并没有hook系统函数,所以对文件和服务的处理相对较为容易

1、查看服务和文件

打开服务
image.png

双击服务名

image.png

记住服务名称和 可执行文件路径

image.png

2、删除文件

找到路径,删除文件夹 C:\USERS\Administrator\c3pool

image.png

删除后如图

image.png

3、删除服务

使用命令行删除服务

1
sc delete c3pool_miner

image.png

五、重启验证

image.png

重启后打开任务管理器,CPU占用已经下去,病毒已被清除。

总结

通过实验 结合wmic与任务管理器,处理了一个很普通的“矿机”病毒

通常挖矿病毒会占用大量CPU,所以会很直接的暴露自己,并不太需要使用驱动级或HOOK等隐藏方式。

挖矿病毒因为利益原因,通常也是自动传播,传播方式与勒索病毒相似,但病毒表现完全不同。具体传播原因多为RCE漏洞与弱口令。做好基础防护工作,可轻松应对。

浏览器劫持事件处置

实验目的

掌握windows下驱动级病毒处理过程

实验环境

一台windows server 2012 r2 ,浏览器被首页劫持。无法更改。

实验原理

通过驱动级工具,发现驱动级病毒。清除病毒,恢复系统。

实验步骤

一、观察劫持现象

1、打开桌面上的chrome浏览器

发现浏览器首页域名为hp1.dhwz444.top

image.png

然后快速的会跳转到 hao123.com

image.png

2、打开IE浏览器

点击开始

image.png

点击IE浏览器

image.png

image.png
发现首页同样被劫持

image.png

二、尝试手动恢复浏览器首页

打开IE设置

image.png

选择Internet选项

image.png

使用新选项卡

image.png

关闭IE浏览器

再次打开IE浏览器,首页依然被劫持。

image.png

三、检查系统驱动

1、使用微软套件autoruns工具

打开桌面tools文件夹,打开autoruns64.exe

image.png

同意申明
image.png

autoruns打开后会列出系统所有的开机加载项。 重点关注红色项、黄色项,或签名有问题的项

如图,红框,标注的部分,显示为(Not verifiedt)Microsoft Corporation,说明这两个声称是微软的文件,但并没有获取微软的签名。

image.png

尝试删除这两个文件。

image.png

image.png

image.png

image.png

删除后刷新页面,发现这两个链接仍然存在。

image.png

再次删除,提示标记为已删除

image.png

image.png

四、重启计算机,看能否删除上面两个驱动级服务。

image.png

再次打开autoruns ,观察发现仍然存在这两个服务。可以推定这两个服务一定是“非正常的”

image.png

五、尝试删除文件

右键,选择jump to image,打开文件路径

image.png

发现无法直接看到文件

image.png

打开windows的隐藏文件与系统文件显示

查看 选项

image.png

如图设置

image.png

文件夹仍然为空。

此时可以断定此驱动服务为恶意程序。 且hook了系统的api,隐藏自身。

六、使用驱动级工具PC HUNTER进行对抗

打开桌面PCHunter工具

image.png

查看驱动模块

image.png

可以发现PCHunter 检查驱动模块时,并没有校验签名,只是查看了文件信息。

记住这两个文件的路径,C:\USER\Administartor\AppData\Local\Microsoft\WindowsApps\

浏览文件,定位到这个路径

image.png

删除文件

image.png

观察发现无效 ,选中文件后,右键 “删除后阻止文件再生”

image.png

强制删除

image.png

强制删除目录

image.png

再次重启系统。

image.png

打开IE浏览器或chrome浏览器,首页已经恢复正常

image.png

到此,我们解决了病毒的释放驱动,及其启动文件的删除。

接下来,进行注册表信息的清理,因为已删除相关文件,病毒对注册的表保护也没有了,直接删掉即

打开autoruns,删除相关注册表信息即可。

image.png

image.png

image.png

实验总结

本实验,我们通过windows提供的atuoruns 发现驱动级病毒, 通过pchunter进行驱动级查找删除。

当然本实验只是对病毒进行了初步的处理工作,没有深入分析病毒来源与病毒是否清楚干净。

每个工具都有自己不同的特点,但想充分使用这些工具,还需要更多的了解操作系统基础知识。

基线管理之Windows安全配置

实验目的

理解windows安全配置选项,掌握Windows组策略配置,理解Windows安全配置检查工具的应用。

实验拓扑

实验环境

一台windows server 2012 R2

实验原理

windows通过组策略展示了详细的操作系统配置,通过配置组策略,将设置保存于windoows注册表,以便操作系统加载各项配置。

实验步骤

一、登录服务器,打开组策略

开始–运行

image.png

输入gpedit.msc,点确定

image.png

二、账户策略配置

1、密码策略

依次如图展开,密码策略,如图进行配置

image.png

2、账户锁定策略

配置账户锁定阈值

image.png

image.png

image.png

三、配置安全选项

1、账户配置

如图

重命名管理员账号为test1234(配置完后,可以尝试注销,看看administrator是否能登录)

禁止使用Microsoft账户登录

image.png

2、交互式登录配置

如图,配置

image.png

3、用户账户控制

如图,配置以下四项

image.png

四、高级安全审核配置

1、账户登录

image.png

2、账户管理

image.png

3、详细跟踪

image.png

4、登录/注销

image.png

5、对象访问

image.png

6、特权使用

image.png

实验总结

本实验讲了windows常用安全配置,但不够全面,仅仅列举了一部分配置。
学员可以先理解这些配置的具体作用,以及尝试验证配置生效。再来举一返三的理解其它配置。
除了手动配置外,windows提供了一些基线管理工具,可以便于我们更加方便的维护windows基线。有兴趣的学员可以自己研究。参考网址如下

微软件基线管理工具

基线管理之Centos安全配置

实验目的

通过配置Centos配置文件,加强Centos默认安全配置。同时也是理解linux一切皆文件的思想。尝试用shell脚本来处置Centos的安全配置。

实验环境

一台Centos 7.2 无需其他环境。

实验原理

Linux操作系统的配置基本上以配置文件展示,通过不同配置文件理解不同的配置。

实验步骤

一、网络配置

1、检查不用的连接

使用以下命令

1
ip link show up

如下图,发现有两个连接一个为lo,一个为eth0,如果有需要关闭的接口,可以使用ip link set down

image.png

2、关闭IP转发

先查看ip转发配置

1
sysctl net.ipv4.ip_forward

image.png

查看发现为0,如果是1,可以使用下面命令改为0

1
sysctl -w  net.ipv4.ip_forward=0

3、关闭数据包重定向

查看数据包重定向设置

1
sysctl net.ipv4.conf.all.send_redirects

image.png

查看发现为1,可以使用下面命令改为0

1
sysctl -w  net.ipv4.conf.all.send_redirects=0

image.png

4、开启SYN cookies

查看syn cookies配置

1
sysctl net.ipv4.tcp_syncookies

image.png

发现为1,已经开启。如果为0,则使用下面命令改为1

1
sysctl -w net.ipv4.tcp_syncookies=1

二、查看审计服务

1、查看服务是否开启

1
systemctl status auditd

image.png

如上图显示服务已经开启,如未开启可以使用下面命令开启

1
systemctl start auditd

2、查看审计日志大小

1
cat /etc/audit/auditd.conf |grep max

image.png

如图显示最大日志为6M,可以自己修改文件,然后重启auditd服务后生效。

三、查看并配置日志审计

1、查看日志文件权限,日志权限应为600,仅root可读写

使用下面命令

1
ls -l /var/log/

image.png

非600的文件,如wpa_supplicant.log 可以使用下面命令改为600

1
chmod 600 /var/log/wpa_supplicant.log

image.png

再次查看

image.png

2、查看日志归档处理

确保存在/etc/logrotate.d/syslog文件

使用以下命令

1
ls /etc/logrotate.d/syslog

image.png

四、查看SSH认证配置

1、检查SSH配置文件权限

1
ls -l /etc/ssh/sshd_conf

image.png

如图显示权限为644,建议改为600,使用以下命令

1
chmod 600 /etc/ssh/ssd_conf

image.png

2、配置允许SSH允许的验证失败次数

查看当前配置

1
sshd -T |grep maxauthtries

image.png

如上图显示,默认为6次登录失败后断开连接。
可以修改/etc/ssh/sshd_config文件的MaxAuthTires值进行修改。

3、禁止空密码登录SSH

1
sshd -T | grep permitemptypasswords

image.png

4、查看SSH支持密码算法,确保没有md5 des等已经不安全的算法

1
sshd -T | grep ciphers

image.png

五、认证模块配置

Linux的认证模块由PAM处理,PAM中可以配置认证的账号、密码强度等操作。

1、密码强度配置

1
vim /etc/security/pwquality.conf

image.png

如下图

image.png

可以自己修改配置,去掉行首#号

如将密码最小设为10位,设置minlen = 10
将密码复杂度为4种类型(包含大写字母、小写字母、数字、符号),设置minclass =4

如图设置,设置后保存退出。

image.png

2、密码过期时间设置

查看过期时间

1
grep ^\s*PASS_MAX_DAYS /etc/login.defs

image.png

默认过期时间为9999天,修改相应文件即可修改过期时间

3、查看用户密码过期时间

(学员们还记得Linux操作系统里面的正则表达式吗?)

1
grep -E '^[^:]+:[^!*]' /etc/shadow | cut -d: -f1,5

image.png

修改root用户过期时间

1
chage  --maxdays 365 root

image.png

4、自动禁用账号

1
useradd -D | grep INACTIVE

image.png

如图显示-1表示不会自动禁用账号

使用下面设置30天未使用的账号自动禁用

1
useradd -D -f 30

image.png

实验总结

通过本实验,理解Centos的基本安全加固配置

同学们也可以去网上找一些centos安全加固脚本,进行配置,尝试理解脚本原理

基线管理之apache安全配置

实验目的

理解apache安全配置项的作用,掌握安全配置项的配置方法

实验拓扑

实验环境

一台Centos 7.2服务器,已安装apache httpd ,并开机自启动。

实验原理

通过编辑apache配置文件实现apache的安全配置,apache默认配置文件路径是/etc/httpd/conf/httpd.conf

实验步骤

一、确保apache无法访问根目录

查看apache配置文件,确定里面对根目录是拒绝所有请求

1
vim /etc/httpd/conf/httpd.conf

image.png

按箭头,下翻可以找到以下配置

image.png

其中,第一行和第四行,指明了目录,即Linux的根目录 /

第二行,表示禁止使用.htaccess文件,覆盖此处配置

第三行,表示禁止访问根目录

二、删除网站的目录浏览权限

apache会在默认路径下开启目录浏览

继续查看apache配置文件,如图,其中Indexes即为目录浏览权限,直接删除掉即可。

image.png

三、限制HTTP方法

apache默认没有限制限制http方法,我们可以在需要的路径下进行限制

如下代码限制了在根目录下,只能使用GET与POST方法
(注意,由于apache实现代码的原因,这里HEAD方法与GET方法等同,所以HEAD方法也可以访问)

1
2
3
<Location "/">
AllowMethods GET POST
</Location>

如图

image.png

四、错误页面重定向

http的错误页面可能会暴露服务器信息,我们可以将错误页面都重点向到某文件

新建一个错误页面文件,文件内容为error

1
echo  error  > /var/www/html/error.txt

image.png

编辑配置文件,指定错误代码400 401 402 403 404 500 指向error

image.png

五、限制POST数据大小

编辑配置文件

在文件中加下行,注意不要放在路径的申明中

1
LimitRequestBody 100

image.png

六、记录下post的数据

很多攻击行为由post发起,记录post数据可以便于追踪溯源

编辑配置文件

加载记录IO的模块

1
LoadModule dumpio_module modules/mod_dumpio.so

image.png

指定日志级别,记录IO (位置一定要对,不能随意编辑)

1
2
3
LogLevel dumpio:trace7

DumpIOInput On

image.png

七、保存退出,并重启服务

退出vim ,使用以下命令重启apache服务

1
systemctl restart httpd

image.png

八、验证配置

前面我们已经完成了apache的加固,下面进行验证,这里我们使用linux自带的curl工具进行验证

1、验证当前的HTTP限制的方法,如我们OPTIONS方法进行测试

如图curl -i -X OPTIONS 127.0.0.1/1.txt

image.png

2、验证错误页面重定向

1
curl 127.0.0.1/test.html

因为服务器上并不存在test.html,所以重定向到了error.txt

image.png

3、验证限制post数据大小

curl使用-d选项时,会使用post,前面我们限制post的body为100字节,下面引号中随便输入足够长的数据即可

1
curl  -d 'testtesttesttestsa 中间输入超过100个字符随便输入jfljaslfjlajflajlfjsfuwefjsljfljsttesttest' 127.0.0.1 

image.png

4、验证日志记录post数据
使用下面命令向服务器post的数据为11223344

1
curl -d '11223344' 127.0.0.1

image.png

服务器无法处理post请求,直接报错error

查看日志,可以在日志中找到11223344
image.png

总结

通过实验学会Linux下的apache安全配置,同时学会基本的curl命令应用。

作业

我们配置了错误重定向和限制http方法,思考为什么我们使用head方法访问服务器时,服务器提示的403错误为什么没有重定向到error文件中,请将思考结果写在实验报告中

image.png

基线管理之MariaDB安全配置

实验目的

MariaDB的安全配置过程与配置方法,掌握数据库安全配置对安全运维至关重要。

实验环境

一台Centos7 已安装MariaDB数据库

实验原理

通过配置文件与数据库的配置,实现MariaDB安全配置

实验步骤

一、操作系统级权限检查

1、检查数据库的运行权限,不建议以root运行数据库,防止越权攻击

1
ps -ef | egrep "^mysql.*$"

image.png

如图显示mysqld的运行用户为mysql

2、禁用mariadb的历史记录功能

查找缓存文件

1
find $HOME -name ".mysql_history"

image.png

将缓存文件指向空文件

1
2
rm -f $HOME/.mysql_history
ln -s /dev/null $HOME/.mysql_history

image.png

3、查看并配置数据库存放路径权限

登录数据库

1
mysql -u root

image.png

查看数据库存放路径

1
show variables where variable_name = 'datadir';

image.png

退出数据库

1
quit

image.png

查看数据库存放路径权限

1
ls -l /var/lib | grep mysql

image.png

如图权限为755,使用以下命令改为700

1
chmod 700 /var/lib/mysql

image.png

二、Mariadb数据库的通用安全配置

1、删除默认的test数据库

进入数据库

1
mysql -u root

image.png

1
show DATABASES LIKE 'test';

image.png

删除数据库

1
DROP DATABASE 'test';

image.png

2、禁用local_infile参数

查看local_infile参数是否开启

1
show variables where variable_name = 'local_infile';

image.png

如上图显示local_infile 是开启状态,需要修改mariadb配置文件。修改方法,见后文。

3、修改secure_file_priv参数

查看secure_file_priv参数

1
SHOW GLOBAL VARIABLES WHERE Variable_name = 'secure_file_priv' ;

image.png

如图显示路径为空,表示所有路径,建议设置为固定值,需要修改mariadb配置文件。修改方法,见后文。

4、确定只有root用户有内置数据库mysql的权限

查看内置数据库的权限

1
SELECT user, host FROM mysql.user WHERE (Select_priv = 'Y') OR (Insert_priv = 'Y') OR (Update_priv = 'Y') OR (Delete_priv = 'Y') OR (Create_priv = 'Y') OR (Drop_priv = 'Y');

image.png

5、查看file_priv权限,确定只有root用户有

1
select user, host from mysql.user where file_priv = 'Y';

image.png

撤销用户权限

如果在上例检查中,发现非root用户,可以使用下面命令撤销

1
revoke file on *.* from 'user';

同时这里检查权限还应有process_priv、super_priv这些字段。

6、配置允许用户登录的主机

查看当前用户可以登录的主机

1
select user,host from mysql.user;

image.png

更新用户允许登录的主机,如

1
update mysql.user set host="192.168.1.200" where host="localhost" and user="root";

image.png

7、查看密码安全策略

1
show variables like 'validate_password%';

三、验证安全配置

1、生成两个任意文件

1
2
echo 1111 > /tmp/111.txt
echo 2222 > /var/lib/mysql-files/222.txt

image.png

2、进入数据库

1
mysql -u root

3、导入文件,前面我们查看参数时,发现local_infile参数为on

执行以下操作

创建数据库

1
2
create database temp;
use temp;

image.png

创建表,并导入/tmp/111.txt

1
2
3
create table table_test(cmd text);
insert into table_test(cmd) values (load_file('/tmp/111.txt'));
select cmd from table_test;

image.png

再次导入/var/lib/mysql/222.txt

1
2
insert into table_test(cmd) values (load_file('/var/lib/mysql/222.txt'));
select cmd from table_test;

发现导入成功
image.png

3、配置禁止导入,与导入路径

退出数据库

1
quit

image.png

编辑数据库配置文件

1
vim /etc/my.cnf

image.png

加入下面行,指定允许导入的路径,如/tmp

1
secure_file_priv=/tmp

image.png

保存并退出文件

重启mariadb数据库

1
systemctl restart mariadb

image.png

进入数据库

1
mysql -u root -h 127.0.0.1

image.png

尝试导入文件

1
2
3
use temp;
insert into table_test(cmd) values (load_file('/var/lib/mysql/222.txt'));
select * from table_test;

虽然提示执行成功,但查看数据库时,发现值为NULL

image.png

实验总结

通过mariadb的配置文件与参数查看,理解mariadb的一些安全配置。

安全基线之MongDB安全配置

实验目的

理解MongoDB的安全配置选项,掌握Mongodb的安全配置方法

实验环境

一台服务器,已经安装好MongDB,

实验原理

通过修改配置文件,加强安全配置

实验步骤

一、查看MongoDB监听的端口

编辑mongdob的配置文件

1
vim /etc/mongod.conf

image.png

查看配置文件监听的端口与IP,Mongodb默认监听127.0.0.1的27010端口,可以按实际情况进行修改。

image.png

二、开启mongodb的验证

1、开启验证功能

在配置文件,开启security,并加在security:下面加入下面行

1
2
security:
authorization: "enabled"

image.png

保存退出文件

2、新建用户

使用下面命令连接mongdb服务器

1
mongo 127.0.0.1

image.png

输入下面命令 新建用户

1
2
3
4
5
6
7
8
use admin
db.createUser(
{
user: "root",
pwd: "sangforpassword",
roles: [ { role: "userAdminAnyDatabase", : db: "admin" } ]
}
)

image.png

3、退出数据库

输入exit

image.png

三、配置mongodb日志

查看mongodb配置文件

1
vim /etc/mongod.conf

image.png

找到auditlog行,发现未配置auditlog

image.png

改为下图

image.png

保存并退出文件

四、修改相关文件权限

1、查看数据库文件路径

1
cat /etc/mongod.conf | grep dbPath

image.png

mongodb的数据库文件为/var/lib/mongo

2、检查上述文件权限,建议设置为770 文件所有者和所属组为mongod

1
ls -l /var/lib/ |grep mongo

image.png

如图文件夹权限为755

使用下面命令修改为770

1
chmod 770 /var/lib/mongo

image.png

五、验证配置生效

1、因为修改了配置文件,需要重启mongodb服务

1
systemctl restart mongod

image.png

2、使用客户端连接mongodb

1
2
3
mongo 127.0.0.1

show dbs

image.png

提示未验证

使用exit退出当前连接

image.png

3、使用账号密码连接mongodb

1
mongo  127.0.0.1 -u "root" -p "sangforpassword" --authenticationDatabase "admin"

image.png

查看数据库

1
show dbs

image.png

4、查看日志

1
tac /var/log/message  | more

image.png

可以看到mongodb日志

image.png

实验总结

通过mongodb的配置,完善了mongdb最弱的验证与日志两个功能。
加强了文件权限管理。同时仍然还有一些配置需要加强,具体参照不同应用场景需求。