Você está na página 1de 2

FATESG

Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial


Ps-Graduao Especializao em Segurana em Redes de Computadores
Camuflagem de Server de Conexo Reversa

Unidade Curricular: Proteo de Sistemas Operacionais e Servios


Professor: William Divino Ferreira, M.Sc.

Desenvolver as seguintes atividades:


a) Implementar um server de conexo reversa usando java. O server deve permitir realizar a leitura
remota do diretrio raiz da mquina da vtima;
b) Implementar um client para o server de conexo reversa;
c) Realizar a converso do cdigo java do server para um executvel (.exe);
d) Pesquisar tcnicas de camuflagem de cdigo malicioso e usar uma delas para camuflar o executvel do server desenvolvido.
Obs.:

Utilize os cdigos abaixo como base para o desenvolvimento do server e do client.

Servidor
importjava.io.*;
importjava.net.*;
publicclassServidor{
publicstaticvoidmain(Stringargs[]){
StringstrMsgCliente;
StringstrMsgModificada;
try{
//Criandoumsocketservidor
ServerSocketsocketServidor=newServerSocket(6789);
System.out.println("ServidorAtivo!");
System.out.println("");
System.out.println("Mensagens");
System.out.println("");
while(true){
//Aceitandoconexao
Socketconexao=socketServidor.accept();
//Criandobufferparaarmazenaramensagemrecebidadocliente
BufferedReadermsgDoCliente=newBufferedReader(newInputStreamReader(conexao.getInputStream()));
//Criandostreamparaenviarmensagemparaocliente
DataOutputStreammsgParaCliente=newDataOutputStream(conexao.getOutputStream());
//Lendomensagemenviadapelocliente
strMsgCliente=msgDoCliente.readLine();
//Exibindomensagemlida
System.out.println(conexao.getInetAddress()+":"+strMsgCliente);
//Modificandoamensagemlidadocliente
strMsgModificada=strMsgCliente.toUpperCase()+"\n";
//Enviandomensagemmodificadaparaocliente
msgParaCliente.writeBytes(strMsgModificada);
}
}catch(IOExceptione){
System.out.println("Erro:"+e);
System.exit(0);
}
}
}

Pgina: 1/2

Cliente
importjava.io.*;
importjava.net.*;
importjavax.swing.*;
publicclassCliente{
publicstaticvoidmain(Stringargs[])throwsException{
StringstrMsg;
StringstrMsgModificada;
//Criandosocketparaoservidor
//SubstituaasinterrogacoespeloIPdoServer
SocketsocketCliente=newSocket("127.0.0.1",6789);
//Criandostreamparaenviarmensagemparaoservidor
DataOutputStreammsgParaServidor=newDataOutputStream(socketCliente.getOutputStream());
//Lendomensagemdoteclado
strMsg=JOptionPane.showInputDialog(null,"Informeamensagemaserenviadaparaoservidor:");
//Enviandomensagemdigitadaaoservidor
msgParaServidor.writeBytes(strMsg+"\n");
//Criandobufferparaarmazenarmensagemretornadapeloservidor
BufferedReadermsgDoServidor=newBufferedReader(newInputStreamReader(socketCliente.getInputStream()));
//Recebendomensagemmodificadadoservidor
strMsgModificada=msgDoServidor.readLine();
//Exibindomensagemmodificada
JOptionPane.showMessageDialog(null,"Mensagemretornadapeloservidor:"+
strMsgModificada);
//Fechandoosocketparaoservidor
socketCliente.close();
System.exit(0);
}
}

Pgina: 2/2