什么是shift后门?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是shift后门?相关的知识,希望对你有一定的参考价值。

RT
中了怎么办?

在进入windows登陆界面的时候连按5次shift就会调出系统的放大镜,shift后门就是替换这个放大镜程序,在登陆界面按5次shift时运行一个木马程序,来新建一个用户,这样就可以登录了,在注销之前在删除这个用户,这样这台电脑的用户不会发现自己的电脑出现问题。 参考技术A shift 后门 应该就是利用按shift 按5下 就可以进 系统了
预防很简单的,连敲5次shift,然后在弹出的设置里面取消连滞键

已经中了的话

attrib c:\windows\system32\sethc.exe -h
attrib c:\windows\system32\dllcache\sethc.exe -h
拷贝新的 c:\windows\system32\sethc.exe 文件到 c:\windows\system32\目录下;拷贝新的c:\windows\system32\dllcache\sethc.exe到c:\windows\system32\dllcache\目录下
参考技术B 点击“开始”菜单-“运行”,输入命令“CMD”。回车后打开命令提示符窗口。在命令提示符窗口中,执行如下命令:
copy c:\wmdows\explorer.exe c:\windows\system32\sethc.exe
copy c:\wmdows\system32\sethc.exe c:\windows\system32\dUcache\sethc.exe
attrib c:\windows\system32\sethc.exe+h
atmb c:\wmdows\svstem32\dUcache\sethc.exe+h
这几句命令的作用,是将系统中的辅助工具“sethc.exe”。替换成为“explerer.exe”,这样就可以在3389或本地登录界面中打开粘滞键开关了。以后在3389远程连接窗口中,连续按下5次Shift键。即可自动打开资源管理器。点击工具栏“向上”按钮。返回到桌面,右键点击“我的电脑”。在弹出菜单中选择“管理”命令,打开管理工具,直接添加用户名即可。也可以打开控制面板中的用户帐户,添加管理员帐户。用同样的原理,也可将“sethc.exe”。替换成为“cmd.exe”,即可在CMDSHELL中执行帐户添加命令。
小提示
在windows 2000/xp/vista下,连续按shift键5次,可以运行“sethc,exe”打开粘滞键,而且在登录界面里也可以打开。采用替换“sethc.exe”的文件的方法,就可以实现运行任意

(望楼主采纳哦)
参考技术C   进程文件: sethc 或者 sethc.exe
  进程名称: sethc.exe
  描述:Windows的粘滞键。是按5下shift后,windows就执行了system32下的sethc.exe。

《Arthas系列三》Arthas的程序入口java agent,Java程序的后门

agent 是什么?

Java Agent 是 Java 虚拟机提供的一整套后门,通过这套后门可以对虚拟机方方面面进行监控与分析,甚至干预虚拟机的运行。直白点理解你可以控制你的程序,想做什么东西都可以。

agent 怎么用?

启动java agent 有两种方式:

一种是在程序启动的时候,启动agent,我们的本地调试就是通过这种方式。

一种是在程序启动之后,正常运行的时候,在自己想控制的时候attach上去,远程调试就是通过这种方式。 Attach 机制的核心组件是 Attach Listener,顾名思义,Attach Listener 是 JVM 内部的一个线程,这个线程的主要工作是监听和接收客户端进程通过 Attach 提供的通信机制发起的命令,你调试的时候看到过这个线程吗? 现在知道是怎么使用了吧。

可以看到调试的核心技术就是这个了,打开了大门,至于其他都是业务层面了。

agent 的技术

实现premain方法,在JVM启动前加载

实现agentmain方法,在JVM启动后attach加载

说太多也没啥用,直接来个例子吧。

创建2个maven项目, 一个是agent项目,一个是test项目

agent代码

我们看下源码,先看agent,因为这个需要注意的比较少

package com.pdool;

import java.lang.instrument.Instrumentation;

/**
 * Hello world!
 */
