目录
[1. Linux系统信息收集有哪些命令?](#1. Linux系统信息收集有哪些命令?)
[2. 这些命令能应用于哪些安全漏洞场景中?](#2. 这些命令能应用于哪些安全漏洞场景中?)
[3. 这些命令在应急响应中如何应用?](#3. 这些命令在应急响应中如何应用?)
[4. 红队常用的Linux信息收集工具](#4. 红队常用的Linux信息收集工具)
[5. 分类总结:漏洞利用与应急响应](#5. 分类总结:漏洞利用与应急响应)
[6. 实际案例](#6. 实际案例)
[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
:查看发行版本信息。 -
hostname
或uname -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 -a
或ip 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 -l
或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
:查找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-virt
、grep 'docker' /proc/1/cgroup
:判断是否在虚拟机或容器中运行,以便选择虚拟机逃逸或容器提权技术。
系统基本信息:
-
uname -a
、uname -r
、uname -m
、cat /etc/*-release
:获取内核版本和架构,查找已知内核漏洞或发行版特定的漏洞。
用户信息:
-
id
、cat /etc/passwd
、cat /etc/group
:获取用户和组信息,用于权限提升(如利用不安全组)或横向移动。
环境配置:
-
env
、echo $PATH
:检查环境变量,寻找路径劫持机会。
网络信息:
-
ifconfig -a
、ip addr show
、arp -a
、route
、netstat -antlp
:获取网络接口和连接信息,用于网络嗅探或横向移动。
系统进程:
-
ps aux
、ps aux | grep 'root'
:识别root进程,尝试进程注入或提权。
特权访问:
-
cat /etc/sudoers
、echo ' ' | sudo -S -l -k
:检查sudo配置,寻找无密码提权机会。
cron任务:
-
ls -la /etc/cron*
、crontab -l
:检查定时任务,寻找提权或持久化机会。
软件信息:
-
yum list installed
、dpkg -l
、apt list
:识别已安装软件,查找已知漏洞。
文件枚举:
-
find / -perm -u=s -type f
、find / -writable ! -user $(whoami) -type f
:查找SUID文件或可写文件,用于提权。 -
find / -name id_rsa
:查找SSH私钥,获取其他服务器权限。
3. 这些命令在应急响应中如何应用?
以下是命令在应急响应中的应用,分类总结:
虚拟化技术检测:
-
systemd-detect-virt
、grep 'docker' /proc/1/cgroup
:判断系统环境,评估攻击范围。
系统基本信息:
-
uname -a
、uname -r
、uname -m
、cat /etc/*-release
:确定系统版本和架构,检查已知漏洞。
用户信息:
-
w
、users
、last
:检查当前和历史登录用户,识别异常活动。
环境配置:
-
cat /etc/profile
、cat /etc/shells
:检查配置文件,寻找配置错误。
网络信息:
-
netstat -antlp
、netstat -ntpl
、netstat -nupl
、cat /etc/resolv.conf
:检查网络连接和端口,识别未授权活动。
系统进程:
-
ps aux
、ps 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 installed
、dpkg -l
、apt list
:检查软件版本,识别易受攻击软件。
文件枚举:
ls -la /*_history
、find / -name ".*" -type f -path "/home/*"
、find / -name "*.ovpn" -type f -path "/home/*"
、find / -name id_rsa
:检查历史记录、隐藏文件和配置文件,寻找恶意文件或凭据。
4. 红队常用的Linux信息收集工具
基于文章,以下是红队常用的工具:
Metasploit:
-
模块如
post/linux/gather/enum_network
:收集网络信息。 -
其他模块如
checkvm
、enum_configs
:检测虚拟化技术、枚举配置。
LinEnum:
- 自动化脚本,收集内核版本、敏感文件、用户、定时任务等信息。
5. 分类总结:漏洞利用与应急响应
漏洞利用:
-
虚拟化技术检测 :
systemd-detect-virt
、grep 'docker' /proc/1/cgroup
-
系统基本信息 :
uname -a
、uname -r
、uname -m
、cat /etc/*-release
-
用户信息 :
id
、cat /etc/passwd
、cat /etc/group
-
环境配置 :
env
、echo $PATH
-
网络信息 :
ifconfig -a
、ip addr show
、arp -a
、route
、netstat -antlp
-
系统进程 :
ps aux
、ps aux | grep 'root'
-
特权访问 :
cat /etc/sudoers
、echo ' ' | sudo -S -l -k
-
cron任务 :
ls -la /etc/cron*
、crontab -l
-
软件信息 :
yum list installed
、dpkg -l
、apt list
-
文件枚举 :
find / -perm -u=s -type f
、find / -writable ! -user $(whoami) -type f
应急响应:
-
虚拟化技术检测 :
systemd-detect-virt
、grep 'docker' /proc/1/cgroup
-
系统基本信息 :
uname -a
、uname -r
、uname -m
、cat /etc/*-release
-
用户信息 :
w
、users
、last
-
环境配置 :
cat /etc/profile
、cat /etc/shells
-
网络信息 :
netstat -antlp
、netstat -ntpl
、netstat -nupl
、cat /etc/resolv.conf
-
系统进程 :
ps aux
、ps 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 installed
、dpkg -l
、apt list
-
文件枚举 :
ls -la /*_history
、find / -name ".*" -type f -path "/home/*"
、find / -name "*.ovpn" -type f -path "/home/*"
、find / -name id_rsa
6. 实际案例
漏洞利用案例
案例1:利用内核漏洞提权
-
执行
uname -r
,输出内核版本为3.10.0-514.el7.x86_64
。 -
搜索该版本已知漏洞,发现CVE-2017-1000112(提权漏洞)。
-
下载对应漏洞利用代码,编译并运行,成功获取root权限。
案例2:利用Docker组提权
-
执行
id
,发现当前用户属于docker
组。 -
执行
docker run -v /:/mnt -it alpine chroot /mnt sh
,挂载根目录并进入新Shell。 -
在新Shell中以root身份操作,提权成功。
案例3:路径劫持提权
-
执行
echo $PATH
,发现/tmp
在PATH中且可写。 -
创建恶意脚本
ls
(echo "whoami > /tmp/rootcheck" > /tmp/ls
)。 -
设置执行权限(
chmod +x /tmp/ls
),等待root用户执行ls
,确认提权。
案例4:利用SUID文件提权
-
执行
find / -perm -u=s -type f
,发现/usr/bin/customtool
为SUID文件。 -
检查其功能,发现可执行任意命令。
-
执行
/usr/bin/customtool /bin/sh
,获取root Shell。
应急响应案例
案例5:检测恶意网络连接
-
执行
netstat -antlp
,发现未知IP的TCP连接(192.168.1.100:4444
)。 -
执行
ps aux | grep 4444
,定位关联进程PID。 -
执行
ls -l /proc/<PID>/exe
,确认恶意二进制文件,删除并隔离。
案例6:检测恶意进程
-
执行
ps aux | grep 'root'
,发现异常进程/tmp/.hidden
以root运行。 -
执行
ls -l /tmp/.hidden
,确认文件属性异常。 -
终止进程(
kill -9 <PID>
),删除文件并分析来源。
案例7:检查恶意定时任务
-
执行
crontab -l
,发现每分钟运行/tmp/backdoor.sh
。 -
查看文件内容(
cat /tmp/backdoor.sh
),确认恶意代码。 -
删除定时任务(
crontab -e
)和文件,记录日志。
案例8:利用SSH私钥横向移动
-
执行
find / -name id_rsa
,发现/backup/.ssh/id_rsa
可读。 -
复制私钥到本地(
scp
),设置权限(chmod 600 id_rsa
)。 -
执行
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命令行操作、系统架构、用户和组管理、环境变量配置、网络配置、进程管理、文件权限、定时任务、软件包管理。
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!