Kroko Just another WordPress weblog

January 17, 2009

Multiple Remote Desktop Connections (RDC) XP not working

Filed under: fuck windows — admin @ 6:55 am

Download link: http://ice-club.com.ua/antiwpa/Other/TermSrvNoRestrPatch-1-3/

 

now the story:

 

If you have tweaked around with Windows XP you probably know that its possible to connect to another system across a network, intranet / internet as a remote user with the same interface as sitting on the system.

The capability is bundled with XP pro and I’m sure that you will find enough and more blogs / tutorial about how it works with screenshots and all. The issue is that its not available in XP Home and in XP Pro it allows only one user to work on the computer.

Based on my searches I believe its also possible to hack XP Home to support RDC, though I haven’t tried it myself the following link does have all the details that you could possibly need to try this out.

http://www.geekport.com/2007/08/15/enabling-remote-desktop-in-xp-home/

http://www.mydigitallife.info/2008/06/14/install-and-enable-remote-desktop-in-windows-xp-home-edition/

Now to the problem in XP pro , as mentioned earlier , the licencing agreement of MS allows only one user to access the computer so if you RDC to a computer the existing user gets logged out (not desirable). There is a way of overcoming this issue with some registry changes and a changed Terminal Service Dynamic Link Library (termserv.dll).

There are detailed article on the procedure available below

http://sig9.com/articles/concurrent-remote-desktop

http://www.mydigitallife.info/2008/06/13/enable-multiple-concurrent-remote-desktop-connections-or-sessions-in-windows-xp/

Additional some good soul has also written a program that neatly makes all these changes and also patches the termserv.dll the link for that is

http://www.kood.org/terminal-server-patch/

For most of the people in the world doing all this worked just fine and if you have tried and are successful good for you …. but then again there are those who are not so fortunate in life such as me who after trying out each and everything on all the links that I have posted including the application got nothing to work. The main user still got logged out each time I tried to RDC to the system.

After more googling I came across this obscure little package called
TermSrvNoRestrPatch-1-3

The location of the file is as following

http://ice-club.com.ua/antiwpa/Other/TermSrvNoRestrPatch-1-3/

which was also a real pain to find a valid link for it. It worked like a charm, it step by step patched all the file which the other application also did but this one got it to work ! It also patched the capability to RDC to a local host, yes there are a few reason why someone would want to do something like this 🙂 such as running multiple instances of a single program.

A word of caution, since the code edits few of the windows’ files, some antivirus programs through it up as a virus. You may need to run this in safemode if your antivirus prevents its from executing and more importantly if your convinced that it isn’t a virus.

Hope this has helped all the hapless people out there trying to get this to work. As always do drop me a comment if you found this useful, click an ad if your feeling generous !

hide console window run by task scheduler

Filed under: fuck windows — admin @ 6:54 am

JW> Hi, I am using Win2000 scheduler to run a .CMD ( batch ) file every
JW> minute. The console window is pop up everytime when the batch file is
JW> launched. Is is possible to tell scheduler hide the console window some
JW> how?

This WSH/VBScript will run your batch file in a hidden window.

‘MyCmd.vbs
Set WshShell = WScript.CreateObject(“WScript.Shell”)
cmd = “C:\bin\scripts\MyCmd.cmd”
Return = WshShell.Run(cmd, 0, True)
set WshShell = Nothing

January 2, 2009

Tutorial .htaccess

Filed under: Uncategorized — admin @ 8:08 am

htaccess este un simplu fisier ASCII care poate fi creat cu orice editor text (ex.Notepad)
.htaccess este este o extensie a unui fisier. Nu exista ‘fisier.htaccess’ sau ‘paginamea.htaccess’ ci simplu .htaccess

