目录

系统相关

文件相关

敏感文件

常见web服务配置文件

Mysql配置

Find命令

软件相关

防火墙

端口相关

自动化收集

结语


系统相关

root@vulntarget.com:[/root]

#    管理员root用户
$    普通用户
@  前表示登录的用户名称,后表示主机名,再之后表示当前所在目录
/    表示根目录  
~   表示当前用户家目录

uname -a                 打印所有相关的系统信息
hostname                系统主机名
cat /proc/version      内核信息
cat /etc/*-release     发行版信息
cat /etc/issue           发行版信息
cat /proc/cpuinfo      CPU信息

hostnamectl

#用于显示主机名和一些系统相关的信息

#可以简单的判断系统是否是虚拟机

id                   当前用户信息

whoami         查看当前用户    #能比较直观看到当前系统时间信息
w                   显示目前已登录,及正在运行
who               用于显示系统中目前哪些使用者
last                最后登录用户的列表
lastlog           所有用户上次登录的信息

lastlog –u username  有关指定用户上次登录的信息

这里的 'still logged in' 也表示当前系统在线的用户, 这里的 '19:30 (00:28)' 表示用户登录的时间及登录的时长。

/var/run/utmp

#文件记录当前正在登录系统的用户信息

#默认是who和w命令的记录

#uptime记录系统启动时间

#将文件清空后w和who命令也就没有了相关的记录

date

#查看系统当前日期

#date -f 文件名 可从文件读取日期信息进行打印,不是日期信息则将文件内容打印

/var/log/wtmp

#记录当前正在登录和历史登录系统的用户信息,默认由last命令查看

#清空后last命令的记录也将被清除

/var/log/btmp

#文件记录失败的登录尝试信息,默认由lastb命令查看。

清空文件后lastb命令也将失去相关记录。

/var/run/utmp

/var/log/wtmp

/var/log/btmp

需要注意的是,通常3个文件都是二进制数据文件,并且文件结构相同,类似的还有

/var/log/btmp         记录所有用户错误登录信息,使用lastb命令查看
/var/log/wtmp        记录所有用户成功登录、注销信息,使用last命令查看
/run/utmp              记录当前已经登录的用户信息,使用w、who、users等命令查看
/var/log/secure      记录与安全相关的日志信息,涉及使用账户和密码登录的程序都会记录

/var/log/auth.log    记录与安全相关的日志信息,涉及使用账户和密码登录的程序都会记录
/var/log/lastlog      记录所有用户最后一次的登录时间的曰志,使用lastlog命令查看
/var/log/messages    记录系统启动后的信息和错误日志

将相关文件的可读权限去掉,非root用户就不能用相关联的命令查看到相应的信息了,如果是btmp文件,手工创建的话注意权限必须为600,否则不能正确写入信息。

一键清除脚本:
#!/usr/bin/bash
echo > /var/log/syslog
echo > /var/log/messages
echo > /var/log/httpd/access_log
echo > /var/log/httpd/error_log
echo > /var/log/xferlog
echo > /var/log/secure
echo > /var/log/auth.log
echo > /var/log/user.log
echo > /var/log/wtmp
echo > /var/log/lastlog
echo > /var/log/btmp
echo > /var/run/utmp
rm ~/.bash_history

bash ./res-history
history -c

文件相关

/etc/group        存放系统上的所有组

/etc/passwd     存放系统存在的所有用户

/etc/sudoers    可以对用户做权限修改,通常非root用户不可读
/etc/shadow     存放用户相关信息包括密码
#Linux操作系统采用5中常用的加密算法,主要通过/etc/shadow文件账号后面的$x进行判断

$1:Md5加密算法
$2:Blowfish加密算法
$5:sha-256加密算法
$6:sha-512加密算法
其他均为标准DES加密算法

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

#查看可登录的账号

cat /etc/sudoers|grep "ALL=("

usermod -L user   
#禁用帐号使帐号无法登录

stat /etc/passwd 
#查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题

/etc/services                            #文件存放系统所有的服务

cat /etc/services | grep ssh     #查询对应的服务

service --status-all  #列出系统所有的服务状态

systemctl list-units --type=service --state=running   #查询已经开启的服务

敏感文件

查找敏感文件

#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

history                                       #命令查询历史命令记录
cat ~/.bash_history                   #查看当前用户历史命令记录
cat /home/user/.bash_history   #查看其他用户的历史命令文件

常见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

Mysql配置

/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

#mysql默认会保留登陆日志
cat /var/log/mysql/error.log

Find命令

find / -type f -prem 777  //查找777权限的文件
find / -perm /u=s            //查找SUID文件
find / -prem /g=s            //查找SGID文件
find / -prem /o=t             //查找Sticky文件

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} ;

#查找能写或执行的目录
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

软件相关

查看已安装应用

rpm -qa --last          #Redhat、CentOS
rpm -qa polkit         #查看指定应用的安装版本
dpkg -l                    #ubuntu、debian
dpkg -l policykit-1   #查看指定应用的安装版本
dpkg -L xxx             #查询某个软件所关联的文件

top         #实时显示占用最多的进程

ps aux   #以用户的格式显示所有进程,包括非终端的进程
ps -ef    #显示所有进程,显示UID,PPIP(父进程),C与STIME栏位
ps -ef | grep java   #查询某个应用的所有进程信息

lsof -c $PID                  #查看进程关联文件
/proc/$PID/cmdline      #完整命令行信息 
/proc/$PID/comm        #进程的命令名 
/proc/$PID/cwd            #进程当前工作目录的符号链接 
/proc/$PID/exe            #运行程序的符号链接 
/proc/$PID/environ      #进程的环境变量 
/proc/$PID/fd               #进程打开文件的情况

cat /etc/resolv.conf      #查看dns配置信息
dnsdomainname -V    #打印DNS系统中FQDN名称中的域名
cat /etc/hosts              #查看hosts域名解析文件

防火墙

iptables -L

#查看防火墙配置,列出iptables的配置规则

#查看防火墙状态
systemctl status firewalld
service iptables status

#暂时关闭防火墙
systemctl stop firewalld
service iptables stop

#永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off

#重启防火墙
systemctl enable firewalld
service iptables restart

linux下实用iptables封ip段的一些常见命令

#封单个IP的命令是
iptables -I INPUT -s 211.1.0.0 -j DROP

#封IP段的命令是
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP

#封整个段的命令是
iptables -I INPUT -s 211.0.0.0/8 -j DROP

#封几个段的命令是
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

让服务器启动自运行

1、把它加到/etc/rc.local中

2、iptables-save >/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行

3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。

后两种更好此,一般iptables服务会在network服务之前启来,更安全。

解封

iptables -D INPUT -s IP地址 -j REJECT

#此命令执行后提示:no chain/target/match by that name.

#封停一个IP
iptables -I INPUT -s ***.***.***.*** -j DROP

#解封一个IP
iptables -D INPUT -s ***.***.***.*** -j DROP

-I是表示Insert(添加)

-D表示Delete(删除)后面跟的是规则

INPUT表示入站,***.***.***.***表示要封停的IP

DROP表示放弃连接

端口相关

netstat -antup     #查看所有端口
netstat -antp       #tcp端口
netstat -anup      #udp端口

查看所有80端口的连接数
netstat -nat|grep -i “80”|wc -l

对连接的IP按连接数量进行排序
netstat -anp | grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr

链接最多的前20
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr|head -20
netstat -ntu | awk ‘{print $5}’ | egrep -o “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” | sort | uniq -c | sort -nr

查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

查找较多的SYN连接
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

查看TCP连接状态
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’
netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”\t”,state[key]}’
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,arr[k]}’
netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]’ | sort | uniq -c

查看80端口连接数最多的20个IP
cat /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
tail -n 10000 /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
cat /www/web_logs/waitalone.cn_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk ‘/:80/{split($5,ip,”:”);++A[ip[1]]}END{for(i in A) print A,i}’ |sort -rn|head -n20

用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’ | sort | uniq -c | sort -nr |head -20

查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

查找较多的SYN连接
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

自动化收集

#!/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


结语

长大以后我们都喜欢说"小孩子才做选择",但现实是只有小孩子才有照单全收的资格,而我们不得不让理性压抑情感,才能做出一些从长远来看正确的决定。

Linux系统信息收集相关推荐

  1. linux信息收集命令,linux中收集系统信息的一些命令

    摘要 腾兴网为您分享:linux中收集系统信息的一些命令,知富,掌上优云,掌上电力,悟空识字等软件知识,以及酷我音乐pc,国泰君安app,云校阅卷,一键超频软件,美折,三国群英私服,咔咔截屏录屏大师, ...

  2. Kali Linux信息收集工具全

    可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得那个戏份不多但一直都在的Q先生(由于年级太长目前已经退休).他为007发明了众多神奇 ...

  3. IX1000系统信息收集

    实验  IX1000系统信息收集 1.1  实验内容与目标 完成本实验,您应该能够: l  掌握如何收集Log日志信息 l  掌握如何使用X-ray收集系统信息 l  掌握如何使用sysinfo.da ...

  4. linux怎么在终端里查系统信息,Neofetch:在终端中显示Linux系统信息

    Neofetch 是一个简单但有用的命令行系统信息工具,它用 Bash 编写.它会收集有关系统软硬件的信息,并在终端中显示结果.默认情况下,系统信息将与操作系统的 logo 一起显示.但是,你可以进一 ...

  5. 【内网安全】——Linux信息收集

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:一切为了她 座右铭:不要让时代的悲哀成为你的悲哀 专研方向:网络安全,数据结构 每日emo:遗憾吗?当然 我们在获取到webshell之 ...

  6. _Neofetch – 通过终端显示Linux系统信息

    Neofetch是一个简单,但是又非常有用的使用Bash编写的查看系统信息的命令行工具.它能够搜集你系统的信息然后在终端中显示出结果.默认情况下,他还会一并显示你的系统图标.但是,你也可以进一步对其进 ...

  7. python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息

    最近在学习excel表格的制作,顺便结合之前学习的内容,利用python的两个模板,分别是获取系统信息的psutil,和生成excel表格的xlsxwriter.利用这两个模板将生成一个简单的exce ...

  8. 坏了坏了,以后用/proc读取Linux系统信息可能要给联想交专利费了

    这大千世界,还真是无奇不有. 日前,和LUPA的galen聊天的过程中得知联想在2002年的时候申请过一个关于Linux的专利.我大致的看了一眼,不看不知道,看了还真吓我一跳.这个专利号为021293 ...

  9. 使用脚本快速查看Linux系统信息

    SHELL脚本目标 现在我们写一个 shell 脚本,集中显示需要的系统信息,需要显示的Linux系统信息集中为以下几部分: 1.通用系统信息 2.CPU/内存当前使用情况 3.硬盘使用率超过 80% ...

最新文章

  1. AprilTag中的apriltag.h文件
  2. July大神---SVM讲解
  3. [USACO1.5]数字金字塔 Number Triangles
  4. 用户和计算机的交互通常通过,2008年广东省农村信用社考试计算机真题及答案解析(16)...
  5. Java 集合Collection图解
  6. 关于web自动化操作的分析和基类的实现
  7. python爬虫——代理IP
  8. PN5321(PN5321A3HN/C106)国产替代,FSVP532软硬件兼容,支持A卡,B卡,FeliCa卡,支持ISO/IEC18092,ECM340点对点
  9. Openstack平台neutron模块之网络基础概念
  10. maven的生命周期,插件介绍(二)
  11. 欠缺的_习惯累积沉淀_新浪博客
  12. android 盈利模式
  13. 维瑞最新推出5年期VeriSign SSL证书价格
  14. cent os7目录详解
  15. win32消息处理和创建窗口
  16. JAVA如何添加日志文件
  17. 猫猫学iOS之安装cocoapods
  18. android系统tts TextToSpeech源码原理解析及定制tts引擎
  19. 前端大全之JavaScript(简称JS)
  20. 可能导致Android手机死机的原因

热门文章

  1. 解9*9数独算法(C++)
  2. 小程序input组件type=“nickname“获取不到微信昵称的值,解决方法
  3. 微信内置的浏览器如何上传文件
  4. python两两组合_求数组中两两相加等于20的组合(Python实现)
  5. 关于网线水晶头的接法详解
  6. “地图易“制图工具——零代码制作漂亮业务地图
  7. java专业大学生入伍_JAVA程序征兵系统(包含登录系统和征兵系统)
  8. 山水印|竹林野茶:它,被称为茶叶中瑰宝,不止抗癌那么简单
  9. 超简单的3步搭建静态网站(Franklin.jl)
  10. 风控中消费信贷板块的英文词汇