Linux信息收集

Linux信息收集

本机基本信息

复制代码
#管理员
$普通用户
@之前表示登录的用户名称,之后表示主机名,再之后表示当前所在目录
/ 表示根目录  
~表示当前用户家目录
1、内核,操作系统和设备信息
复制代码
uname -a  打印所有可用的系统信息
uname -r  内核版本
uname -n  系统主机名。
uname -m  查看系统内核架构(64位/32位)
hostname  系统主机名
lsb_release -a   发行版信息
cat /proc/version  内核信息
cat /etc/*-release  发行版信息
cat /etc/issue    发行版信息
cat /proc/cpuinfo  CPU信息
2、用户和群组
复制代码
cat /etc/passwd     列出系统上的所有用户
cat /etc/shadow     查看用户Hash
cat /etc/group      列出系统上的所有组
groups              当前用户所在的组
groups test         test用户所在的组
getent group xxx      xxx组里的用户

grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'      列出所有的超级用户账户
awk -F: 'length($2)==0 {print $1}' /etc/shadow  #查看是否存在空口令用户
awk '/\$1|\$6/{print $1}' /etc/shadow #查看远程登录的账号 

whoami              查看当前用户
w                   谁目前已登录,他们正在做什么
who                 命令用于显示系统中有哪些使用者正在上面
last                最后登录用户的列表
lastlog             所有用户上次登录的信息
lastlog --u %username%  有关指定用户上次登录的信息
3、用户和权限信息
复制代码
whoami        当前用户名
id            当前用户信息
cat /etc/sudoers  可以使用sudo提升到root的用户
sudo -l       当前用户可以以root身份执行操作

yokan用户可以以root身份执行任意操作

4、环境信息
复制代码
env        显示所有的环境变量
set        显示本地环境变量
echo $PATH 环境变量中的路径信息
export [-fnp][变量名称]=[变量设置值]     显示和设置环境变量   
pwd        输出工作目录
cat /etc/profile   显示默认系统变量
cat /etc/shells    显示可用的shell
ls -la /etc/*.conf  查看etc下所有配置文件
5、历史命令

显示当前用户的历史命令记录

复制代码
history    
cat ~/.bash_history  

# 查看其他用户的历史命令文件
cat /home/user/.bash_history

history显示内存和~/.bash_history中的所有内容

内存中的内容并没有立刻写入~/.bash_history,只有当当前shell关闭时才会将内存内容写入shell

6、进程信息
复制代码
ps aux   以用户的格式显示所有进程,包括非终端的进程
ps -ef   显示所有进程,显示UID,PPIP(父进程),C与STIME栏位
ps -ef | grep java   查询某个应用的所有进程信息
top      实时显示占用最多的进程

如果想查看进程的CPU占用率和内存占用率,可以使用aux

如果想查看进程的父进程ID和完整的COMMAND命令,可以使用-ef

复制代码
lsof -c $PID           查看进程关联文件
/proc/$PID/cmdline     完整命令行信息 
/proc/$PID/comm        进程的命令名 
/proc/$PID/cwd         进程当前工作目录的符号链接 
/proc/$PID/exe         运行程序的符号链接 
/proc/$PID/environ     进程的环境变量 
/proc/$PID/fd          进程打开文件的情况 
7、服务信息
复制代码
cat /etc/services      查询存在的服务
cat /etc/services | grep Java     查询对应的服务
systemctl list-units --type=service --state=running   查询已经开启的服务
8、计划任务

在Linux系统中,计划任务一般是由cron承担。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用工作任务。

复制代码
/var/spool/cron/crontabs :这个目录以账号来区分每个用户自己的执行计划
/etc/crontab :系统执行计划,需要在后边加上用户格式

所有计划任务项:
/var/spool/cron/*
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab
/etc/cron.*
/etc/anacrontab

crontab -l    查询当前用户所有的计划任务
crontab -l -u user   查询指定用户的计划任务
cat /var/spool/cron/crontabs/root   查询root用户的计划任务
9、网络、路由和通信

查询ip

复制代码
ifconfig
ip addr

打印路由信息

复制代码
route         查询路由表
route -n      查询路由表,以ip地址显示
netstat -r    查询路由表
ip ro

查看系统arp表

复制代码
arp -a

端口开放情况

复制代码
netstat -antup     所有端口
netstat -antp      tcp端口
netstat -anup      udp端口

查看端口服务映射

复制代码
cat /etc/services

列出iptables的配置规则

复制代码
iptables -L

显示网卡信息

复制代码
netstat -i

dns信息

复制代码
cat /etc/resolv.conf      查看dns配置信息
dnsdomainname -V          打印DNS系统中FQDN名称中的域名
cat /etc/hosts            查看hosts域名解析文件
10、已安装应用
复制代码
rpm -qa --last     #Redhat、CentOS
rpm -qa polkit     #查看指定应用的安装版本

dpkg -l            #ubuntu、debian
dpkg -l policykit-1   #查看指定应用的安装版本
dpkg -L xxx        #查询某个软件所关联的文件
11、查找能写或执行的目录
复制代码
find / -writable -type d 2>/dev/null
find / -perm -o+w -type d 2>/dev/null
find / -perm -o+x -type d 2>/dev/null
12、防火墙
复制代码
iptables -L   查看防火墙配置

查看防火墙状态:
systemctl status firewalld
service iptables status
暂时关闭防火墙:
systemctl stop firewalld
service iptables stop
永久关闭防火墙:
systemctl disable firewalld
chkconfig iptables off
重启防火墙:
systemctl enable firewalld
service iptables restart
13、敏感文件

find命令 -o参数 表示 或者 的意思

复制代码
find / -type f -iname "*.bash_history" -o -iname "*config*" -o -iname "web.xml" -o -iname "*database*" -o -iname "*pass*" 2>/dev/null

查找SSH密钥:

复制代码
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls

Web应用服务

常见配置文件路径:

复制代码
/apache/apache/conf/httpd.conf
/apache/apache2/conf/httpd.conf
/apache/php/php.ini
/bin/php.ini
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache.conf
/etc/apache2/httpd.conf
/etc/apache2/sites-available/default
/etc/apache2/vhosts.d/00_default_vhost.conf
/etc/httpd/conf.d/httpd.conf
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/php.ini
/etc/init.d/httpd
/etc/php.ini
/etc/php/apache/php.ini
/etc/php/apache2/php.ini
/etc/php/cgi/php.ini
/etc/php/php.ini
/etc/php/php4/php.ini
/etc/php4.4/fcgi/php.ini
/etc/php4/apache/php.ini
/etc/php4/apache2/php.ini
/etc/php4/cgi/php.ini
/etc/php5/apache/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
/etc/phpmyadmin/config.inc.php
/home/apache/conf/httpd.conf
/home/apache2/conf/httpd.conf
/home/bin/stable/apache/php.ini
/home2/bin/stable/apache/php.ini
/NetServer/bin/stable/apache/php.ini
/opt/www/conf/httpd.conf
/opt/xampp/etc/php.ini
/PHP/php.ini
/php/php.ini
/php4/php.ini
/php5/php.ini
/usr/lib/php.ini
/etc/nginx/nginx.conf
/usr/lib/php/php.ini
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/php.ini
/usr/local/apache2/conf/httpd.conf
/usr/local/apache2/conf/php.ini
/usr/local/etc/php.ini
/usr/local/httpd/conf/httpd.conf
/usr/local/lib/php.ini
/usr/local/php/lib/php.ini
/usr/local/php4/lib/php.ini
/usr/local/php4/lib/php.ini
/usr/local/php4/php.ini
/usr/local/php5/etc/php.ini
/usr/local/php5/lib/php.ini
/usr/local/php5/php5.ini
/usr/local/share/examples/php/php.ini
/usr/local/share/examples/php4/php.ini
/usr/local/Zend/etc/php.ini
/var/apache2/config.inc
/var/httpd/conf/httpd.conf
/var/httpd/conf/php.ini
/var/httpd/conf/php.ini
/var/local/www/conf/httpd.conf
/var/local/www/conf/php.ini
/var/www/conf/httpd.conf
/web/conf/php.ini
/www/conf/httpd.conf
/www/php/php.ini
/www/php4/php.ini
/www/php5/php.ini
/xampp/apache/bin/php.ini
/xampp/apache/conf/httpd.conf

数据库

复制代码
/etc/init.d/mysql
/etc/my.cnf
/etc/mysql/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
/var/lib/mysql/mysql/user.MYD
/usr/local/mysql/bin/mysql
/usr/local/mysql/my.cnf
/usr/share/mysql/my.cnf

自动化脚本

linux_info.sh

复制代码
#!/bin/bash

#输出文件
filename=$(date +%s)'.log'

echo "信息收集"
echo -e "\n" | tee -a $filename
echo "账户信息收集" | tee -a $filename
cat /etc/passwd | tee -a $filename
echo -e "\n" | tee -a $filename
echo "shadow" | tee -a $filename
cat /etc/shadow | tee -a $filename
echo -e "\n" | tee -a $filename
echo "进程信息收集" | tee -a $filename
ps aux | tee -a $filename
echo -e "\n" | tee -a $filename
echo "网络连接" | tee -a $filename
netstat -antlp | tee -a $filename
echo -e "\n" | tee -a $filename
echo "当前用户:" $(whoami) 2>/dev/null | tee -a $filename
echo -e "\n" | tee -a $filename
echo "端口监听" | tee -a $filename
netstat -lnpt | tee -a $filename
echo -e "\n" | tee -a $filename
echo "可登陆用户" | tee -a $filename
cat /etc/passwd | grep -E -v 'nologin$|false' | tee -a $filename
echo -e "\n" | tee -a $filename
echo "增加用户的日志" | tee -a $filename
grep "useradd" /var/log/secure  | tee -a $filename
echo -e "\n" | tee -a $filename
echo "History操作提取" | tee -a $filename
cat ~/.*history | tee -a $filename
echo -e "\n" | tee -a $filename
echo "登录成功的IP" | tee -a $filename
grep "Accepted " /var/log/secure* | awk '{print $11}' | sort | uniq -c | sort -nr | more | tee -a $filename   
echo -e "\n" | tee -a $filename
echo "查看路由表" | tee -a $filename
route -n | tee -a $filename
echo -e "\n" | tee -a $filename
echo "查看 SSH key" | tee -a $filename
sshkey=${HOME}/.ssh/authorized_keys
if [ -e "${sshkey}" ]; then
    cat ${sshkey} | tee -a $filename
else
    echo -e "SSH key文件不存在\n" | tee -a $filename
fi
echo -e "\n" | tee -a $filename
echo "查看 known_hosts" | tee -a $filename
cat ~/.ssh/known_hosts | tee -a $filename
echo -e "\n" | tee -a $filename
echo "查找WEB-INF" | tee -a $filename
find / -name *.properties 2>/dev/null | grep WEB-INF | tee -a $filename
echo -e "\n" | tee -a $filename
echo "user|pass|pwd|uname|login|db_" | tee -a $filename
find / -name "*.properties" | xargs egrep -i "user|pass|pwd|uname|login|db_" | tee -a $filename
echo -e "\n" | tee -a $filename
echo "jdbc:|pass=|passwd=" | tee -a $filename
find / -regex ".*\.properties\|.*\.conf\|.*\.config\|.*\.sh" | xargs grep -E "=jdbc:|pass=|passwd=" | tee -a $filename
echo -e "\n" | tee -a $filename
# Author cances
echo "ip和网卡信息" | tee -a $filename
ip a | awk '{print $2,$4}' | tee -a $filename
echo -e "\n" | tee -a $filename
echo "可登陆用户" | tee -a $filename
cat /etc/passwd | grep -E -v 'sync$|halt$|nologin$|false|shutdown' | tee -a $filename
echo -e "\n" | tee -a $filename
echo "用户登陆日志" | tee -a $filename
lastlog | tee -a $filename
echo -e "\n" | tee -a $filename
echo "查看 hosts" | tee -a $filename
cat /etc/hosts | tee -a $filename
echo -e "\n" | tee -a $filename
echo "查看 系统版本" | tee -a $filename
cat /etc/*-release | tee -a $filename
echo -e "\n" | tee -a $filename
echo "查看 内核版本" | tee -a $filename
uname -mrs | tee -a $filename
相关推荐
A小辣椒5 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒9 小时前
TShark:基础知识
linux
AlfredZhao11 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言