linux入侵检测基础

审计命令

last

这个命令可用于查看我们系统的成功登录、关机、重启等情况,本质就是将/var/log/wtmp文件格式化输出,因此如果该文件被删除,则无法输出结果。

相关参数:

last -10(-n) 查看最近10条记录
last -x reboot 查看重启的记录
last -x shutdown 查看关机的记录
last -d 查看登陆的记录
last –help 命令帮助信息
last -f wtmp 用last命令查看wtmp文件(直接打开无法查看)

lastb

这个命令用于查看登录失败的情况,本质就是将/var/log/btmp文件格式化输出。

相关参数:

lastb name(root) 查看root用户登陆失败记录
lastb -10(-n) 查看最近10条登陆失败记录
lastb –heplp 命令帮助信息

lastlog

这个命令用于查看用户上一次的登录情况,本质就是将/var/log/lastlog文件格式化输出。

相关参数:

lastlog 所有用户上一次登陆记录
lastlog -u username(root) root用户上一次登陆记录
lastlog –help 命令帮助信息

who

这个命令用户查看当前登录系统的情况,本质就是将/var/log/utmp文件格式化输出。主要用来查看当前用户名称,以及登陆的ip地址信息,w命令与who一样,会更详细一些。

history

查看历史命令记录,其实就是查看root/.bash_history文件内容,删除这个文件,记录就没了。

相关参数:

history 查看所有历史记录
history -10 查看最近10条记录
history | grep “wget” 查看wget相关信息的记录
history –help 命令帮助信息

history显示时间戳:

export HISTTIMEFORMAT="%F %Twhoami" history | more

检查用户

Linux不同的用户,有不同的操作权限,但是所有用户都会在/etc/passwd、/etc/shadow、/etc/group文件中记录。

less /etc/passwd  查看是否有新增用户
grep :0 /etc/passwd  查看是否有特权用户(root权限用户)
ls -l /etc/passwd  查看passwd最后修改时间

cawk -F: '$3==0 {print $1}' /etc/passwd  查看是否存在特权用户

awk -F: 'length($2)==0 {print $1}' /etc/shadow  查看是否存在空口令用户

注:linux设置空口令:passwd -d username

检查进程

一般被入侵的服务器都会运行一些恶意程序,或是挖矿程序,或者DDOS程序等等,如果程序运行着,那么通过查看进程可以发现一些信息。

普通进程

ps -aux  查看进程
top查看进程
lsof -p pid  查看进程所打开的端口及文件
lsof -c 进程名  查看关联文件
ps -aux | grep python | cut -d ' ' -f 2 | xargs kill   杀死python相关的进程

检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v "^#",输出的信息就是你这台机器所开启的远程服务。

隐藏进程

ps -ef | awk '{print}' | sort -n | uniq >1  
ls /proc | sort -n |uniq >2
diff 1 2

检查文件

被入侵的网站,通常肯定有文件被改动,那么可以通过比较文件创建时间、完整性、文件路径等方式查看文件是否被改动。

find / -uid 0 -print  查找特权用户文件
find / -size +10000k -print  查找大于10000k的文件
find / -name "…" -prin  查找用户名为…的文件
find / -name core -exec ls -l {} \;  查找core文件,并列出详细信息
md5sum -b filename  查看文件的md5值
rpm -qf /bin/ls  检查文件的完整性(还有其它/bin目录下的文件)
whereis 文件名  查看文件路径
ls -al 文件名  查看文件创建时间
du -sh  文件名   查看文件大小

检查网络

检查网络的目的,是查看黑客是否通过篡改网卡类型,进行流量嗅探等操作。

ip link | grep PROMISC  正常网卡不应该存在promisc,如果存在可能有sniffer
lsof -i
netstat -nap  查看不正常端口
arp -a  查看arp记录是否正常
ifconfig -a  查看网卡设置

检查计划任务

当我们尝试kill恶意程序时,往往会遇到被kill程序自动启动的问题,那么就要检查下计划任务(cron)了。

crontab -u root -l  查看root用户的计划任务
cat /etc/crontab
ls -l /etc/cron.*  查看cron文件是否变化的详细信息
ls /var/spool/cron/

检查系统后门

可以使用工具,如:Conmodo、rkhunter等,当然也可以手工输入命令检查。

vim $HOME/.ssh/authorized_keys  查看ssh永久链接文件
lsmod  检查内核模块
chkconfig –list/systemctl list-units –type=service  检查自启

查看著名的木门后门程序:

ls /etc/rc.d   #系统开机后,此目录下的文件会被启动
ls /etc/rc3.d
find / -name “.rhosts” –print
find / -name “.forward” –print

打包文件

当我们做好一切入侵检测分析后,我们需要把一些日志文件copy到本地进行更进一步详细的分析时,怎么打包服务器相关信息,并且copy到本地呢?

打包web文件

打包文件名中包含jsp的文件,打包后的文件为my_txt_files.tar:
tar cvf my_txt_files.tar find . -type f -name "*.jsp*"

打包日志文件

tar -cvf log.tar /var/log

打包其他信息

last > last.log
netstat -an > netstat.log
文章目录
  1. 1. 审计命令
    1. 1.1. last
    2. 1.2. lastb
    3. 1.3. lastlog
    4. 1.4. who
    5. 1.5. history
  2. 2. 检查用户
  3. 3. 检查进程
    1. 3.1. 普通进程
    2. 3.2. 隐藏进程
  4. 4. 检查文件
  5. 5. 检查网络
  6. 6. 检查计划任务
  7. 7. 检查系统后门
  8. 8. 打包文件
    1. 8.1. 打包web文件
    2. 8.2. 打包日志文件
    3. 8.3. 打包其他信息
|