当企业受到攻击者的攻击时,系统被挂入暗链,内容被恶意篡改,服务器出现异常链接或卡住等,需要紧急处理才能使系统恢复正常状态。最短的时间。由于紧急响应通常是时间关键的,因此尝试将紧急情况中的常见处理方法集成到脚本中可以使一些紧急工作自动化。紧急脚本在python2.0中完成。由于所有需要执行的命令都依赖于ssh进行远程链接,因此在运行脚本之前,需要输入正确的主机IP地址,ssh远程连接端口,ssh远程登录帐户,ssh远程登录密码。
一,脚本实现的主要功能
1,获取主机信息
获取的主机信息包括:主机IP地址,主机名,当前系统内核版本,当前系统版本和当前系统时间;
2,得到异常过程
获取异常过程主要采用两种方法。第一个是通过执行netstat -antp获取当前主机的链接,并确定外部链接地址的属性。如果归属地不是中国,则提取相关的pid,并根据pid找到文件的位置。其次,通过cpu占用率,一旦发现cpu占用率高于%15,就提取相应程序的pid,并根据pid定位异常文件位置。
3.确定常用命令是否已被篡改
在之前的紧急响应中,常见命令被非法篡改。例如,ps和netstat命令被恶意替换。使用stat查看文件详细信息,并通过比较时间来确定命令是否已被篡改。
4,查看系统启动项
许多恶意程序会修改系统启动项,这样即使系统重启,恶意程序也可以自动启动。查看init.d目录下的启动文件,根据修改时间提取新修改的启动文件,并根据时间列出。前五个。
5,查看历史命令
查看.bash_history历史命令,检查系统是否在通过匹配关键字(如wget,cur等)受到危害后被恶意执行。
6,确定非系统默认帐户
恶意程序可能会在系统中创建新帐户。通过查看login.defs文件获取最小uid,然后根据uid查看passwd文件以获取新创建的系统用户。
7,获取当前登录用户通过调用who,检查当前登录用户(tty是本地登录,pts是远程登录),以确定是否存在异常用户登录。
8,查看系统的当前用户
通过检查etc/passwd检查相关的用户信息,以确定是否存在异常用户。
9,查看crontab计时任务
查看/etc/crontab计划任务并将输出保存到日志中
10,查看并保存系统文件修改的最后三天
使用find命令查找过去三天内已修改的文件。由于存在更多已修改的系统文件,因此修改后的文件将保存在本地file_edit文件中。
11.查找特权用户。
查看passwd文件以查找用户ID为0的特权用户。
12,安全日志分析
日志分析是紧急情况的主要任务,特别是在后期紧急情况的追溯阶段。日志分析尤为重要。由于日志类型包括服务器日志和应用程序日志,因此仅分析安全服务器日志,并提取日志的IP地址。并判断IP归属,查看的安全日志保存在本地安全中。
脚本运行后,它会输出以下信息:
最后在当前目录中生成以下文件
脚本运行完毕后,在当前目录中生成log.txt并记录脚本检查结果:
同时,当前目录中生成的netstat.txt保存系统链接。
当前目录secure.txt,记录当前的安全日志
当前目录中的File_edit.txt记录了过去三天内的文件修改。
脚本的整体思路比较简单,即远程登录linux执行常见的紧急命令,脚本中的命令可以在centos下正常运行,命令可以根据实际环境进行调整。如果有良好的实现方法,可以灵活调整上述一些功能。例如,如果常用命令是伪造的,则根据时间判断脚本,并且可以根据实际应用中的文件大小来判断脚本。
最后,编写代码的整体渣。我欢迎你指出,我希望改进将使功能更完美。