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

historylinux日志服务器_踏雪无痕—linux入侵痕迹清理指南

0x00前言前段时间做项目遇到了一次翻车的情况——留的计划任务后门被管理员发现了,但是好在经过一番缠斗,权限还是比较稳的留住了。而且还有意外的收获&#x
afd5e78f9d12d1d52340d9fc2f6760f0.gif0x00 前言前段时间做项目遇到了一次翻车的情况——留的计划任务后门被管理员发现了,但是好在经过一番缠斗,权限还是比较稳的留住了。而且还有意外的收获,从管理员执行的排查命令中了解到自己做痕迹清理还有哪些欠缺之处,索性整理一下Linux入侵痕迹清理的要点,水一篇文章。0x01 清除登陆日志我是通过ssh密码复用登陆目标的linux主机,那不可避免的会留下ssh登陆的痕迹,首先要清除的就是登陆日志这部分。查看登陆记录有两条命令:lastlastlog,分别使用的是/var/log/wtmp/var/log/lastlog日志文件。476487cf644d94ce450e12de22d5bea8.png两个文件都是二进制形式存储,之前分享过一个小工具可以很方便地修改这两个文件:https://mp.weixin.qq.com/s/PIlNIq8nGHDSXEfdJtanZA除此之外,还有下面的日志会记录登陆信息(明文存储):/var/log/messages/var/log/securea453a5721bde18402d2dba0e2818d231.png用vi或sed直接修改即可。如果你登陆成功前做过几次失败的尝试,别忘记清除下面的登陆失败日志(二进制存储):/var/log/btmp70fba80a831db6eae438c8f124089ffc.png用sed直接修改或echo全部清除。附带两条用sed清除日志会用到的命令。

# 删除所有匹配到字符串的行

sed  -i '/192.168.108.33/'d  /var/log/messages

# 全局替换登录IP地址

sed -i  's/1.1.1.2/1.1.1.1/g' /var/log/secure

0x02 清除服务日志一般是指清除拿权限过程中使用的服务,或留后门过程使用的服务。比如你是通过webshell拿到的权限,记得清除web日志,不同的web容器日志在不同的位置,比如apache的可能在/var/log/httpd下面。如果是通过数据库漏洞,要清除数据库的日志,一般在数据库软件根目录下,或/var/log目录下。计划任务getshell,清除计划任务日志/var/log/cron。以此类推……比较容易忽略的是,当你把一些后门软件注册成服务运行时,会在/var/log/messages里留下软件相关信息和启动记录。(比如打隧道)6a51ab42de520e6aadf5d0503456360b.png0x03 清除历史命令这个很重要啦,如果不清除自己在入侵后执行的命令history:1、很容易被管理员发现入侵痕迹。2、被发现后管理员可以理清楚你的入侵路径和后门位置,导致权限丢失。查看历史命令的命令:history62f369d650d7b1327426741067b5d233.png记录历史命令的文件:~/.bash_history11aada85873843c3f5bdc03612d01df1.png有时你会发现,为什么文件记录和直接history查看的结果不一样,直接history能看到的命令似乎更多一点?其实当前登陆用户执行过的命令会记录在一个缓冲区里,直到该用户退出登陆之后才会写入文件。而history命令能查看到缓冲区的内容,所以能看到的命令更多一点,缓冲区的内容只有自己可见。了解这个原理,那清除历史命令的方法也很简单:每次退出使用【kill -9 $$】命令退出,不给当前的shell留时间去处理后事,缓冲区的命令也就没时间写入到文件了。如果已经写入的怎么办,vi或sed修改~/.bash_history文件删除掉命令就好了。不建议全部清除,有种此地无银三百两的感觉。0x04 不要用vim修改或查看一些文件的时候,不要用vim。否则你会在~/.viminfo文件中看到你打开过哪些文件,在vim里执行过什么命令(搜索哪些字符串),删除过什么内容。当然管理员也能看到。23cbc5414c2936373a5f5fbf32ac7663.png0x05 文件时间追求完美的话,一些敏感的文件或者你留下的后门要修改文件时间,不然可能会被管理员根据时间看出来文件被修改过。用ls -al命令可以查看文件时间。6e05138a77dcdc54aba196de9fd0c546.pngtouch -r命令修改文件时间——touch -r A B,使B文件时间变得和A文件相同。25a90b5b39ecbdbb3f6b379a49e4df27.png一般来说这样就可以了,但是防不住管理员用stat命令查看。4b8c3bb3ecfff32bca53f6a11f09d07e.pngstat命令可以看到三个时间:最近访问时间(atime):只要文件的内容被读取,访问时间就会更新。最近更改时间(mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。最近改动时间(ctime):当文件的状态(权限or属性)发生变化,就会相应改变这个时间。后两个看名字可能不太好区分,它们还可以翻译成:数据修改时间,状态修改时间。我们先改动一下passwd文件,用stat查看时间,发现三个时间全部更改了,这很容易被发现。a57136e5f38a52ed459ac6e6e7622c48.png赶快用touch -r修改passwd文件的时间,再次查看afb1c082f352f0ab7417767bae464529.pngdb38f78fc9c062ba3681ca6e5502f433.png发现一个很严重的问题,touch -r只能同步最近访问和最近更改时间,但最近改动时间反而会更新到当前时间。有经验的管理员用stat命令只要重点看最近改动时间就会发现入侵痕迹。怎么解决这个问题?了解了原理其实解决办法也很简单:1、先修改系统时间。date -s "20140712 18:30:50"2、再修改文件时间即可。ed030afc709a7869c81215898d4e20a6.png3、最后别忘了把系统时间恢复:hwclock --hctosysc762ded74934ec6bce26d47b1a91f7b9.png0x06 后记这周总算没拖更,欢迎师傅们指点补充~0x07 参考文献https://mp.weixin.qq.com/s/i2WvFmF1qQjbx-BaStXb1Qhttps://www.linuxprobe.com/linux-simple-2.htmlhttps://www.cnblogs.com/pacino12134/p/11481258.htmlhttps://www.cnblogs.com/morganchen/p/9437066.html

END.


欢迎留言~

欢迎关注~

欢迎点赞~

8143d943b75c45ab1fa73134280997ba.png

我是小黑,喵~




推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
author-avatar
天涯小犁_640
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有