Pentru a crea un astfel de fisier, deschidem Notepad si apoi salvam fisierul cu numele ‘.htaccess’.Atentie pe sistemele de tip Windows extensia poate fi ascunsa iar fisierul sa se numeasca de fapt .htaccess.txt, ceea ce este incorect.In Windows puteti accesa Folder Options–>View–>si deselectati ‘Hide extension for knows file types’.Daca nu reusiti sa redenumiti fisierul asa, atunci o puteti face via ftp sau telnet, sau chiar din dos(rename .htaccess.txt .htaccess).
Fisierele de tip htaccess trebuie puse pe ftp in ASCII mode si nu BINARY.Atentie trebuie sa setati chmod 644 pe fisierul htaccess (RW-R–R–).Acest lucru face imposibila citire a fisierului de cate un browser extern.Asemenea greseli duc la compromiterea sistemului, deoarece atunci cand in .htaccess ai introdus cai de access private, calea catre directoare private, un hacker poate profita de acest lucru.Ca o paranteza, daca folositi un panel gen Plesk sau Webmin pentru administrarea paginilor acestea vor seta automat chmod 644.
Majoritatea comenzilor dintr-un htaccess sunt facute sa fie pe o singura linie, astfel ca da folositi un editor text care are activat word-wrap aveti grija pentru ca puteti pasa din greseala serverului Apache niste linii (caractere) fara sens.Totusi serverul Apache este foarte “intelegator” cu astfel de continut din htaccess.

Daca puneti un fisier htaccess in directorul root al serverului web acesta va afecta si “configuratia” subdirectoarelor.Adica, daca in htaccess aveti setate niste reguli pentru directorul corespunzator siteulmeu.ro, atunci vor fi afectate si subdirectoarele corespunzatoare siteulmeu.ro/director siteulmeu.ro/linkuri.Oricum puteti pune cate un htaccess in fiecare director, daca doriti setari diferite.Un subdirector va fi afectat de cel mai aproape htaccess.Daca aveti un htaccess in directorul radacina al serverului web atunci acesta va afecta toate subdirectoarele (toata structura).

Management de erori

Iata una din caracteristicile cele mai utilizate ale htaccess.Inainte de a crea propriile pagini de erori trebuie stiute urmatoarele:
-documente de erori = atunci cand primiti un mesaj gen “Error 404 – Document not found – Server running Apache 2.xx” inseamna ca ati fost redirectionat intr-o pagina care arata mesajul de mai sus specific erorii 404.Probabil ati vazut ca pe alte site-uri arata diferit acest mesaj de eroare, de obicei el tinde sa devina cat mai atraciv cu poze, mesaje haioase, appleturi java.
-coduri de erori = exista mai multe coduri de erori, si le voi prezenta mai jos:
Cereri acceptate cu succes
200 – OK
201 – Created
202 – Accepted
203 – Non-Authorative Information
204 – No Content
205 – Reset Content
206 – Partial Content
Cereri de client redirectate
300 – Multiple choices
301 – Moved Permanently
302 – Moved Temporarly
303 – See Other
304 – Not Modified
305 – Use Proxy
Cereri de client eronate
400 – Bad request
401 – Authorisation Required
402 – Payment Required
403 – Forbidden
404 – Not Found
405 – Method Not Allowed
406 – Not Acceptable (encoding)
407 – Proxy Authentification Required
408 – Request Timed Out
409 – Conflicting Request
410 – Gone
411 – Content Lenght Required
412 – Precondition Failed
413 – Request Entity Too Long
414 – Request URI Too Long
415 – Unsupported Media Type
Erori de server
500 – Internat Server Error
501 – Not Implemented
502 – Bad Gateway
503 – Service Unavailable
504 – Gateway Timeout
505 – HTTP Version Not Supported

Nu esti obligat sa specifici pentru fiecare cod cate un ErrorDocument, de fapt nici nu trebuie.De obicei un webmaster este preocupat de documentele de eroare pentru codurile 404 si 500.De asemenea cele mai inlocuite documente de eroare sunt pentru 401 – Authorization Required (atunci cand cineva incearca sa intre intr-o zona unde nu are destul access), 403 – Forbidden (atunci cand un utilizator nu are acces la un anume fisier) sau 400 – Bad Request (atunci cand cineva incearca sa manipuleze URL-ul sau scripturile paginii web).
Pentru a specifica documente de eroare customizate trebuie sa faceti ca in exemplele urmatoare:

