sendmail

Robert Richard George 'reptile' Wal reptile w reptile.eu.org
Śro, 4 Lis 1998, 17:59:25 CET


On 98.11.04 Pawel Krawczyk pressed the following keys:

> On Wed, Nov 04, 1998 at 03:45:54PM +0100, Michal Zalewski wrote:
> > > Jesli jeszcze tego nie zrobiliscie, to zapatchujcie sendmaila. Okolice
> > > linijki 316 w daemon.c powinny wygladac nastepujaco:
> > >            t = accept(DaemonSocket,
> > >                 (struct sockaddr *)&RealHostAddr, &lotherend);
> > >             if (t >= 0 || (errno != EINTR && errno != ENETUNREACH &&
> > >                             errno != EHOSTUNREACH))
> > Sorry ze wtykam lapki gdzie nie trzeba, ale albo mi sie zdaje, albo
> > brakuje tu clou programu, czyli nieszczesnego ECONNRESET, bez ktorego
> > niewielki ma to wszystkko sens. 
> 
> A jednak pomaga - smad czy jak mu tam wysyła SYN z adresu hosta ktory
> jest niedostepny. Cos jak pradawny neptune tylko o warstwe wyzej ;) Tak
> to przynajmniej wyglada na pierwszy rzut oka.  To o czym Ty pisales na
> bugtraq chyba opieralo sie na innych zasadach - czy trzeba tez sprawdzac
> errno pod katem ECONNRESET?

Nie do końca. Z opisu:

> 1. Attacker sends SYN from port X to victim, dst_port=25, spoof_addr SPOOFHOST
> +(victim sends SYN/ACK to SPOOFHOST)

Czyli smad wysyła lewy pakiet, ale host nie musi być niedostępny, bo:

> 2. SPOOFHOST sends RST from port X to victim, dst_port=25 respecting sequence
> +numbers (in reply to the SYN/ACK from victim).
>    (victim got error on accept() - and enters 5 sec 'refusingconn' mode)

Host podrabiany jest dostępny. To jemu ,,victim'' odpowiada, a podrabiany host
odpowiada zgodnie z zasadami sztuki, zrywając połączenie.

W skrótcie: smad inicjuje całą rozróbę, ale wykańczają się już inni ;)

Gad

-- 
------------------[Gadzinka]--[http://reptile.eu.org/]--[Cyber Service]--
--[There is this special biologist word we use for ``stable''.]----------
--[It is ``dead''.]----------------------------------------[Jack Cohen]--



Więcej informacji o liście dyskusyjnej pld-devel-pl