Browse Source

Merge remote-tracking branch 'origin/master'

Conflicts:
	src/de/tudarmstadt/informatik/hostage/HoneyService.java
Lars 10 years ago
parent
commit
035e0f20a9

+ 1 - 0
.gitignore

@@ -23,3 +23,4 @@ proguard/
 *.ipr
 *.iws
 .idea/
+/native

BIN
native/p


BIN
native/p.o


+ 6 - 7
src/de/tudarmstadt/informatik/hostage/HoneyService.java

@@ -40,8 +40,8 @@ import android.widget.Toast;
 import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.logging.MyLocationManager;
 import de.tudarmstadt.informatik.hostage.logging.UglyDbHelper;
+import de.tudarmstadt.informatik.hostage.protocol.HTTP;
 import de.tudarmstadt.informatik.hostage.protocol.Protocol;
-import de.tudarmstadt.informatik.hostage.protocol.ProtocolSettings;
 import de.tudarmstadt.informatik.hostage.ui.MainActivity;
 
 /**
@@ -101,7 +101,9 @@ public class HoneyService extends Service {
 		registerNetReceiver();
 		updateConnectionInfo();
 		getLocationData();
-		new QotdTask().execute(new String[] {});
+		if(getSharedPreferences("de.tudarmstadt.informatik.hostage.http", MODE_PRIVATE).getBoolean("useQotd", true) == true) {
+			new QotdTask().execute(new String[] {});
+		}
 	}
 
 	@Override
@@ -419,7 +421,7 @@ public class HoneyService extends Service {
 	}
 
 	/**
-	 * Task for acquiring a qotd from one of four possible servers.
+	 * Task for accuiring a qotd from one of four possible servers.
 	 * 
 	 * @author Wulf Pfeiffer
 	 */
@@ -450,10 +452,7 @@ public class HoneyService extends Service {
 		@Override
 		protected void onPostExecute(String result) {
 			if (result != null)
-				ProtocolSettings.setHttpQotd(result);
-			else
-				ProtocolSettings.setHttpQotd(new String(HelperUtils
-						.getRandomString(100, false)));
+				HTTP.setHtmlDocContent(result);
 		}
 	};
 	

+ 0 - 47
src/de/tudarmstadt/informatik/hostage/protocol/Custom.java

@@ -1,47 +0,0 @@
-package de.tudarmstadt.informatik.hostage.protocol;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import de.tudarmstadt.informatik.hostage.wrapper.Packet;
-
-public class Custom implements Protocol {
-
-	@Override
-	public int getPort() {
-		return ProtocolSettings.getCustomPort();
-	}
-
-	@Override
-	public TALK_FIRST whoTalksFirst() {
-		return TALK_FIRST.CLIENT;
-	}
-	
-	@Override
-	public List<Packet> processMessage(Packet packet) {
-		List<Packet> response = new ArrayList<Packet>();
-		response.add(packet);
-		return response;
-	}
-
-	@Override
-	public boolean isClosed() {
-		return true;
-	}
-
-	@Override
-	public boolean isSecure() {
-		return false;
-	}
-
-	@Override
-	public Class<byte[]> getType() {
-		return byte[].class;
-	}
-	
-	@Override
-	public String toString() {
-		return "Custom";
-	}
-
-}

+ 43 - 20
src/de/tudarmstadt/informatik/hostage/protocol/HTTP.java

@@ -1,5 +1,6 @@
 package de.tudarmstadt.informatik.hostage.protocol;
 
+import java.security.SecureRandom;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -7,6 +8,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
 