ErrorDocument code /director/numefisier.ext
sau
ErrorDocument 404 /errors/notfound.html
la fel se poate proceda cu:
ErrorDocument 500 /errors/internalerror.html

Poti numi paginile notfound.html sau internalerror.html cu vrei tu, dar este de preferat sa le dai un nume sugestiv si apropiat de eroare pentru a nu crea confuzii.Se pune un slash (/) la inceput pentru ca ne raportam la directorul root al serverului.Recomand introducerea tuturor documentelor de erori intr-un singur folder gen /erori/ sau /error_docs/ pentru a controla mai bine indexarea lor de catre motoarele de cautare prin ROBOTS.TXT.

Daca ar fi sa cream un htaccess cu mai multe documente de eroare in el, am proceda in felul urmator(atentie, fiecare comanda pe o singura linie):

ErrorDocument 400 /erori/badrequest.html
ErrorDocument 401 /erori/auhreqd.html
ErrorDocument 403 /erori/forbid.html
ErrorDocument 404 /erori/notfound.html
ErrorDocument 500 /erori/serverr.html

Poti specifica un URL intreg, in loc de unul virtual (ex. www.siteulmeu.ro/erori/notfound.html), dar nu este recomandat.

Pe langa optiunile expuse mai sus avem si una mai simpla, dar mai rar utilizata.Putem include cod HTML in htaccess:

ErrorDocument 401 “Pentru a accesa aceasta pagina trebuie sa fii membru

Mai sus am folosit HTML, dar atentie continutul codului incepe cu ” dar nu se termina cu ghilimea pentru ca nu trebuie.Tineti minte totul trebuie sa fie pe o singura linie.

Protectia cu parola

Iata un alt “feature” foarte popular printre utilizatorii obisnuiti.Printr-un fisier de tip htaccess putem proteja un director cu parola.Acest aspect este foarte important si ajuta pe webmasteri de multe ori sa isi securizeze mai bine site-ul.
Exista o gramada de metode prin care poti proteja cu parola o anumita portiune a site-ului, de exemplu cu ajutorul limbajelor de programare web gen PHP,Perl,ASP sau client-based JavaScript.Antentie mare, nu este recomandata folosirea scripturilor client-based(client dependant challenge/respose) pentru ca nu sunt la fel de sigure ca cele server-side.
In primul rand, pentru a proteja un director cu parola trebuie sa cream un fisier numit .htpasswd, apoi in fisierul htaccess este introdus username si parola (care este criptata).
Voi explica mai jos procesul prin care puteti crea prin intermediul shell-ului un fisier htpasswd (cum sa creati parola criptata):

[zam@www zam]# cd /var/www/1337.ro/privat/
[zam@www privat]# htpasswd -c .htpasswd username
New password:
Re-type new password:
Adding password for user username
[root@www privat]#

htpasswd -c .htpasswd username = cream un user ‘username’ dupa care vom fi intrebati de parola
Inainte de a crea username si parola, observati*censored*ne-am deplasat catre directorul pe care dorim sa-l protejam (cd /var/www/1337.ro/privat/)

Puteti adauga useri noi care sa aiba acces la acelasi director prin intermediul comenzii ‘htpasswd .htpasswd user2’ de data aceasta insa nu mai folositi optiunea ‘-c’.
Daca vrei sa vezi ce ai facut poti deschide cu un editor fisierul .htpasswd unde vei descoperi ceva de genul:

username:5RXdskge4Syk
user2:tGfZm45olpcda

Daca vrei sa stergi un user, pur si simplu se sterge linia cu username-ul corespunzator.
Dupa ce s-a creat user si parola, trebuie sa creati si fisierul htaccess in felul urmator:

AuthUserFile /usr/local/www/1337.ro/privat/.htpasswd
AuthGroupFile /dev/null
AuthName Director Privat
AuthType Basic

require user username

