Linux信息收集

news2025/6/7 13:17:51

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信息

image-20220119173222186

image-20220119173308486

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%  有关指定用户上次登录的信息

image-20220119175943129

image-20220119180007785

image-20220119174456912

3、用户和权限信息
whoami        当前用户名
id            当前用户信息
cat /etc/sudoers  可以使用sudo提升到root的用户
sudo -l       当前用户可以以root身份执行操作

image-20220119180537906

image-20220128144449999

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

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

image-20220119181617068

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      实时显示占用最多的进程

image-20220128151110438

如果想查看进程的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   查询已经开启的服务

image-20220128154119951

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1286015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题 2477. 到达首都的最少油耗(中等,树)

去参加CCF软件大会,好多天没做每日一题了 我的思路: 看到题目是一个由叶子节点向根节点汇聚的过程,就想到拓扑排序每次移动都只将叶子节点向前移动一格,并删除它,此时移动的目标节点数量加一,并根据该叶子…

vue创建项目,使用可视化界面安装插件

安装项目: vue create vue-app 选择默认配置就行,也可以按需选择自定义配置 vue ui通过可视化管理项目 通过可视化安装全家桶插件

文件重命名:删除文件名中的空格,提高文件可读性和可管理性的方法

在计算机科学中,有效的文件管理对于提高工作效率和保持数据的一致性至关重要。工作中经常会遇到文件名中包含空格的情况,这不仅会使文件在某些情况下难以读取,而且可能导致管理上的困扰。在文件名中添加空格可能会使文件名变得模糊和不明确&a…

批量创建/更新外协工序采购信息记录

批量创建/更新没有物料号的外协工序采购信息记录。 执行事务代码ZME1X_OP,下载模板。(此程序可同时用于外协工序的创建和修改)创建外协工序的时候如果是新建则不需要输入采购信息记录号,如果是要更新外协工序价格,则必须输入采购信息记录号。价格单位默认为‘1’,货币代码…

Flannel源码解析

Flannel源码解析 项目地址: https://github.com/flannel-io/flannel 更多文章访问 https://www.cyisme.top flannel中有三种工作模式: udp。 性能最低,利用tun/tap设备,通过udp封装ip包。中间需要经过多次内核态和用户态的切换。vxlan。 性能中等&…

JavaWeb(六)

一、Maven的常用命令 maven的常用命令有:compile(编译)、clean(清理)、test(测试)、package(打包)、install(安装)。 1.1、compile(编译) compile(编译)的作用有如下两点: 1、从阿里云下载编译需要的jar包,在本地仓库也能看到下载好的插件(远程仓库配置的是阿里…

【希尔排序和直接插入排序】

文章目录 一. 直接插入排序代码实现:过程思想:性能分析: 希尔排序基本思想:代码实现:特性总结:希尔排序由于gap的取值有很多方法和组,导致没有一定规律去计算,因此目前为止众多大佬通过大量实验证明例如,Kn…

[每周一更]-(第75期):Go相关粗浅的防破解方案

Go作为编译语言,天然存在跨平台的属性,我们在编译完成后,可以再不暴露源代码的情况下,运行在对应的平台中,但是 还是架不住有逆向工程师的反编译、反汇编的情形;(当然我们写的都不希望被别人偷了…

如何在应用程序中实现在线更新功能

大家好,我是咕噜-凯撒。随着技术的不断发展和应用程序的普及,保持应用的最新版本成为开发者们必须面对的挑战之一。在线更新功能的引入可以帮助开发者简化用户体验,用户始终使用的都是最新版本的应用。下面简单的介绍一下如何在应用程序中实现…

【JavaEE进阶】 Spring核⼼与设计思想

文章目录 🌲Spring 是什么?🎄什么是IoC呢?🎈传统程序开发🎈传统程序开发的缺陷🎈如何解决传统程序的缺陷?🎈控制反转式程序开发🎈对⽐总结规律 🍀…

想考研到电子类,未来从事芯片设计,目前该怎么准备?

最近看不少天坑学子想考研微电子专业,但却不知道该怎么准备?接下来就带大家一起来具体了解一下~ 首先是目标院校的选择? 目前所设的微电子专业学校里,比较厉害的有北京大学、清华大学、中国科学院大学、复旦大学、上海交通大学、…

关系型数据库的数据隔离级别Read Committed与Repeatable Read

一、背景 数据库隔离级别会影响到我们的查询,本文试图以生产中的示例,给你一个直观的认识。 所谓,理论要结合实践,才能让我们理解得更加透彻。 另外,隔离级别的知识面很大,本文也不可能俱全,…

大数据SpringBoot项目|基于SpringBoot+MyBatis框架健身房管理系统的设计与实现

大数据SpringBoot项目|基于SpringBootMyBatis框架健身房管理系统的设计与实现 摘 要:本文基于Spring Boot和MyBatis框架,设计并实现了一款综合功能强大的健身房管理系统。该系统涵盖了会员卡查询、会员管理、员工管理、器材管理以及课程管理等核心功能,…

理解js中原型链的封装继承多态

前言 面向对象有三大特性:封装继承多态。 不过,js和java的封装继承多态是不一样的,我和从事java开发的朋友有过一次对话(抬杠 !--)。 我说:javascript也是面向对象语言, 他说:不对吧,js不是面向对象吧。 我说:是的,官方说的就是面向对象语言。 他说:那你知道三大特性吗?…

彼此的远方

那天两个人互相表白了心意,在那天那刻确定了彼此相爱,没有鲜花,没有礼物。 男孩的世界曾陷入黑暗,冷清而又孤寂,女孩带着光和热来了,后来,女孩成为了男孩的太阳。女孩以为男孩是远方的风…

SpringBoot 注入RedisTemplat 启动报错

需求 因为需要限制部门内多个人员同一时间操作同一批客户的需求,考虑下决定用Redis滑动窗口实现自过期以及并发校验。 问题 新建了个Redis工具类封装RedisTemplat 操作,到启动时却发现无法正常启动,报错注入错误。 The injection point has…

数字化转型:互联网+为企业带来的全新机遇

引言 在当今快速发展的商业环境中,数字化转型和互联网已成为企业前进的关键动力和重要战略。数字化转型代表了企业在数字技术的推动下,对其运营模式、业务流程以及客户体验的全面变革和升级。而“互联网”则突显了数字化时代与传统产业的融合&#xff0…

RAR文件的密码保护如何设置和取消?

RAR文件是压缩包一种常用的压缩文件格式,对于这种文件,我们如何设置和取消密码保护呢? 首先我们要下载适用于RAR文件的WinRAR解压缩软件,然后在压缩文件的时候,就可以同步设置密码,选中需要压缩的文件&…

navicat premium 历史版本下载地址

navicat贴心地给大家准备了一致的下载地址: 只是没有把旧版本的链接放出来而已。 链接的格式 : 前缀版本类型语言位数 前缀:http:/download.navicat.com/download/navicat 版本:三位数,前两位是大版本,后…

微信小程序之猜数字和猜拳小游戏

目录 效果图 app.json 一、首页(index3)的代码 wxml代码 wxss代码 二、猜数字页面(index)代码 wxml代码 wxss代码 js代码 三.游戏规则页面(logs)代码 wxml代码 wxss代码 四.猜拳页面&#xff…