+import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.wrapper.Packet;
 
 
@@ -35,7 +37,7 @@ public class HTTP implements Protocol {
 		List<Packet> response = new ArrayList<Packet>();
 		this.request = request;
 
-		if(!request.contains(version)){
+		if(!request.contains(httpVersion)){
 			response.add(buildPacket(c505, ""));
 		} else if(request.contains(get)) {
 			response.add(buildPacket(c200, get));
@@ -92,7 +94,7 @@ public class HTTP implements Protocol {
 		else if(type.equals(trace)) doc = request;
 		else doc = errorHtmlPrefix + " " + code + errorHtmlSuffix;
 
-		return new Packet(version + " " + code + headerPrefix + doc.length() + headerSuffix + doc);
+		return new Packet(httpVersion + " " + code + headerPrefix + doc.length() + headerSuffix + doc);
 	}
 	
 	/**
@@ -107,7 +109,36 @@ public class HTTP implements Protocol {
 	    return dateFormat.format(calendar.getTime());
 	}
 
-	private static final String serverVersion = ProtocolSettings.getHttpVersion();
+	/** Whole request that was sent by the client */
+	private String request	= "";
+	//version stuff
+	private static String[][][] possibleHttpVersions = {
+		{{"Apache/2.0."},{"28","32","35","36","39","40","42","43","44","45","46","47","48","49","50","51","52","53","54","55","58","59","61","63","64","65"}},
+		{{"Apache/2.2."},{"0","2","3","4","6","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"}},
+		{{"Apache/2.3."},{"4","5","6","8","10","11","12","14","15","16"}},
+		{{"Apache/2.4."},{"1","2","3","4","6"}}
+	};
+	private static String initServerVersion() {
+		SecureRandom rndm = new SecureRandom();
+		int majorVersion = rndm.nextInt(possibleHttpVersions.length);
+		return possibleHttpVersions[majorVersion][0][0] + possibleHttpVersions[majorVersion][1][rndm.nextInt(possibleHttpVersions[majorVersion][1].length)];
+	}
+	private String httpVersion	= "HTTP/1.1";
+	private static String serverVersion = initServerVersion();
+	private static String htmlDocContent = HelperUtils.getRandomString(32, false);
+	//request codes
+	private String options 	= "OPTIONS";
+	private String get 		= "GET";
+	private String head 	= "HEAD";
+	private String post		= "POST";
+	private String put		= "PUT";
+	private String delete	= "DELETE";
+	private String trace	= "TRACE";
+	private String connect	= "CONNECT";
+	private String c200 	= "200 OK\r\n";
+	private String c400 	= "400 Bad Request\r\n";
+	private String c505 	= "505 HTTP Version not supported\r\n";
+	
 	//html header pre and suffix
 	private static final String headerPrefix =				
 			"Date: " + getServerTime() + "\r\n" +
@@ -126,8 +157,8 @@ public class HTTP implements Protocol {
 			"<html lang=\"en\">\n" +
 			"<head>\n" +
 			"<meta charset=\"UTF-8\">\n" +
-			"<title>" + ProtocolSettings.getHttpQotd() + "</title>\n" +
-			"<body>" + ProtocolSettings.getHttpQotd() + "</body>\n" +
+			"<title>" + htmlDocContent + "</title>\n" +
+			"<body>" + htmlDocContent + "</body>\n" +
 			"</head>\n" +
 			"</html>";
 	//html error pre and suffix
@@ -142,19 +173,11 @@ public class HTTP implements Protocol {
 			"</head>\n" +
 			"</html>";
 	
-	/** Whole request that was sent by the client */
-	private String request	= "";
-	private String version	= "HTTP/1.1";
-	//request codes
-	private String options 	= "OPTIONS";
-	private String get 		= "GET";
-	private String head 	= "HEAD";
-	private String post		= "POST";
-	private String put		= "PUT";
-	private String delete	= "DELETE";
-	private String trace	= "TRACE";
-	private String connect	= "CONNECT";
-	private String c200 	= "200 OK\r\n";
-	private String c400 	= "400 Bad Request\r\n";
-	private String c505 	= "505 HTTP Version not supported\r\n";
+	public static String getHtmlDocContent() {
+		return htmlDocContent;
+	}
+
+	public static void setHtmlDocContent(String htmlDocContent) {
+		HTTP.htmlDocContent = htmlDocContent;
+	}
 }

+ 0 - 42
src/de/tudarmstadt/informatik/hostage/protocol/Mirror.java

@@ -1,42 +0,0 @@
-package de.tudarmstadt.informatik.hostage.protocol;
-
-import java.util.List;
-
-import de.tudarmstadt.informatik.hostage.wrapper.Packet;
-
-public class Mirror implements Protocol {
-
-	@Override
-	public int getPort() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	@Override
-	public TALK_FIRST whoTalksFirst() {
-		return TALK_FIRST.CLIENT;
-	}
-
-	@Override
-	public List<Packet> processMessage(Packet packet) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public boolean isClosed() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean isSecure() {
-		return false;
-	}
-
-	@Override
-	public Class<? extends Object> getType() {
-		return byte[].class;
-	}
-
-}

+ 16 - 1
src/de/tudarmstadt/informatik/hostage/protocol/MySQL.java

@@ -1,6 +1,7 @@
 package de.tudarmstadt.informatik.hostage.protocol;
 
 import java.nio.ByteBuffer;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -156,5 +157,19 @@ public class MySQL implements Protocol {
 		byte[] response = HelperUtils.concat(fill1, code, fill2, state.getBytes(), msg.getBytes());		
 		return wrapPacket(response);
 	}
-	private static final String serverVersion = ProtocolSettings.getMysqlVersion();
+	
+	//version stuff
+	private static String[][][] possibleMysqlVersions = {
+		{{"5.7."},{"1","2"}},
+		{{"5.6."},{"2","3","4","5","6","7","8","9","10","11","12","13","14"}},
+		{{"5.5."},{"27","28","29","30","31","32","33","34"}}
+	};
+	
+	private static String initMysqlVersion() {
+		SecureRandom rndm = new SecureRandom();
+		int majorVersion = rndm.nextInt(possibleMysqlVersions.length);
+		return possibleMysqlVersions[majorVersion][0][0] + possibleMysqlVersions[majorVersion][1][rndm.nextInt(possibleMysqlVersions[majorVersion][1].length)];
+	}
+	
+	private static String serverVersion = initMysqlVersion();
 }

+ 0 - 195
src/de/tudarmstadt/informatik/hostage/protocol/ProtocolSettings.java

@@ -1,195 +0,0 @@
-package de.tudarmstadt.informatik.hostage.protocol;
-
-import java.security.SecureRandom;
-
-import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
-
-/**
- * This class holds informations for all protocols, e.g. server name, version etc.
- * It provides getters and setters.
- * @author Wulf Pfeiffer
- */
-public class ProtocolSettings {
-	private static SecureRandom rndm = new SecureRandom();
-	private static String[][][] possibleHttpVersions = {
-		{{"Apache/2.0."},{"28","32","35","36","39","40","42","43","44","45","46","47","48","49","50","51","52","53","54","55","58","59","61","63","64","65"}},
-		{{"Apache/2.2."},{"0","2","3","4","6","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"}},
-		{{"Apache/2.3."},{"4","5","6","8","10","11","12","14","15","16"}},
-		{{"Apache/2.4."},{"1","2","3","4","6"}}
-	};
-	private static String[][][] possibleMysqlVersions = {
-		{{"5.7."},{"1","2"}},
-		{{"5.6."},{"2","3","4","5","6","7","8","9","10","11","12","13","14"}},
-		{{"5.5."},{"27","28","29","30","31","32","33","34"}}
-	};
-	private static String[][] possibleSmbVersions = {
-		{"Windows Server 2008 R2 Enterprise 7600","Windows Server 2008 R2 Enterprise 6.1"},
-		{"Windows 7 Professional 7600","Windows 7 Professional 6.1"},
-		{"Windows 8 Enterprise 9200", "Windows 8 Enterprise 9200"},
-		{"Windows Server 2012 Standard 6.2", "Windows Server 2012 Standard 6.2"},
-		{"Unix", "Samba"}
-	};
-	private static String[][][] possibleSshTypes = {
-		{{"3."},{"4","5","6","7","8","9"}},
-		{{"4."},{"0","1","2","3","4","5","6","7","9"}},
-		{{"5."},{"0","1","2","3","4","5","6","7","8","9"}},
-		{{"6."},{"0","1","2","3","4"}}
-	};
-	//Custom Echo
-	private static int customPort		= initCustomPort();
-	//HTTP
-	private static String httpQotd		; //is initialized by honeyservice
-	private static String httpVersion	= initHttpVersion();
-	private static boolean useHttpQotd	= true; 
-	//MySQL
-	private static String mysqlVersion	= initMysqlVersion();
-	//SMB
-	private static byte[] smbName		= initSmbName();
-	private static String[] smbVersion	= initSmbVersion();
-	//TELNET
-	private static String telnetName	= initTelnetName();
-	//SSH
-	private static String sshVersion	= initSshVersion();
-	private static String sshType		= initSshType();
-	private static String sshName		= initSshName();
-	
-	//~~~ Initialize methods ~~~//
-	
-	public static void initForLinux() {
-		smbVersion = possibleSmbVersions[1];
-	}
-	
-	public static void initForWindows() {
-		smbVersion = possibleSmbVersions[4];
-	}
-	
-	private static int initCustomPort() {
-		return 1433; //MsSQL Port
-	}
-	
-	private static String initHttpVersion() {
-		int majorVersion = rndm.nextInt(possibleHttpVersions.length);
-		return possibleHttpVersions[majorVersion][0][0] + possibleHttpVersions[majorVersion][1][rndm.nextInt(possibleHttpVersions[majorVersion][1].length)];
-	}
-	
-	private static String initMysqlVersion() {
-		int majorVersion = rndm.nextInt(possibleMysqlVersions.length);
-		return possibleMysqlVersions[majorVersion][0][0] + possibleMysqlVersions[majorVersion][1][rndm.nextInt(possibleMysqlVersions[majorVersion][1].length)];
-	}
-	
-	private static byte[] initSmbName() {
-		return HelperUtils.fillWithZero(HelperUtils.getRandomString(16, true).getBytes());
-	}
-	
-	private static String[] initSmbVersion() {
-		return possibleSmbVersions[rndm.nextInt(possibleSmbVersions.length)];
-	}
-	
-	private static String initTelnetName() {
-		return HelperUtils.getRandomString(16, false);
-	}
-	
-	private static String initSshVersion() {
-		return "SSH-2.0-";
-	}
-	
-	private static String initSshType() {
-		int majorVersion = rndm.nextInt(possibleSshTypes.length);
-		return "OpenSSH_" + possibleSshTypes[majorVersion][0][0] + possibleSshTypes[majorVersion][1][rndm.nextInt(possibleSshTypes[majorVersion][1].length)];
-	}
-	
-	private static String initSshName() {
-		return HelperUtils.getRandomString(16, false);
-	}
-
-	//~~~ Getters and Setters ~~//
-	
-	public static int getCustomPort() {
-		return customPort;
-	}
-
-	public static void setCustomPort(int customPort) {
- 		ProtocolSettings.customPort = customPort;
-	}
-	
-	public static String getHttpQotd() {
-		return httpQotd;
-	}
-
-	public static void setHttpQotd(String httpQotd) {
- 		ProtocolSettings.httpQotd = httpQotd;
-	}
-
-	public static String getHttpVersion() {
-		return httpVersion;
-	}
-
-	public static void setHttpVersion(String httpVersion) {
-		ProtocolSettings.httpVersion = httpVersion;
-	}
-
-	public static boolean isUseHttpQotd() {
-		return useHttpQotd;
-	}
-
-	public static void setUseHttpQotd(boolean useHttpQotd) {
-		ProtocolSettings.useHttpQotd = useHttpQotd;
-	}
-
-	public static String getMysqlVersion() {
-		return mysqlVersion;
-	}
-
-	public static void setMysqlVersion(String mysqlVersion) {
-		ProtocolSettings.mysqlVersion = mysqlVersion;
-	}
-
-	public static byte[] getSmbName() {
-		return smbName;
-	}
-
-	public static void setSmbName(byte[] smbName) {
-		ProtocolSettings.smbName = smbName;
-	}
-
-	public static String[] getSmbVersion() {
-		return smbVersion;
-	}
-
-	public static void setSmbVersion(String[] smbVersion) {
-		ProtocolSettings.smbVersion = smbVersion;
-	}
-
-	public static String getTelnetName() {
-		return telnetName;
-	}
-
-	public static void setTelnetName(String telnetName) {
-		ProtocolSettings.telnetName = telnetName;
-	}
-
-	public static String getSshVersion() {
-		return sshVersion;
-	}
-
-	public static void setSshVersion(String sshVersion) {
-		ProtocolSettings.sshVersion = sshVersion;
-	}
-
-	public static String getSshType() {
-		return sshType;
-	}
-
-	public static void setSshType(String sshType) {
-		ProtocolSettings.sshType = sshType;
-	}
-	
-	public static String getSshName() {
-		return sshName;
-	}
-
-	public static void setSsh(String sshName) {
-		ProtocolSettings.sshName = sshName;
-	}
-	
-}

+ 32 - 4
src/de/tudarmstadt/informatik/hostage/protocol/SMB.java

@@ -1,12 +1,15 @@
 package de.tudarmstadt.informatik.hostage.protocol;
 
 import java.nio.ByteBuffer;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 import java.util.List;
 import java.util.TimeZone;
 
+import android.content.SharedPreferences;
+import de.tudarmstadt.informatik.hostage.HoneyService;
 import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.wrapper.Packet;
 
@@ -190,8 +193,35 @@ public class SMB implements Protocol {
 	 * Denotes a SMB packet
 	 */
 	private static class SMBPacket {
-		private static byte[] serverName 			= ProtocolSettings.getSmbName();
-		private static String[] serverVersion		= ProtocolSettings.getSmbVersion();
+		//version stuff
+		private static String[][] possibleSmbVersions = {
+			{"Windows 7 Professional 7600","Windows 7 Professional 6.1"},
+			{"Windows 8 Enterprise 9200", "Windows 8 Enterprise 9200"},
+			{"Windows Server 2008 R2 Enterprise 7600","Windows Server 2008 R2 Enterprise 6.1"},
+			{"Windows Server 2012 Standard 6.2", "Windows Server 2012 Standard 6.2"},
+			{"Unix", "Samba"}
+		};
+		private static String[] initServerVersion() {
+			SharedPreferences sharedPref = HoneyService.getContext().getSharedPreferences("de.tudarmstadt.informatik.hostage.profile", HoneyService.MODE_PRIVATE);
+			String profile = sharedPref.getString("profile", "");
+			System.out.println(profile);
+			if(profile.equals("Windows 7")) {
+				return possibleSmbVersions[0];
+			} else if(profile.equals("Windows 8")) {
+				return possibleSmbVersions[1];
+			} else if(profile.equals("Windows Server 2008")) {
+				return possibleSmbVersions[2];
+			} else if(profile.equals("Windows Server 2012")) {
+				return possibleSmbVersions[3];
+			} else if(profile.equals("Linux")) {
+				return possibleSmbVersions[4];
+			} else {
+				return possibleSmbVersions[new SecureRandom().nextInt(possibleSmbVersions.length)];
+			}
+		}
+		private static byte[] serverName		= HelperUtils.fillWithZero(HelperUtils.getRandomString(16, true).getBytes());
+		private static String[] serverVersion	= initServerVersion();
+		
 		private byte[] message						= null; 
 		private static final byte[] serverGUID		= HelperUtils.randomBytes(16);
 		private boolean authenticateNext			= false;
@@ -432,7 +462,6 @@ public class SMB implements Protocol {
 			byte[] wordCount	= {0x00};
 			byte[] andXCommand	= {0x00, 0x00};
 			byte[] response 	= null;
-			//TODO
 			if(str.contains("IPC$") || str.contains("C$")) {
 				wordCount			= new byte[] {0x07};
 				andXCommand			= new byte[] {(byte) 0xff};
@@ -537,7 +566,6 @@ public class SMB implements Protocol {
 				byte[] dcerpc			= new byte[24];
 				
 				byte[] levelPointer		= {0x01, 0x00, 0x00, 0x00};
-				//TODO
 				byte[] ctr				= {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00};
 				byte[] ctr1				= {0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00};
 				byte[] array1Pointer	= {0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, (byte) 0x80, 0x0c, 0x00, 0x02, 0x00};

+ 32 - 20
src/de/tudarmstadt/informatik/hostage/protocol/SSH.java

@@ -239,16 +239,15 @@ public class SSH implements Protocol {
 	private Packet dhKexReply() {
 		byte[] response = null;
 		try {
-			SecureRandom rnd = new SecureRandom();
 			DhExchange dhx = new DhExchange();
-			dhx.serverInit(1, rnd);
+			dhx.serverInit(1, rndm);
 			dhx.setE(new BigInteger(e));
 			f = dhx.getF();
 			DSAPrivateKey dsa = (DSAPrivateKey) PEMDecoder.decode(dsa_pem, null);
 			K_S = DSASHA1Verify.encodeSSHDSAPublicKey(dsa.getPublicKey());
 			h = dhx.calculateH(V_C, V_S, I_C, I_S, K_S);
 			k = dhx.getK();
-			DSASignature ds = DSASHA1Verify.generateSignature(h, dsa, rnd);
+			DSASignature ds = DSASHA1Verify.generateSignature(h, dsa, rndm);
 			sig = DSASHA1Verify.encodeSSHDSASignature(ds);
 			TypesWriter tw = new TypesWriter();
 			tw.writeByte(31);
@@ -266,7 +265,7 @@ public class SSH implements Protocol {
 			cbcEnc = new CBCMode(enc, km.initial_iv_server_to_client, true);
 			cbcDec = new CBCMode(dec, km.initial_iv_client_to_server, false);
 			macEnc = new MAC("hmac-sha1", km.integrity_key_server_to_client);
-			macDec = new MAC("hmac-sha1", km.integrity_key_client_to_server);
+//			macDec = new MAC("hmac-sha1", km.integrity_key_client_to_server);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -389,7 +388,6 @@ public class SSH implements Protocol {
 	 * @return input reply.
 	 */
 	private Packet terminalReply(byte[] request) {
-		//TODO
 		TypesReader tr = new TypesReader(request, 6);
 		String msg = "";
 		System.out.println(HelperUtils.bytesToHexString(request));
@@ -508,15 +506,30 @@ public class SSH implements Protocol {
 		  return ret;
 	}
 	
+	//version stuff
+	private static String[][][] possibleSshTypes = {
+		{{"3."},{"4","5","6","7","8","9"}},
+		{{"4."},{"0","1","2","3","4","5","6","7","9"}},
+		{{"5."},{"0","1","2","3","4","5","6","7","8","9"}},
+		{{"6."},{"0","1","2","3","4"}}
+	};
+
+	private static String initSshType() {
+		SecureRandom rnd = new SecureRandom();
+		int majorVersion = rnd.nextInt(possibleSshTypes.length);
+		return "OpenSSH_" + possibleSshTypes[majorVersion][0][0] + possibleSshTypes[majorVersion][1][rnd.nextInt(possibleSshTypes[majorVersion][1].length)];
+	}
+
 	//server infos
-	private String serverVersion = ProtocolSettings.getSshVersion();
-	private String serverType = ProtocolSettings.getSshType();
-	private String serverName = ProtocolSettings.getSshName();
-	private int packetNumber = 0;
-	int recipientChannel;
-	String userName;
-	String terminalPrefix;
-	StringBuffer cmd = new StringBuffer();
+	private static String serverVersion	= "SSH-2.0-";
+	private static String serverType	= initSshType();
+	private static String serverName	= HelperUtils.getRandomString(16, false);
+	private int packetNumber			= 0;
+	private int recipientChannel;
+	private String userName;
+	private String terminalPrefix;
+	private StringBuffer cmd			= new StringBuffer();
+	private SecureRandom rndm	= new SecureRandom();
 	
 	//SSH Parameters for Kex etc.
     private byte[] V_S = (serverVersion + serverType).getBytes();
@@ -543,12 +556,12 @@ public class SSH implements Protocol {
 	private int cipherBlockSize = 16;
 	
 	//for en- and decryption
-	DESede enc;
-	DESede dec;
-	CBCMode cbcEnc;
-	CBCMode cbcDec;
-	MAC macEnc;
-	MAC macDec;
+	private DESede enc;
+	private DESede dec;
+	private CBCMode cbcEnc;
+	private CBCMode cbcDec;
+	private MAC macEnc;
+//	private MAC macDec;
 	
 	//dsa private key
 	private final char[] dsa_pem = ("-----BEGIN DSA PRIVATE KEY-----\n" +
@@ -563,5 +576,4 @@ public class SSH implements Protocol {
 			"eAGufJ0jrtIpKL4lP8o8yrAHfmbR7bjecWc0viTH0+OWlyVsex/bZAIUEKn310Li\n" +
 			"v62Zs4hlDvhwvx8MQ+A=\n" +
 			"-----END DSA PRIVATE KEY-----").toCharArray();
-
 }

+ 1 - 1
src/de/tudarmstadt/informatik/hostage/protocol/TELNET.java

@@ -198,7 +198,7 @@ public class TELNET implements Protocol {
 	/** last command sent by the client */
 	private byte[] command;
 	/** name of the server */
-	private static String serverName = ProtocolSettings.getTelnetName();
+	private static String serverName = HelperUtils.getRandomString(16, false);
 	/** command line prefix */
 	private static byte[] sessionToken = null;