热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux入侵排查脚本

根据大佬的Linux入侵排查文章,链接如下:https:bypass007.github.ioEmergency-Response-NotesSumm

根据大佬的Linux入侵排查文章,链接如下:

https://bypass007.github.io/Emergency-Response-Notes/Summary/%E7%AC%AC2%E7%AF%87%EF%BC%9ALinux%E5%85%A5%E4%BE%B5%E6%8E%92%E6%9F%A5.html

编写的简易python脚本:
 

# coding=utf-8
import os
info = '''usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除'''
min1 = "awk -F: '$3==0{print $1}' /etc/passwd"
min2 = "awk '/\$1|\$6/{print $1}' /etc/shadow"
min3 = 'more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"'
def getinfo(min):tmp = os.popen(min)return tmp.read()
print "处置手段:"
print info
print "============================================================"
print "入侵排查 第一步账号安全 ing------"
display_format = '%-30s %-20s'
print display_format % ("特权用户:", getinfo(min1)[:-1])
print display_format % ("可远程登录:", getinfo(min2)[:-1])
print display_format % ("sudo权限用户:", getinfo(min3)[:-1])
print "============================================================"
print "入侵排查 第二步历史命令 ing------"
print "root的历史命令: histroy"
print '''进入用户目录下
cat .bash_history >> history.txt'''
print "============================================================"
print "入侵排查 第三步检查异常端口 ing------"
min4 = "netstat -antlp|more"
def getdir(min):tmp = os.popen(min)return tmp.readlines()
pidinfo = getdir(min4)
print pidinfo[1][:-1], " dir"
for i in pidinfo[2:]:str = "ls -l /proc/%s/exe" % (i[:-1].split("/")[0]).split(" ")[-1]print i[:-1], getinfo(str)[:-1]
print "============================================================"
print "入侵排查 第四步检查异常进程 ing------"
min5 = "ps aux | grep pid"
print getinfo(min5)[:-1]
print "============================================================"
print "入侵排查 第五步检查开机启动项 ing------"
min6 = "more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/"
print getinfo(min6)[:-1]
print "============================================================"
print "入侵排查 第六步检查定时任务 ing------"
print '''请使用以下命令:
more /var/spool/cron/*
more /etc/crontab
more /etc/cron.d/*
more /etc/cron.daily/*
more /etc/cron.hourly/*
more /etc/cron.monthly/*
more /etc/cron.weekly/
more /etc/anacrontab
more /var/spool/anacron/*'''
print "============================================================"
print "入侵排查 第七步检查服务 ing------"
min7 = "ps aux | grep crond"
min8 = "chkconfig --list"
print display_format % ("查看当前服务:", getinfo(min7)[:-1])
print display_format % ("服务自启动状态:", getinfo(min8)[:-1])
print "============================================================"
print "入侵排查 检查异常文件 and 检查系统日志 Please do manual work"
print "Thinks !"

上面脚本的结果如下:

部分检查日志的脚本:
 

# coding=utf-8
import osdef getinfo(min):tmp = os.popen(min)return tmp.read()
min1 = '''grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more'''
min2 = '''grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c'''
min3 = &#39;&#39;&#39;grep "Failed password" /var/log/secure|perl -e &#39;while($_=<>){ /for(.*?) from/; print "$1\n";}&#39;|uniq -c|sort -nr&#39;&#39;&#39;
min4 = &#39;&#39;&#39;grep "Accepted " /var/log/secure | awk &#39;{print $11}&#39; | sort | uniq -c | sort -nr | more&#39;&#39;&#39;
min5 = &#39;&#39;&#39;grep "Accepted " /var/log/secure | awk &#39;{print $1,$2,$3,$9,$11}&#39;&#39;&#39;
display_format = &#39;%-30s %-20s&#39;
print display_format % ("多少IP在爆破主机的root帐号:", getinfo(min1)[:-1])
print display_format % ("定位有哪些IP在爆破:", getinfo(min2)[:-1])
print display_format % ("爆破用户名字典是:", getinfo(min3)[:-1])
print display_format % ("登录成功的IP有:", getinfo(min4)[:-1])
print display_format % ("登录成功的日期、用户名、IP:", getinfo(min5)[:-1])

结果如下:


推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
author-avatar
点提土八撇又254
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有