1. 黑客常用命令大全:系统管理员必备的安全运维指南
在IT运维和信息安全领域,掌握基础的系统命令是每个技术人员的必修课。这份命令大全并非鼓励任何非法行为,而是为系统管理员、安全工程师提供一套完整的系统诊断和防御工具集。我整理了15年运维工作中最实用的命令组合,涵盖Windows、Linux两大平台,从网络诊断到进程管理,都是日常排障和系统加固的利器。
2. 网络诊断与流量分析
2.1 基础网络连通性测试
ping和traceroute(Linux)/tracert(Windows)是最基础的网络诊断工具。但很多人不知道这些命令的高级用法:
# Linux下带时间戳的持续ping测试 ping -D -i 0.5 target_ip | while read pong; do echo "$(date +%H:%M:%S): $pong"; done # Windows路径追踪带最大跳数限制 tracert -h 30 -w 1000 example.com注意:生产环境中避免使用无限ping,可能触发安全设备的DDOS防护机制
2.2 高级端口扫描技术
nmap是网络探测的瑞士军刀,但企业内网更常用的是这些合规扫描技巧:
# 快速扫描常用端口(不触发IDS警报) nmap -T4 -Pn --top-ports 100 --max-rate 1000 target_ip # 隐蔽的TCP SYN扫描(需要root权限) nmap -sS -v -n -Pn --disable-arp-ping --data-length 24 target_subnet配合grep过滤关键信息:
nmap -p 1-65535 localhost | grep -E 'open|filtered'3. 系统进程与服务管理
3.1 Linux进程深度排查
# 查看进程树(含CPU/内存占用) ps auxf --sort=-%cpu | head -20 # 实时监控进程资源使用 pidstat -d -p PID 1 5 # 磁盘IO pidstat -r -p PID 1 5 # 内存使用3.2 Windows服务安全审计
PowerShell提供了更强大的服务管理能力:
# 获取所有自动启动的非微软服务 Get-WmiObject Win32_Service | Where-Object { $_.StartMode -eq 'Auto' -and $_.PathName -notmatch 'Microsoft|Windows' } | Select-Object Name,DisplayName,PathName4. 文件系统安全检测
4.1 Linux文件完整性校验
# 快速查找24小时内被修改的敏感文件 find /etc /bin /sbin -type f -mtime -1 -ls | grep -E 'shadow|passwd|\.conf' # 计算文件哈希值(多种算法) sha256sum /usr/bin/sshd md5sum /sbin/iptables4.2 Windows可疑文件排查
# 检查最近创建的隐藏可执行文件 Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { $_.Attributes -match 'Hidden' -and $_.Extension -match 'exe|dll|bat' -and $_.CreationTime -gt (Get-Date).AddDays(-7) } | Select-Object FullName,CreationTime,Length5. 日志分析与入侵检测
5.1 Linux日志关键信息提取
# 认证失败记录(爆破攻击检测) grep -i 'fail' /var/log/auth.log | awk '{print $1,$2,$3,$9}' | sort | uniq -c | sort -nr # 异常SSH登录统计 lastb | awk '{print $3}' | sort | uniq -c | sort -n5.2 Windows事件日志分析
# 提取4625登录失败事件(需管理员权限) Get-WinEvent -FilterHashtable @{ LogName='Security' ID=4625 StartTime=(Get-Date).AddHours(-24) } | Select-Object TimeCreated,Message | Format-Table -Wrap -AutoSize6. 网络连接监控
6.1 Linux网络连接审计
# 显示所有ESTABLISHED连接(含进程信息) ss -tulnp | grep ESTAB # 检测异常外联(DNS解析测试) netstat -tunap | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | while read count ip; do host $ip | awk -v c=$count '{print c,$0}' done6.2 Windows网络连接分析
# 获取所有TCP连接及关联进程 Get-NetTCPConnection -State Established | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess | ForEach-Object { $proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue [PSCustomObject]@{ Local = "$($_.LocalAddress):$($_.LocalPort)" Remote = "$($_.RemoteAddress):$($_.RemotePort)" Process = $proc.Name PID = $_.OwningProcess } }7. 系统安全加固实践
7.1 Linux内核参数优化
# 临时防御SYN Flood攻击 sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_max_syn_backlog=2048 # 永久生效的配置 echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" >> /etc/sysctl.conf sysctl -p7.2 Windows防火墙规则管理
# 批量阻止高危端口(135-139,445等) $blockPorts = @(135,137,138,139,445) foreach ($port in $blockPorts) { New-NetFirewallRule -DisplayName "Block_TCP_$port" -Direction Inbound -Protocol TCP -LocalPort $port -Action Block New-NetFirewallRule -DisplayName "Block_UDP_$port" -Direction Inbound -Protocol UDP -LocalPort $port -Action Block }8. 实用技巧与排错经验
命令历史安全:Linux下使用
history -c清除当前会话历史,或在~/.bashrc添加:export HISTCONTROL=ignorespace这样以空格开头的命令不会记录
Windows命令混淆:PowerShell支持字符转义,例如:
& ('n'+'e'+'t') u+s+e+r网络流量伪装:合法诊断时可修改TTL值避免被屏蔽:
ping -t 64 target.com # Linux ping -i 64 target.com # Windows日志清理注意事项:
- Linux系统日志优先使用
journalctl --vacuum-time=1d - Windows事件日志使用wevtutil工具而非直接删除文件
- Linux系统日志优先使用
企业环境特别提示:
- 所有扫描操作必须事先获得书面授权
- 生产环境避免使用
rm -rf,改用trash-cli等安全删除工具 - 敏感操作前创建系统快照或备份关键配置