Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cnc;
- import main.Vars;
- import org.apache.mina.filter.codec.ProtocolCodecFilter;
- import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
- import org.apache.mina.filter.logging.LoggingFilter;
- import org.apache.mina.transport.socket.nio.*;
- import org.apache.sshd.scp.server.ScpCommandFactory;
- import org.apache.sshd.server.SshServer;
- import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
- import org.apache.sshd.server.shell.ProcessShellFactory;
- import org.apache.sshd.sftp.server.SftpSubsystemFactory;
- import java.io.IOException;
- import java.net.InetSocketAddress;
- import java.nio.charset.StandardCharsets;
- import java.nio.file.Paths;
- import java.util.Collections;
- import org.apache.mina.core.service.*;
- import org.apache.mina.core.session.IdleStatus;
- public class CNCServer implements Runnable{
- @Override
- public void run() {
- SshServer sshd = SshServer.setUpDefaultServer();
- sshd.setPort(Vars.CNC_SOCKET_PORT);
- sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(Paths.get("hostkey.ser")));
- sshd.setHost("0.0.0.0");
- sshd.setShellFactory(new ProcessShellFactory("/bin/sh", "-i", "-l"));
- sshd.setCommandFactory(new ScpCommandFactory());
- sshd.setPasswordAuthenticator(new CNCPasswordAuthenticator());
- SftpSubsystemFactory factory = new SftpSubsystemFactory.Builder()
- //...
- .build();
- sshd.setSubsystemFactories(Collections.singletonList(factory));
- try {
- System.err.println("Starting SSHD on port "+Vars.CNC_SOCKET_PORT);
- sshd.start();
- Thread.sleep(Long.MAX_VALUE);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement