admin 管理员组

文章数量: 887038

序:

      先说说这个场景,其实我想的是不用远程连接服务器。通过其他活着的服务搞事情,理论上应该是所有的命令都可以执行的。我这里只是试验性的,可行性,所以我就做了个每次执行一条命令的。

一、先说说使用的执行器

     这里没有使用第三方的jar,直接使用的是jdk提供的Process。先看我写的工具类吧,我这里因为服务器是windows,所以用的编码是gkb2312的。不过保留了支持多命令同时执行,没有验证。

工具类

public class ProcessUtil {
    public static String runShell(String[] shStrArr) throws Exception {
        StringBuffer sb = new StringBuffer();
        sb.append("-----------result--------------");
        sb.append("\n");
        Process process = null;
        //List<String> processList = new ArrayList<String>(); 多命令
        try {
            if(!ArrayUtils.isEmpty(shStrArr)) {
                String sh = "";
                for(int i = 0;i < shStrArr.length;i++) {
                    String tmpSh = shStrArr[i];
                    sh += tmpSh;
                    if(i != shStrArr.length - 1) {
                        sh += "&&";   //网上说多条命令使用这个符号连起来
                    }
                }
                process = Runtime.getRuntime().exec(sh);
                BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream(),"gb2312"));
                String line = "";
                while ((line = input.readLine()) != null) {
                    //processList.add(line);
                    sb.append(line);
                    sb.append("\n");
                }
                process.waitFor();  
                input.close();
            }
            
        } catch (Exception e) {
            //e.printStackTrace();
            sb.append(e.getCause().getMessage());
        }
        /*if(CollectionUtils.isNotEmpty(processList)) {
            
            for (String line : processList) {
                //System.out.println(line);
                sb.append(line);
                sb.append("\n");
            }
        }*/
        
        return sb.toString();
        
    }

二、ajax方法返回结果

      因为初衷就是试验用活着的服务启其他服务,所以提供一个对外的Ajax接口。

ajax方法代码

@ResponseBody
    @RequestMapping(value = "/shellComand" , method = RequestMethod.POST)
    public void shellComand(@RequestParam("shellComand") String shellComand, HttpServletRequest request, HttpServletResponse response) throws IOException {

        String rs = "";
        try{
            String[] shArr = new String[1];
            shArr[0] = shellComand;
            rs = ProcessUtil.runShell(shArr);

        }catch(Exception e){
            rs ="操作失败,请稍后重试!";
            e.printStackTrace();
        }

        //返回数据对象
        writeToPage(rs, response);
    }

三、测试

     这里用postman测试。

看到没,下面就是返回结果。另外要说的就是如果执行的是cmd/bat命令,那会显示一直请求,实际上已经执行了,这个ajax方法跟工具类方法大家可以自行优化下。

要执行cmd/bat命令,实际上就是cmd后面的参数改下,例如

cmd.exe /k start D:\application\push\zookeeper-3.4.14\bin\zkServer.cmd

亲测可行,linux基本也是这个逻辑,然后这个能也可以做坏事,你懂的。如果这个 接口不登录就可以调用,不做安全校验,那就是很微信的,毕竟可以执行好多命令的。下面补充可以执行的命令,补充内容来源网络,大家自己试。

cmd /c dir 是执行完dir命令后关闭命令窗口。

cmd /k dir 是执行完dir命令后不关闭命令窗口。

cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。

cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。

可以用cmd /?查看帮助信息。

★CMD命令★

1. gpedit.msc-----组策略

2. sndrec32-------录音机

3. Nslookup-------IP地址侦测器

4. explorer-------打开资源管理器

5. logoff---------注销命令

6. tsshutdn-------60秒倒计时关机命令

7. lusrmgr.msc----本机用户和组

8. services.msc---本地服务设置

9. oobe/msoobe /a----检查XP是否激活

10. notepad--------打开记事本

11. cleanmgr-------垃圾整理

12. net start messenger----开始信使服务

13. compmgmt.msc---计算机管理

14. net stop messenger-----停止信使服务

15. conf-----------启动netmeeting

16. dvdplay--------DVD播放器

17. charmap--------启动字符映射表

18. diskmgmt.msc---磁盘管理实用程序

19. calc-----------启动计算器

20. dfrg.msc-------磁盘碎片整理程序

21. chkdsk.exe-----Chkdsk磁盘检查

22. devmgmt.msc--- 设备管理器

