skip to main |
skip to sidebar
How To Hack Computer Use Remote Desktop
Remote Desktopis a cool feature of Windows Server 2003 that lets youremotely log on to and work at a machine as if you were seated at thelocal console (in Windows 2000
Advanced Server, this feature was called Terminal Services in RemoteAdministration Mode). Remote Desktop can be a lifesaver for fixingproblems on servers at remote sites, but what if you forgot to enable thefeature before you shipped the server out to Kalamazoo? Enabling RemoteDesktop is easy if the server is in front of you: just log on as an administrator,open System in Control Panel, select the Remote tab, and under RemoteDesktop select the checkbox labeled "Allow users to connect remotely tothis computer." Unfortunately, you can't use the System utility to enableRemote Desktop on a remote machine, though you can access someproperties pages of System using Computer Management by firstconnecting the console to a remote computer, then right-clicking on theroot node and selecting Properties.
Unfortunately, as you can see in Figure1 below, the Remote tab is not available when you access Systemproperties this way on a remotemachine (here named SRV220). Figure 1. System properties for aremote machine does not haveRemote tab. Fortunately, there's a workaround. Sitdown at your desk and log on to yourWindows XP workstation using youradministrator credentials and startRegistry Editor by Start --> Run -->regedit --> OK. Then select the Connect Network Registry option under the Filemenu (Figure 2). Figure 2. Connecting to the Registry ona remote machine. This opens the Select Computer searchbox. Either browse Active Directory tolocate the remote server, or type itsname in the textbox (Figure 3). Figure 3. Connecting to the Registry ona remote server named SRV220. Click OK and a node will be displayedin Registry Editor for the remotemachine (Figure 4). Figure 4. HKLM and HKU hives onSRV220. Now browse H K L M on SRV to find the following Registry key (Figure 5). H K L M \ S Y S T E M \ C u r r e n t C o n t r o l S e t \ C o n t r o l \ T e r m i n a l Figure 5. Registry key for TerminalServer on remote machine. Under the Terminal Server key, you'llfind a R E G _ DWO R D value named f D e n y T S C o n n e c t i o n. Double-click on that value to open the E d i t DWO R D Value box and change the value data from 1 (RemoteDesktop disabled) to 0 (RemoteDesktop enabled), as in Figure 6below. Figure 6. Set f D e n y T S C o n n e c t i o n s to 0 to enable Remote Desktop on SRV220. The remote machine needs to berebooted for the change to take effect,so open a command prompt and typethe following command: s h u t d own - m \ \ s r v 2 2 0 - r After the remote machine reboots,Remote Desktop should be enabledon it. To test this from yourworkstation, open Start --> AllPrograms --> Accessories -->Communications --> Remote Desktop Connection, enter the name of theremote server in the Remote DesktopConnection logon box, supply youradministrator password whenprompted, and you're in.Enjoy!!! :D
How to find find security holes
Security holes manifest themselves in (broadly) four ways:
1) Physical Security Holes.
- Where the potential problem is caused by giving unauthorised personsphysical access to the machine, where this might allow them to performthings that they shouldn't be able to do.
A good example of this would be a public workstation room where it wouldbe trivial for a user to reboot a machine into single-user mode and muckaround with the workstation filestore, if precautions are not taken.
Another example of this is the need to restrict access to confidentialbackup tapes, which may (otherwise) be read by any user with access tothe tapes and a tape drive, whether they are meant to have permission ornot.
2) Software Security Holes
- Where the problem is caused by badly written items of "privledged"software (daemons, cronjobs) which can be compromised into doing thingswhich they shouldn't oughta.
The most famous example of this is the "sendmail debug" hole (seebibliography) which would enable a cracker to bootstrap a "root" shell.This could be used to delete your filestore, create a new account, copyyour password file, anything.
(Contrary to popular opinion, crack attacks via sendmail were not justrestricted to the infamous "Internet Worm" - any cracker could do thisby using "telnet" to port 25 on the target machine. The story behind asimilar hole (this time in the EMACS "move-mail" software) is describedin [Stoll].)
New holes like this appear all the time, and your best hopes are to:
a: try to structure your system so that as little software as possibleruns with root/daemon/bin privileges, and that which does is known tobe robust.
b: subscribe to a mailing list which can get details of problemsand/or fixes out to you as quickly as possible, and then ACT when youreceive information.
> c: When installing/upgrading a given system, try to install/enable only> those software packages for which you have an immediate or foreseeable> need. Many packages include daemons or utilities which can reveal> information to outsiders. For instance, AT&T System V Unix' accounting> package includes acctcom(1), which will (by default) allow any user to> review the daily accounting data for any other user. Many TCP/IP packa-> ges automatically install/run programs such as rwhod, fingerd, and> <occasionally> tftpd, all of which can present security problems.>> Careful system administration is the solution. Most of these programs> are initialized/started at boot time; you may wish to modify your boot> scripts (usually in the /etc, /etc/rc, /etc/rcX.d directories) to pre-> vent their execution. You may wish to remove some utilities completely.> For some utilities, a simple chmod(1) can prevent access from unauthorized> users.>> In summary, DON'T TRUST INSTALLATION SCRIPTS/PROGRAMS! Such facilities> tend to install/run everything in the package without asking you. Most> installation documentation includes lists of "the programs included in> this package"; be sure to review it.
3) Incompatible Usage Security Holes
- Where, through lack of experience, or no fault of his/her own, theSystem Manager assembles a combination of hardware and software whichwhen used as a system is seriously flawed from a security point of view.It is the incompatibility of trying to do two unconnected but usefulthings which creates the security hole.
Problems like this are a pain to find once a system is set up andrunning, so it is better to build your system with them in mind. It'snever too late to have a rethink, though.
Some examples are detailed below; let's not go into them here, it wouldonly spoil the surprise.
4) Choosing a suitable security philosophy and maintaining it.
>The fourth kind of security problem is one of perception and>understanding. Perfect software, protected hardware, and compatible>components don't work unless you have selected an appropriate security>policy and turned on the parts of your system that enforce it. Having>the best password mechanism in the world is worthless if your users>think that their login name backwards is a good password! Security is>relative to a policy (or set of policies) and the operation of a system>in conformance with that policy.
---
[Guide to finding new holes]
NOTE: I think this should be divided into general categories:1) General principles2) Looking for holes in src (most items here)3) Looking in binary distributions4) Looking in site specific configurations
The following general classifications suggest themselves:1) SUID/SGID2) Return codes/error conditions3) unexpected input4) race conditions5) authentication6) implicit trust7) parameters8) permissions9) interrupts10) I/O11) symbolic links12) Daemons, particularly those taking user input.13) Kernel race conditions14) what else? - please add categories
(Suggested splitting of above into main and sub-catagories)I: Suid binaries and scriptsunexpected user interactionsflawed liberary callsimplicit assumptions of external conditions (sym links, loc. paths)race conditionsII: daemons running with priviliged uid'srace conditionspoor file protectonsimplicit file protectionstrustauthenticationIII: Kernel problemsKernel race conditionsdevice driver code
The following four step method was created by System DevelopmentCorporation, who report a 65% success rate on the flaw hypothesesgenerated. Doing a comprehensive search for operating system flawsrequires four steps:
Step 1) Knowledge of system control structure.===============================================To find security holes, and identifying design weaknesses it isnecessary to understand the system control structure, and layers.One should be able to list the:A) security objects: items to be protected. ie: a users file.B) control objects: items that protect security objects. ie: a i-nodeC) mutual objects : objects in both classes. ie: the password fileWith such a list, it is possible to graphically represent a controlhierarchy and identify potential points of attack. Making flow chartsto give a visual breakdown of relationships definitely helps.Reading the various users, operators, and administrators manuals shouldprovide this information.(following para's should probably be moved to a "legal" section)Reading and greping source code should also prove valuable. For thosewithout a source licence, I would suggest we use LINUX, NET2, and BSD386distributions in order to stay legal. At some future time we may be ableto form a working contract between someone or a company with legal accessto other distributions and members actively participating in this project.It appears that extracts of proprietary code may be used for academicstudy, so long as they are not reused in a commercial product - morechecking is necessary though.
Step 2) Generate an inventory of suspected flaws. (i.e. flaw hypotheses)========================================================================In particular we want:Code history:What UNIX src does a particular flavor derive from? This is importantfor cross references (very often only one vendor patches certain code,which may get reused, in it's unpatched reincarnation by others)A solid cross reference:Who checked which bug in what OS and what version prevents us fromduplicating work.
A good start would be listing all the suid binaries on the various OSflavors/versions. Then try to work out why each program is suid. i.e.:rcp is suid root because it must use a privilaged port to do username authentication.Often code that was never designed to be suid, is made suid, durringporting to solve file access problems.We need to develope a data base that will be able to look at pairs andtriplets of data, specificly: program name, suid, sgid, object accessed(why prog is suid/sgid), OS flavor/version, and flav/vers geniology.Any sugestions on how to implement such a DB?
Step 3) Confirm hypotheses. (test and exploit flaws)====================================================
Step 4) Make generalizations of the underlying system weaknesses, forwhich the flaw represents a specific instance.=====================================================================
Tool Box:=========AGREP: I suggest everyone obtain, and install agrep from:ftp cs.arizona.edu /agrep/agrep.tar.ZAgrep supports "windowing" so it can look for routines, and subroutines.It also supports logical operators and is thus ideally suited to automatingthe search for many of the following flaws. i.e. <psudocode>agrep WINDOW {suid() NOT taintperl()} /usr/local/*.plor agrep WINDOW {[suid() OR sgid()] AND [system() OR popen() OR execlp()OR execvp()]} /usr/local/src/*.c
PERMUTATION PROGRAM: Another tool worth producing is a program to generateall possible permutations of command line flags/arguments in order to uncoverundocumented features, and try to produce errors.
TCOV:
CRASH: Posted to USENET (what FTP archive?) (descrip?)
PAPERS: There are several papers that discuss methods of finding flaws, andpresent test suites.1) An Emphirical Study of the reliability of UNIX Utilities, by Barton P.Miller, Lars Fredriksen, and Bryan So, Comm ACM, v33 n12, pp32-44,Dec '90. Describes a test suite for testing random input strings.Results indicated that 25% of the programs hung, crashed, or misbehaved.In one case the OS crashed. An understanding of buffer and registerlayout on the environment in question, and the expected input is likelyto produce the desired results.2) The Mothra tools set, in Proceedings of the 22nd Hawaii InternationalConference on Systems and Software, pages 275-284, Kona, HI, January '893) Extending Mutation Testing to Find Environmental Bugs, by Eugene H.Spafford, Software Practice and Experience, 20(2):181-189, Feb '904) A paper by IBM was mentioned that was submitted to USENIX a few yearsago. (Anyone have a citation?).
Specific Flaws to Check For:============================1) Look for routines that don't do boundary checking, or verify input.ie: the gets() family of routines, where it is possible to overwritebuffer boundaries. ( sprintf()?, gets(), etc. )also: strcpy() which is why most src has:#define SCYPYN((a)(b)) strcpy(a, b, sizeof(a))
2) SUID/SGID routines written in one of the shells, instead of C orPERL.
3) SUID/SGID routines written in PERL that don't use the "taintperl"program.)
4) SUID/SGID routines that use the system(), popen(), execlp(), orexecvp() calls to run something else.
5) Any program that uses relative path names inside the program.
6) The use of relative path names to specify dynamically linked libraries.(look in Makefile).
7) Routines that don't check error return codes from system calls. (ie:fork(2), suid(2), etc), setuid() rather, as in the famous rcp bug
8) Holes can often be found in code that:A) is ported to a new environment.B) receives unexpected input.C) interacts with other local software.D) accesses system files like passwd, L.sys, etc.E) reads input from a publicly writable file/directory.F) diagnostic programs which are typically not user-proofed.
9) Test code for unexpected input. Coverage, data flow, and mutationtesting tools are available.
10) Look in man pages, and users guides for warnings against doing X, andtry variations of X. Ditto for "bugs" section.
11) Look for seldom used, or unusual functions or commands - read backwards.In particular looking for undocumented flags/arguments may prove useful.Check flags that were in prior releases, or in other OS versions. Checkfor options that other programs might use. For instance telnet uses -hoption to login ...right, as most login.c's I've seen have:if((getuid()) && hflag){syslog()exit()}
12) Look for race conditions.
13) Failure of software to authenticate that it is really communicatingwith the desired software or hardware module it wants to be accessing.
14) Lack or error detection to reset protection mechanisms following anerror.
15) Poor implementation resulting in, for example, condition codes beingimproperly tested.
16) Implicit trust: Routine B assumes routine A's parameters are correctbecause routine A is a system process.
17) System stores it's data or references user parameters in the usersaddress space.
18) Inter process communication: return conditions (passwd OK, illegalparameter, segment error, etc) can provide a significant wedge, esp.when combined with (17).
19) User parameters may not be adequately checked.
20) Addresses that overlap or refer to system areas.
21) Condition code checks may be omitted.
22) Failure to anticipate unusual or extraordinary parameters.
23) Look for system levels where the modules involved were written bydifferent programmers, or groups of programmers - holes are likelyto be found.
24) Registers that point to the location of a parameters value insteadof passing the value itself.
25) Any program running with system privileges. (too many progs are givenuid 0, to facilitate access to certain tables, etc.)
26) Group or world readable temporary files, buffers, etc.
27) Lack of threshold values, and lack of logging/notification once thesehave been triggered.
28) Changing parameters of critical system areas prior to their executionby a concurrent process. (race conditions)
29) Inadequate boundary checking at compile time, for example, a usermay be able to execute machine code disguised as data in a data area.(if text and data areas are shared)
30) Improperly handling user generated asynchronous interrupts. Usersinterrupting a process, performing an operation, and either returningto continue the process or begin another will frequently leave thesystem in an unprotected state. Partially written files are left open,improper writing of protection infraction messages, improper settingof protection bits, etc often occur.
31) Code that uses fopen(3) without setting the umask. ( eg: at(1), etc. )In general, code that does not reset the real and effective uid beforeforking.
32) Trace is your friend (or truss in SVR4) for helping figure out whatsystem calls a program is using.
33) Scan /usr/local fs's closely. Many admins will install software fromthe net. Often you'll find tcpdump, top, nfswatch, ... suid'd root fortheir ease of use.
34) Check suid programs to see if they are the ones originally put on thesystem. Admins will sometimes put in a passwd replacement which is lesssecure than the distributed version.
35) Look for programs that were there to install software or loadablekernel modules.
36) Dynamically linked programs in general. Remember LD_PRELOAD, I thinkthat was the variable.
37) I/O channel programming is a prime target. Look for logical errors,inconsistencies, and omissions.
38) See if it's possible for a I/O channel program to modify itself, loopback, and then execute the newly modified code. (instruction pre-loadmay screw this up)
39) If I/O channels act as independent processors they may have unlimitedaccess to memory, thus system code may be modified in memory prior toexecution.
40) Look for bugs requiring flaws in multiple pieces of software, i.e. sayprogram a can be used to change config file /etc/a now program b assumesthe information in a to be correct and this leads to unexpected results(just look at how many programs trust /etc/utmp)
41) Any program, especially those suid/sgid, that allow shell escapes.
Enjoy!! :D
Hi Friends,Try my search engine
http://sundaravel.zxq.net
Features:
- Faster than Google search
- No ads
- Accurate Results
- No History ( You can browse without history )