网络安全之超强Linux信息收集:渗透测试与应急响应的基石(命令超强集合工作手册)

目录

Linux信息收集:

渗透测试与应急响应的基石

[1. Linux系统信息收集有哪些命令?](#1. Linux系统信息收集有哪些命令?)

虚拟化技术检测:

系统基本信息:

用户信息:

环境配置:

网络信息:

系统进程:

特权访问:

cron任务:

软件信息:

文件枚举:

[2. 这些命令能应用于哪些安全漏洞场景中?](#2. 这些命令能应用于哪些安全漏洞场景中?)

虚拟化技术检测:

系统基本信息:

用户信息:

环境配置:

网络信息:

系统进程:

特权访问:

cron任务:

软件信息:

文件枚举:

[3. 这些命令在应急响应中如何应用?](#3. 这些命令在应急响应中如何应用?)

虚拟化技术检测:

系统基本信息:

用户信息:

环境配置:

网络信息:

系统进程:

特权访问:

cron任务:

软件信息:

文件枚举:

[4. 红队常用的Linux信息收集工具](#4. 红队常用的Linux信息收集工具)

Metasploit:

LinEnum:

[5. 分类总结:漏洞利用与应急响应](#5. 分类总结:漏洞利用与应急响应)

漏洞利用:

应急响应:

[6. 实际案例](#6. 实际案例)

漏洞利用案例

案例1:利用内核漏洞提权

案例2:利用Docker组提权

案例3:路径劫持提权

案例4:利用SUID文件提权

应急响应案例

案例5:检测恶意网络连接

案例6:检测恶意进程

案例7:检查恶意定时任务

案例8:利用SSH私钥横向移动

[7. 命令总结(代码段)](#7. 命令总结(代码段))

[8. 总结逻辑与知识点](#8. 总结逻辑与知识点)

逻辑:

知识点:


Linux信息收集:

渗透测试与应急响应的基石
  • 在Linux系统中,信息收集是渗透测试和应急响应的关键第一步。
    • 通过收集系统架构、用户信息、网络拓扑、进程状态和文件权限等信息,渗透测试人员可以快速了解目标系统,识别潜在漏洞并制定提权策略;
    • 应急响应人员则能迅速定位异常,遏制攻击并恢复安全。
  • Linux信息收集的命令及其应用。
    • 信息收集的重要性在于,它帮助测试人员避免盲目攻击,节省时间和资源。
    • 例如,通过uname -r获取内核版本,可直接查找对应漏洞;
    • 通过id发现用户组权限,可利用Docker或sudo提权。
  • 在应急响应中,netstat -antlp能揭示未授权连接,ps aux能定位恶意进程。
    • 常用命令包括:systemd-detect-virt检测虚拟化环境,cat /etc/passwd枚举用户,find / -perm -u=s -type f查找SUID文件等。这些命令覆盖系统、网络、进程和文件多个维度,为后续行动提供依据。红队工具如Metasploit和LinEnum进一步提升效率,自动化收集关键信息。
  • 总之:
    • Linux信息收集是权限提升和安全防御的基石,掌握相关命令和应用场景,能显著提升攻防能力。

1. Linux系统信息收集有哪些命令?

基于文章内容,以下是Linux系统中常用的信息收集命令,分类列出:

虚拟化技术检测
  • systemd-detect-virt:检测系统是否运行在虚拟化环境中。

  • grep 'docker' /proc/1/cgroup:判断是否在Docker容器中。

系统基本信息
  • uname -a:查看系统名称、版本、架构、主机名和内核版本。

  • uname -r:查看内核版本。

  • uname -m:查看系统架构。

  • cat /etc/*-release:查看发行版本信息。

  • hostnameuname -n:查看主机名。

用户信息
  • whoami:查看当前用户名。

  • id:查看当前用户详细信息(用户ID、组ID等)。

  • cat /etc/passwd:查看所有用户信息。

  • cat /etc/group:查看所有用户组。

  • for i in $(cut -d":" -f1 /etc/passwd); do id $i; done:获取所有用户及其ID和组信息。

  • w:查看当前登录用户信息。

  • users:查看当前登录用户。

  • last:查看历史登录信息。

  • grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1 }':查找超管用户。

环境配置
  • env | grep -v 'LS_COLORS':查看系统环境变量。

  • echo $PATH:查看环境变量中的路径信息。

  • cat /etc/profile:查看用户环境配置文件。

  • cat /etc/shells:查看可用Shell。

网络信息
  • ifconfig -aip addr show:查看网络接口信息。

  • arp -a:查看ARP缓存信息。

  • route:查看IP路由表。

  • netstat -antlp:查看所有网络连接信息。

  • netstat -ntpl:查看监听的TCP端口。

  • netstat -nupl:查看监听的UDP端口。

  • cat /etc/resolv.conf:查看DNS配置文件。

系统进程
  • ps aux:查看所有系统进程。

  • ps aux | grep 'root':查看以root权限运行的进程。

  • ps aux | awk '{print $11}' | xargs -I {} ls -l {}:查看进程对应的二进制文件及权限。

特权访问
  • cat /etc/sudoers:查看sudoers文件(需root权限)。

  • echo ' ' | sudo -S -l -k:检查是否可以无密码使用sudo。

cron任务
  • ls -la /etc/cron*:查看所有cron任务。

  • for user in $(getent passwd | cut -f1 -d:); do echo "### Crontabs for $user ####"; crontab -u $user -l; done:查看所有用户的定时任务(需root权限)。

  • crontab -l:查看当前用户的定时任务。

  • crontab -l -u root:查看指定用户的定时任务(需root权限)。

软件信息
  • yum list installed(CentOS):查看已安装的程序。

  • dpkg -lapt list(Debian/Ubuntu):查看已安装的程序。

文件枚举
  • which nc; which netcat; which nmap; which gcc; which wget:检查常用工具是否安装。

  • ls -la /etc/passwd; ls -la /etc/group; ls -la /etc/profile; ls -la /etc/shadow:查看敏感文件权限。

  • find / -perm -u=s -type f:查找SUID文件。

  • find / -perm -g=s -type f:查找SGID文件。

  • find / -writable ! -user $(whoami) -type f ! -path "/proc/*" ! -path "/sys/*" -exec ls -al {} \;:查找可写文件。

  • find . -name "*.php" -print0 | xargs -0 grep -i -n "pass":查找包含关键字的文件。

  • ls -la /*_history:查找历史命令记录文件。

  • find / -name ".*" -type f -path "/home/*" -exec ls -al {} \;:查找隐藏文件。

  • find / -name "*.ovpn" -type f -path "/home/*" -exec ls -al {} \;:查找VPN配置文件。

  • find / -name id_rsa:查找SSH私钥文件。


2. 这些命令能应用于哪些安全漏洞场景中?

以下是命令在安全漏洞场景中的应用:

虚拟化技术检测
  • systemd-detect-virtgrep 'docker' /proc/1/cgroup:判断是否在虚拟机或容器中运行,以便选择虚拟机逃逸或容器提权技术。

系统基本信息
  • uname -auname -runame -mcat /etc/*-release:获取内核版本和架构,查找已知内核漏洞或发行版特定的漏洞。

用户信息
  • idcat /etc/passwdcat /etc/group:获取用户和组信息,用于权限提升(如利用不安全组)或横向移动。

环境配置
  • envecho $PATH:检查环境变量,寻找路径劫持机会。

网络信息
  • ifconfig -aip addr showarp -aroutenetstat -antlp:获取网络接口和连接信息,用于网络嗅探或横向移动。

系统进程
  • ps auxps aux | grep 'root':识别root进程,尝试进程注入或提权。

特权访问
  • cat /etc/sudoersecho ' ' | sudo -S -l -k:检查sudo配置,寻找无密码提权机会。

cron任务
  • ls -la /etc/cron*crontab -l:检查定时任务,寻找提权或持久化机会。

软件信息
  • yum list installeddpkg -lapt list:识别已安装软件,查找已知漏洞。

文件枚举
  • find / -perm -u=s -type ffind / -writable ! -user $(whoami) -type f:查找SUID文件或可写文件,用于提权。

  • find / -name id_rsa:查找SSH私钥,获取其他服务器权限。


3. 这些命令在应急响应中如何应用?

以下是命令在应急响应中的应用,分类总结:

虚拟化技术检测
  • systemd-detect-virtgrep 'docker' /proc/1/cgroup:判断系统环境,评估攻击范围。

系统基本信息
  • uname -auname -runame -mcat /etc/*-release:确定系统版本和架构,检查已知漏洞。

用户信息
  • wuserslast:检查当前和历史登录用户,识别异常活动。

环境配置
  • cat /etc/profilecat /etc/shells:检查配置文件,寻找配置错误。

网络信息
  • netstat -antlpnetstat -ntplnetstat -nuplcat /etc/resolv.conf:检查网络连接和端口,识别未授权活动。

系统进程
  • ps auxps aux | awk '{print $11}' | xargs -I {} ls -l {}:检查进程,识别恶意进程。

特权访问
  • cat /etc/sudoers:检查sudo配置,寻找提权痕迹。

cron任务
  • for user in $(getent passwd | cut -f1 -d:); do echo "### Crontabs for $user ####"; crontab -u $user -l; done:检查定时任务,识别恶意任务。

软件信息
  • yum list installeddpkg -lapt list:检查软件版本,识别易受攻击软件。

文件枚举
  • ls -la /*_historyfind / -name ".*" -type f -path "/home/*"find / -name "*.ovpn" -type f -path "/home/*"find / -name id_rsa:检查历史记录、隐藏文件和配置文件,寻找恶意文件或凭据。

4. 红队常用的Linux信息收集工具

基于文章,以下是红队常用的工具:

Metasploit
  • 模块如post/linux/gather/enum_network:收集网络信息。

  • 其他模块如checkvmenum_configs:检测虚拟化技术、枚举配置。

LinEnum
  • 自动化脚本,收集内核版本、敏感文件、用户、定时任务等信息。

5. 分类总结:漏洞利用与应急响应
漏洞利用
  • 虚拟化技术检测systemd-detect-virtgrep 'docker' /proc/1/cgroup

  • 系统基本信息uname -auname -runame -mcat /etc/*-release

  • 用户信息idcat /etc/passwdcat /etc/group

  • 环境配置envecho $PATH

  • 网络信息ifconfig -aip addr showarp -aroutenetstat -antlp

  • 系统进程ps auxps aux | grep 'root'

  • 特权访问cat /etc/sudoersecho ' ' | sudo -S -l -k

  • cron任务ls -la /etc/cron*crontab -l

  • 软件信息yum list installeddpkg -lapt list

  • 文件枚举find / -perm -u=s -type ffind / -writable ! -user $(whoami) -type f

应急响应
  • 虚拟化技术检测systemd-detect-virtgrep 'docker' /proc/1/cgroup

  • 系统基本信息uname -auname -runame -mcat /etc/*-release

  • 用户信息wuserslast

  • 环境配置cat /etc/profilecat /etc/shells

  • 网络信息netstat -antlpnetstat -ntplnetstat -nuplcat /etc/resolv.conf

  • 系统进程ps auxps aux | awk '{print $11}' | xargs -I {} ls -l {}

  • 特权访问cat /etc/sudoers

  • cron任务for user in $(getent passwd | cut -f1 -d:); do echo "### Crontabs for $user ####"; crontab -u $user -l; done

  • 软件信息yum list installeddpkg -lapt list

  • 文件枚举ls -la /*_historyfind / -name ".*" -type f -path "/home/*"find / -name "*.ovpn" -type f -path "/home/*"find / -name id_rsa


6. 实际案例
漏洞利用案例
案例1:利用内核漏洞提权
  1. 执行uname -r,输出内核版本为3.10.0-514.el7.x86_64

  2. 搜索该版本已知漏洞,发现CVE-2017-1000112(提权漏洞)。

  3. 下载对应漏洞利用代码,编译并运行,成功获取root权限。

案例2:利用Docker组提权
  1. 执行id,发现当前用户属于docker组。

  2. 执行docker run -v /:/mnt -it alpine chroot /mnt sh,挂载根目录并进入新Shell。

  3. 在新Shell中以root身份操作,提权成功。

案例3:路径劫持提权
  1. 执行echo $PATH,发现/tmp在PATH中且可写。

  2. 创建恶意脚本lsecho "whoami > /tmp/rootcheck" > /tmp/ls)。

  3. 设置执行权限(chmod +x /tmp/ls),等待root用户执行ls,确认提权。

案例4:利用SUID文件提权
  1. 执行find / -perm -u=s -type f,发现/usr/bin/customtool为SUID文件。

  2. 检查其功能,发现可执行任意命令。

  3. 执行/usr/bin/customtool /bin/sh,获取root Shell。

应急响应案例
案例5:检测恶意网络连接
  1. 执行netstat -antlp,发现未知IP的TCP连接(192.168.1.100:4444)。

  2. 执行ps aux | grep 4444,定位关联进程PID。

  3. 执行ls -l /proc/<PID>/exe,确认恶意二进制文件,删除并隔离。

案例6:检测恶意进程
  1. 执行ps aux | grep 'root',发现异常进程/tmp/.hidden以root运行。

  2. 执行ls -l /tmp/.hidden,确认文件属性异常。

  3. 终止进程(kill -9 <PID>),删除文件并分析来源。

案例7:检查恶意定时任务
  1. 执行crontab -l,发现每分钟运行/tmp/backdoor.sh

  2. 查看文件内容(cat /tmp/backdoor.sh),确认恶意代码。

  3. 删除定时任务(crontab -e)和文件,记录日志。

案例8:利用SSH私钥横向移动
  1. 执行find / -name id_rsa,发现/backup/.ssh/id_rsa可读。

  2. 复制私钥到本地(scp),设置权限(chmod 600 id_rsa)。

  3. 执行ssh -i id_rsa root@目标IP,成功登录另一服务器。


7. 命令总结(代码段)
bash 复制代码
# 虚拟化技术检测
systemd-detect-virt
grep 'docker' /proc/1/cgroup
​
# 系统基本信息
uname -a
uname -r
uname -m
cat /etc/*-release
hostname
uname -n
​
# 用户信息
whoami
id
cat /etc/passwd
cat /etc/group
for i in $(cut -d":" -f1 /etc/passwd); do id $i; done
w
users
last
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1 }'
​
# 环境配置
env | grep -v 'LS_COLORS'
echo $PATH
cat /etc/profile
cat /etc/shells
​
# 网络信息
ifconfig -a
ip addr show
arp -a
route
netstat -antlp
netstat -ntpl
netstat -nupl
cat /etc/resolv.conf
​
# 系统进程
ps aux
ps aux | grep 'root'
ps aux | awk '{print $11}' | xargs -I {} ls -l {}
​
# 特权访问
cat /etc/sudoers
echo ' ' | sudo -S -l -k
​
# cron任务
ls -la /etc/cron*
for user in $(getent passwd | cut -f1 -d:); do echo "### Crontabs for $user ####"; crontab -u $user -l; done
crontab -l
crontab -l -u root
​
# 软件信息
yum list installed  # CentOS
dpkg -l  # Debian/Ubuntu
apt list  # Debian/Ubuntu
​
# 文件枚举
which nc; which netcat; which nmap; which gcc; which wget
ls -la /etc/passwd; ls -la /etc/group; ls -la /etc/profile; ls -la /etc/shadow
find / -perm -u=s -type f
find / -perm -g=s -type f
find / -writable ! -user $(whoami) -type f ! -path "/proc/*" ! -path "/sys/*" -exec ls -al {} \;
find . -name "*.php" -print0 | xargs -0 grep -i -n "pass"
ls -la /*_history
find / -name ".*" -type f -path "/home/*" -exec ls -al {} \;
find / -name "*.ovpn" -type f -path "/home/*" -exec ls -al {} \;
find / -name id_rsa

8. 总结逻辑与知识点
逻辑
  • 信息收集是Linux渗透测试和应急响应的基础,通过系统化收集信息,确定攻击路径或异常点,从而实现提权或防御目标。

知识点
  • Linux命令行操作、系统架构、用户和组管理、环境变量配置、网络配置、进程管理、文件权限、定时任务、软件包管理。

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!


相关推荐
plmm烟酒僧1 小时前
使用 Tmux 在断开SSH连接后,保持会话的生命周期
运维·ssh·tmux·分离会话
opentrending3 小时前
Github 热点项目 awesome-mcp-servers MCP 服务器合集,3分钟实现AI模型自由操控万物!
服务器·人工智能·github
多多*3 小时前
Java设计模式 简单工厂模式 工厂方法模式 抽象工厂模式 模版工厂模式 模式对比
java·linux·运维·服务器·stm32·单片机·嵌入式硬件
Doris Liu.4 小时前
如何检测代码注入(Part 2)
windows·python·安全·网络安全·网络攻击模型
Guarding and trust4 小时前
python系统之综合案例:用python打造智能诗词生成助手
服务器·数据库·python
南鸳6105 小时前
Linux常见操作命令(2)
linux·运维·服务器
iOS技术狂热者5 小时前
使用抓包大师(sniff master)进行手机端iOS抓包的配置步骤
websocket·网络协议·tcp/ip·http·网络安全·https·udp
fengwuJ5 小时前
Linux安装Idea
linux·ubuntu·debian·intellij-idea
Kaede65 小时前
怎么安装JSON服务器?JSON服务器最新安装教程
运维·服务器·json
秋说5 小时前
【区块链安全 | 第八篇】多签机制及恶意多签
安全·区块链