23. regsvr32 /u *.dll----停止dll文件运行

24. drwtsn32------ 系统医生

25. rononce -p ----15秒关机

26. dxdiag---------检查DirectX信息

27. regedt32-------注册表编辑器

28. Msconfig.exe---系统配置实用程序

29. rsop.msc-------组策略结果集

30. mem.exe--------显示内存使用情况

31. regedit.exe----注册表

32. winchat--------XP自带局域网聊天

33. progman--------程序管理器

34. winmsd---------系统信息

35. perfmon.msc----计算机性能监测程序

36. winver---------检查Windows版本

37. sfc /scannow-----扫描错误并复原

38. taskmgr-----任务管理器(2000/xp/2003

39. winver---------检查Windows版本

40. wmimgmt.msc----打开windows管理体系结构(WMI)

41. wupdmgr--------windows更新程序

42. wscript--------windows脚本宿主设置

43. write----------写字板

44. winmsd---------系统信息

45. wiaacmgr-------扫描仪和照相机向导

46. winchat--------XP自带局域网聊天

47. mem.exe--------显示内存使用情况

48. Msconfig.exe---系统配置实用程序

49. mplayer2-------简易widnows media player

50. mspaint--------画图板

51. mstsc----------远程桌面连接

52. mplayer2-------媒体播放机

53. magnify--------放大镜实用程序

54. mmc------------打开控制台

55. mobsync--------同步命令

56. dxdiag---------检查DirectX信息

57. drwtsn32------ 系统医生

58. devmgmt.msc--- 设备管理器

59. dfrg.msc-------磁盘碎片整理程序

60. diskmgmt.msc---磁盘管理实用程序

61. dcomcnfg-------打开系统组件服务

62. ddeshare-------打开DDE共享设置

63. dvdplay--------DVD播放器

64. net stop messenger-----停止信使服务

65. net start messenger----开始信使服务

66. notepad--------打开记事本

67. nslookup-------网络管理的工具向导

68. ntbackup-------系统备份和还原

69. narrator-------屏幕“讲述人”

70. ntmsmgr.msc----移动存储管理器

71. ntmsoprq.msc---移动存储管理员操作请求

72. netstat -an----(TC)命令检查接口

73. syncapp--------创建一个公文包

74. sysedit--------系统配置编辑器

75. sigverif-------文件签名验证程序

76. sndrec32-------录音机

77. shrpubw--------创建共享文件夹

78. secpol.msc-----本地安全策略

79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码

80. services.msc---本地服务设置

81. Sndvol32-------音量控制程序

82. sfc.exe--------系统文件检查器

83. sfc /scannow---windows文件保护

84. tsshutdn-------60秒倒计时关机命令

3. 84. tsshutdn-------60秒倒计时关机命令

85. tourstart------xp简介(安装完成后出现的漫游xp程序)

86. taskmgr--------任务管理器

87. eventvwr-------事件查看器

88. eudcedit-------造字程序

89. explorer-------打开资源管理器

90. packager-------对象包装程序

91. perfmon.msc----计算机性能监测程序

92. progman--------程序管理器

93. regedit.exe----注册表

94. rsop.msc-------组策略结果集

95. regedt32-------注册表编辑器

96. rononce -p ----15秒关机

97. regsvr32 /u *.dll----停止dll文件运行

98. regsvr32 /u zipfldr.dll------取消ZIP支持

99. cmd.exe--------CMD命令提示符

100. chkdsk.exe-----Chkdsk磁盘检查

101. certmgr.msc----证书管理实用程序

102. calc-----------启动计算器

103. charmap--------启动字符映射表

104. cliconfg-------SQL SERVER 客户端网络实用程序

105. Clipbrd--------剪贴板查看器

106. conf-----------启动netmeeting

107. compmgmt.msc---计算机管理

108. cleanmgr-------垃圾整理

109. ciadv.msc------索引服务程序

110. osk------------打开屏幕键盘

111. odbcad32-------ODBC数据源管理器

112. oobe/msoobe /a----检查XP是否激活

113. lusrmgr.msc----本机用户和组

114. logoff---------注销命令

115. iexpress-------木马捆绑工具,系统自带

116. Nslookup-------IP地址侦测器

117. fsmgmt.msc-----共享文件夹管理器

118. utilman--------辅助工具管理器

119. gpedit.msc-----组策略

120. explorer-------打开资源管理器

 

 

本文标签: 命令 java Windows