!
也想出现在这里? 联系我们
创意广告

系统排查 – 关键信息基础设施安全保护 – hvv护网题

Windows系统安全配置

  • 安全配置前置工作
  • 账号安全设置
  • 关闭自动播放
  • 远程访问控制
  • 本地安全策略
  • 服务运行安全设置
  • 使用第三方安全增强软件

密码策略:

  • 避免系统出现弱口令
  • 密码必须符合复杂性
  • 要求密码长度最小值
  • 密码最短使用期限
  • 密码最长使用期限
  • 强制密码历史
  • 用可还原的加密来存储密码

安全的安装

  • 分区设置:不要只使用一个分区
  • 系统补丁:SP+Hotfix

补丁更新设置:

  • 检查更新
  • 自动下载安装或手动

默认管理账户administrator更名

设置“好”的口令

  • 自己容易记、别人不好猜
  • 不安全口令实例:ZAQ!@WSXzaq12wsx·
  • 安全口令实例: WdSrS1Y28r!

账号锁定策略:应对口令暴力破解

  • 账号锁定时间
  • 账号锁定阀值
  • 重置账号锁定计数器

用户权限分配

  • 从网络访问这台计算机
  • 拒绝从网络访问这台计算机
  • 管理审核和安全日志
  • 从远程系统强制关机

设置唤醒计算机时的登录密码

设置屏幕保护恢复时的登录密码

确保启用Windows自带防火墙

防火墙高级配置

出站规则

入站规则

连接安全规则

监视

  • 防火墙
  • 连接安全规则安全关联

共享安全风险

  • IPC$的安全问题(空会话连接导致信息泄露)
  • 管理共享风险(远程交件操作)
  • 普通共享的风险(远程文件操作)

本地安全策略 – 安全选项

管理工具→本地安全策略→安全设置→本地策略→安全选项

  • 交互式登录:无须按Ctrl+Alt+De1,设置为已禁用。
  • 交互式登录,不显示最后的用户名,设置为已启用
  • 设备:将CD-ROM的食问权限仅限于本地登录的用户,设置为已启用

管理工具→本地安全策略→安全设置→本地策略→安全选项

  • 网络访问:不允许SAM账号的匿名枚举,设置为已启用
  • 网络访问:可匿名交问的共享,删除策略设置里的值
  • 网络访问:可匿名访向的命名管道,删除策略设置里的值
  • 网络访问:可远程访问的注册表路径,删除策略设置里的值

安装防病毒软件

  • 恶意代码是终端安全的最大威胁确保病毒防护软件病毒库更新
  • 病毒防护软件主要工作机制:特征码扫描
  • 开启云查杀

Linux系统安全

查看系统中的用户及属性信息
在Linux系统中/etc/passwd文件是存储系统中账户信息的文件。

查看系统中用户信息

root:X:0:0:root:/root:/bin/bash
用户名:密码:UID:GID:用户注释信息:用户家目录:Shell定义。

  • 用户名:用户的名称
  • 密码:X表示占位符,也可以是密码
  • UID:用户识别代码
  • GID:用户所属组的GID(基本组)
  • 用户注释信息:Comment,可以完善用户的基本信息用户家目录:系统登录用户后的工作目录
  • shell:定义用户登录系统所使用的shell,指定的shell需要在/etc/shells中出现

查看系统中的用户属性
在Linux系统中/etc/shadow文件查看用户属性

查看系统中用户属性

root: \$6\$YqkEsOcfKPptyhnS\$YDOym4BZ52pzcCnU..:16781:0:99999:7:::

用户名:密码:上一次修改密码的时间:密码最小使用期限:最长使用期限:警告时间:帐户过期时间:保留字段用户名:用户的名称,对应/etc/passwd文件中

  • 密码: Centos6中使用MD5加密算法,Centos7中使用sha1的算法,第一个$后面加密算法类型,第二个$后面表示salt,第三个$后面表示密码的提取码
  • 上一次修改密码的时间:指用户上次修改密码的时间,计算方法:从Linux元年1970年01月01日0点0分到目录所经过的秒数
  • 密码最小使用期限:指用户修改密码后,需要到多少天后方可更改密码,0表示禁用密码最长使用期限:指用户的密码到多少天后需要修改密码
  • 警告时间:指用户密码到期前多少天提示用户修改密码,0和空字段表示禁用此功能帐户过期时间:批帐户在密码过期后多少天还未修改密码,将被停用

查看系统中的用户所属组

在Linux系统中/etc/group文件存储着用户的分组信息root X 0:

这一行的格式为

  • 组名:密码: GID: User_list
  • 组名:组的名称,默认同名用户名
  • 密码:组的密码占位符,用于用户临时切换至需要的组以获取相应权限,可以使用newgrp GROUP_NAME切换
  • GID:组的全局识别号
  • User_list:隶属此组的用户,多个用户使用”,”隔开

