困扰我多年的“今天写啥“,被这个选题功能解决了大半
2026/6/6 18:05:08
本清单覆盖Windows(含域环境)、Linux两大系统,包含权限加固、日志监控、服务防护等核心防御操作,可直接在靶机或生产环境执行(生产环境建议先测试)。
cmd
net user administrator /active:nocmd
# 设置密码长度最小8位、包含数字+字母+特殊字符、90天过期 net accounts /minpwlen:8 /maxpwage:90 /minpwage:1 /uniquepw:5cmd
# 以WinRM服务为例,限制仅管理员可修改 sc sdset WinRM D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)cmd
# 列出所有账户(含带$的隐藏账户) net user # 查看域内隐藏账户 net user /domain | findstr "$"cmd
# 禁用SMBv1(防范永恒之蓝等漏洞) sc config lanmanworkstation depend= bowser/mrxsmb20/nsi sc config mrxsmb10 start= disabled # 禁用不必要的远程服务(如WMI、Telnet) sc config winmgmt start= demand # 设为手动启动 sc config tlntsvr start= disabledcmd
# 禁止外部访问445(SMB)、135(RPC)端口 netsh advfirewall set allprofiles state on netsh advfirewall firewall add rule name="Block SMB" dir=in action=block protocol=TCP localport=445 netsh advfirewall firewall add rule name="Block RPC" dir=in action=block protocol=TCP localport=135 # 仅允许管理网段访问3389(RDP) netsh advfirewall firewall add rule name="Allow RDP" dir=in action=allow protocol=TCP localport=3389 remoteip=192.168.56.0/24cmd
# 启用账户登录、账户管理、系统事件审计 auditpol /set /category:"账户登录事件" /success:enable /failure:enable auditpol /set /category:"账户管理" /success:enable /failure:enable auditpol /set /category:"系统事件" /success:enable /failure:enablecmd
# 1. 配置远程日志服务器(需开启事件日志收集服务) # 2. 本地服务器推送日志 wevtutil sl Security /e:true /rt:true /r:192.168.56.200 /u:admin /p:P@ssw0rdcmd
# 检查安全日志大小和记录数 wevtutil gl Securitycmd
# 在域控制器执行,修改组策略 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LmCompatibilityLevel /t REG_DWORD /d 5 /fcmd
# 需执行两次,间隔至少24小时 ntdsutil "set dsrm password" "reset krbtgt password" quit quitcmd
# 查询域管理员最近登录记录 net user administrator /domain | findstr "登录"bash
运行
# 编辑SSH配置文件 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config systemctl restart sshdbash
运行
# 编辑sudoers文件(必须用visudo,避免语法错误) visudo # 添加规则:仅允许user1执行指定命令 user1 ALL=(ALL) /usr/bin/ls, /usr/bin/catbash
运行
# 查找所有SUID文件 find / -perm -u+s -type f 2>/dev/null # 移除不必要的SUID权限(如find命令) chmod u-s /usr/bin/findbash
运行
# 查看开机自启服务 systemctl list-unit-files --type=service --state=enabled # 禁用无用服务(如rsync、telnet) systemctl disable rsyncd systemctl stop rsyncdbash
运行
# 清空现有规则 iptables -F # 允许回环接口 iptables -A INPUT -i lo -j ACCEPT # 仅允许管理网段访问SSH(22端口) iptables -A INPUT -p tcp --dport 22 -s 192.168.56.0/24 -j ACCEPT # 拒绝所有其他入站流量 iptables -P INPUT DROP # 保存规则 iptables-save > /etc/iptables/rules.v4bash
运行
# 确保auth.log日志开启(默认开启) # 配置日志轮转,防止日志过大 vi /etc/logrotate.d/rsyslog # 添加规则:每周轮转,保留4周日志 /var/log/auth.log { weekly rotate 4 missingok notifempty compress }bash
运行
# 1. 安装rsyslog客户端 apt install rsyslog -y # 2. 编辑配置文件,指向远程日志服务器 echo "*.* @192.168.56.200:514" >> /etc/rsyslog.conf systemctl restart rsyslogbash
运行
# 防止用户清空history(修改history文件权限) chmod 444 ~/.bash_history # 记录所有用户的命令执行日志 echo "export PROMPT_COMMAND='history -a;'" >> /etc/profile source /etc/profilebash
运行
# 查看进程树,识别未知进程 pstree -pu # 查找隐藏进程(对比ps和/proc目录) ls /proc | grep -v -E '^[0-9]+$'bash
运行
# 查看所有用户的authorized_keys文件 find /home -name authorized_keys -exec cat {} \;管理员cmd,Linux 加sudo。cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak。