【HW系列】—溯源与定位—Linux入侵排查
文章目录
- 一、Linux入侵排查
- 1.账户安全
- 2.特权用户排查(UID=0)
- 3.查看历史命令
- 4.异常端口与进程
- 端口排查
- 进程排查
- 二、溯源分析
- 1. 威胁情报(Threat Intelligence)
- 2. IP定位(IP Geolocation)
- 3. 端口扫描(Port Scanning)
- 4. 社会工程学(Social Engineering)
- 💎 总结:溯源技术联动框架
一、Linux入侵排查
1.账户安全
用户信息文件:
cat /etc/passwd
account:password:UID:GID:GECOS:directory:shell
用户名 : 密码(x代表密码占位符,实际密码存储在/etc/shadow中)
用户ID(UID) : 组ID(GID)
用户说明(GECOS) : 家目录路径
登录后默认Shell
关键说明
排查思路
是否存在可疑用户,除了root以外,是否有uid=0的用户
2.特权用户排查(UID=0)
检测所有UID=0的账户
awk -F: '($3 == 0) {print $1}' /etc/passwd # 列出所有UID=0的用户
分析重点:
- 除root外,若存在其他UID=0账户(如toor、admin等),立即锁定并调查。
- 攻击者常创建隐藏特权账户维持权限。
验证账户合法性
grep '用户名' /etc/passwd # 检查账户Shell、家目录等属性
ls -l /home/用户名 # 确认家目录是否存在异常文件
可疑特征:
- Shell为/sbin/nologin却可登录
- 家目录含非常规隐藏文件(如.ssh/authorized_keys异常公钥)
sudo权限审查
- 检查非root用户的sudo权限
grep -v '^#\|^root' /etc/sudoers | grep 'ALL=(ALL)' # 提取非root的sudo用户
风险点:
- 普通业务账户不应拥有ALL=(ALL)权限,需按最小权限原则调整。
- 审计sudo日志
grep sudo /var/log/auth.log # 查看sudo命令执行记录
- 聚焦非运维时段或异常命令(如sudo su -、sudo vim /etc/passwd)。
账户管理操作
锁定可疑账户
usermod -L 用户名 # 锁定账户(/etc/shadow密码栏首加!)
passwd -l 用户名 # 等效命令
彻底删除账户
userdel -r 用户名 # 删除账户并移除家目录
操作前务必备份:
cp -p /etc/passwd /etc/passwd.bak # 备份账户文件
cp -p /etc/shadow /etc/shadow.bak
3.查看历史命令
读取全部命令
cat /root/.*_history | more
主要分析恶意操作
4.异常端口与进程
端口排查
netstat -anltup
和Windows分析一致
1. 检测端口占用
操作示例:
# 检查80端口占用
sudo ss -tunlp | grep ':80'
sudo lsof -i :80
2. 分析端口状态
- 异常特征:
- 非常用端口监听(如10000以上随机端口)
- 外部IP连接(netstat -anp | grep ESTABLISHED)
- 无关联进程或进程名异常(如[deleted]提示可能为无文件进程)
3. 防火墙与网络配置
- 检查防火墙规则:
sudo iptables -L -n # 查看iptables规则
sudo firewall-cmd --list-all # firewalld规则(CentOS/RHEL)
- 验证端口连通性:
telnet 目标IP 端口号 # 测试TCP端口
nc -zv 目标IP 端口号 # 快速检测(推荐)
进程排查
1. 基础进程分析
2. 深度进程检查
- 查看进程详细信息:
检查进程真实路径(若返回"deleted"可能为恶意进程)
ls -l /proc/<PID>/exe
查看启动命令及参数
cat /proc/<PID>/cmdline
- 隐藏进程检测:
对比系统进程列表与/proc目录差异
ps -ef | awk '{print $2}' | sort -n > ps_pids.txt
ls /proc | grep -E '^[0-9]+$' | sort -n > proc_pids.txt
diff ps_pids.txt proc_pids.txt # 差异项可能是隐藏进程
3. Rootkit检测
- 工具推荐:
sudo chkrootkit 扫描常见后门
sudo unhide proc 专查隐藏进程
二、溯源分析
1. 威胁情报(Threat Intelligence)
定义
威胁情报是通过收集、分析网络攻击数据(如IP、域名、恶意文件哈希等),形成可行动的威胁信息,用于预测、防御和响应攻击。其核心价值在于将碎片化攻击痕迹转化为攻击者画像、战术链条和防御策略。
主流平台及地址
奇安信威胁情报中心:https://ti.qianxin.com/ |APT组织追踪、攻击链路还原、AI驱动分析|
微步在线ThreatBook:https://x.threatbook.com/ |暗网监控、ATT&CK战术匹配、多维度拓线分析|
腾讯安全威胁情报中心:https://tix.qq.com/ |基础情报+业务情报整合、IOC研判|
✅ 应用场景:快速研判恶意IP、分析钓鱼邮件来源、关联APT攻击团伙活动。
2. IP定位(IP Geolocation)
物理定位技术
- ANS定位(自治系统号定位):
通过ASN(如AS4538)关联IP所属运营商及地理区域(例:中国教育网覆盖高校范围)。
命令示例:whois 58.192.55.255 查看ASN及归属机构。 - 公开定位接口:
埃文科技:https://www.ipuu.net/
IP138:https://www.ip138.com/
MaxMind:https://www.maxmind.com/
⚠️ 注意:境外IP定位精度受限,国内接口对本土IP支持更优。
3. 端口扫描(Port Scanning)
目的与方法
- 作用:探测目标主机开放端口,识别潜在服务漏洞(如未授权的Redis端口6379)。
- 常用工具:
- nmap:综合扫描(例:nmap -sV 192.168.1.1 检测服务版本);
- masscan:高速全网扫描(适用于大规模资产普查)。
- 防御关联:
结合威胁情报平台(如微步在线),将扫描发现的异常IP与黑名单库比对,快速判定风险。
4. 社会工程学(Social Engineering)
攻击原理
利用人性弱点(信任、好奇、恐惧)诱骗泄露信息或执行恶意操作,非技术性突破防线的典型手段。
注册网站检测
https://www.reg007.com/search
网站历史
https://archive.org/web/
社交软件
https://checkusernames.com/
社交媒体
各种社交媒体
常见手法与防御
💡 溯源应用:
分析钓鱼邮件头获取发送IP → 结合威胁情报定位攻击团伙 → 关联历史攻击模式。
💎 总结:溯源技术联动框架
graph LR
A[端口扫描发现异常IP] --> B{威胁情报比对}
B -->|命中黑名单| C[IP定位→物理地址]
B -->|未知IP| D[社会工程学线索分析]
C & D --> E[攻击者画像: 身份/工具/意图]
通过技术+人性双维度溯源,实现从“攻击痕迹”到“攻击者身份”的闭环。
工具链推荐:nmap(扫描) + 微步在线(情报) + 埃文IP定位(地理追踪) + 员工安全意识培训(防社工)。
相关文章:

【HW系列】—溯源与定位—Linux入侵排查
文章目录 一、Linux入侵排查1.账户安全2.特权用户排查(UID0)3.查看历史命令4.异常端口与进程端口排查进程排查 二、溯源分析1. 威胁情报(Threat Intelligence)2. IP定位(IP Geolocation)3. 端口扫描&#x…...

CPO-BP+MOPSO,冠豪猪优化BP神经网络+多目标粒子群算法!(Matlab源码)
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CPO-BPNSGA,冠豪猪优化BP神经网络粒子群算法!(Matlab完整源码和数据),冠豪猪算法优化BP神经网络的权值和阈值,运行环境Matlab2020b及以上。 多…...

模块化设计,static和extern(面试题常见)
文章目录 一、函数的声明和定义1.1 单个文件1.2 多个文件1.3 static和extern1.3.1 static修饰局部变量1.3.2 static修饰全局变量1.3.3 static修饰函数 总结 一、函数的声明和定义 1.1 单个文件 一般我们在使用函数的时候,直接将函数写出来就使用了 题目:写一个函数…...

【快速解决】数据库快速导出成sql文件
1、cmd直接打开 输入命令 mysqldump -u用户名 -p密码 数据库名 > 导出文件名.sql修改成自己mysql的用户名和密码,和要导出的数据库名称,给导出的文件起一个名字。 如图所示 这样就成功了。...
使用 Syncfusion 在 .NET 8 中生成 PDF/DOC/XLS/PPT
Syncfusion 是一个功能强大的控件库,提供了多种工具来生成和处理 PDF、Word、Excel 和 PowerPoint 文档。在 .NET 8 中,使用 Syncfusion 可以简化生成这些文档的流程,并确保生成的文件高效、准确。本文将介绍如何在 .NET 8 中使用 Syncfusion…...

LearnOpenGL-笔记-其十二
今天我们来将LearnOpenGL的高级光照部分彻底完结: Bloom 泛光是一个非常常见的用于改善图像质量的手段,其主要做法就是将某个高亮度区域的亮度向四周发善以实现该区域更亮的视觉效果(因为显示器的亮度范围有限,需要通过泛光来体…...
【C++】C++面向对象设计的核心思想之一: 接口抽象、解耦和可扩展性
1. 什么是虚函数? 虚函数(virtual)是C里实现“多态”的关键机制。 在基类中声明虚函数,在子类中可以**覆盖(override)**它们。通过基类指针/引用操作时,自动调用实际对象(子类&…...

Namespace 命名空间的使用
名字空间:划分更多的逻辑空间,有效避免名字冲突的问题 1.什么是命名空间 名字命名空间 namespace 名字空间名 {...} // 名字空间 n1 域 namespace n1 {// 全局变量int g_money 0;void save(int money){g_money money;}void pay(int money){g_money - m…...

mac 下安装Rust Toolchain(Nightly)
你可以用 Homebrew 安装 rustup,这是推荐的管理 Rust toolchain的 brew install rustup-init安装 Rust(包含 rustup) rustup-init安装过程中会让你选择安装那个,直接回车选择默认的即可 安装完成后,cargo, rustc, r…...
PHP中文网文章内容提取免费API接口教程
接口简介: 提取PHP中文网指定文章内容。本接口仅做内容提取,未经作者授权请勿转载。 请求地址: https://cn.apihz.cn/api/caiji/phpzww.php 请求方式: POST或GET。 请求参数: 【名称】【参数】【必填】【说明】 【用…...
【Java笔记】Spring IoC DI
目录 Spring IoC & DI1. IoC1.1 Bean的存储1.1.1 类注解1.1.2 方法注解 Bean1.1.3 重命名1.1.4 Spring扫描路径 2. DI Spring IoC & DI Spring两个核心思想:IoC & AOP Spring相当于一个容器,IoC就是把对象存放在Spring容器中,让…...

学习STC51单片机22(芯片为STC89C52RCRC)
记住这个AT指令千万不要去脑子记,要用手册查 每日一言 努力不是为了感动谁,而是为了不辜负自己的野心。 硬件:ESP8266 wife模块 蓝牙,ESP-01s,Zigbee,NB-lot等通信模块都是基于AT指令的设计 老样子 我们用…...
ubuntu20.04.5--arm64版上使用node集成java
ubuntu20.04.5arm上使用node集成java #ssh,可选 sudo apt update sudo apt install openssh-server sudo systemctl status ssh sudo systemctl enable ssh sudo systemctl enable --now ssh #防火墙相关,可选 sudo ufw allow ssh sudo ufw allow 22…...

Linux --UDP套接字实现简单的网络聊天室
一、Server端的实现 1.1、服务端的初始化 ①、创建套接字: 创建套接字接口: #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol); //1. 这是一个创建套接字的接…...
嵌入式学习笔记 - keil安装目录下的头文件自动包含问题
Keil MDK/MDK-ARM(ARM编译器)默认情况下会自动包含其安装目录下的标准头文件路径(如CMSIS库、设备头文件等)。具体机制如下: 默认自动包含: 新建工程或使用设备数据库选择芯片型号后,Keil会…...

word批量导出visio图
具体步骤 修改word格式打开VBA窗口插入代码运行代码 修改word格式 将word文档修改为docm格式 打开VBA窗口 打开开发工具VisualBasic项,如果没有右键在自定义功能区添加 插入代码 插入 -> 模块,代码如下: Sub ExportAllVisioDiagrams()D…...
把数据库做得能扩展:Aurora DSQL 的故事
把数据库做得能扩展:Aurora DSQL 的故事 我们在 AWS re:Invent 上发布了 Aurora DSQL,这是一个全新方式构建关系型数据库的尝试。它不是单纯的技术升级,而是一段从零开始、反复试错、不断学习的工程旅程。 我们为什么做 Aurora DSQL&#x…...
全面解析:npm 命令、package.json 结构与 Vite 详解
全面解析:npm 命令、package.json 结构与 Vite 详解 一、npm run dev 和 npm run build 命令解析 1. npm run dev 作用:启动开发服务器,用于本地开发原理: 启动 Vite 开发服务器提供实时热更新(HMR)功能…...

【本地部署】 Deepseek+Dify创建工作流
文章目录 DeepseekDify 简介流程1、下载Docker2、Dify下载3、使用浏览器打开 Deepseek Deepseek 是一款功能强大的 AI 语言模型工具,具备出色的理解与生成能力。它可以处理各种自然语言任务,无论是文本创作、问答,还是数据分析与解释&#x…...
Rust 配置解析`serde` + `toml`
🦀 Rust 配置解析:彻底搞懂 TOML、Option、Vec、derive 背后的原理 📌 目录 什么是 TOML 文件?为什么要用 serde toml crate?结构体上 #[derive(...)] 是什么?配置中数组 [] 和表数组 [[...]] 怎么用&…...
linux进程用户态内存泄露问题从进程角度跟踪举例
我们习惯性的会看下那个进程在泄漏内存,我这里使用一个test_malloc的测试进程,该进程每2秒钟会分配一个10000字节的空间,并作简单赋值(注意:如果仅malloc而不使用,编译器会优化,实际测试时将看不…...

数据结构-图的应用,实现环形校验和拓扑排序
文章目录 一、如何理解“图”?1.什么是图?2.无向图和有向图3.无权图和有权图 二、JGraphT-图论数据结构和算法的 Java 库1.引入Maven依赖2.环形校验2.1 什么是循环依赖 ?2.2 单元测试代码2.3 情况1:自己依赖自己2.4 情况2…...
交换机 路由器
在计算机网络中,S 和 R 常常分别代表以下设备: S:Switch(交换机)R:Router(路由器) 简要说明: Switch(交换机,S) 交换机工作在数据链…...

某乎x-zse-96 破解(补环境版本)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、总体概述二、请求分析分析请求流程三、逆向分析总结一、总体概述 本文主要实现某乎x-zse-96 破解(补环境版本),相关的链接: https://www.zhihu.com/search?type=content&q=%25E7%258…...

VSCode+Cline 安装配置及使用说明
安装配置 打开VSCode,点击左侧Extension图标,在弹出页面中,检索Cline,选择Cline进行安装。 安装完毕,在左侧会出现一个图标,点击图标 选择【Use your own API key】,在出来的界面中选择大模型&…...
Java中Redis面试题集锦(含过期策略详解)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Java中Redis面试题集锦(含过期策…...

Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
Apache Maven 是一款广泛应用于 Java 项目的项目管理和构建工具。 本文提供在 Windows、Linux 和 macOS 系统上安装与配置 Maven 的详细步骤,旨在帮助开发者快速搭建高效的构建环境。 一、前置条件:安装 Java Development Kit (JDK) Maven 依赖于 Java …...

android 媒体框架之MediaCodec
一、MediaCodec 整体架构与设计思想 MediaCodec 是 Android 底层多媒体框架的核心组件,负责高效处理音视频编解码任务。其架构采用 生产者-消费者模型,通过双缓冲区队列(输入/输出)实现异步数据处理: 输入缓冲区队列…...

堆与堆排序及 Top-K 问题解析:从原理到实践
一、堆的本质与核心特性 堆是一种基于完全二叉树的数据结构,其核心特性为父节点与子节点的数值关系,分为大堆和小堆两类: 大堆:每个父节点的值均大于或等于其子节点的值,堆顶元素为最大值。如: 小堆:每个…...
Linux中检查当前用户是不是root
Linux中检查当前用户是不是root 检查当前用户是否为root用户。如果是root用户,输出“当前用户是root”;否则,输出“当前用户不是root”。 创建一个 aaa.sh脚本文件 写入如下内容 #!/bin/bash# 检查当前用户的UID是否为0(root用…...