Web安全1.4:溯源、部分Linux命令:
Web安全1.4:溯源、部分Linux命令:
说明:本实验环境采用的 Linux 为 Redhat 版本,但有些命令并不是此版本的,只要了解思路即可。
1、溯源:
溯源直接可以翻译为寻找上游,我们可以理解为寻求根源。
由于这里说的是网络安全,因此我们可以这样来理解,比如一台服务器被黑客进行了入侵,这台服务器就有可能被黑客作为跳板,进而去入侵其他服务器,同理让更多的服务器沦为肉鸡,成为挖矿机器。因此我们需要根据日志等黑客的入侵的蛛丝马迹,一步一步去追查,去寻找攻击的根源。
那么,这里以沦为挖矿的服务器为例:当我们发现服务器响应迟缓,变得与往常有些异常的时候,首先我们就怀疑服务器被入侵了,假设用来挖矿了。由于服务器迟缓,那么我们可以查看当前系统的进程运行状况是怎样的,最直观的就是CPU和内存了吧.
我们可以使用top命令来查看一下CPU、内存的使用情况,寻找消耗资源的进程。
之后通过这个进程进一步查看端口的连接信息,使用netstat命令,从这个命令中我们就可以知道挖矿的PID、与外部连接的IP了,进而查找进程文件,通过日志文件查找相应的痕迹。
但溯源过程其实并没有这么简单,实际过程中:黑客会删除日志,清理相关痕迹,相关的链接会失效,所以需要更多的手段去分析,获取更多信息,猜测黑客的入侵原因。
总结一下溯源的过程,通过CPU占用率分析端口,通过端口寻找进程和外联IP,查找入侵来源。
(1)top 命令:
以下是在命令行界面中直接输入top后显示的结果:
top | 显示当前系统运行的进程,相当于Windows下的任务管理器 |
---|---|
c | 显示进程的完整的命令行 |
P | 以 CPU 占用的方式进行排序 |
M | 以 内存 占用的方式进行排序 |
Ctrl+c | 退出(返回命令行模式) |
(2)netstat命令:
netstat | 查看端口网络连接 |
---|---|
-a | 显示所有socket,包括正在监听的 |
-n | 以网络IP地址代替名称,显示网络连接状况 |
-p | 显示建立相关连接的程序名和PID |
-t | 显示TCP协议的连接情况 |
-u | 显示UDP协议的连接情况 |
2、相关Linux命令:
计划任务目录 /var/spool/cron
日志目录 /var/log
(1)ps命令:
ps | 查看当前系统中的进程信息, |
---|---|
a | 查看其他用户的进程 |
u | 显示进程的用户名和时间 |
x | 查看自己的进程 |
(2)其他命令:
命令 | 注解 |
---|---|
ifconfig | 查看IP信息 |
uname -a | 查看当前操作的Linux内核 |
cat /etc/redhat-release | 查看发行版本 |
crontab | -l 列出系统的全部计划任务(/var/spool/cron) -e进入编辑任务计划模式 |
vi ~/.bash_history | 历史命令操作历史 |
cat /proc/pid | 查看进程文件 |
find . -name ‘*.txt’ | 查找当前目录中名字后缀为txt的文件 (find命令用于查找已知黑客入侵时间范围内“变更的文件”) |
history | 历史命令信息 |
lastlog | 显示最后登录信息 |
last /var/log/wtmp | 查看历史用户登录信息 |
cat /var/log/secure | 文件寻找可以IP登陆次数 |
cat /var/log/auth.log | 系统登录日志 |
tail -f auth.log | 实时的输出最新的日志 |
(3)文本编辑命令:
命令后跟文件名
命令 | 注解 |
---|---|
cat | 显示某个文件的全部内容 |
head | 默认输出文件头部的10行内容(-n 指定数字) |
tail | 默认输出文件尾部10行的内容(-n 指定数字) |
除此之外还有比较强大的VIM命令,由于太多,这里不再讲解。
(4)通用命令:
命令 | 注解 |
---|---|
命令A |grep B | 执行完命令A后,只显示含有B的信息 |
-u redhat | 指定执行命令的用户是redhat用户 |
(5)杂项:
touch :创建一个文本文件(-t指定生成文件的时间)
touch -t 201904140000 t_start
touch -t 201904150000 t_end
find . -type f -newer t_start ! -newer t_end
查找一个比t_start 新 比 t_end 旧的文件 /tmp