导语
近来碰到了很多服务器被入侵的例子,为了方便日后入侵检测以及排查取证,我查询了一些linux服务器入侵取证的相干资料,并在此总结分享,以便日后查询。
一样平常服务器被入侵的迹象,包罗但不范围于:由内向外发送大量数据包(DDOS肉鸡)、服务器资源被耗尽(挖矿程序)、不正常的端口毗连(反向shell等)、服务器日记被恶意删除等。那么既然是入侵检测,起首要判定的是服务器是否被入侵,必须打扫是管理员操纵不当导致的题目,因此入侵检测的第一项工作就是扣问管理员服务器的非常征象,这对之后入侵范例的判定非常紧张。
在扣问了相干非常信息,打扫了管理员操纵失误等缘故起因后,那么便可以开始正式的上服务器举行入侵检测以及取证操纵了。
审计下令
last
这个下令可用于查察我们体系的乐成登录、关机、重启等环境,本质就是将/var/log/wtmp文件格式化输出,因此假如该文件被删除,则无法输出结果。
相干参数:
last-10(-n)查察近来10条记录
last-xreboot查察重启的记录
last-xshutdown查察关机的记录
last-d查察登岸的记录
last–help下令资助信息
last-fwtmp用last下令查察wtmp文件(直接打开无法查察)
lastb
这个下令用于查察登录失败的环境,本质就是将/var/log/btmp文件格式化输出。
相干参数:
lastbname(root)查察root用户登岸失败记录
lastb-10(-n)查察近来10条登岸失败记录
lastb–heplp下令资助信息
lastlog
这个下令用于查察用户上一次的登录环境,本质就是将/var/log/lastlog文件格式化输出。
相干参数:
lastlog全部用户上一次登岸记录
lastlog-uusername(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表现时间戳:
exportHISTTIMEFORMAT="%F%T`whoami`"
history|more
查抄用户
Linux差别的用户,有差别的操纵权限,但是全部用户都会在/etc/passwd、/etc/shadow、/etc/group文件中记录。
less/etc/passwd查察是否有新增用户
grep:0/etc/passwd查察是否有特权用户(root权限用户)
ls-l/etc/passwd查察passwd末了修改时间
awk-F:'$3==0{print$1}'/etc/passwd查察是否存在特权用户
awk-F:'length($2)==0{print$1}'/etc/shadow查察是否存在空口令用户
注:linux设置空口令:passwd-dusername
查抄进程
一样平常被入侵的服务器都会运行一些恶意程序,或是挖矿程序,大概DDOS程序等等,假如程序运行着,那么通过查察进程可以发现一些信息。
平凡进程
ps-aux查察进程
top查察进程
lsof-ppid查察进程所打开的端口及文件
lsof-c进程名查察关联文件
ps-aux|greppython|cut-d''-f2|xargskill杀死python相干的进程
查抄/etc/inetd.conf文件,输入:cat/etc/inetd.conf|grep–v"^#",输出的信息就是你这台呆板所开启的长途服务。
假如进程中没有发现非常,那么可以看看有没有开启某些隐蔽进程。
隐蔽进程
ps-ef|awk'{print}'|sort-n|uniq1
ls/proc|sort-n|uniq2
diff12
注:以上3个步调为查抄隐蔽进程。
查抄文件
被入侵的网站,通常肯定有文件被改动,那么可以通过比力文件创建时间、完备性、文件路径等方式查察文件是否被改动。
find/-uid0-print查找特权用户文件
find/-size+10000k-print查找大于10000k的文件
find/-name"…"-prin查找用户名为…的文件
find/-namecore-execls-l{};查找core文件,并列出具体信息
md5sum-bfilename查察文件的md5值
rpm-qf/bin/ls查抄文件的完备性(尚有别的/bin目次下的文件)
whereis文件名查察文件路径
ls-al文件名查察文件创建时间
du-sh文件名查察文件巨细
查抄网络
查抄网络的目标,是查察黑客是否通过窜改网卡范例,举行流量嗅探等操纵。
iplink|grepPROMISC正常网卡不应该存在promisc,假如存在大概有sniffer
lsof-i
netstat-nap查察不正常端口
arp-a查察arp记录是否正常
ifconfig-a查察网卡设置
查抄筹划任务
当我们实行kill恶意程序时,每每会碰到被kill程序主动启动的题目,那么就要查抄下筹划任务(cron)了。
crontab-uroot-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/systemctllist-units–type=service查抄自启
查察闻名的木门后门程序:
ls/etc/rc.d#体系开机后,此目次下的文件会被启动
ls/etc/rc3.d
find/-name“.rhosts”–print
find/-name“.forward”–print
查抄网站后门
假如服务器上运行着web程序,那么必要查抄是否通过web弊端入侵服务器,具体的判定方法可以连合分析中心件日记以及体系日记,但过程必要较长时间。我们也可以通过查抄服务器上是否留有入侵者放置的网站后门木马,以此判定黑客是否通过web应用入侵到服务器。
MethodOne
将网站目次下,文件名中含有jsp、php、asp、aspx的文件(留意是含有)都copy出来并压缩。
通过windows下的D盾工具扫描打包出来的目次,扫描是否存Webshell(网站后门)
MethodTwo
直接利用MaskFindShell工具,举行webshell扫描(如今只能扫描jsp与PHP的网站,而且php的误报比力高)关于MaskFindShell具体用法,可以参考:MaskFindShell-Document(https://github.com/tengzhangchao/MaskFindShell/blob/master/README.md)
探求服务器物理路径
无论哪种方法的webshell查找,起首要确定的是web服务器安装的路径,由于webshell都是放在web路径下的。
扣问管理员、网站开辟商
SearchWebPath,具体用法参考:SearchWebPath用法
打包文件
当我们做好统统入侵检测分析后,我们必要把一些日记文件copy到本地举行更进一步具体的分析时,怎么打包服务器相干信息,而且copy到本地呢?
打包web文件
打包文件名中包罗jsp的文件,打包后的文件为my_txt_files.tar:
tarcvfmy_txt_files.tar`find.-typef-name"*.jsp*"`
打包日记文件
tar-cvflog.tar/var/log
打包其他信息
lastlast.log
netstat-annetstat.log
......
传输文件到本地
将服务器上的文件传输到本地电脑上的几种方法。
lrzsz
假如ssh毗连的客户端为xshell等,可以安装lrzsz下令(putty无法利用)
apt-getinstalllrzsz
利用:
上传文件到linux,rz;下载linux文件,sz文件名。
开启ftp大概http
开ftp这里我不先容了,网上很多教程,这里重要说说开启http服务。
一样平常linux服务器都默认安装了Python,那么可以借助python快速开启一个http服务,具体参考:基于Python的WebServer
U盘挂载
假如我们不是通过ssh的方式毗连,而是直接通过表现器毗连上服务器举行操纵,那么可以实行U盘传输。
fdisk-l查察U盘路径
monut/dev/sdb4/mnt挂载U盘
cd/mnt进入U盘
umount/mnt退出U盘
本文总结的都是一些Linux入侵检测最底子的下令,至于怎么用好这些下令,必要连合实际环境,重要还是看履历。以上所诉,还只是入侵检测信息网络阶段,至于怎样通过现有信息分析收支侵途径,还必要借助其他工具以及知识。
(原文链接:https://blog.csdn.net/qq_29277155/article/details/68066369#t22)
炼石信息安全培训春季班开招
咨询QQ群:495066536
敬请连续关注……
我要评论