Prima linie este calea catre fisierul htpasswd care poate fi locat oriunde pe server.Nota: plasati fisierul htaccess in directorul pe care vreti sa-l protejati si nu aiurea.Probabil va intrebati de ce am pus ‘require user username’.Aceasta linie va da acces la folderul protejat userului ‘username’ cu parola care este locata in htpasswd.Totusi de multe ori doriti ca un folder protejat cu parola sa fie accesat de mai multe persoane(useri) atunci inlocuiti ultima linie cu ‘require valid-user’ si atunci toate requesturile vor fi verificate din fisierul htpasswd (care va contine toti userii).
Linia care incepe cu AuthName contine textul care va fi afisat in promterul de login si ‘Director Privat’ poate fi inlocuit cu orice.
A fost folosita linia AuthType Basic pentru ca folosim autentificare clasica de tip HTTP.

Activarea SSI via htaccess

Multa lume doreste sa foloseasca SSI, dar multe servicii de hosting nu permit acest lucru.Totusi aceasta se poate schimba in majoritatea cazurilor cu htaccess.Atentie:acest lucru poate fi luat in considerare de cate administratorii serverului respectiv ca o tentativa de hacking asa ca va sugerez sa cereti permisia lor inainte de a actiona:

AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes

Prima linie ‘spune’ serverului ca paginile cu extensia .shtml sunt valide.A doua linie comunica serverului ca fisierele cu extensia .shtml pot fi executate, adica pot prelua comenzi server side.
In acest moment aveti SSI activat.Totusi putem sa profitam de bunavointa htaccess si sa facem un “trick”, inlocuiti a 2-a linie cu:

AddHandler server-parsed .html

Linia de mai sus permite fisierelor .html sa fie parsate ca si cele de .shtml.Atentie caci daca folositi SSI de foarte putine ori pe site puteti incetini viteza serverului, totusi acest delay este prea mic si nu este perceput de utilizator.De retinut ca se folosesc astfel de “trick”-uri pentru a ascunde faptul ca serverul respectiv foloseste SSI de catre eventualele atacuri ale hackerilor (userul vede pagina.html in loc de pagina.shtml deci nu va banui ca serverul foloseste SSI).
Daca totusi veti ramane cu extensia .shtml si vreti sa folositi SSI peste tot in pagina web, atunci este bine sa adaugati urmatoarea linie in htaccess:

DirectoryIndex index.shtml index.html

Aceasta inseamna ca orice pagina index.shtml poate reprezenta indexul unui director, in caz ca nu exista index.html.Vom discuta mai pe larg in capitolele de mai jos.

Restrictionarea userilor pe baza de IP

Cum se intampla in multe cazuri, utilizatori care practic nu au ce face testeaza site-ul de diferite vulnerabilitati sau efectueaza tot felul de operatiuni daunatoare scriptului, toate acestea pot fi stopate prin htaccess, prin banarea IP-ului:

order allow,deny
deny from 193.224.34.1
deny from 081.18.74.
allow from all

Dupa*censored*puteti observa mai sus se poate bloca un singur IP sau o clasa intreaga.Prin ‘deny from 193.224.34.1’ am blocat un singur IP iar prin ‘deny from 081.18.74.’ am blocat intreaga clasa de IP-uri (081.18.74.1,081.18.74.2,…etc).
Bineinteles puteti folosi in htaccess si comanda ‘deny from all’ care va bloca requesturile de la toate IP-urile posibile.Probabil v-ati pus problema blocarii pe domeniu a requesturilor – ‘deny from .hackerz.ro’ – asta inseamna ca blocam toati userii care intra cu adrese de genul *.hackerz.ro.Ca o paranteza: sa zicem ca blocati toate requesturile cu ‘deny from all’ va puteti lasa o portita pentru dumneavoastra in caz ca lucrati local sau de la un anume IP pe site-ul respectiv cu ‘allow from localhost’ sau ‘allow from 1337.ro’ unde localhost sau 1337.ro pot fi inlocuite cu IP-ul sau hostul de unde intrati.

Shimbari in setarile default ale unui folder

Daca ati fost atenti ati vazut mai sus sintaxa DirectoryIndex si va intrebati ce anume face.Ei bine, daca v-ati saturat ca indexul site-ului dumneavoastra sa fie index.html atunci il puteti schimba in ceva gen http://www.siteulmeu.ro/produse.html procedand in felul urmator:

DirectoryIndex produse.html

Daca sa zicem nu esti sigur care va fi indexul paginii tale poti face ceva de genul:

DirectoryIndex produse.html index.cgi index.pl default.html

Daca ati facut un htaccess cu linia de mai sus atunci cand un user va accesa pagina dumneavoastra http://www.siteulmeu.ro el va fi directionat catre index.cgi sau index.pl sau default.html sau produse.html depinde care dintre ele exista.Daca sa zicem in directorul respectiv se afla numai fisierul produse.html atunci browerul va fi redirectat aici.
Nota:sunt sigur ca v-ati intrebat:”dar daca am toate fisierele in director (produse.html,index.cgi,index.pl,default.html) atunci unde se va duce browserul?”. Raspunsul este simplu: “la primul element din lista, in acest caz ‘produse.html’.”
Pentru webmasteri: este de preferat sa folositi DirectoryIndex pe anumite foldere gen (/images/ sau /include/) unde aveti poze sau informatii pe care utilizatorul nu trebuie sa le acceseze direct.Iata un exemplu productiv: daca un user va incerca sa acceseze directorul /images/, el poate fi redirectionat inapoi catre index cu DirectoryIndex index.html iar index.html sa contina un meta refresh cu redirectie catre ../index.html.Voi explica mai multe in capitolul urmator.

Redirectionari

De multe ori se intampla sa va schimbati directorul la site ori cand faceti update ori cand schimbati providerul, iar atunci caile vechi indexate probabil de motoarele de cautare nu vor mai fi valide.Iata o solutie:

Redirect /director_vechi/produse.html http://www.siteulmeu.ro/directornou/produse.html

In linia de mai sus avem 3 elemente pasate fisierului htaccess.Comanda ‘Redirect’, calea relativa catre directorul vechi si calea reala (URL-ul) catre site-ul nou.Toate sunt despartite de un spatiu si sunt scrise pe o singura linie.De asemenea poti redirecta tot directorul:

Redirect /directorvechi http://www.siteulmeu.ro/directornou/

In acest fel ai redirectat toate linkurile din directorul vechi catre cel nou.

Prevenirea vizualizarii fisierului .htaccess

Iata o problema pe care am intalnit-o foarte des, mai ales pe serverele de windows.Daca sa zicem nu ati setat chmod corect pe .htaccess atunci riscati ca sa expuneti calea catre directorul cu parole.Puteti preveni aceste lucruri in modul urmator:

order allow,deny
deny from all

Prima linie specifica faptul ca fisierului .htaccess i se aplica anumite reguli.Intre “tagurile” se introduc regulile.Daca ati creat un fisier htaccess care contine aceste linii atunci un user care ar incerca sa vada ce se afla in fisier ar obtine o eroare 403.Nu uitati, foarte important este sa setati, daca aveti posibilitatea, CHMOD 644 pe fisierul .htaccess.

Lucrul cu MIME Types

Termenul MIME deriva din “multipurpose internet mail extensions”.Exemplu: fisiere de gen MP3,SWF,etc.De multe ori, multi provideri de hosting spun ca ofera online stream media adica poti asculta melodiile online sau te poti uita la filme online pe masura ce se incarca.Iata ce simplu este:

AddType application/x-shockwave-flash swf

Explicatiile sunt inutile, totusi trebuie precizat ca daca esti webmaster si vrei sa fortezi userul sa downloadeze aceste fisiere in loc sa le vizualizeze(asculte) online poti inlocui tipul MIME cu ‘application/octet-stream’.

Prevenirea link-urilor externe catre imagini si implicit a salvarii bandwith-ului

