欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

攻防对抗之蓝方技术分享总结

来源:本站整理 作者:佚名 时间:2019-04-12 TAG: 我要投稿

08sec团队在2019年起每个月将会举行内部攻防对抗,并分享技术总结,为初、中级技术爱好者提供良好的学习环境,提升网络信息安全水平,这是首次活动,为期7天的红蓝对抗,攻防网络环境相对复杂,蓝方准备时间仅有1天,完全模拟了真实的攻防环境,并对采用的开源cms程序成功挖掘了漏洞。
一、准备阶段
初步讨论
LINUX+CMS+mysql+tomcat关卡设计(时间原因无法实现)
1.服务搭建
拉取源码:
git clone https://github.com/ming-soft/MCMS

因为之前运⾏行行该项⽬目缺少库,所以将项⽬目导⼊入IDEA:

重新编译添加 pom.xml,配置Maven:

同步Maven库,测试:

然后⽣生成war包,ms-mcms.war(这边我使⽤用的是我⾃自⼰己服务器的 mysql 服务器,编译的时候已经写进配置⽂文件了,所以后续没有关于mysql的部分)。
切换o0p低权⽤用户,下载tomcat7的java web运⾏行行环境,删除tomcat⾃自带的项⽬目录:

将该war包部署到服务器上上。重启tomcat服务器:

2.下载并部署openrasp

3.网站效果:

主机加固
1.系统加固
1)除root外的用户无法登陆touch /etc/nologin;
2)密码文件用户权限等:
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
3)创建文件权限umask=027;
4)日志等加固:
chattr +a /var/log/messages (只能追加数据) chattr +i /var/log/messages.* (不能被删除) chattr +i /etc/shadow
chattr +i /etc/passwd chattr +i /etc/group 5) 权限加固
chmod -R 700 /etc/rc.d/init.d/*
仅仅root可以读,写,执行上述所有script file.
6)屏蔽登录banner信息:
vi /etc/ssh/sshd_config banner NONE
7)秘钥增强:
authconfig --passalgo=sha512 --update 启用 SHA512 替代 MD5
8)限制登录次数:
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=120
登录3次锁定账号2分钟;
9)设置Bash保留历史命令的条数
vi /etc/profile
修改HISTSIZE=5和HISTFILESIZE=20,即保留最新执行的20条命令。
2.web服务加固
1)隐藏tomcat版本信息
修改conf/server.xml,在Connector节点添加server字段:

2)关闭自动部署:
修改/conf/server.xml 中的 host 字段,修改 unpackWARs=”false” autoDeploy=”false”;
3)自定义错误页面:
修改 web.xml,自定义 40x、50x 等容错页面,防止信息泄露。
4)禁止列目录
修改web.xml false;
5) 服务权限控制;
tomcat以非root权限启动,应用部署目录权限和tomcat服务启动用户分离,比如tomcat以tomcat用户启动,而部署应用的目录设置为nobody用户750。
6)启动cookie的httponly,修改/conf/context.xml,usehttponly=“true”
3.数据库加固
1)禁用mysql历史命令Rm ~/.mysql_history;
2)运行mysql_secure_installation执行相关安全设置;
3)使用validate_password.so插件,进行安全加固;
4)重命名 ROOT 账户;
Update user set user=”新用户名”where user=”root”
5)控制最高权限只有管理员
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');
SELECT user, host FROM mysql.db WHERE db = 'mysql' AND ((Select_priv = 'Y') OR (Insert_priv = 'Y') OR (Update_priv = 'Y')OR (Delete_priv = 'Y') OR (Create_priv = 'Y') OR (Drop_priv = 'Y'));
6)删除默认test数据库,测试帐号,空密码、匿名帐号:
bash drop database if exists ${dbname};
bash drop user ''
select user,host from mysql.user

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载