public class App 
    // 随程序启动的时候调用
    public static void premain(String agentArgs, Instrumentation instrumentation) 
        sayHello(agentArgs, instrumentation, "premain");
    

    //  attach的是调用
    public static void agentmain(String agentArgs, Instrumentation instrumentation) 
        sayHello(agentArgs, instrumentation, "agentMain");
    
    public static void sayHello(String agentArgs, Instrumentation instrumentation, String methodName) 
        System.out.println("from -----------" + methodName);
    

接着在pom.xml中增加一些打包的参数

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.0.2</version>
  <configuration>
    <archive>
      <!--自动添加META-INF/MANIFEST.MF -->
      <manifest>
        <addClasspath>true</addClasspath>
      </manifest>
      <manifestEntries>
      <!-- 这两个记得填写全路径 -->
        <Premain-Class>com.pdool.App</Premain-Class>
        <Agent-Class>com.pdool.App</Agent-Class>
        <Can-Redefine-Classes>true</Can-Redefine-Classes>
        <Can-Retransform-Classes>true</Can-Retransform-Classes>
      </manifestEntries>
    </archive>
  </configuration>
</plugin>

这个打包的插件会自动创建MANIFEST.MF,并且修改,可以在打包完成后,看下是不是如自己的设置的 ,可以使用压缩软件打开哦,然后使用记事本查看

打包直接用maven的生命周期,package 命令就行,打包的路径就是target下面

接下来看下测试的代码

就是一个每隔2s运行一次的长须

package com.pdool;

/**
 * Hello world!
 *
 */
public class TestDemo

    public static void main(String[] args) throws InterruptedException 
        int index =0;
        System.out.println("----  start ----");
        while (true) 
            Thread.sleep(2000);
            System.out.println("Hello World!  " + index++);
        
    

接下来先验证pre-main

运行上面的testDemo 修改运行参数,添加vm参数

记得把上面的路径改为你本地的路径 运行之后就可以看到

恭喜你,你的agent已经生效了

接下来验证agent-main

先把我们的TestDemo运行起来,然后使用jps 查看我们的pid

这里可以看到我们的pid 是9520,留着备用

启动agent代码

package com.pdool;

import com.sun.tools.attach.VirtualMachine;

import java.util.Scanner;

public class AttachTest 
    public static void main(String[] args) throws Exception 
        Scanner scanner = new Scanner(System.in);
        int pid = scanner.nextInt();
        VirtualMachine virtualMachine = VirtualMachine.attach(String.valueOf(pid));
        virtualMachine.loadAgent("E:\\github\\JavaAgentDemo\\target\\JavaAgentDemo-1.0-SNAPSHOT.jar");
        Thread.sleep(10000L);
        virtualMachine.detach();
    

如果你想运行上面的代码,会发现无法导包,是因为pom中需要配置tools.jar

<dependency>
  <groupId>jdk.tools</groupId>
  <artifactId>jdk.tools</artifactId>
  <version>1.8.0</version>
  <scope>system</scope>
  <systemPath>C:/Program Files/Java/jdk1.8.0_121/lib/tools.jar</systemPath>
</dependency>

这里面有几点需要注意: 1、包的id 是jdk.tools

2、本地路径要换成你机器的路径,同时不能使用\\ 要用linux的/

3、scope 是是system

接下来启动AttackTest,然后输入上面的pid,转到TestDemo 就可以看到输出。 你就可以启动你的agent,这也是Arthas的使用方式。

Arthas 对agent 的使用

Arthas的使用基本上是上面的第二种,因为一般生产环境没有人会在服务启动的时候直接把Arthas启动起来,就像没有人会随身携带一个医生是一样的。 Arthas的使用将上面的直接合并了,在启动之后会列出所有的皮豆,然后直接选择,attach上去

总结

java agent 在平常的开发中使用不多,但是功能很强大

以上是关于什么是shift后门?的主要内容,如果未能解决你的问题,请参考以下文章

求一个shift后门bat文件代码,要自己实战过的

shift后门怎么用

电脑后门是啥意思?

什么是后门病毒?

黑客中说的后门啥意思

电脑网络中的“后门”是啥意思?