Titlul de mai sus se rezuma in engleza la urmatoarea expresie: “hot linking” aka “bandwith stealing”.Sunt absolut sigur ca ati observat ca tot mai multi administratori de site-uri romanesti au inceput sa isi ia asemenea masuri de protejare.Se intampla de multe ori sa vedem site-uri cu poze care de fapt apartin altor site-uri cu link direct.
Folosind .htaccess putem preveni toate acestea, fie aratand o eroare standard sau, cel mai haios, o alta poza gen “Nice try!”. Atentie mare pentru ca daca vreti sa va folositi de aceste optiuni pe care vi le ofera htaccess trebuie sa aveti suport pe server de mod_rewrite (http://httpd.apache.org/docs/mod/mod_rewrite.html).Daca sunteti siguri ca totul este in regula atunci iata un cod din htaccess care face toata treaba:

RewriteEngine on
RewriteCond %(HTTP_REFERER) !^$
RewriteCond %(HTPP_REFERER) !^http://(www.)?siteulmeu.ro/.*$ [NC]
RewriteRule .(gif|jpg)$ – [F]

Trebuie bineinteles sa inlocuiti siteulmeu.ro cu domeniul dumneavoastra.Codul de mai sus va afisa un link la o imagine eronata atunci cand cineva incearca sa faca hot linking.Totusi pentru ca facem parte din elita ne place sa afisam ceva mai interesant celui care incearca sa ne fure bandwith-ul:

RewriteEngine on
RewriteCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http://(www.)?siteulmeu.ro/.*$ [NC]
RewriteCond .(gif|jpg)$ http://www.siteulmeu.ro/0wn3d.gif [R,L]

http://www.siteulmeu.ro/0wn3d.gif este url-ul de la imaginea care va fi afisata in loc de cea furata.Pentru a intelege codul de mai sus vizitati pagina corespunzatoare mod_rewrite de pe site-ul proiectului apache.org.

Manipulare de optiuni pentru directoare

Daca ai un director plin de imagini si arhive(zip,rar) si vrei ca lumea sa nu il poata accesa atunci htaccess este de partea ta.De obicei pe majoritatea serverelor nu este activat directory browsing, adica daca nu ai un index la directorul respectiv vei primi un mesaj de eroare gen 403 Forbbiden.

IndexIgnore *

Daca pui aceasta linie in htaccess atunci nimic din acel director nu va fi listat.Caracterul wildcard * ia in calcul toate extensiile posibile.Exista multiple posibilitati, ca de exemplu sa listezi toate fisierele dintr-un director in afara de imagini:

IndexIgnore *.gif *.jpg

Pe de alta parte, daca doriti sa listati fisierele dintr-un anume director (va e greu sa le indexati) atunci puteti face un htaccess cu urmatoarea linie:

Options +Indexes

Aveti grija ca in directorul pe care il listati sa nu se afle fisiere sau date care pot compromite serverul, de asemenea cred ca v-ati da seama ca daca puneti -Indexes atunci nu va mai fi listat continutul directorului.Daca doriti sa adaugati mai multe informatii la directorul listat puteti face urmatoarele: HEADER – plaseaza deasupra fisierelor un text, README – plaseaza la sfarsitul listingului text.Aceste comenzi sunt folositoare atunci cand listati niste surse de la programe sau scripturi si vreti sa dati mai multe explicatii.

Cum sa va distrati folosind htaccess

Ok.Am hotarat ca spre sfarsitul tutorialului sa pun cireasa pe tort si sa va arat cateva tehnici simple prin care va puteti securiza aplicatiile si prin care va puteti distra de minune.Creati un htaccess si adaugati urmatoarea linie:

AddType applications/x-httpd-php .php .l33t

Banuiesc ca va dati seama ce face linia de mai sus, iata si un exemplu real: http://www.1337.ro/~sasa/index.l33t
Extensiile sunt foarte importante, ele va pot salva de la atacuri de-ale hackerilor, de exemplu puteti transforma un site facut complet in PHP in extensia .html.Putini sunt cei care isi dau seama de aceste setari.
Iata alt exemplu pe care nu il recomand sa il folositi, ci numai sa va distrati:

AddType applications/x-httpd-php .php .exe .tar.gz .zip

Atentie unele browsere s-ar putea sa nu se arate prea fericite cu linia de mai sus )

Concluzie:

Exista o groaza de setari pe care le puteti face cu ajutorul unui fisier .htaccess, pentru lista completa de instructiuni vizitati site-ul http://httpd.apache.org/docs/mod/directives.html

Powered by WordPress