在拿到一台Linux服务器后,需要先对Linux系统本地的环境信息进行获取收集,再进一步提权,权限维持等。下面是一些有用的信息获取命令,不用编写shell脚本的情况下,直接终端执行命令即可,更加灵活自由。
获取内核/操作系统/设备信息
命令 | 作用 |
---|
uname -a | 打印所有可用的系统信息 |
uname -r | 内核版本信息 |
uname -n | 系统主机名字 |
hostname | 主机名 |
uname -m | Linux内核架构(x86/x64) |
cat /proc/version | 内核信息 |
cat /etc/*-release | 系统版本发布信息 |
lsb_release -a | 系统发行版信息(Debian/Ubuntu) |
cat /etc/issue | 系统版本发布信息 |
cat /proc/cpuinfo | CPU信息 |
free -mh | 查看内存信息 |
df -ah | 磁盘系统使用信息 |
用户和组
命令 | 作用 |
---|
cat /etc/passwd | 列出系统所有用户 |
cat /etc/group | 列出系统所有组 |
cat /etc/shadow | 列出所有用户hash(需要root权限) |
finger、finger user | 当前登录的用户、查询用户的基本信息 |
users | 当前登录的用户 |
who -a | 当前登录的用户 |
w | 显示目前登入系统的用户有那些人,以及他们正在执行的程序 |
last | 显示登入过的用户信息 |
lastlog | 显示系统中所有用户最近一次登录信息 |
lastlog –u %username% | 显示指定用户最后一次登入信息 |
用户和权限信息
命令 | 作用 |
---|
whoami | 当前用户 |
id | 当前用户信息 |
cat /etc/sudoers | 可以使用sudo提升到root的用户(需要root权限) |
sudo | 允许普通用户执行一些或者全部的root命令的一个工具 |
sudo -l | 列出目前用户可执行与无法执行的指令 |
su | 切换当前用户身份到其他用户身份 |
环境信息
命令 | 作用 |
---|
env | 打印系统环境信息 |
set | 打印系统环境信息 |
echo $PATH | 环境变量中的路径信息 |
history | 打印历史命令 |
pwd | 显示当前路径 |
cat /etc/profile | 显示默认系统遍历 |
cat /etc/shells | 显示可用的shell |
其它权限搜集
命令 | 作用 |
---|
find / -perm -4000 -type f | 查找SUID的文件 |
find / -uid 0 -perm -4000 -type f | 查找root权限的SUID文件 |
find / -perm -2 -type f | 找出可写的文件 |
find / ! -path "/proc/" -perm -2 -type f -print | 查找/proc以外的可写文件 |
find / -perm -2 -type d | 找出可写目录 |
find /home –name *.rhosts -print | 查找rhosts的配置文件 |
find /home -iname *.plan -exec ls -la {} ; -exec cat {} | 查询文件并打印 |
ls -ahlR /root/ | 查看是否有权限列用户目录 |
cat ~/.bash_history | 查看当前用户的历史记录 |
ls -la ~/.*_history | 查看当前用户的各种历史记录 |
ls -la ~/.ssh/ | 查看用户ssh登录信息 |
ls -la /usr/sbin/in.* | 检查inetd服务的配置 |
grep -l -i pass /var/log/*.log | 查询包含pass的日志并打印匹配到的行 |
ls -la /etc/*.conf | 列出/etc/下的所有配置文件 |
lsof -i -n | 列出打开的文件 |
head /var/mail/root | 答应/var/mail/root的开头 |
服务信息
命令 | 作用 |
---|
ps aux | 查看进程信息 |
cat /etc/inetd.conf | 由inetd管理的服务列表 |
cat /etc/xinetd.conf | 由xinetd管理的服务列表 |
cat /etc/exports | nfs服务器的配置 |
作业和任务
命令 | 作用 |
---|
crontab -l -u %username% | 显示指定用户的计划作业(需要root权限) |
ls -la /etc/cron* | 计划任务 |
top | 列出当前进程 |
网络/路由和通信/防火墙
命令 | 作用 |
---|
/sbin/ifconfig -a | 列出网络接口信息 |
cat /etc/network/interfaces | 列出网络接口信息 |
arp -a | 查看系统arp表 |
route | 打印路由信息 |
cat /etc/resolv.conf | 查看dns配置信息 |
netstat -ano | 打印本地端口开放信息 |
service iptables status | 查看iptable防火墙状态 |
iptables -L | 列出iptable的配置规则 |
systemctl status firewalld | 查看firewall服务开启状态 |
firewall-cmd --state | 查看firewall的状态 |
firewall-cmd --list-all | 查看防火墙规则 |
cat /etc/services | 查看端口服务映射 |
软件安装信息
命令 | 作用 |
---|
dpkg -l | 软件安装(Debian) |
rpm -qa | 软件安装(Red Hat) |
sudo -V | 查看sudo的版本信息 |
httpd -v | 查看apache的版本信息 |
apache2 -v | 查看apache的版本信息 |
apache2ctl (or apachectl) -M | 列出加载的apache模块 |
mysql --version | mysql的版本信息 |
psql -V | Postgres数据库的版本信息 |
perl -v | perl的版本信息 |
java -version | java的版本信息 |
python --version | python的版本信息 |
ruby -v | ruby的版本信息 |
find / -name %program_name% | 查找有用的软件 |
which %program_name% | 查找有用的软件 |
cat /etc/apache2/envvars | 查看运行apache的帐号 |
总结
Linux本地系统信息收集命令(包括但不限于以上),未列出使用的日后有需再更新;其实也可以自己写个一键获取信息脚本,实在不会,网上也有现成的,根据需求更改即可。