系统启动项简介

一般情况下,常规用途的 Linux在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,除系统自动拉起的服务外,我们还可以手动添加自己需要的服务。
比如:开机启动apache、开机备份数据库、开机后立马重启等操作。
当Linux操作系统开机后就会进入init进程,init进程中存储系统启动时所需要的服务以及自己手动的服务。

查看系统启动项

在Linux系统/etc/rc.local文件存储着启动项相关属性信息

系统启动项添加方法1
使用vim编辑/etc/rc.local文件,可在touch /var/lock/subsys/local代码下添加需要启动的服务。

系统启动项添加方法2
在/etc/profiled目录下使用vim编辑reboot.sh文件,在文件中添加reboot并保存文件,重启系统。

系统启动项排查

查看/etc/rc.local文件,查看该文件是否被更改。

进入/etc/profiled目录下查看是否出现异常文件。
输入命令: systemctl list-unit-files查看所有的项目,如果是开机启动项,状态为: enabled

(或者只看开机启动项,命令为: systemctl list-unit-files l grep enabled

可通过ls -alt /etc/init.d命令查看启动项文件修改时间

系统计划任务

添加计划任务:每分钟重启一次;执行crontab -e使用vim编辑器直接在里面输入:/1 * * * /usr/sbin/reboot

可通过crontab -l查看每分钟重启一次的计划任务是否添加成功

系统服务查看

可通过端口查看服务的开放状态。 netstat -antpul | grep 22

也可以直接查看服务状态。service sshd status

可通过执行ps -aux查看全部系统进程,也可通过ps -aux | grep sshd过滤指定进程进行查看。

使用top命令实时动态地查看系统的整体运行情况,主要分析CPU和内存多的进程,是一个综合了多方信息监测系统性能知运行信息的实用工具,了解服务器健康状况

系统进程进程排查

分析字段含义如下表:列名含义

  • 1、PID进程id
  • 2、PPID父进程id
  • 3、UID进程所有者的用户id
  • 4、USER进程所有者的用户名
  • 5、GROUP进程所有者的组名
  • 6、TTY启动进程的终端名
  • 7、PR优先级
  • 8、NI nice 值;负值表示高优先级,正值表示低优先级
  • 9、RES 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODSHR 共享内存大小,单位kbS。进程状态:D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止、Z=僵尸进程
  • 10、%CPU上次更新到现在的CPU时间占用百分比

Linux系统安全加固

防暴力破解

限定口令长度和复杂度
设置口令策略满足长度和复杂度要求。要求长度8位以上,口令中包含大写字母、小写字母、数字、特殊字符,每种字符至少一个。
加固方法:
authconfig --passminlen=8 --update//最短8位
authconfig --passminclass=4 --updatel/至少包含4中字符验证效果:

创建测试用户,为测试用户设置不符合长度和复杂度要求的口令.系统首先提示口令长度不够,之后提示字符类型少于4种。说明本项加固成功。

限定账户口令生存周期

限制口令的最长使用期限为90天,口令的最短使用期限为3天,口令到期前15天发出警告。加固方法:
vi /etc/login.defs //编辑文件,设置如下内容

设置PASS_MAX_DAYS为90,
设置PASS_MIN_DAYS为3,
设置PASS_WARN_AGE为15
保存退出
验证效果:
cat /etc/login.defs | grep '^PASS_'

登录失败锁定

用户远程登录验证连续超过5次失败的,锁定账号30分钟加固方法:
vim /etc/pam. d/sshd //在#%PAM-1.0的下面,即第二行添加内
auth required pam_tally2.so dewy=5 unlock_time=1800 even_deny_root root_unlock_time=1800保存退出
验证效果:
ssh user1@192.168.242.132
故意连续6次输入错误口令,最后输入正确口令,发现已经无法登录。在服务器查看锁定情况:
pam_tally2 --user user1
说明登录失败锁定机制已经生效。

sudo权限管理

当前user1用户属于wheel用户组,而wheel系统默认允许wheel组通过sudo执行任何命令。现要求取消user1用户通过sudo执行任何命令的权限。
加固方法:
gpasswd -d user1 wheel //将user1从wheel组中删除
验证效果:
sudo ls //user1用户通过sudo执行命令
出现提示,称用户不在sudoers文件中,说明sudo权限配置加固成功。

suid文件管理

系统中存在设置了suid的vim程序(/usr/bin/vim),存在提权风险,要求取消该程序文件的suid权限。加固方法:
chmod u-s /usr/bin/vim //取消文件的suid权限验证效果:
ls -l /usr/bin/vim
不显示suid标识位,说明加固成功。

系统安全更新

进行操作系统安全更新。加固方法:
yum --security upgrade //运行安全更新程序验证效果:
yum --security check-update
返回“No packages needed for security;”,说明安全更新已完成。

防木马后门

取消root之外用户使用crontab的权限
禁止root之外的用户以crontab方式运行计划任务。加固方法:
touch /etc/cron.allow && vi /etc/cron.allow
//创建c/etc/cron.allow文件,在文件的第一行 root,保存退出
验证效果:
普通用户尝试创建crontab任务无法创建crontab,说明加固成功。

防痕迹清除

启用rsyslog服务
启动rsyslog服务,记录系统事件。加固方法:
systemctl enable rsyslog //设置自动启动
systemctl start rsyslog //手动启动服务
验证效果:命令行输出命令
logger -p local1.notice “This is a test for rsyslog

在/var/log/messages文件中可以看到一条相应的日志

配置远程日志服务器

指定远程日志服务器,避免攻击者清除日志后无法溯源加固方法:
vi /etc/rsyslog.conf
//编辑配置文件,在末尾加入一行

*.*@192.168.242.1
作用是将全部日志转发到192.168.242.1的UDP 514端口。

保存退出。

Linux系统入侵排查

检查资源占用情况

检查进程的资源占用情况
攻击程序往往会占用大量CPU资源,如挖矿类程序。通过查看CPU使用情况可以快速识别恶意程序。检查方法:
//查看进程的资源占用信息

top -i
按P键,按照CPU使用率排序,按M键,按照内存使用率排序。检查结果:
经检查,主机的资源占用情况正常。

检查网络连接情况

检查进程的网络连接
攻击者入侵系统后留下后门程序,后门会通过网络与攻击者建立连接。检查方法:
netstat -anpo | less

处置方法:
为减少服务器的损失,立即断开此服务器的网络连接,并终止挖矿进程。

systemctl stop network //停止网络服务,断开网络
kill -9 966 //杀死挖矿进程

检查日志信息

检查当前登录账户

检查目的:
查看当前正处于登录状态中的用户,可能攻击者也在里面。

检查方法:
who //查看登录者
w//查看登录者及其正在做的事情

检查结果:
通过检查发现,当前除了用于应急响应而登录的用户之外,还存在着root账户的远程登录。

处置方法:
pkill -kill -t tty1 //踢掉tty1线路上的root用户

检查账户失败登录日志

检查目的:
失败登录日志意味着口令爆破等非授权访问企图。
检查方法:
last //查看成功登录日志lastb//查看失败登录日志
lastb | awk 'fprint $3}' l sort / uniq -c / sort -nr | head -5 //查看登录失败次数最多的前5名

//查看针对root用户的口令爆破情况
cat /var/log/secure* | grep "Failed password for root" | awk ' fprint $11}’| sort / uniq -c lsort -nr / more

检查结果:
lastb | head -n 20 //显示前20条登录失败记录

检查命令历史

检查目的:
命令历史记录着用户的操作命令,从中找到异常操作,从而发现黑客入侵系统所使用的手段。通过检查root用户的命令历史,发现了攻击者的具体操作。
检查方法:
history //查看用户执行过的命令
cat~/.bash_history //查看用户命令历史文件的内容

检查cron日志

cron日志记录着系统执行过的计划任务。黑客可能通过cron在服务器上定期执行一些操作以维持控制,因此检查cron日志可以发现入侵痕迹。

检查方法:
//查看cron日志cat /var/log/cron

检查异常账号

异常账号包括无法说明用途的账号、uid为0的账号、弱口令/空口令账号等。uid为0的账号拥有系统的超理员权限,正常情况下,只有root账户的uid为0,如果还存在其它uid为0的账户,则必为后门账户。检查方法:
//查看uid为0的账号
getent passwd | awk -F: '$3 == "0" { print $1 }

检查自动运行程序

自动运行的程序包括crontab任务、开机运行的服务,以及开机运行的程序等。
攻击者入侵后,为避免暴露恶意程序,可能会让恶意程序每次运行后立即退出,并通过计划任务使恶意程序周期性地运行。
检查方法:
//查看root账户的计划任务
crontab -u root -l

检查ssh后门文件

攻击者将自己的ssh证书部署到服务器后,即使管理员修改了口令,攻击者也不会受到影响,依然可以远程登录。
检查方法:cd /root/.ssh
cat authorized_keys //查看ssh授权文件


「渗透云记」公众号里主要记录我每天的所思所想,我会坚持更新质量不错的文章,感兴趣的小伙伴可以扫描下方二维码,谢谢支持! 安全小天地 - 公众号 - 渗透云记
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容