You should know what a Automated Teller Machine (or Automatic Teller Machine or cash machine) which commonly known as ATM is. Yes, ATM is commonly used to access bank accounts in order to make cash withdrawals or credit card cash advances, where after keying in your PIN number, ATM will disburse cash notes to you. You should also know that when you withdraw let’s say 100 dollars, the ATM should dispense 5 USD notes in 20-dollar denomination. But what if now the ATM dispenses 20 20-dollar USD bills instead? It happened not because the bills and notes are not been stocked in correct denomination, but because you can actually make it happens at the ATM cash machines that leave its backdoor opened by not changing default factory administrative passwords and default combinations for the safe.
So what you going to do in order to hack and crack the ATM so that the cash machine will give you more money than it suppose to? It’s unlikely common ATM trickery or fraud scam that uses various high-tech devices to capture identity of your ATM card and PIN number. Firstly, identify the ATM maker and model from the video on news about ATM reprogramming scam fraud at at a gas station on Lynnhaven Parkway in Virginia Beach.
Unable to identify what model of ATM cashpoint is it? Matasano has revealed the brand and model of the ATM to be Tranax Mini Bank 1500 series. So it’s this type of cash machine is possible for hacking. 27B Stroke 6 reported that Triton’s ATMs’ manuals also contains factory default pass-code and backdoor key sequence, although no successful fraud story been reported on Triton’s ATM machines. Matasano also details the step that needed to be taken in order to be able to hack into the ATM for re-programming. That’s to get hold on a copy to Tranax Mini Bank 1500 Series (MB1500) operator manual or installation manual, which contains a lot of security sensitive information includes:
* Instructions on how to enter the diagnostic mode or operator function menu.
* Default Master, Service or Operator passwords.
* Default Combinations For the Safe.
The manual that was found on the web Tranax_MB_Operator_Manual.pdf has been taken down, however, Google should be able to help you with its cache. Inside the Tranax Mini-Bank 1500 user guide manual, you can also learn how to set the denomination of the type of bill (the value of the cash notes i.e $1, $5, $10, $20, $50 or $100) that the ATM’s cassettes will be dispensing. That’s all you probably need to trick the ATM to think that the $20 bills it dispensed are actually of the $5 or $1 bill, possibly earning you a hefty profit. So, the only thing left now if you trying your luck to find an ATM cash machine that haven’t been changed its factory default passcodes and passwords. Tranax has shipped 70,000 ATMs, self-service terminals and transactional kiosks around US, where majority of those shipments are of the flagship Mini-Bank 1500 machine that was rigged in the Virginia Beach heist, according to eWeek.
The ATM scammer in Virginia Beach case successfully to re-program and trick the Tranax MB1500 series ATM to act as if it had $5 bills in its dispensing tray instead of $20 bills, and the withdraw cash using a pre-paid debit card with a 300% profit. However, he forgot to reprogram back the ATM to correct denomination, and the ATM was left misprogrammed for next 9 days before somebody reported the misconfiguration, and hence revealed the fraud.
Senin, 01 Desember 2008
An Indepth Guide in Hacking UNIX
An Indepth Guide in Hacking UNIX and the
concept of Basic Networking Utility
Brief history on UNIX
----------------------
Its because of Ken Tompson that today were able to Hack Unix.He used to work
for Bell Labs in the 60s.Tompson started out using the MULTICS OS which was
later eliminated and Tompson was left without an operating system to work with.
Tompson had to come up with something real quick.He did some research and
and in 1969 UNIX came out,which was a single user and it didn't have
many capabilities.A combined effort with others he rewrote the version
in C and added some good features.This version was out in 1973 and was
available to the public.This was the first begining of UNIX as its known
presently.The more refined version of UNIX,today know as UNIX system V
developed by Berkley University has unique capabilities.
Various types of UNIXes are CPIX,Berkeley Ver 4.1,Berkeley 4.2,FOS,Genix,HP-UX,
IS/I,OSx,PC-IX,PERPOS,Sys3,Ultrix,Zeus,Xenix,UNITY,VENIX,UTS,Unisys,Uniplus+,
UNOS,Idris,QNIX,Coherent,Cromix,System III,System 7,Sixth edition.
The article it self:
--------------------
I believe that hacking into any system requires knowledge of the Operating
system itself.Basically what I will try to do is make you more familiar with
UNIX operation ,its usefull commands that will be advantageous to you as a
hacker.This article contains in depth explainations.
Error Messages that one may came across:[UNIX system V]
----------------------------------------
Login incorrect - An ivalid ID and/or pw was entered.This means nothing.
In UNIX there is no way guessing valid user IDs.You may
come across this one when trying to get in.
No more logins - will happens when the system wont accept anymore logins
could be going down
Unknown Id - will happen if an ivalid id is entered using (su) command
Unexpected eof in file - The file being stripped file has been damaged
Your password has expired - This is quiet rare although there have been cases
where it happened.Reading the etc/passwd will
show you at how many intervals it changes.
You may not change the password - The password has not yet aged enough.The
Administrator set the quotas for the users
Unknown group [groups name] - occurs when chgrp is executed ,group doesn't
exist
Sorry - Indicated that you have typed in an invalid super user password(execu-
tion of the su)
Permission denied!- Indicated you must be the owner or a super user to change
password.
Sorry <[# of weeks] since last change - This will happen when password has
has not aged enough and you tried to
change it(passwd)
[directory name]:no permission - You are trying to remove a directory which
you have no permission to.
[file name] not removed - trying to delete a file owned by another user
that you dont have write pemision for.
[dirname] not removed - ownership of the dir is not your that your trying to
delete.
[dirname] not empty - the directory contains files so you must have to delete
the files before executing the rmdir
[command] not found - you have entered an ivalid command not know to UNIX
cant execute pwd - some thing wrong with the system cant execute pwd command
cannot chdir to .. - (.. one level up) permision is required to execute pwd
above the current directory
cant open [file name] - defined wrong path,file name or you have no read
permission
cp:[file name] and [file name] are identical - self explanatory
cannot locate parent directory - occurs when using mv
[file name] not found - file which your trying to move doesn't exsist
You have mail - Self explanatory
Basic Networking Utility error messages
---------------------------------------
cu:not found - networking not installed
login failed - invalid id/pw or wrong # specified
dial failed - the systen never answered due to a wrong #
uucp completely failed - did not specify file after -s
wrong time to call - you called at the time at a time not specified in the
Systems file
system not in systems - you called a remote not in the systems file
Logon format : first thing one must do is switch to lower case
--------------
Identifing a UNIX.Here is what you'll see:
Some times there will be no system identifer
AT&T UNIX SysVR3.0 (eg of a system identifier)
login:
or
Login:
Any of these is a UNIX.Here is where you will have to guess at a user valid
id.Here are some that I have come across eg( glr,glt,radgo,rml,chester,cat,
lom,cora,hlto,hwill,edcasey and also some containing numbers smith1,mitu6 or
special characters in it like bremer$,j#fox.Login names have to be 3 to 8
chracters in lenght lowercase and must start with a letter.In some XENIX
systems one may login as "guest"
User level accounts:(lower case)
--------------------
In Unix they have whats called accounts .These
accounts can be used at the "login:" prompt.
Here is a list:
sys
bin
trouble
daemon
uucp
nuucp
rje
lp
adm
listen - if starlan is installed
Super-user accounts:
--------------------
And then there are super-user login which make UNIX worth hacking.
The accounts are used for a specific job. In large systems these logins
are assingned to users who have a responsibilty to maintain subsystems.
They are as follows :(all lower case)
root - this is a must the system comes configured with it.It has no
restriction.Has power over every other account.
unmountsys - unmounts files
setup - system set up
makefsys - makes a new file
sysadm - allows useful S.A commands(doesn't need root login)
powerdown - powering system down
mountfsys - mounts files
checkfsys - checks file
These accounts will definitly have passwords assigned to them.These
accounts are also commands used by the system administrator.
Here are some examples of accounts I have seen:
cron uuhelp usenet
anonuccp news network
bellboy lp vector
guest games ninja
vote warble sysinfo
After the login prompt you will receive a password prompt:
password:
or
Password:
Enter the password (it wont echo).The password rule is as follows:Each pw
has to contain at least 6 characters and maximum has to be 8 .Two of which are
to be alphabetic letters and at least one being a number or a special character
The alphabetic digits could be in upper case or lower case.Here are some of the
passwords that I have seen (eg.Ansuya1,PLAT00N6,uFo/78,ShAsHi..,Div417co)
The passwords for the super user accounts will be difficult to hack
try the accounts interchangebly eg.login:sysadm password:makefsys or rje1,
sysop,sysop1,bin4 or they might contain letter,numbers,special chracters in
them.It could be anything.The user passwords are changed by an aging proccess
at successive intervals.The users are forced to changed it.The super-user
will pick a password that wont need changing for a long period of time.
You have made it!
-----------------
The hard part is over and hopefully you have hacked a super-user account.
Remember Control-d stops a process and also logs you off.
The next thing you'll probably see is the system news
eg.
login:john
password:hacker1
System news
There will be no networking offered to the users till
august 15,due to hardware problems.
(just an example)
$
$ is the Unix prompt -waiting for a command to be entered.I will use this
throught the article to show outouts etc..(Its not
part of the command)
# - means your logged in as root(very good)
A word about the XENIX System III:(run on the tandy 6000)
---------------------------------
The largest weakness in the XENIX System III occurs after the installation
of the Profile-16 or more commonly know as the filepro-16.I have seen the
filepro-16 installed in many systems.
The installation process creates an entry in the password file for a user
named \fBprofile\fR ,an account that who owns and administors the database.
The great thing about it is that when the account is created ,no password is
assigned to it.The database contains executable to maintain it.The database
creation programs perform a \fBsetuid\fR to boot up the \fBoot\fR there by
giving a person the whole C Shell to gain Super User privilege same as root.
Intresting huh!
* Note: First the article will inform you of how the Unix is made up
The Unix is made if three components-The shell,the kernal,file system.
The kernal:
-----------
You could say that the kernal is the heart of the Unix operating system.
The kernal is a low level language lower than the shell which maintains
processes .The kernal handles memory usage ,maintains file system
the sofware and hardware devices.
The shell:
----------
The shell a higher level language. The shell had two important uses,
to act as command interpreture for example using commands like cat,who,
ls the the shell is at work figuring out whether you have entered a command
correctly or not.The second most important reason for the shell is its ability
to be used as programing language.Suppose your performing some tasks
repeatedly over and over again,You can program the shell to do this for you.
The file system:
---------------
The file system in Unix is divede into 3 catagories:Directories,ordinary files
and special files.(d,-)
Basic stucture:
(/)-this is abreviation for the root dirctory.
root level root
(/) system
-------------------------------------|----------------------------------level
| | | | | | | |
/unix /etc /dev /tmp /lib /usr /usr2 /bin
| _____|_____
login passwd | | |
level /john /cathy
________________________|_______________
| | | | | |
.profile /mail /pers /games /bin /michelle
*.profile - in case | __|______ | __|_______
you wich to change your enviroment capital | | data | |
but after you log off.It sets to othello starwars letter letter1
default.
the /unix-is the kernal
/etc - contains system administrators files,Most are not available to the
regular user.(this directory contains the /passwd file)
Here are some files under /etc directory:
/etc/passwd
/etc/utmp
/etc/adm/sulog
/etc/motd
/etc/group
/etc/conf
/etc/profile
/dev - contains files for physical devices such as printer and the disk drives
/tmp - temporary file directory
/lib - dirctory that contains programs for high level languages
/usr - this directory contains dirctories for each user on the system
Eg. of a list of files under /usr
/usr/tmp
/usr/lib
/usr/docs
/usr/news
/usr/spool
/usr/spool/lp
/usr/lib/uucp
/bin - contain executable programs (commands)
The root also contains:
/bck - used to mount a back up file system.
/install - Used to install and remove utilities
/lost+found - This is where all the removed files go,This dir is used by fsck
(1M)
/save -A utility used to save data
/mnt - Used for temporary mounting
**Now the fun part scouting around**
Local commands (Explained in details)
-------------------------------------
At the unix prompt type the pwd command-it will show you the current working
directory you are in.
$ pwd
$ /usr/admin - assuming that you have hacked into a super user acc checkfsys
$
This gives you the full login directory.The / before tell you the location
of the root directory
or
(REFER TO THE DIAGRAM ABOVE)
$ pwd
$ /usr/john
$
Assuming you have hacked into johns acc.
Now lets say you wanted to move down to the michelle directory( you own this)
that contains letters.You would type in
$ cd michelle or cd usr/john/michelle
$ pwd
$ /usr/john/michelle
$
Going back one directory up type in:
$ cd ..
or going to your parent directory just type in "cd"
Listing file directories assuming you are in the parent directory:
$ ls /usr/john
mail
pers
games
bin
michelle
This wont give you the .profile file .To view it type
$ cd
$ ls -a
:
:
.profile
To list file names in michelles directory type in:
$ ls michelle (that if your in the johns directory)
$ ls /usr/john/michelle(parent dir)
ls -l
-----
The ls -l is an an important command in unix.This command displays the whole
directory in long format :Run this in parent directory
$ ls -l
total 60
-rwxr-x--- 5 john bluebox 10 april 9 7:04 mail
drwx------ 7 john bluebox 30 april 2 4:09 pers
: : : : : : :
: : : : : : :
-rwxr-x--- 6 cathy bluebox 13 april 1 13:00 partys
: : : : : : :
$
The total 60 tells one the ammount of disk space used in a directory.The
-rwxr-x--- is read in triples of 3.The first chracter eg(-,d,b,c)-means as
follows: - is an ordinary file ,d is a directory,b is block file,c is a
chracter file.
The r stands for read permission,w is write permission,x is execute.The first
colum is read in 3 triples as stated above.The first group of 3 (in -rwxr-x---)
after the "-" specifies the permission for the owner of the file,the second
triple are for the groups (the fourth colum) and the last triple are the
permissions for all other users.Therefore the -rwxr-x--- is read as follows.
The owner john has permission to read,write and execute anything in the bin
directory but the group has no write permission to it and the rest of the users
have no permission at all.The format of one of the lines in the above output
is as follows:
file type-permissions,links,usersname,group,bytes taken,date,time when last
renued,directory or file name.
**You will be able to read,execute cathys file named party due to the same
group***
chmod
-----
The chmod command changes permission of a directory or a file.Format is
chmod who+,-,=r,w,x
The who is substituted by u-user,g-group,o-other users,a-all.
The + means add permission,- means remove permission,= - assign.
Example :If you wanted all other users to read the file name mail ,type:
$ chmod o+r mail
cat
---
Now suppose you wanted to read the file letter .There are teo ways to doing
this.First go to the michelle directory then type in:
$ cat letter
line one ...\
line two ... }the output of letter
line three../
$
or
If you are in the parent directory type in:
$ cat /usr/john/michelle/letter
and you will have the same output.
Some cat options are -s,-u,-v,-e,-t
Special Chracters in Unix:
-------------------------
* - matches any number of single characters eg. ls john* will list
all files that begin with john
[...] - matchs any one of the chracter in the [ ]
? - matches any single chracter
runs a process in the backgroung leaving your terminal free
$ - Values used for variables also $n - null argument
> - redirectes output
< - redirects input to come from a file
>> - redirects command to be added to the end of a file
| - pipe output (eg:who|wc-l tells us how many users are online)
"..." - Turn of meaning of special chracters excluding $,`
`...` - allows command output in to be used in a command line
'...' - turns of special meaning of all chracters
continuation of local commands...[ ] -contains the options used
-------------------------------
passwd
------
Password changing seems to be a big thing among the savants.Anyway to change
the password one would use the 'passwd' command as shown below:
$passwd
Changing password for john
Old password:
New password:
Retype new password:
$
This will only work when the password has aged enough
ps
--
Its sometimes necessary to see what command procesess you are running,this
command lets you see that.
ps [-a all processes except group leaders] [-e all processes] [-f the whole
list]
$ps
PID TTY TIME COMMAND
200 tty09 14:20 ps
The systems reports (PID - process idenetification number which is a #
from 1-30,000 assigned to UNIX processes)
It also reports the TTY,TIME and the COMMAND being executed at the time.
To stop a process enter :
$kill [PID] (this case its 200)
200 terminated
$
grep
----
This comand is important when seaching for a word or words in large files.
grep [argument] [file name] - searchs for an file that contains the argument
for example:
$ grep phone cathy
phone michelle (718)5551234
phone cindy (718)5553456
What this did was to find the argument 'phone' in the file cathy.If the
argument consists of two or more words then it must be enclosed in single
quotes.
mv
--
mv [file names(s)] [ dir name ] - renames a file or moves it to another
directory eg.
$mv letter letters
$
This renames the file letter to letters thereby deleting letter
or if you want to move files then
$mv /usr/john/pers/capital /usr/john/michelle/capital
$
This moves the file capital to the directory named michelle
diff
----
diff [file name] [ file name] - show diffrence between two files.Output of this
will have something like 4,5c4,5 then the it
will display both sets of files on the screen
The 4,5c4,5 means that you must change "c"
lines 4 to 5 in one file to line 4 to 5 in
another.
Option for using this command are :
-b - it ignores blank spaces
-h - compares it quickly
-s - reports files that are the same
-S[file] - this is when you want to compare a directory starting at a
specific file
There is also a command to compare 3 files which is :
diff3 [options] [file1] [file2] [file3]
cp
--
cp [file name] [file name] - makes a copy of a file
$ cp letter letters
$
The file letters is a dupilcate copy of letter.In this case the original
is not erased like in the mv command
.... more UNIX commands:
--------------------
man [command] or [c/r] -will give you a list of commands explainations
help - available on some UNIX systems
mkdir [dir name(s)] - makes a directory
rmdir [dir name(s)] - removes directory.You wont be able to remove the
directory if it contains files in them
rm [file name(s)] - removes files. rm * will erase all files in the current
dir.Be carefull you!!.Some options are :
[-f unconditional removal] [-i Prompts user for y or n]
write [login name ] - to write to other logged in users.Sort of a chat
mesg [-n] [-y] - doesn't allow others to send you messages using the write
command.Wall used by system adm overrides it.
$ [file name] - to execute any file
wc [file name] - Counts words,chracters,lines in a file
stty [modes] - Set terminal I/O for the current devices
sort [filename] - Sorts and merges files many options
spell [file name] > [file name] - The second file is where the misspelt words
are entered
date [+%m%d%y*] [+%H%%M%S] - Displays date acoording to options
at [-r] [-l] [job] - Does a specified job at a specified time.The -r Removes
all previously scheduled jobs.The -l reports the job #
and status of all jobs scheduled
write [login] [tty] - Sends message to the login name.Chat!
su [login name]
---------------
The su command allows one to switch user to a super user to a user.Very
important could be used to switch to super user accounts.
Usage:
$ su sysadm
password:
This su command will be monitored in /usr/adm/sulog and this file of all files
is carefully monitered by the system administrator.Suppose you hacked in johns
account and then switched to the sysadm account (ABOVE) your /usr/adm/sulog
entry would look like:
SU 04/19/88 21:00 + tty 12 john-sysadm
Therfore the S.A(system administrator) would know that john swithed to sysadm
account on 4/19/88 at 21:00 hours
Searching for valid login names:
-------------------------------
Type in-
$ who ( command informs the user of other users on the system)
cathy tty1 april 19 2:30
john tty2 april 19 2:19
dipal tty3 april 19 2:31
:
:
tty is the users terminal,date,time each logged on.dipal,john are valid
logins.
Files worth concatenating(cat)
/etc/passwd file:
-----------------
The etc/passwd is a vital file to cat.For it contains login names of all
users including super user accounts and there passwords.In the newer
SVR3 releases they are tighting their security by moving the encrypted
passwords from /etc/passwd to /etc/shadow making it only readable by root.
This is optional offcourse.
$ cat /etc/passwd
root:D943/sys34:0:1:0000:/:
sysadm:k54doPerate:0:0:administration:usr/admin:/bin/rsh
checkfsys:Locked;:0:0:check file system:/usr/admin:/bin/rsh
:
other super user accs.
:
john:chips11:34:3:john scezerend:/usr/john:
:
other users
:
$
If you have reached this far capture this file as soon as posible.
This is a typical output etc/passwd file.The entries are seperated
by a ":".There made be up to 7 fields in each line.
Eg.sysadm account.
The first is the login name in this case sysadm.The second field contains the
password.The third field contains the user id."0 is the root".Then comes the
group id then the account which contains the user full name etc .The sixth
field is the login directory defines the full path name of the the particlar
account and the last is the program to be executed.
Now one can switch to other super user account using su command descibed above.
The password entry in the field of the checkfsys account in the above example
is "Locked;". This doesn't mean thats its a password but the account
checkfsys cannot be accessed remotely.The ";" acts as an unused encryption
chracter.A space is also used for the same purpose.You will find this in many
UNIX systems that are small systems where the system administrator handles
all maintaince.
Password aging:
---------------
If password aging is active the user is forced to change the password at
regular intervals.One may be able to tell just by looking at the /etc/passwd
file when the password is allowed to be changed and when it is compulsory to
change it.
For example the entry:
john:chips11,43:34:3:John Scezerend:/usr/john:
The password contains an extension of (,43) which mean that john can change has
to change the password atleast evert 6 weeks and can keep it for atleast 3
week.The format used is [password],Mmww.The M is the maxiumum number of weeks
password has to be change and m is the minimum interval password can be changed
and the ww is indicates when the password was last changed.
Aging chart:
---------|-----------
Character|# of weeks
. | 0
/ | 1
0-9 | 2-11
A-Z | 12-37
a-z | 38-63
---------|-----------
From the above anyone can determine the number of weeks one can chnage the
password.
The (ww) is automatically added as to when the password was last changed .
IF SHAWDOWING IS ACTIVE:
------------------------
If the shawdowing is active the /etc/passwd would look like this:
root:x:0:1:0000:/:
sysadm:x:0:0:administration:/usr/admin:/bin/rsh
The password filed is substituted by "x".
The /etc/shawdow file only readable by root will look similar to
this:
root:D943/sys34:5288::
:
super user accounts
:
Cathy:masai1:5055:7:120
:
all other users
:
The first field contains users id:the second contains the password(The pw will
be NONE if logining in remotely is deactivated):the third contains a code of
when the password was last changed:the fourth and the fifth contains the
minimum and the maximum numbers of days for pw changes(Its rare that you will
find this in the super user logins due to there hard to guess passwords)
/etc/options directory
-----------------------
The etc/options dir will consists of utilities available in the system.
Example:
-rwxr-xr-x 1 root sys 40 april 1:00 uucp.name
uucp standing for BNU
/etc/group
-----------
The file has each group on the system.Each line will have 4 entries separated
by a ":" . Example of concatenated /etc/group:
root::0:root
adm::2:adm,root
bluebox::70:
Group name:password:group id:login names
** It very unlikely that groups will have passwords assigned to them **
The id "0" is assigned to /
Sending and recieving messages:
-------------------------------
Two programs are used to manage this.They are mail & mailx.The difference
between them is that mailx is more fancier thereby giving you many choices
like replying message ,using editors etc.
Sending:
--------
The basic format for using this command is:
$mail [login(s)]
(now one would enter the text
after finishing enter "." a period
on the next blank line)
$
This command is also used to send mail to remote systems.Suppose you wanted
to send mail to john on a remote called ATT01
you would type in:
$mail ATT01!john
Mail can be sent to several users,just by entering more login name after
issuing the mail command
Using mailx is the same format:(This I'll describe very briefly)
$mailx john
subject:(this lets you enter the subject)
(line #1)
(line #2)
(After you finish enter (~.) not the brackets offcourse ,more commands are
available like ~p,~r,~v,~m,~h,~b etc.)
Receiving:
----------
After you log on to the system you will the account may have mail waiting.
You will be notified "you have mail".
To read this enter:
$mail
(line #1)
(line #2)
(line #3)
?
$
After the message you will be prompted with a question mark.Here you have a
choice to delete it by entering d,saving it to view it later s,or just press
enter to view the next message.
(DONT BE A SAVANT AND DELETE THE POOR GUYS MAIL)
Super user commands:
--------------------
$sysadm adduser - will take you through a routine to add a user
(may not last long)
Enter this:
$ sysadm adduser
password:
(this is what you will see)
/--------------------------------------------------------------------------\
Process running succommmand `adduser`
USER MANAGMENT
Anytime you want to quit, type "q".
If you are not sure how to answer any prompt, type "?" for help
If a default appears in the question,press for the default.
Enter users full name [?,q]: (enter the name you want)
Enter users login ID [?,q]:(the id you want to use)
Enter users ID number (default 50000) [?,q) [?,q]:( press return )
Enter group ID number or group name:(any name from /etc/group)
Enter users login home directory:(enter /usr/name)
This is the information for the new login:
Users name: (name)
login ID:(id)
users ID:50000
group ID or name:
home directory:/usr/name
Do you want to install,edit,skip [i,e,s,q]? (enter your choice if "i" then)
Login installed
Do you want to give the user a password?[y,n] (its better to enter one)
New password:
Re-enter password:
Do you want to add another login?
\----------------------------------------------------------------------------/
This is the proccess to add a user.Since you hacked into a super user account
you can make a super user account by doing the following by entering 0 as an
user and a group ID and enter the home directory as /usr/admin.This will give
you as much access as the account sysadm
**Caution** - Do not use login names like Hacker,Cracker,Phreak etc .This is
a total give away.
The process of adding a user wont last very long the S.A will know when he
checks out the /etc/passwd file
$sysadm moduser - This utility allows one to modify users.DO NOT ABUSE!!!
Password:
This is what you'll see:
/----------------------------------------------------------------------------\
MODIFYING USER'S LOGIN
1)chgloginid (This is to change the login ID)
2)chgpassword (Changing password)
3)chgshell (Changing directory DEFAULT = /bin/sh)
ENTER A NUMBER,NAME,INITIAL PART OF OF NAME,OR ? OR? FOR HELP,
Q TO QUIT ?
\----------------------------------------------------------------------------/
Try every one of them out.Do not change someones password.It creates a havoc.
If you do decide to change it.Please write the original one down somewhere
and change back.Try not to leave to many traces after you had your fun.
In choice number 1 you will be asked for the login and then the new one.
In choice number 2 you will asked for the login and then supplied by it correct
password and enter a new one.
In choice 3 this is used to a pchange the login shell ** Use full **
The above utilites can be used separatly for eg( To change a password one
coulfd enter: $sysadm chgpasswd not chapassword ,The rest are same)
$sysadm deluser - This is an obviously to delete a user
password:
This will be the screen output:
/---------------------------------------------------------------------------\
Running subcommand 'deluser' from menu 'usermgmt'
USER MANAGEMENT
This fuction completely removes the user,their mail file,home directory
and all files below their home directory from the machine.
Enter login ID you wish to remove[q]: (eg.cathy)
'cathy' belongs to 'Cathy Franklin'
whose home directory is /usr/cathy
Do you want to remove this login ID 'cathy' ? [y,n,?,q] :
/usr/cathy and all files under it have been deleted.
Enter login ID you wish to remove [q]:
\--------------------------------------------------------------------------/
This command deletes everthing owned by the user.Dont use it even if you have
access to it.
other super user commands:
--------------------------
wall [text] control-d - to send an anouncement to users logged in(will
override mesg -n command).Execute only from /
/etc/newgrp - is used to become a member of a group
sysadm [program name]
delgroup - delets groups
whoson - self explanatory
lsgroup - Lists group
mklineset -hunts various sequences
lsuser -lists all the users & their logins names
Other commands may require file system to be mounted.
Basic Networking utility(BNU)
-----------------------------
The BNU is a unique feature in UNIX.Some systems may not have this installed.
What BNU does is allow other remote UNIXes communicate with yours without
logging off the present one.BNU also allowes file transfer between computers.
Most UNIX systems V will have this feature installed.
The user program like cu,uux etc are located in the /usr/bin directory
Basic Networking Files:
-----------------------
/usr/lib/uucp/[file name]
[file name]
systems - cu command to establishes link.Contains info on remote computers
name,time it can be reached,login Id,password,telephone numbers
devices - inter connected with systems files(Automatic call unit same in two
entries)also cantains baud rate,port tty1 etc.
dialers - where asscii converation must be made before file tranfers etc.
dialcodes - contains abreiviations for phone numbers that can be used in
systems file
other files are sysfiles,permissions,poll,devconfig
B.N.U Aministrative files:
--------------------------
There are 5 admnistrative files present.These are files are created in the
/usr/spool directory .These A.Files are responsible for various BNU procceses
like kepping records data ,files tranfers bettwenn remote and local and also
usefull to lock devices.
TM - This file used to hold temporary data .When tranfering the files from a
remote to local the /usr/spool/uucp/[name of the remote computer ] creates
this in the format of as of below:
TM[Process Identification Number].[ddd]
The ddd is the a 3 digit number (sequential) starting with "0"
Here a typical eg: TM322.012
Then this file is moved into the path defined by the C.sysnxxx file
X.[Execute files] - Created in the /usr/spool before you execute the commands
in remote.
The format used to name this file is X.sysnxxx
where sys stand for the remote name and n is the priority
level the xxxx is a sequence assingned by the uucp.These
files always contain the Name of the file ,Comuter & file
name to recieve,Persons login & computer name and the
command string.
LCK - The lock file created in the /usr/spool/locks directory.The is used when
devices are being used.Prevent usage of the same calling device.
Format used: LCK.str wher the str is a device name.The Lock file contains
the PID needed to lock
C.sysnxxx - created in the usr/spool directory.These are the work files.Used
when work is in line,remote execeutions.Format is same as the
X.sysnxxxx.The works files contain the full path name of the file
to be sent,path name of the destination (TM Transfers),Remote login
name to be notified after the file transmision is complete,Users
login name and the name of the programs used eg.uucp,uupick etc.
D - The data files.Format used is D.systmxxxxyyy.These files are created when
specified in a command to copy to the spool directory.Eg. By the usage of
uucp -C this will be true.
The systm is the remote name,xxxx is the the 4 digits seq assingned by
the uucp.The yyy is a sub sequence number.
Logining on to remote and sending+receiving files
-------------------------------------------------
cu - This command allows one to log on to the local as well as the remote
Unix (or a non unix)without haveing to hang up so you can transfer files.
Usage:[options]
$ cu [-s baud rate][-o odd parity][-e even parity][-l name of comm line]
telephone number | systemname
To view system names that you can communicate with use the 'unname' command:
Eg. of output of names:
ATT01
ATT02
ATT03
ATT04
$ cu -s300 3=9872344 (9872344 is the tel#)
connected
login:
password:
local strings:
--------------
<~.> - will log you off the remote terminal but not the local
~! - out you on the local withiout disconnecting the line from remote
- puts you back on the remote unix
~%take [file name] - takes a copy of the file name and copies it to the
local(the directory which you are in)
"%put [file name] - reverse of above
~$[command] - allows the execution of a command to the local from remote
ct
--
ct allows local to connect to remote.Initiates a getty on a remote terminal.
Usefull when using a remote terminal.BNU has call back feature that allows
the user on the remote who can execute a call back meaning the local can call
the remote.[ ] are options
$ ct [-h prevent automatic hang up][-s bps rate][-wt set a time to call back
abbrieviated t mins] telephone number
uux
---
To execute commands on a remote (unix to unix)
usage:[ ] are options
$ uux [- use standard output][-n prevent mail notification][-p also use
standard output] command-string
uucp
----
uucp copies files from ones computer to the home directory
of a user in remote system.This also works when copying files from one
directory to another in the remote.The remote user will be notified by mail.
This command becomes use full when copying files from a remote to your local
system.
The uucp requires the uucico daemon will call up the remote and will perform
file login sequence,file transfer and notify the user by mail.
Daemons are programs runining in the background.The 3 daemons in a Unix are
uucico,uusched,uuxqt.
Daemons Explained:[nows a good time to explain the 3 daemons]
------------------
uuxqt - Remote execution.This daemon is executed by uudemon.hour started by
cron.UUXQT searchs in the spool directory for executable file
named X.file sent from the remote system.When it finds a file X.file
where it obtains process which are to be executed.The next step is
to find weather the processes are available at the time.The if
available it checks permission and if everthing is o.k it proceeds
the background proccess.
uucico - This Daemon is very immportant for it is responsible in establishing
a connection to the remote also checks permission,performs login
procedures,transfers + executes files and also notifies the user
by mail.This daemon is called upon by uucp,uuto,uux commands.
uusched - This is executed by the shell script called uudemon.hour
This daemons acts as a randomizer before the UUCICO daemon is
called.
Usage of uucp command:
$ uucp [options] [first full path name!] file [destination path!] file
example:
$ uucp -m -s bbss hackers unix2!/usr/todd/hackers
What this would do is send the file hackers from your computer to the remotes
/usr/todd/hackers making hackers offcourse as file.todd would mail that
a file has been sent to him.The unix2 is the name of the remote.
Options for uucp:(Dont forget to type in remotes name unix2 in case)
-c dont copy files to spool directory
-C copy to spool
-s[file name] - this file will contain the file status(above is bbss)
-r Dont start the comm program(uucico) yet
-j print job number(for above eg.unix2e9o3)
-m send mail when file file is complete
Now suppose you wanted to receive file called kenya which is in the usr/dan/usa
to your home directory /usr/john assuming that the local systems name is
ATT01 and you are currently working in /usr/dan/usa,you would type in:
$uucp kenya ATT01!/usr/john/kenya
uuto
----
The uuto command allows one to send file to remote user and can also be used
to send files locally.
Usage:
$ uuto [file name] [system!login name]( omit systen name if local)
concept of Basic Networking Utility
Brief history on UNIX
----------------------
Its because of Ken Tompson that today were able to Hack Unix.He used to work
for Bell Labs in the 60s.Tompson started out using the MULTICS OS which was
later eliminated and Tompson was left without an operating system to work with.
Tompson had to come up with something real quick.He did some research and
and in 1969 UNIX came out,which was a single user and it didn't have
many capabilities.A combined effort with others he rewrote the version
in C and added some good features.This version was out in 1973 and was
available to the public.This was the first begining of UNIX as its known
presently.The more refined version of UNIX,today know as UNIX system V
developed by Berkley University has unique capabilities.
Various types of UNIXes are CPIX,Berkeley Ver 4.1,Berkeley 4.2,FOS,Genix,HP-UX,
IS/I,OSx,PC-IX,PERPOS,Sys3,Ultrix,Zeus,Xenix,UNITY,VENIX,UTS,Unisys,Uniplus+,
UNOS,Idris,QNIX,Coherent,Cromix,System III,System 7,Sixth edition.
The article it self:
--------------------
I believe that hacking into any system requires knowledge of the Operating
system itself.Basically what I will try to do is make you more familiar with
UNIX operation ,its usefull commands that will be advantageous to you as a
hacker.This article contains in depth explainations.
Error Messages that one may came across:[UNIX system V]
----------------------------------------
Login incorrect - An ivalid ID and/or pw was entered.This means nothing.
In UNIX there is no way guessing valid user IDs.You may
come across this one when trying to get in.
No more logins - will happens when the system wont accept anymore logins
could be going down
Unknown Id - will happen if an ivalid id is entered using (su) command
Unexpected eof in file - The file being stripped file has been damaged
Your password has expired - This is quiet rare although there have been cases
where it happened.Reading the etc/passwd will
show you at how many intervals it changes.
You may not change the password - The password has not yet aged enough.The
Administrator set the quotas for the users
Unknown group [groups name] - occurs when chgrp is executed ,group doesn't
exist
Sorry - Indicated that you have typed in an invalid super user password(execu-
tion of the su)
Permission denied!- Indicated you must be the owner or a super user to change
password.
Sorry <[# of weeks] since last change - This will happen when password has
has not aged enough and you tried to
change it(passwd)
[directory name]:no permission - You are trying to remove a directory which
you have no permission to.
[file name] not removed - trying to delete a file owned by another user
that you dont have write pemision for.
[dirname] not removed - ownership of the dir is not your that your trying to
delete.
[dirname] not empty - the directory contains files so you must have to delete
the files before executing the rmdir
[command] not found - you have entered an ivalid command not know to UNIX
cant execute pwd - some thing wrong with the system cant execute pwd command
cannot chdir to .. - (.. one level up) permision is required to execute pwd
above the current directory
cant open [file name] - defined wrong path,file name or you have no read
permission
cp:[file name] and [file name] are identical - self explanatory
cannot locate parent directory - occurs when using mv
[file name] not found - file which your trying to move doesn't exsist
You have mail - Self explanatory
Basic Networking Utility error messages
---------------------------------------
cu:not found - networking not installed
login failed - invalid id/pw or wrong # specified
dial failed - the systen never answered due to a wrong #
uucp completely failed - did not specify file after -s
wrong time to call - you called at the time at a time not specified in the
Systems file
system not in systems - you called a remote not in the systems file
Logon format : first thing one must do is switch to lower case
--------------
Identifing a UNIX.Here is what you'll see:
Some times there will be no system identifer
AT&T UNIX SysVR3.0 (eg of a system identifier)
login:
or
Login:
Any of these is a UNIX.Here is where you will have to guess at a user valid
id.Here are some that I have come across eg( glr,glt,radgo,rml,chester,cat,
lom,cora,hlto,hwill,edcasey and also some containing numbers smith1,mitu6 or
special characters in it like bremer$,j#fox.Login names have to be 3 to 8
chracters in lenght lowercase and must start with a letter.In some XENIX
systems one may login as "guest"
User level accounts:(lower case)
--------------------
In Unix they have whats called accounts .These
accounts can be used at the "login:" prompt.
Here is a list:
sys
bin
trouble
daemon
uucp
nuucp
rje
lp
adm
listen - if starlan is installed
Super-user accounts:
--------------------
And then there are super-user login which make UNIX worth hacking.
The accounts are used for a specific job. In large systems these logins
are assingned to users who have a responsibilty to maintain subsystems.
They are as follows :(all lower case)
root - this is a must the system comes configured with it.It has no
restriction.Has power over every other account.
unmountsys - unmounts files
setup - system set up
makefsys - makes a new file
sysadm - allows useful S.A commands(doesn't need root login)
powerdown - powering system down
mountfsys - mounts files
checkfsys - checks file
These accounts will definitly have passwords assigned to them.These
accounts are also commands used by the system administrator.
Here are some examples of accounts I have seen:
cron uuhelp usenet
anonuccp news network
bellboy lp vector
guest games ninja
vote warble sysinfo
After the login prompt you will receive a password prompt:
password:
or
Password:
Enter the password (it wont echo).The password rule is as follows:Each pw
has to contain at least 6 characters and maximum has to be 8 .Two of which are
to be alphabetic letters and at least one being a number or a special character
The alphabetic digits could be in upper case or lower case.Here are some of the
passwords that I have seen (eg.Ansuya1,PLAT00N6,uFo/78,ShAsHi..,Div417co)
The passwords for the super user accounts will be difficult to hack
try the accounts interchangebly eg.login:sysadm password:makefsys or rje1,
sysop,sysop1,bin4 or they might contain letter,numbers,special chracters in
them.It could be anything.The user passwords are changed by an aging proccess
at successive intervals.The users are forced to changed it.The super-user
will pick a password that wont need changing for a long period of time.
You have made it!
-----------------
The hard part is over and hopefully you have hacked a super-user account.
Remember Control-d stops a process and also logs you off.
The next thing you'll probably see is the system news
eg.
login:john
password:hacker1
System news
There will be no networking offered to the users till
august 15,due to hardware problems.
(just an example)
$
$ is the Unix prompt -waiting for a command to be entered.I will use this
throught the article to show outouts etc..(Its not
part of the command)
# - means your logged in as root(very good)
A word about the XENIX System III:(run on the tandy 6000)
---------------------------------
The largest weakness in the XENIX System III occurs after the installation
of the Profile-16 or more commonly know as the filepro-16.I have seen the
filepro-16 installed in many systems.
The installation process creates an entry in the password file for a user
named \fBprofile\fR ,an account that who owns and administors the database.
The great thing about it is that when the account is created ,no password is
assigned to it.The database contains executable to maintain it.The database
creation programs perform a \fBsetuid\fR to boot up the \fBoot\fR there by
giving a person the whole C Shell to gain Super User privilege same as root.
Intresting huh!
* Note: First the article will inform you of how the Unix is made up
The Unix is made if three components-The shell,the kernal,file system.
The kernal:
-----------
You could say that the kernal is the heart of the Unix operating system.
The kernal is a low level language lower than the shell which maintains
processes .The kernal handles memory usage ,maintains file system
the sofware and hardware devices.
The shell:
----------
The shell a higher level language. The shell had two important uses,
to act as command interpreture for example using commands like cat,who,
ls the the shell is at work figuring out whether you have entered a command
correctly or not.The second most important reason for the shell is its ability
to be used as programing language.Suppose your performing some tasks
repeatedly over and over again,You can program the shell to do this for you.
The file system:
---------------
The file system in Unix is divede into 3 catagories:Directories,ordinary files
and special files.(d,-)
Basic stucture:
(/)-this is abreviation for the root dirctory.
root level root
(/) system
-------------------------------------|----------------------------------level
| | | | | | | |
/unix /etc /dev /tmp /lib /usr /usr2 /bin
| _____|_____
login passwd | | |
level /john /cathy
________________________|_______________
| | | | | |
.profile /mail /pers /games /bin /michelle
*.profile - in case | __|______ | __|_______
you wich to change your enviroment capital | | data | |
but after you log off.It sets to othello starwars letter letter1
default.
the /unix-is the kernal
/etc - contains system administrators files,Most are not available to the
regular user.(this directory contains the /passwd file)
Here are some files under /etc directory:
/etc/passwd
/etc/utmp
/etc/adm/sulog
/etc/motd
/etc/group
/etc/conf
/etc/profile
/dev - contains files for physical devices such as printer and the disk drives
/tmp - temporary file directory
/lib - dirctory that contains programs for high level languages
/usr - this directory contains dirctories for each user on the system
Eg. of a list of files under /usr
/usr/tmp
/usr/lib
/usr/docs
/usr/news
/usr/spool
/usr/spool/lp
/usr/lib/uucp
/bin - contain executable programs (commands)
The root also contains:
/bck - used to mount a back up file system.
/install - Used to install and remove utilities
/lost+found - This is where all the removed files go,This dir is used by fsck
(1M)
/save -A utility used to save data
/mnt - Used for temporary mounting
**Now the fun part scouting around**
Local commands (Explained in details)
-------------------------------------
At the unix prompt type the pwd command-it will show you the current working
directory you are in.
$ pwd
$ /usr/admin - assuming that you have hacked into a super user acc checkfsys
$
This gives you the full login directory.The / before tell you the location
of the root directory
or
(REFER TO THE DIAGRAM ABOVE)
$ pwd
$ /usr/john
$
Assuming you have hacked into johns acc.
Now lets say you wanted to move down to the michelle directory( you own this)
that contains letters.You would type in
$ cd michelle or cd usr/john/michelle
$ pwd
$ /usr/john/michelle
$
Going back one directory up type in:
$ cd ..
or going to your parent directory just type in "cd"
Listing file directories assuming you are in the parent directory:
$ ls /usr/john
pers
games
bin
michelle
This wont give you the .profile file .To view it type
$ cd
$ ls -a
:
:
.profile
To list file names in michelles directory type in:
$ ls michelle (that if your in the johns directory)
$ ls /usr/john/michelle(parent dir)
ls -l
-----
The ls -l is an an important command in unix.This command displays the whole
directory in long format :Run this in parent directory
$ ls -l
total 60
-rwxr-x--- 5 john bluebox 10 april 9 7:04 mail
drwx------ 7 john bluebox 30 april 2 4:09 pers
: : : : : : :
: : : : : : :
-rwxr-x--- 6 cathy bluebox 13 april 1 13:00 partys
: : : : : : :
$
The total 60 tells one the ammount of disk space used in a directory.The
-rwxr-x--- is read in triples of 3.The first chracter eg(-,d,b,c)-means as
follows: - is an ordinary file ,d is a directory,b is block file,c is a
chracter file.
The r stands for read permission,w is write permission,x is execute.The first
colum is read in 3 triples as stated above.The first group of 3 (in -rwxr-x---)
after the "-" specifies the permission for the owner of the file,the second
triple are for the groups (the fourth colum) and the last triple are the
permissions for all other users.Therefore the -rwxr-x--- is read as follows.
The owner john has permission to read,write and execute anything in the bin
directory but the group has no write permission to it and the rest of the users
have no permission at all.The format of one of the lines in the above output
is as follows:
file type-permissions,links,usersname,group,bytes taken,date,time when last
renued,directory or file name.
**You will be able to read,execute cathys file named party due to the same
group***
chmod
-----
The chmod command changes permission of a directory or a file.Format is
chmod who+,-,=r,w,x
The who is substituted by u-user,g-group,o-other users,a-all.
The + means add permission,- means remove permission,= - assign.
Example :If you wanted all other users to read the file name mail ,type:
$ chmod o+r mail
cat
---
Now suppose you wanted to read the file letter .There are teo ways to doing
this.First go to the michelle directory then type in:
$ cat letter
line one ...\
line two ... }the output of letter
line three../
$
or
If you are in the parent directory type in:
$ cat /usr/john/michelle/letter
and you will have the same output.
Some cat options are -s,-u,-v,-e,-t
Special Chracters in Unix:
-------------------------
* - matches any number of single characters eg. ls john* will list
all files that begin with john
[...] - matchs any one of the chracter in the [ ]
? - matches any single chracter
runs a process in the backgroung leaving your terminal free
$ - Values used for variables also $n - null argument
> - redirectes output
< - redirects input to come from a file
>> - redirects command to be added to the end of a file
| - pipe output (eg:who|wc-l tells us how many users are online)
"..." - Turn of meaning of special chracters excluding $,`
`...` - allows command output in to be used in a command line
'...' - turns of special meaning of all chracters
continuation of local commands...[ ] -contains the options used
-------------------------------
passwd
------
Password changing seems to be a big thing among the savants.Anyway to change
the password one would use the 'passwd' command as shown below:
$passwd
Changing password for john
Old password:
New password:
Retype new password:
$
This will only work when the password has aged enough
ps
--
Its sometimes necessary to see what command procesess you are running,this
command lets you see that.
ps [-a all processes except group leaders] [-e all processes] [-f the whole
list]
$ps
PID TTY TIME COMMAND
200 tty09 14:20 ps
The systems reports (PID - process idenetification number which is a #
from 1-30,000 assigned to UNIX processes)
It also reports the TTY,TIME and the COMMAND being executed at the time.
To stop a process enter :
$kill [PID] (this case its 200)
200 terminated
$
grep
----
This comand is important when seaching for a word or words in large files.
grep [argument] [file name] - searchs for an file that contains the argument
for example:
$ grep phone cathy
phone michelle (718)5551234
phone cindy (718)5553456
What this did was to find the argument 'phone' in the file cathy.If the
argument consists of two or more words then it must be enclosed in single
quotes.
mv
--
mv [file names(s)] [ dir name ] - renames a file or moves it to another
directory eg.
$mv letter letters
$
This renames the file letter to letters thereby deleting letter
or if you want to move files then
$mv /usr/john/pers/capital /usr/john/michelle/capital
$
This moves the file capital to the directory named michelle
diff
----
diff [file name] [ file name] - show diffrence between two files.Output of this
will have something like 4,5c4,5 then the it
will display both sets of files on the screen
The 4,5c4,5 means that you must change "c"
lines 4 to 5 in one file to line 4 to 5 in
another.
Option for using this command are :
-b - it ignores blank spaces
-h - compares it quickly
-s - reports files that are the same
-S[file] - this is when you want to compare a directory starting at a
specific file
There is also a command to compare 3 files which is :
diff3 [options] [file1] [file2] [file3]
cp
--
cp [file name] [file name] - makes a copy of a file
$ cp letter letters
$
The file letters is a dupilcate copy of letter.In this case the original
is not erased like in the mv command
.... more UNIX commands:
--------------------
man [command] or [c/r] -will give you a list of commands explainations
help - available on some UNIX systems
mkdir [dir name(s)] - makes a directory
rmdir [dir name(s)] - removes directory.You wont be able to remove the
directory if it contains files in them
rm [file name(s)] - removes files. rm * will erase all files in the current
dir.Be carefull you!!.Some options are :
[-f unconditional removal] [-i Prompts user for y or n]
write [login name ] - to write to other logged in users.Sort of a chat
mesg [-n] [-y] - doesn't allow others to send you messages using the write
command.Wall used by system adm overrides it.
$ [file name] - to execute any file
wc [file name] - Counts words,chracters,lines in a file
stty [modes] - Set terminal I/O for the current devices
sort [filename] - Sorts and merges files many options
spell [file name] > [file name] - The second file is where the misspelt words
are entered
date [+%m%d%y*] [+%H%%M%S] - Displays date acoording to options
at [-r] [-l] [job] - Does a specified job at a specified time.The -r Removes
all previously scheduled jobs.The -l reports the job #
and status of all jobs scheduled
write [login] [tty] - Sends message to the login name.Chat!
su [login name]
---------------
The su command allows one to switch user to a super user to a user.Very
important could be used to switch to super user accounts.
Usage:
$ su sysadm
password:
This su command will be monitored in /usr/adm/sulog and this file of all files
is carefully monitered by the system administrator.Suppose you hacked in johns
account and then switched to the sysadm account (ABOVE) your /usr/adm/sulog
entry would look like:
SU 04/19/88 21:00 + tty 12 john-sysadm
Therfore the S.A(system administrator) would know that john swithed to sysadm
account on 4/19/88 at 21:00 hours
Searching for valid login names:
-------------------------------
Type in-
$ who ( command informs the user of other users on the system)
cathy tty1 april 19 2:30
john tty2 april 19 2:19
dipal tty3 april 19 2:31
:
:
tty is the users terminal,date,time each logged on.dipal,john are valid
logins.
Files worth concatenating(cat)
/etc/passwd file:
-----------------
The etc/passwd is a vital file to cat.For it contains login names of all
users including super user accounts and there passwords.In the newer
SVR3 releases they are tighting their security by moving the encrypted
passwords from /etc/passwd to /etc/shadow making it only readable by root.
This is optional offcourse.
$ cat /etc/passwd
root:D943/sys34:0:1:0000:/:
sysadm:k54doPerate:0:0:administration:usr/admin:/bin/rsh
checkfsys:Locked;:0:0:check file system:/usr/admin:/bin/rsh
:
other super user accs.
:
john:chips11:34:3:john scezerend:/usr/john:
:
other users
:
$
If you have reached this far capture this file as soon as posible.
This is a typical output etc/passwd file.The entries are seperated
by a ":".There made be up to 7 fields in each line.
Eg.sysadm account.
The first is the login name in this case sysadm.The second field contains the
password.The third field contains the user id."0 is the root".Then comes the
group id then the account which contains the user full name etc .The sixth
field is the login directory defines the full path name of the the particlar
account and the last is the program to be executed.
Now one can switch to other super user account using su command descibed above.
The password entry in the field of the checkfsys account in the above example
is "Locked;". This doesn't mean thats its a password but the account
checkfsys cannot be accessed remotely.The ";" acts as an unused encryption
chracter.A space is also used for the same purpose.You will find this in many
UNIX systems that are small systems where the system administrator handles
all maintaince.
Password aging:
---------------
If password aging is active the user is forced to change the password at
regular intervals.One may be able to tell just by looking at the /etc/passwd
file when the password is allowed to be changed and when it is compulsory to
change it.
For example the entry:
john:chips11,43:34:3:John Scezerend:/usr/john:
The password contains an extension of (,43) which mean that john can change has
to change the password atleast evert 6 weeks and can keep it for atleast 3
week.The format used is [password],Mmww.The M is the maxiumum number of weeks
password has to be change and m is the minimum interval password can be changed
and the ww is indicates when the password was last changed.
Aging chart:
---------|-----------
Character|# of weeks
. | 0
/ | 1
0-9 | 2-11
A-Z | 12-37
a-z | 38-63
---------|-----------
From the above anyone can determine the number of weeks one can chnage the
password.
The (ww) is automatically added as to when the password was last changed .
IF SHAWDOWING IS ACTIVE:
------------------------
If the shawdowing is active the /etc/passwd would look like this:
root:x:0:1:0000:/:
sysadm:x:0:0:administration:/usr/admin:/bin/rsh
The password filed is substituted by "x".
The /etc/shawdow file only readable by root will look similar to
this:
root:D943/sys34:5288::
:
super user accounts
:
Cathy:masai1:5055:7:120
:
all other users
:
The first field contains users id:the second contains the password(The pw will
be NONE if logining in remotely is deactivated):the third contains a code of
when the password was last changed:the fourth and the fifth contains the
minimum and the maximum numbers of days for pw changes(Its rare that you will
find this in the super user logins due to there hard to guess passwords)
/etc/options directory
-----------------------
The etc/options dir will consists of utilities available in the system.
Example:
-rwxr-xr-x 1 root sys 40 april 1:00 uucp.name
uucp standing for BNU
/etc/group
-----------
The file has each group on the system.Each line will have 4 entries separated
by a ":" . Example of concatenated /etc/group:
root::0:root
adm::2:adm,root
bluebox::70:
Group name:password:group id:login names
** It very unlikely that groups will have passwords assigned to them **
The id "0" is assigned to /
Sending and recieving messages:
-------------------------------
Two programs are used to manage this.They are mail & mailx.The difference
between them is that mailx is more fancier thereby giving you many choices
like replying message ,using editors etc.
Sending:
--------
The basic format for using this command is:
$mail [login(s)]
(now one would enter the text
after finishing enter "." a period
on the next blank line)
$
This command is also used to send mail to remote systems.Suppose you wanted
to send mail to john on a remote called ATT01
you would type in:
$mail ATT01!john
Mail can be sent to several users,just by entering more login name after
issuing the mail command
Using mailx is the same format:(This I'll describe very briefly)
$mailx john
subject:(this lets you enter the subject)
(line #1)
(line #2)
(After you finish enter (~.) not the brackets offcourse ,more commands are
available like ~p,~r,~v,~m,~h,~b etc.)
Receiving:
----------
After you log on to the system you will the account may have mail waiting.
You will be notified "you have mail".
To read this enter:
(line #1)
(line #2)
(line #3)
?
$
After the message you will be prompted with a question mark.Here you have a
choice to delete it by entering d,saving it to view it later s,or just press
enter to view the next message.
(DONT BE A SAVANT AND DELETE THE POOR GUYS MAIL)
Super user commands:
--------------------
$sysadm adduser - will take you through a routine to add a user
(may not last long)
Enter this:
$ sysadm adduser
password:
(this is what you will see)
/--------------------------------------------------------------------------\
Process running succommmand `adduser`
USER MANAGMENT
Anytime you want to quit, type "q".
If you are not sure how to answer any prompt, type "?" for help
If a default appears in the question,press
Enter users full name [?,q]: (enter the name you want)
Enter users login ID [?,q]:(the id you want to use)
Enter users ID number (default 50000) [?,q) [?,q]:( press return )
Enter group ID number or group name:(any name from /etc/group)
Enter users login home directory:(enter /usr/name)
This is the information for the new login:
Users name: (name)
login ID:(id)
users ID:50000
group ID or name:
home directory:/usr/name
Do you want to install,edit,skip [i,e,s,q]? (enter your choice if "i" then)
Login installed
Do you want to give the user a password?[y,n] (its better to enter one)
New password:
Re-enter password:
Do you want to add another login?
\----------------------------------------------------------------------------/
This is the proccess to add a user.Since you hacked into a super user account
you can make a super user account by doing the following by entering 0 as an
user and a group ID and enter the home directory as /usr/admin.This will give
you as much access as the account sysadm
**Caution** - Do not use login names like Hacker,Cracker,Phreak etc .This is
a total give away.
The process of adding a user wont last very long the S.A will know when he
checks out the /etc/passwd file
$sysadm moduser - This utility allows one to modify users.DO NOT ABUSE!!!
Password:
This is what you'll see:
/----------------------------------------------------------------------------\
MODIFYING USER'S LOGIN
1)chgloginid (This is to change the login ID)
2)chgpassword (Changing password)
3)chgshell (Changing directory DEFAULT = /bin/sh)
ENTER A NUMBER,NAME,INITIAL PART OF OF NAME,OR ? OR
Q TO QUIT ?
\----------------------------------------------------------------------------/
Try every one of them out.Do not change someones password.It creates a havoc.
If you do decide to change it.Please write the original one down somewhere
and change back.Try not to leave to many traces after you had your fun.
In choice number 1 you will be asked for the login and then the new one.
In choice number 2 you will asked for the login and then supplied by it correct
password and enter a new one.
In choice 3 this is used to a pchange the login shell ** Use full **
The above utilites can be used separatly for eg( To change a password one
coulfd enter: $sysadm chgpasswd not chapassword ,The rest are same)
$sysadm deluser - This is an obviously to delete a user
password:
This will be the screen output:
/---------------------------------------------------------------------------\
Running subcommand 'deluser' from menu 'usermgmt'
USER MANAGEMENT
This fuction completely removes the user,their mail file,home directory
and all files below their home directory from the machine.
Enter login ID you wish to remove[q]: (eg.cathy)
'cathy' belongs to 'Cathy Franklin'
whose home directory is /usr/cathy
Do you want to remove this login ID 'cathy' ? [y,n,?,q] :
/usr/cathy and all files under it have been deleted.
Enter login ID you wish to remove [q]:
\--------------------------------------------------------------------------/
This command deletes everthing owned by the user.Dont use it even if you have
access to it.
other super user commands:
--------------------------
wall [text] control-d - to send an anouncement to users logged in(will
override mesg -n command).Execute only from /
/etc/newgrp - is used to become a member of a group
sysadm [program name]
delgroup - delets groups
whoson - self explanatory
lsgroup - Lists group
mklineset -hunts various sequences
lsuser -lists all the users & their logins names
Other commands may require file system to be mounted.
Basic Networking utility(BNU)
-----------------------------
The BNU is a unique feature in UNIX.Some systems may not have this installed.
What BNU does is allow other remote UNIXes communicate with yours without
logging off the present one.BNU also allowes file transfer between computers.
Most UNIX systems V will have this feature installed.
The user program like cu,uux etc are located in the /usr/bin directory
Basic Networking Files:
-----------------------
/usr/lib/uucp/[file name]
[file name]
systems - cu command to establishes link.Contains info on remote computers
name,time it can be reached,login Id,password,telephone numbers
devices - inter connected with systems files(Automatic call unit same in two
entries)also cantains baud rate,port tty1 etc.
dialers - where asscii converation must be made before file tranfers etc.
dialcodes - contains abreiviations for phone numbers that can be used in
systems file
other files are sysfiles,permissions,poll,devconfig
B.N.U Aministrative files:
--------------------------
There are 5 admnistrative files present.These are files are created in the
/usr/spool directory .These A.Files are responsible for various BNU procceses
like kepping records data ,files tranfers bettwenn remote and local and also
usefull to lock devices.
TM - This file used to hold temporary data .When tranfering the files from a
remote to local the /usr/spool/uucp/[name of the remote computer ] creates
this in the format of as of below:
TM[Process Identification Number].[ddd]
The ddd is the a 3 digit number (sequential) starting with "0"
Here a typical eg: TM322.012
Then this file is moved into the path defined by the C.sysnxxx file
X.[Execute files] - Created in the /usr/spool before you execute the commands
in remote.
The format used to name this file is X.sysnxxx
where sys stand for the remote name and n is the priority
level the xxxx is a sequence assingned by the uucp.These
files always contain the Name of the file ,Comuter & file
name to recieve,Persons login & computer name and the
command string.
LCK - The lock file created in the /usr/spool/locks directory.The is used when
devices are being used.Prevent usage of the same calling device.
Format used: LCK.str wher the str is a device name.The Lock file contains
the PID needed to lock
C.sysnxxx - created in the usr/spool directory.These are the work files.Used
when work is in line,remote execeutions.Format is same as the
X.sysnxxxx.The works files contain the full path name of the file
to be sent,path name of the destination (TM Transfers),Remote login
name to be notified after the file transmision is complete,Users
login name and the name of the programs used eg.uucp,uupick etc.
D - The data files.Format used is D.systmxxxxyyy.These files are created when
specified in a command to copy to the spool directory.Eg. By the usage of
uucp -C this will be true.
The systm is the remote name,xxxx is the the 4 digits seq assingned by
the uucp.The yyy is a sub sequence number.
Logining on to remote and sending+receiving files
-------------------------------------------------
cu - This command allows one to log on to the local as well as the remote
Unix (or a non unix)without haveing to hang up so you can transfer files.
Usage:[options]
$ cu [-s baud rate][-o odd parity][-e even parity][-l name of comm line]
telephone number | systemname
To view system names that you can communicate with use the 'unname' command:
Eg. of output of names:
ATT01
ATT02
ATT03
ATT04
$ cu -s300 3=9872344 (9872344 is the tel#)
connected
login:
password:
local strings:
--------------
<~.> - will log you off the remote terminal but not the local
~! - out you on the local withiout disconnecting the line from remote
~%take [file name] - takes a copy of the file name and copies it to the
local(the directory which you are in)
"%put [file name] - reverse of above
~$[command] - allows the execution of a command to the local from remote
ct
--
ct allows local to connect to remote.Initiates a getty on a remote terminal.
Usefull when using a remote terminal.BNU has call back feature that allows
the user on the remote who can execute a call back meaning the local can call
the remote.[ ] are options
$ ct [-h prevent automatic hang up][-s bps rate][-wt set a time to call back
abbrieviated t mins] telephone number
uux
---
To execute commands on a remote (unix to unix)
usage:[ ] are options
$ uux [- use standard output][-n prevent mail notification][-p also use
standard output] command-string
uucp
----
uucp copies files from ones computer to the home directory
of a user in remote system.This also works when copying files from one
directory to another in the remote.The remote user will be notified by mail.
This command becomes use full when copying files from a remote to your local
system.
The uucp requires the uucico daemon will call up the remote and will perform
file login sequence,file transfer and notify the user by mail.
Daemons are programs runining in the background.The 3 daemons in a Unix are
uucico,uusched,uuxqt.
Daemons Explained:[nows a good time to explain the 3 daemons]
------------------
uuxqt - Remote execution.This daemon is executed by uudemon.hour started by
cron.UUXQT searchs in the spool directory for executable file
named X.file sent from the remote system.When it finds a file X.file
where it obtains process which are to be executed.The next step is
to find weather the processes are available at the time.The if
available it checks permission and if everthing is o.k it proceeds
the background proccess.
uucico - This Daemon is very immportant for it is responsible in establishing
a connection to the remote also checks permission,performs login
procedures,transfers + executes files and also notifies the user
by mail.This daemon is called upon by uucp,uuto,uux commands.
uusched - This is executed by the shell script called uudemon.hour
This daemons acts as a randomizer before the UUCICO daemon is
called.
Usage of uucp command:
$ uucp [options] [first full path name!] file [destination path!] file
example:
$ uucp -m -s bbss hackers unix2!/usr/todd/hackers
What this would do is send the file hackers from your computer to the remotes
/usr/todd/hackers making hackers offcourse as file.todd would mail that
a file has been sent to him.The unix2 is the name of the remote.
Options for uucp:(Dont forget to type in remotes name unix2 in case)
-c dont copy files to spool directory
-C copy to spool
-s[file name] - this file will contain the file status(above is bbss)
-r Dont start the comm program(uucico) yet
-j print job number(for above eg.unix2e9o3)
-m send mail when file file is complete
Now suppose you wanted to receive file called kenya which is in the usr/dan/usa
to your home directory /usr/john assuming that the local systems name is
ATT01 and you are currently working in /usr/dan/usa,you would type in:
$uucp kenya ATT01!/usr/john/kenya
uuto
----
The uuto command allows one to send file to remote user and can also be used
to send files locally.
Usage:
$ uuto [file name] [system!login name]( omit systen name if local)
A List Of Some OF The Most Useful UNIX
Hacking Commands, and Some Hints On Their Usage
It is fun and often usefull to create a file that is owned
by someone else. On most systems with slack security ie 99% of
all UNIX systems, this is quite easily done. The chown command
will change any of your files to make someone else the owner.
Format is as follows:
chown ownername filelist
Where ownername is the new owner, and filelist is the list of
files to change. You must own the file which your are goin to
change, unless you are a superuser....then u can change ANYTHING!
chgrp is a similar command which will change the group
ownership on a file. If you are going to do both a chown and a
chgrp on a file, then make sure you do the chgrp first! Once the
file is owned by someone else, you cant change nything about it!
---------------------------------------------------------------
Sometimes just seeing who is on the system is a challenge in
itself. The best way is to write your own version of who in C,
but if you can't do that then this may be of some help to you:
who followed by on or more of the following flags:
-b Displays time sys as last booted.
-H Precedes output with header.
-l Lists lines waiting for users to logon.
-q displays number of users logged on.
-t displays time sys clock was last changed.
-T displays the state field (a + indicates it is
possible to send to terminal, a - means u cannot)
-u Give a complete listing of those logged on.
**who -HTu is about the best choice for the average user**
##by the way, the list of users logged on is kept in the file
/etc/utmp. If you want to write your own personalised version of
who in C, you now know where to look!###
---------------------------------------------------------------
When a users state field (see -T flag option for who
command) says that a user has their message function on, this
actually means that it is possible to get stuff onto their
screen.
Basically, every terminal on the system has a file
corresponding to it. These files can be found in the /dev
directory. You can to anything to these files, so long as you
have access -eg you can read them, and write to them, but you
will notice that they never change in size. They are called
character specific files, and are really the link between the
system and the terminals. Whatever you put in these files will
go staright to the terminal it corresponds to.
Unfortunately, on most systems, when the user logs in, the
"mesg n" command is issued which turns off write access to that
terminal, BUT- if you can start cating to that terminal before
system issues the mesg n command, then you will continue to be
able to get stuff up on that terminal! This has many varied uses.
Check out the terminal, or terminal software being used.
Often you will be able to remotely program another users
terminal, simply by 'cating' a string to a users screen. You
might be able to set up a buffer, capturing all that is typed, or
you may be able to send the terminal into a frenzy- (sometimes a
user will walk away without realizing that they are sill
effectively logged on, leaving you with access to their
account!). Some terminal types also have this great command
called transmit screen. It transmits everything on the screen,
just as if the user had typed it !
So just say I wanted to log off a user, then I would send a
clear screen command (usually ctrl l), followed by "exit"
followed by a carriage return, followed by the transmit screen
code. Using ths technique you can wipe peoples directories or
anything. My favourite is to set open access on all their files
and directories so I can peruse them for deletion etc at my own
leisure).
---------------------------------------------------------------
If you ever briefly get access to another persons account
eg. they leave the room to go to toilet or whatever, then simply
type the following:
chmod 777 $HOME
chmod 777 $MAIL
Then clear the screen so they dont see what you just typed.
Now you can go look at their directory, and their mail, and
you can even put mail in their mail file. (just use the same
format as any mail that is already there!). Next time they log in
the system will automatically inform them they have new mail!
---------------------------------------------------------------
Another way to send fake mail to people is to use the mail
server. This method produces mail that is slightly different to
normal, so anyone who uses UNIX a bit may be suspiscious when
they receive it, but it will fool the average user!
type telnet
the following prompt will appear:
telnet>
now type :
open localhost 25
some crap will come up about the mail server..now type:
mail from: xxxxxx Put any name you want.
some more bullshit will come up. Now type:
rcpt to: xxxxxx Put the name of the person to receive mail here.
now type:
data
now you can type the letter...end it with a "."
type quit to exit once you are done.
-------------------------------------------------------------
Heres one for any experimenters out there...
It is possible to create files which simply cannot be deleted
from the standard shell. To do this you will have to physically
CREATE THE FILE USING A C PROGRAM or SCRIPT FILE, and you will
have to use a sequence of control characters which cannot be
typed from the shell. Try things like Ctrl-h (this is the
code for the delete key). Just a file with the name Ctrl-h would
not be deleteable from the shell, unless you used wildcards. So,
make it a nice long series of characters, so that to delete the
file, the user has no choice but to individually copy all his
files elsewhere, then delete everything in his directory, and
then copy all his files back.....this is one of my
favourites..gets em every time!
The following script file is an example which will create a
file with the name Ctrl-h. You MUST tyoe this file in using the
vi editor or similar.
*****If you are not very good with vi, type "man vi" and print the
help file...it even contains stuff that I find useful now and
then.*****
type the following in vi...
echo'' > 'a^h'
***NOTE...to get the ^h (this really means ctrl-h) from vi type:
Ctrl v
Ctrl h
The Ctrl v instrcts vi to take the next character as a ascii
character, and not to interpret it.
change the access on the file you just created and now
execute it. It will create a file which looks like it is called
a, but try to delete it !..use wildcards if you really want to
delete it.
*> Title: Tutorial on hacking through a UNIX system
**
In the following file, all references made to the name Unix, may also be
substituted to the Xenix operating system.
Brief history: Back in the early sixties, during the development of
third generation computers at MIT, a group of programmers studying the
potential of computers, discovered their ability of performing two or
more tasks simultaneously. Bell Labs, taking notice of this discovery,
provided funds for their developmental scientists to investigate into this
new frontier. After about 2 years of developmental research, they produced
an operating system they called "Unix".
Sixties to Current: During this time Bell Systems installed the Unix system
to provide their computer operators with the ability to multitask so that
they could become more productive, and efficient. One of the systems they
put on the Unix system was called "Elmos". Through Elmos many tasks (i.e.
billing,and installation records) could be done by many people using the same
mainframe.
Note: Cosmos is accessed through the Elmos system.
Current: Today, with the development of micro computers, such multitasking
can be achieved by a scaled down version of Unix (but just as
powerful). Microsoft,seeing this development, opted to develop their own
Unix like system for the IBM line of PC/XT's. Their result they called
Xenix (pronounced zee-nicks). Both Unix and Xenix can be easily installed
on IBM PC's and offer the same function (just 2 different vendors).
Note: Due to the many different versions of Unix (Berkley Unix,
Bell System III, and System V the most popular) many commands
following may/may not work. I have written them in System V routines.
Unix/Xenix operating systems will be considered identical systems below.
How to tell if/if not you are on a Unix system: Unix systems are quite
common systems across the country. Their security appears as such:
Login; (or login;)
password:
When hacking on a Unix system it is best to use lowercase because the Unix
system commands are all done in lower- case. Login; is a 1-8 character field. It is
usually the name (i.e. joe or fred) of the user, or initials (i.e. j.jones
or f.wilson). Hints for login names can be found trashing the location of
the dial-up (use your CN/A to find where the computer is). Password: is a 1-8 character password assigned by the sysop or chosen by the user.
Common default logins
--------------------------
login; Password:
root root,system,etc..
sys sys,system
daemon daemon
uucp uucp
tty tty
test test
unix unix
bin bin
adm adm
who who
learn learn
uuhost uuhost
nuucp nuucp
If you guess a login name and you are not asked for a password, and have
accessed to the system, then you have what is known as a non-gifted account.
If you guess a correct login and pass- word, then you have a user account.
And, if you get the root p/w you have a "super-user" account.
All Unix systems have the following installed to their system:
root, sys, bin, daemon, uucp, adm Once you are in the system, you will
get a prompt. Common prompts are:
$
%
#
But can be just about anything the sysop or user wants it to be.
Things to do when you are in: Some of the commands that you may want to
try follow below:
who is on (shows who is currently logged on the system.)
write name (name is the person you wish to chat with)
To exit chat mode try ctrl-D.
EOT=End of Transfer.
ls -a (list all files in current directory.)
du -a (checks amount of memory your files use;disk usage)
cd\name (name is the name of the sub-directory you choose)
cd\ (brings your home directory to current use)
cat name (name is a filename either a program or documentation your username has written)
Most Unix programs are written in the C language or Pascal
since Unix is a programmers' environment. One of the first things done on the
system is print up or capture (in a buffer) the file containing all user names and accounts. This can be done by doing the following command:
cat /etc/passwd
If you are successful you will see a list of all accounts on the system. It
should look like this:
root:hvnsdcf:0:0:root dir:/: joe:majdnfd:1:1:Joe Cool:/bin:/bin/joe hal::1:2:Hal Smith:/bin:/bin/hal
The "root" line tells the following info :
login name=root
hvnsdcf = encrypted password
0 = user group number
0 = user number
root dir = name of user
/ = root directory
In the Joe login, the last part "/bin/joe " tells us which directory
is his home directory (joe) is. In the "hal" example the login name is
followed by 2 colons, that means that there is no password needed to get in
using his name.
Conclusion: I hope that this file will help other novice Unix hackers
obtain access to the Unix/Xenix systems that they may find.
On the Security of UNIX
=-=-=-=-=-=-=-=-=-=-=-=
Recently there has been much interest in the security aspects of operating
systems and software.At issue is the ability to prevent undesired disclosure of
information, destruction of information,and harm to the functioning of the
system.This paper discusses the degree of security which can be provided under
the system and offers a number of hints on how to improve security.The first
fact to face is that UNIX was not developed with security,in any realistic
sense,in mind;this fact alone guarantees a vast number of holes.(Actually the
same statement can be made with respect to most systems.)
The area of security in which is theoretically weakest is in protecting against
crashing or at least crippling the operation of the system.The problem here is
not mainly in uncritical acceptance of bad parameters to system calls (there
may be bugs in this area, but none are known)but rather in lack of checks for
excessive consumption of resources.
Most notably, there is no limit on the amount of disk storage used, either in
total space allocated or in the number of files or directories.Here is a
particularly ghastly shell sequence guaranteed to stop the system:
while : ; do
mkdir x
cd x
done
Either a panic will occur because all the i-nodes on the device are used up,
or all the disk blocks will be consumed, thus preventing anyone from writing
files on the device.In this version of the system,users are prevented from
creating more than a set number of processes simultaneously,so unless users
are in collusion it is unlikely that any one can stop the system altogether.
However, creation of 20 or so CPU or disk-bound jobs leaves few resources
available for others.Also, if many large jobs are run simultaneously,swap space
may run out, causing a panic. It should be evident that excessive consumption
of diskspace, files, swap space and processes can easily occur accidentally in
malfunctioning programs as well as at command level.In fact UNIX is essentially
defenseless against this kind of abuse,nor is there any easy fix.The best that
can be said is that it is generally fairly easy to detect what has happened
when disaster strikes ,to identify the user responsible, and take appropriate
action.In practice,we have found that difficulties in this area are rather
rare,but we have not been faced with malicious users,and enjoy a fairly
generous supply of resources which have served to cushion us against accidental
overconsumption.
The picture is considerably brighter in the area of protection of information
from unauthorized perusal and destruction.Here the degree of security seems
(almost) adequate theoretically, and the problems lie more in the necessity for
care in the actual use of the system.Each UNIX file has associated with it
eleven bits of protection information together with a user identification
number and a user-group identification number (UID and GID).
Nine of the protection bits are used to specify independently permission to
read, to write, and to execute the file to the user himself, to members of the
user's group, and to all other users.Each process generated by or for a user
has associated with it an effective UID and a real UID, and an effective and
real GID.When an attempt is made to access the file for reading, writing, or
executing UID for the process is changed to the UID associated with the file;
the change persists until the process terminates or until the UID changed again
by another execution of a set-UID file.Similarly the effective group ID of a
process is changed to the GID associated with a file when that file is executed
and has the set-GID bit set.The real UID and GID of a process do not change
when any file is executed,but only as the result of a privileged system
call.The basic notion of the set-UID and set-GID bits is that one may write a
program which is executableby others and which maintains files accessible to
others only by that program.
The classical example is the game-playing program which maintains records of
the scores of its players.The program itself has to read and write the score
file,but no one but the game's sponsor can be allowed unrestricted access to
the file lest they manipulate the game to their own advantage.
The solution is to turn on the set-UID bit of the game program. When, and only
when,it is invoked by players of the game,it may update the score file but
ordinary programs executed by others cannot access the score. There are a
number of special cases involved in determining access permissions. Since
executing a directory as a program is a meaningless operation,the
execute-permission bit, for directories, is taken instead to mean permission to
search the directory for a given file during the scanning of a path name; thus
if a directory has execute permission but no read permission for a given user,
he may access files with known names in the directory,but may not read (list)
the entire contents of the directory.
Write permission on a directory is interpreted to mean that the user may create
and delete files in that directory;it is impossible for any user to write
directly into any directory..Another, and from the point of view of security,
much more serious special case is that there is a ``super user'' who is able to
read any file and write any non-directory.The super-user is also able to change
the protection mode and the owner UID and GID of any file and to invoke
privileged system calls.It must be recognized that the mere notion of a
super-user is a theoretical, and usually practical, blemish on any protection
scheme.
The first necessity for a secure system is of course arranging that all files
and directories have the proper protection modes.Traditionally, UNIX software
has been exceedingly permissive in this regard;essentially all commands create
files readable and writable by everyone.In the current version,this policy may
be easily adjusted to suit the needs ofthe installation or the individual user.
Associated with each process and its descendants is a mask, which is in effect
anded with the mode of every file and directory created by that process. In
this way, users can arrange that, by default,all their files are no more
accessible than they wish.The standard mask, set by login,allows all permiss-
ions to the user himself and to his group,but disallows writing by others.
To maintain both data privacy and data integrity,it is necessary, and largely
sufficient,to make one's files inaccessible to others. The lack of sufficiency
could follow from the existence of set-UID programs created by the user and the
possibility of total breach of system security in one of the ways discussed
below(or one of the ways not discussed below).
For greater protection,an encryption scheme is available.Since the editor is
able to create encrypted documents, and the crypt command can be used to pipe
such documents into the other text-processing programs,the length of time
during which clear text versions need be available is strictly limited.The
encryption scheme used is not one of the strongest known, but it is judged
adequate, in the sense that cryptanalysisis likely to require considerably more
effort than more direct methods of reading the encrypted files.For example, a
user who stores data that he regards as truly secret should be aware that he is
implicitly trusting the system administrator not to install a version of the
crypt command that stores every typed password in a file. Needless to say, the
system administrators must be at least as careful as their most demanding user
to place the correct protection mode on the files under their control.
In particular,it is necessary that special files be protected from writing, and
probably reading, by ordinary users when they store sensitive files belonging
to otherusers.It is easy to write programs that examine and change files by
accessing the device on which the files live.
On the issue of password security,UNIX is probably better than most systems.
Passwords are stored in an encrypted form which, in the absence of serious
attention from specialists in the field,appears reasonably secure, provided its
limitations are understood.In the current version, it is based on a slightl y
defective version of the Federal DES;it is purposely defective so that
easily-available hardware is useless for attempts at exhaustive
key-search.Since both the encryption algorithm and the encrypted passwords are
available,exhaustive enumeration of potential passwords is still feasible up to
a point.We have observed that users choose passwords that are easy to
guess:they are short, or from a limited alphabet, or in a dictionary.
Passwords should be at least six characters long and randomly chosen from an
alphabet which includes digits and special characters.
Of course there also exist feasible non-cryptanalytic ways of finding out
passwords.For example: write a program which types out ``login:''on the
typewriter and copies whatever is typed to a file of your own. Then invoke the
command and go away until the victim arrives..The set-UID (set-GID)notion must
be used carefully if any security is to be maintained. The first thing to keep
in mind is that a writable set-UID file can have another program copied onto
it.
For example, if the super-user command is writable,anyone can copy the shell
onto it and get a password-free version of Shell Unix.A more subtle problem can
come from set-UID programs which are not sufficiently careful of what is fed
into them.To take an obsolete example,the previous version of the mail command
was set-UID and owned by the super-user.This version sent mail to the r
ecipient's own directory.The notion was that one should be able to send mail to
anyone even if they want to protecttheir directories from writing. The trouble
was that mailwas rather dumb:anyone could mail someone else's priva te file to
himself.Much more seriousis the following scenario: make a file with a line
like one in the password filewhich allows one to log in as the super-user.Then
make a link named ``.mail'' to the password file in some writable directory on
the same device as the password file (say /tmp). Finally mail the bogus login
line to /tmp/.mail;You can then login as the superuser,clean up the
incriminating evidence,and have your will.
The fact that users can mount their own disks and tapes as file systems can be
another way of gaining super-user status.Once a disk pack is mounted, the
system believes what is on it.Thus one can take a blank disk pack,put on it
anything desired,and mount it.There are obvious and unfortunate consequences.
For example:a mounted disk with garbage on it will crash the system;one of the
files on the mounted disk can easily be a password-free version of Shell Unix;
other files can be unprotected entries for special files. The only easy fix
for this problem is to forbid the use of mount to unpriv- ileged users.A
partial solution, not so restrictive,would be to have the mount command examine
the special file for bad data,set-UID programs owned by others ,and accessible
special files,and balk at unprivileged invokers.
It is fun and often usefull to create a file that is owned
by someone else. On most systems with slack security ie 99% of
all UNIX systems, this is quite easily done. The chown command
will change any of your files to make someone else the owner.
Format is as follows:
chown ownername filelist
Where ownername is the new owner, and filelist is the list of
files to change. You must own the file which your are goin to
change, unless you are a superuser....then u can change ANYTHING!
chgrp is a similar command which will change the group
ownership on a file. If you are going to do both a chown and a
chgrp on a file, then make sure you do the chgrp first! Once the
file is owned by someone else, you cant change nything about it!
---------------------------------------------------------------
Sometimes just seeing who is on the system is a challenge in
itself. The best way is to write your own version of who in C,
but if you can't do that then this may be of some help to you:
who followed by on or more of the following flags:
-b Displays time sys as last booted.
-H Precedes output with header.
-l Lists lines waiting for users to logon.
-q displays number of users logged on.
-t displays time sys clock was last changed.
-T displays the state field (a + indicates it is
possible to send to terminal, a - means u cannot)
-u Give a complete listing of those logged on.
**who -HTu is about the best choice for the average user**
##by the way, the list of users logged on is kept in the file
/etc/utmp. If you want to write your own personalised version of
who in C, you now know where to look!###
---------------------------------------------------------------
When a users state field (see -T flag option for who
command) says that a user has their message function on, this
actually means that it is possible to get stuff onto their
screen.
Basically, every terminal on the system has a file
corresponding to it. These files can be found in the /dev
directory. You can to anything to these files, so long as you
have access -eg you can read them, and write to them, but you
will notice that they never change in size. They are called
character specific files, and are really the link between the
system and the terminals. Whatever you put in these files will
go staright to the terminal it corresponds to.
Unfortunately, on most systems, when the user logs in, the
"mesg n" command is issued which turns off write access to that
terminal, BUT- if you can start cating to that terminal before
system issues the mesg n command, then you will continue to be
able to get stuff up on that terminal! This has many varied uses.
Check out the terminal, or terminal software being used.
Often you will be able to remotely program another users
terminal, simply by 'cating' a string to a users screen. You
might be able to set up a buffer, capturing all that is typed, or
you may be able to send the terminal into a frenzy- (sometimes a
user will walk away without realizing that they are sill
effectively logged on, leaving you with access to their
account!). Some terminal types also have this great command
called transmit screen. It transmits everything on the screen,
just as if the user had typed it !
So just say I wanted to log off a user, then I would send a
clear screen command (usually ctrl l), followed by "exit"
followed by a carriage return, followed by the transmit screen
code. Using ths technique you can wipe peoples directories or
anything. My favourite is to set open access on all their files
and directories so I can peruse them for deletion etc at my own
leisure).
---------------------------------------------------------------
If you ever briefly get access to another persons account
eg. they leave the room to go to toilet or whatever, then simply
type the following:
chmod 777 $HOME
chmod 777 $MAIL
Then clear the screen so they dont see what you just typed.
Now you can go look at their directory, and their mail, and
you can even put mail in their mail file. (just use the same
format as any mail that is already there!). Next time they log in
the system will automatically inform them they have new mail!
---------------------------------------------------------------
Another way to send fake mail to people is to use the mail
server. This method produces mail that is slightly different to
normal, so anyone who uses UNIX a bit may be suspiscious when
they receive it, but it will fool the average user!
type telnet
the following prompt will appear:
telnet>
now type :
open localhost 25
some crap will come up about the mail server..now type:
mail from: xxxxxx Put any name you want.
some more bullshit will come up. Now type:
rcpt to: xxxxxx Put the name of the person to receive mail here.
now type:
data
now you can type the letter...end it with a "."
type quit to exit once you are done.
-------------------------------------------------------------
Heres one for any experimenters out there...
It is possible to create files which simply cannot be deleted
from the standard shell. To do this you will have to physically
CREATE THE FILE USING A C PROGRAM or SCRIPT FILE, and you will
have to use a sequence of control characters which cannot be
typed from the shell. Try things like Ctrl-h (this is the
code for the delete key). Just a file with the name Ctrl-h would
not be deleteable from the shell, unless you used wildcards. So,
make it a nice long series of characters, so that to delete the
file, the user has no choice but to individually copy all his
files elsewhere, then delete everything in his directory, and
then copy all his files back.....this is one of my
favourites..gets em every time!
The following script file is an example which will create a
file with the name Ctrl-h. You MUST tyoe this file in using the
vi editor or similar.
*****If you are not very good with vi, type "man vi" and print the
help file...it even contains stuff that I find useful now and
then.*****
type the following in vi...
echo'' > 'a^h'
***NOTE...to get the ^h (this really means ctrl-h) from vi type:
Ctrl v
Ctrl h
The Ctrl v instrcts vi to take the next character as a ascii
character, and not to interpret it.
change the access on the file you just created and now
execute it. It will create a file which looks like it is called
a, but try to delete it !..use wildcards if you really want to
delete it.
*> Title: Tutorial on hacking through a UNIX system
**
In the following file, all references made to the name Unix, may also be
substituted to the Xenix operating system.
Brief history: Back in the early sixties, during the development of
third generation computers at MIT, a group of programmers studying the
potential of computers, discovered their ability of performing two or
more tasks simultaneously. Bell Labs, taking notice of this discovery,
provided funds for their developmental scientists to investigate into this
new frontier. After about 2 years of developmental research, they produced
an operating system they called "Unix".
Sixties to Current: During this time Bell Systems installed the Unix system
to provide their computer operators with the ability to multitask so that
they could become more productive, and efficient. One of the systems they
put on the Unix system was called "Elmos". Through Elmos many tasks (i.e.
billing,and installation records) could be done by many people using the same
mainframe.
Note: Cosmos is accessed through the Elmos system.
Current: Today, with the development of micro computers, such multitasking
can be achieved by a scaled down version of Unix (but just as
powerful). Microsoft,seeing this development, opted to develop their own
Unix like system for the IBM line of PC/XT's. Their result they called
Xenix (pronounced zee-nicks). Both Unix and Xenix can be easily installed
on IBM PC's and offer the same function (just 2 different vendors).
Note: Due to the many different versions of Unix (Berkley Unix,
Bell System III, and System V the most popular) many commands
following may/may not work. I have written them in System V routines.
Unix/Xenix operating systems will be considered identical systems below.
How to tell if/if not you are on a Unix system: Unix systems are quite
common systems across the country. Their security appears as such:
Login; (or login;)
password:
When hacking on a Unix system it is best to use lowercase because the Unix
system commands are all done in lower- case. Login; is a 1-8 character field. It is
usually the name (i.e. joe or fred) of the user, or initials (i.e. j.jones
or f.wilson). Hints for login names can be found trashing the location of
the dial-up (use your CN/A to find where the computer is). Password: is a 1-8 character password assigned by the sysop or chosen by the user.
Common default logins
--------------------------
login; Password:
root root,system,etc..
sys sys,system
daemon daemon
uucp uucp
tty tty
test test
unix unix
bin bin
adm adm
who who
learn learn
uuhost uuhost
nuucp nuucp
If you guess a login name and you are not asked for a password, and have
accessed to the system, then you have what is known as a non-gifted account.
If you guess a correct login and pass- word, then you have a user account.
And, if you get the root p/w you have a "super-user" account.
All Unix systems have the following installed to their system:
root, sys, bin, daemon, uucp, adm Once you are in the system, you will
get a prompt. Common prompts are:
$
%
#
But can be just about anything the sysop or user wants it to be.
Things to do when you are in: Some of the commands that you may want to
try follow below:
who is on (shows who is currently logged on the system.)
write name (name is the person you wish to chat with)
To exit chat mode try ctrl-D.
EOT=End of Transfer.
ls -a (list all files in current directory.)
du -a (checks amount of memory your files use;disk usage)
cd\name (name is the name of the sub-directory you choose)
cd\ (brings your home directory to current use)
cat name (name is a filename either a program or documentation your username has written)
Most Unix programs are written in the C language or Pascal
since Unix is a programmers' environment. One of the first things done on the
system is print up or capture (in a buffer) the file containing all user names and accounts. This can be done by doing the following command:
cat /etc/passwd
If you are successful you will see a list of all accounts on the system. It
should look like this:
root:hvnsdcf:0:0:root dir:/: joe:majdnfd:1:1:Joe Cool:/bin:/bin/joe hal::1:2:Hal Smith:/bin:/bin/hal
The "root" line tells the following info :
login name=root
hvnsdcf = encrypted password
0 = user group number
0 = user number
root dir = name of user
/ = root directory
In the Joe login, the last part "/bin/joe " tells us which directory
is his home directory (joe) is. In the "hal" example the login name is
followed by 2 colons, that means that there is no password needed to get in
using his name.
Conclusion: I hope that this file will help other novice Unix hackers
obtain access to the Unix/Xenix systems that they may find.
On the Security of UNIX
=-=-=-=-=-=-=-=-=-=-=-=
Recently there has been much interest in the security aspects of operating
systems and software.At issue is the ability to prevent undesired disclosure of
information, destruction of information,and harm to the functioning of the
system.This paper discusses the degree of security which can be provided under
the system and offers a number of hints on how to improve security.The first
fact to face is that UNIX was not developed with security,in any realistic
sense,in mind;this fact alone guarantees a vast number of holes.(Actually the
same statement can be made with respect to most systems.)
The area of security in which is theoretically weakest is in protecting against
crashing or at least crippling the operation of the system.The problem here is
not mainly in uncritical acceptance of bad parameters to system calls (there
may be bugs in this area, but none are known)but rather in lack of checks for
excessive consumption of resources.
Most notably, there is no limit on the amount of disk storage used, either in
total space allocated or in the number of files or directories.Here is a
particularly ghastly shell sequence guaranteed to stop the system:
while : ; do
mkdir x
cd x
done
Either a panic will occur because all the i-nodes on the device are used up,
or all the disk blocks will be consumed, thus preventing anyone from writing
files on the device.In this version of the system,users are prevented from
creating more than a set number of processes simultaneously,so unless users
are in collusion it is unlikely that any one can stop the system altogether.
However, creation of 20 or so CPU or disk-bound jobs leaves few resources
available for others.Also, if many large jobs are run simultaneously,swap space
may run out, causing a panic. It should be evident that excessive consumption
of diskspace, files, swap space and processes can easily occur accidentally in
malfunctioning programs as well as at command level.In fact UNIX is essentially
defenseless against this kind of abuse,nor is there any easy fix.The best that
can be said is that it is generally fairly easy to detect what has happened
when disaster strikes ,to identify the user responsible, and take appropriate
action.In practice,we have found that difficulties in this area are rather
rare,but we have not been faced with malicious users,and enjoy a fairly
generous supply of resources which have served to cushion us against accidental
overconsumption.
The picture is considerably brighter in the area of protection of information
from unauthorized perusal and destruction.Here the degree of security seems
(almost) adequate theoretically, and the problems lie more in the necessity for
care in the actual use of the system.Each UNIX file has associated with it
eleven bits of protection information together with a user identification
number and a user-group identification number (UID and GID).
Nine of the protection bits are used to specify independently permission to
read, to write, and to execute the file to the user himself, to members of the
user's group, and to all other users.Each process generated by or for a user
has associated with it an effective UID and a real UID, and an effective and
real GID.When an attempt is made to access the file for reading, writing, or
executing UID for the process is changed to the UID associated with the file;
the change persists until the process terminates or until the UID changed again
by another execution of a set-UID file.Similarly the effective group ID of a
process is changed to the GID associated with a file when that file is executed
and has the set-GID bit set.The real UID and GID of a process do not change
when any file is executed,but only as the result of a privileged system
call.The basic notion of the set-UID and set-GID bits is that one may write a
program which is executableby others and which maintains files accessible to
others only by that program.
The classical example is the game-playing program which maintains records of
the scores of its players.The program itself has to read and write the score
file,but no one but the game's sponsor can be allowed unrestricted access to
the file lest they manipulate the game to their own advantage.
The solution is to turn on the set-UID bit of the game program. When, and only
when,it is invoked by players of the game,it may update the score file but
ordinary programs executed by others cannot access the score. There are a
number of special cases involved in determining access permissions. Since
executing a directory as a program is a meaningless operation,the
execute-permission bit, for directories, is taken instead to mean permission to
search the directory for a given file during the scanning of a path name; thus
if a directory has execute permission but no read permission for a given user,
he may access files with known names in the directory,but may not read (list)
the entire contents of the directory.
Write permission on a directory is interpreted to mean that the user may create
and delete files in that directory;it is impossible for any user to write
directly into any directory..Another, and from the point of view of security,
much more serious special case is that there is a ``super user'' who is able to
read any file and write any non-directory.The super-user is also able to change
the protection mode and the owner UID and GID of any file and to invoke
privileged system calls.It must be recognized that the mere notion of a
super-user is a theoretical, and usually practical, blemish on any protection
scheme.
The first necessity for a secure system is of course arranging that all files
and directories have the proper protection modes.Traditionally, UNIX software
has been exceedingly permissive in this regard;essentially all commands create
files readable and writable by everyone.In the current version,this policy may
be easily adjusted to suit the needs ofthe installation or the individual user.
Associated with each process and its descendants is a mask, which is in effect
anded with the mode of every file and directory created by that process. In
this way, users can arrange that, by default,all their files are no more
accessible than they wish.The standard mask, set by login,allows all permiss-
ions to the user himself and to his group,but disallows writing by others.
To maintain both data privacy and data integrity,it is necessary, and largely
sufficient,to make one's files inaccessible to others. The lack of sufficiency
could follow from the existence of set-UID programs created by the user and the
possibility of total breach of system security in one of the ways discussed
below(or one of the ways not discussed below).
For greater protection,an encryption scheme is available.Since the editor is
able to create encrypted documents, and the crypt command can be used to pipe
such documents into the other text-processing programs,the length of time
during which clear text versions need be available is strictly limited.The
encryption scheme used is not one of the strongest known, but it is judged
adequate, in the sense that cryptanalysisis likely to require considerably more
effort than more direct methods of reading the encrypted files.For example, a
user who stores data that he regards as truly secret should be aware that he is
implicitly trusting the system administrator not to install a version of the
crypt command that stores every typed password in a file. Needless to say, the
system administrators must be at least as careful as their most demanding user
to place the correct protection mode on the files under their control.
In particular,it is necessary that special files be protected from writing, and
probably reading, by ordinary users when they store sensitive files belonging
to otherusers.It is easy to write programs that examine and change files by
accessing the device on which the files live.
On the issue of password security,UNIX is probably better than most systems.
Passwords are stored in an encrypted form which, in the absence of serious
attention from specialists in the field,appears reasonably secure, provided its
limitations are understood.In the current version, it is based on a slightl y
defective version of the Federal DES;it is purposely defective so that
easily-available hardware is useless for attempts at exhaustive
key-search.Since both the encryption algorithm and the encrypted passwords are
available,exhaustive enumeration of potential passwords is still feasible up to
a point.We have observed that users choose passwords that are easy to
guess:they are short, or from a limited alphabet, or in a dictionary.
Passwords should be at least six characters long and randomly chosen from an
alphabet which includes digits and special characters.
Of course there also exist feasible non-cryptanalytic ways of finding out
passwords.For example: write a program which types out ``login:''on the
typewriter and copies whatever is typed to a file of your own. Then invoke the
command and go away until the victim arrives..The set-UID (set-GID)notion must
be used carefully if any security is to be maintained. The first thing to keep
in mind is that a writable set-UID file can have another program copied onto
it.
For example, if the super-user command is writable,anyone can copy the shell
onto it and get a password-free version of Shell Unix.A more subtle problem can
come from set-UID programs which are not sufficiently careful of what is fed
into them.To take an obsolete example,the previous version of the mail command
was set-UID and owned by the super-user.This version sent mail to the r
ecipient's own directory.The notion was that one should be able to send mail to
anyone even if they want to protecttheir directories from writing. The trouble
was that mailwas rather dumb:anyone could mail someone else's priva te file to
himself.Much more seriousis the following scenario: make a file with a line
like one in the password filewhich allows one to log in as the super-user.Then
make a link named ``.mail'' to the password file in some writable directory on
the same device as the password file (say /tmp). Finally mail the bogus login
line to /tmp/.mail;You can then login as the superuser,clean up the
incriminating evidence,and have your will.
The fact that users can mount their own disks and tapes as file systems can be
another way of gaining super-user status.Once a disk pack is mounted, the
system believes what is on it.Thus one can take a blank disk pack,put on it
anything desired,and mount it.There are obvious and unfortunate consequences.
For example:a mounted disk with garbage on it will crash the system;one of the
files on the mounted disk can easily be a password-free version of Shell Unix;
other files can be unprotected entries for special files. The only easy fix
for this problem is to forbid the use of mount to unpriv- ileged users.A
partial solution, not so restrictive,would be to have the mount command examine
the special file for bad data,set-UID programs owned by others ,and accessible
special files,and balk at unprivileged invokers.
The Cell Phone Wars
Apple's iPhone is closed. Google's G1 is open. Which is better?
Illustration by Alex Eben Meyer. Click image to expand.In August, a programmer named Alex Sokirynsky wrote a clever app to let iPhone users stream or download podcasts straight from their phones. (Ordinarily, the iPhone can play only the podcasts you've downloaded through your computer.) Sokirynsky submitted the program, called Podcaster, for inclusion in Apple's iPhone App Store—the only way for third-party developers to distribute their programs to iPhone users. Weeks passed; Sokirynsky heard nothing from Apple. Then, on Sept. 11, the company sent him a note. Apple had rejected Podcaster because "it duplicates the functionality of the podcast section of iTunes," an Apple rep told Sokirynsky.
Apple's explanation didn't make any sense. The iPhone App Store carries many programs—for instance, calculators and instant-messenger apps—that mimic desktop software. And anyway, why is "duplicating functionality" so bad—isn't that the soul of competition? Sokirynsky's program didn't seem to violate any written guidelines that Apple had put out for iPhone apps. So why was Apple banning Podcaster?
Nobody knows. In the two months since the App Store's launch, Apple has rejected several programs for seemingly arbitrary reasons that it won't disclose. Developers have grumbled about this capriciousness, but until now they've had no real alternative—iPhone and iPod Touch owners have already downloaded 100 million apps through the App Store, making Apple the Wal-Mart of mobile software.
And then along came Sergey Brin and Larry Page. On Tuesday, the Google founders unveiled the G1, the first phone based on Google's new mobile operating system, Android. The phone, which will go on sale in late October, is manufactured by the Taiwanese company HTC and is being offered exclusively through T-Mobile, but Google's software will soon make its way to other phones and other carriers across the globe. Google says that Android embodies principles of "radical openness." Unlike Apple, the company will let developers create any mobile apps they please. Google has also persuaded carriers to allow users to run any apps they like—including voice-over-IP software like Skype, which carriers have traditionally resisted because it lets you make calls without running up cellular minutes.
Watching Google and Apple carve out space in the mobile business, one can hardly avoid thinking that history is repeating itself. In the 1970s and '80s, Apple created the first great personal computers. But because Apple closed its platform, it was IBM, Dell, HP, and especially Microsoft that reaped the benefits of Apple's innovations. The Mac's operating system ran only on Mac computers; Windows ran on lots of lots of different companies' hardware. This made non-Apple computers both cheaper than Apple's machines—competition between hardware manufacturers pushed down prices—and more useful, as third-party developers flocked to write must-have programs for Windows. Apple seems to be following a similar restrictive strategy with the iPhone. Already, some developers have threatened to move to Android; Sokirynsky says he's building an Android version of Podcaster. Hasn't Steve Jobs learned anything in the last 30 years?
Well, maybe he has—and maybe he's betting that these days, "openness" is overrated. For one thing, an open platform is much more technically complex than a closed one. Your Windows computer crashes more often than your Mac computer because—among many other reasons—Windows has to accommodate a wider variety of hardware. Dell's machines use different hard drives and graphics cards and memory chips than Gateway's, and they're both different from Lenovo's. The Mac OS, meanwhile, has to work on just a small range of Apple's rigorously tested internal components—which is part of the reason it can run so smoothly. And why is your PC glutted with viruses and spyware? The same openness that makes a platform attractive to legitimate developers makes it a target for illegitimate ones.
Google's Android OS is "open" in two distinct ways. First, Google has released the software under an open-source license, allowing hardware manufacturers to customize Android for different phones. Second, Android is open to third-party apps; Google and the carriers will make sure that apps do not violate the law or harm people's phones, but other than that, they promise to impose few restrictions. While this is just what developers like Alex Sokirynsky want to hear, it's not obvious that this level of openness will be good for users. Will a game that was developed for a phone with a relatively fast processor crash on a phone with a slower processor? What if you buy an app that requires a full keyboard, but you're running a phone without one—how will Android respond? Engadget pointed out that even before its public launch, Android's Marketplace is full of programs that don't adhere to a single design paradigm, making for a "sea of mediocrity." Is that the danger of running a store without a rigorous approval process?
Illustration by Alex Eben Meyer. Click image to expand.In August, a programmer named Alex Sokirynsky wrote a clever app to let iPhone users stream or download podcasts straight from their phones. (Ordinarily, the iPhone can play only the podcasts you've downloaded through your computer.) Sokirynsky submitted the program, called Podcaster, for inclusion in Apple's iPhone App Store—the only way for third-party developers to distribute their programs to iPhone users. Weeks passed; Sokirynsky heard nothing from Apple. Then, on Sept. 11, the company sent him a note. Apple had rejected Podcaster because "it duplicates the functionality of the podcast section of iTunes," an Apple rep told Sokirynsky.
Apple's explanation didn't make any sense. The iPhone App Store carries many programs—for instance, calculators and instant-messenger apps—that mimic desktop software. And anyway, why is "duplicating functionality" so bad—isn't that the soul of competition? Sokirynsky's program didn't seem to violate any written guidelines that Apple had put out for iPhone apps. So why was Apple banning Podcaster?
Nobody knows. In the two months since the App Store's launch, Apple has rejected several programs for seemingly arbitrary reasons that it won't disclose. Developers have grumbled about this capriciousness, but until now they've had no real alternative—iPhone and iPod Touch owners have already downloaded 100 million apps through the App Store, making Apple the Wal-Mart of mobile software.
And then along came Sergey Brin and Larry Page. On Tuesday, the Google founders unveiled the G1, the first phone based on Google's new mobile operating system, Android. The phone, which will go on sale in late October, is manufactured by the Taiwanese company HTC and is being offered exclusively through T-Mobile, but Google's software will soon make its way to other phones and other carriers across the globe. Google says that Android embodies principles of "radical openness." Unlike Apple, the company will let developers create any mobile apps they please. Google has also persuaded carriers to allow users to run any apps they like—including voice-over-IP software like Skype, which carriers have traditionally resisted because it lets you make calls without running up cellular minutes.
Watching Google and Apple carve out space in the mobile business, one can hardly avoid thinking that history is repeating itself. In the 1970s and '80s, Apple created the first great personal computers. But because Apple closed its platform, it was IBM, Dell, HP, and especially Microsoft that reaped the benefits of Apple's innovations. The Mac's operating system ran only on Mac computers; Windows ran on lots of lots of different companies' hardware. This made non-Apple computers both cheaper than Apple's machines—competition between hardware manufacturers pushed down prices—and more useful, as third-party developers flocked to write must-have programs for Windows. Apple seems to be following a similar restrictive strategy with the iPhone. Already, some developers have threatened to move to Android; Sokirynsky says he's building an Android version of Podcaster. Hasn't Steve Jobs learned anything in the last 30 years?
Well, maybe he has—and maybe he's betting that these days, "openness" is overrated. For one thing, an open platform is much more technically complex than a closed one. Your Windows computer crashes more often than your Mac computer because—among many other reasons—Windows has to accommodate a wider variety of hardware. Dell's machines use different hard drives and graphics cards and memory chips than Gateway's, and they're both different from Lenovo's. The Mac OS, meanwhile, has to work on just a small range of Apple's rigorously tested internal components—which is part of the reason it can run so smoothly. And why is your PC glutted with viruses and spyware? The same openness that makes a platform attractive to legitimate developers makes it a target for illegitimate ones.
Google's Android OS is "open" in two distinct ways. First, Google has released the software under an open-source license, allowing hardware manufacturers to customize Android for different phones. Second, Android is open to third-party apps; Google and the carriers will make sure that apps do not violate the law or harm people's phones, but other than that, they promise to impose few restrictions. While this is just what developers like Alex Sokirynsky want to hear, it's not obvious that this level of openness will be good for users. Will a game that was developed for a phone with a relatively fast processor crash on a phone with a slower processor? What if you buy an app that requires a full keyboard, but you're running a phone without one—how will Android respond? Engadget pointed out that even before its public launch, Android's Marketplace is full of programs that don't adhere to a single design paradigm, making for a "sea of mediocrity." Is that the danger of running a store without a rigorous approval process?
Langganan:
Postingan (Atom)
