导语
近来 碰到 了很多 服务器被入侵的例子,为了方便日后入侵检测以及排查取证 ,我查询了一些linux服务器入侵取证的相干 资料,并在此总结分享,以便日后查询 。
一样平常 服务器被入侵的迹象 ,包罗 但不范围 于:由内向外发送大量数据包(DDOS肉鸡) 、服务器资源被耗尽(挖矿程序)、不正常的端口毗连 (反向shell等)、服务器日记 被恶意删除等。那么既然是入侵检测,起首 要判定 的是服务器是否被入侵,必须打扫 是管理员操纵 不当 导致的题目 ,因此入侵检测的第一项工作就是扣问 管理员服务器的非常 征象 ,这对之后入侵范例 的判定 非常紧张 。
在扣问 了相干 非常 信息,打扫 了管理员操纵 失误等缘故起因 后 ,那么便可以开始正式的上服务器举行 入侵检测以及取证操纵 了 。
审计下令
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 %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 -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
注:以上3个步调 为查抄 隐蔽 进程 。
查抄 文件
被入侵的网站,通常肯定有文件被改动 ,那么可以通过比力 文件创建时间、完备 性、文件路径等方式查察 文件是否被改动。
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
查抄 网站后门
假如 服务器上运行着web程序,那么必要 查抄 是否通过web弊端 入侵服务器,具体 的判定 方法可以连合 分析中心 件日记 以及体系 日记 ,但过程必要 较长时间 。我们也可以通过查抄 服务器上是否留有入侵者放置的网站后门木马 ,以此判定 黑客是否通过web应用入侵到服务器。
Method One
将网站目次 下,文件名中含有jsp、php、asp、aspx的文件(留意 是含有)都copy出来并压缩。
通过windows下的D盾工具扫描打包出来的目次 ,扫描是否存Webshell(网站后门)
Method Two
直接利用 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:
tar cvf my_txt_files.tar `find . -type f -name "*.jsp*"`
打包日记 文件
tar -cvf log.tar /var/log
打包其他信息
last last.log
netstat -an netstat.log
......
传输文件到本地
将服务器上的文件传输到本地 电脑上的几种方法。
lrzsz
假如 ssh毗连 的客户端为xshell等,可以安装lrzsz下令 (putty无法利用 )
apt-get install lrzsz
利用 :
上传文件到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
敬请连续 关注……