`http://www.l8r.com/nwa/nwa1.htm
Network Abuse Information
SMTP Server abuse
Software: GeoList Pro
Author: www.earthonline.com
SPECIAL UPDATE:
03/08/99 GeoList Pro is being pulled from distribution. Details can be found at EarthOnline's Site. (Use the URL above).
Jump to Updates
Original Posting: 03/03/98
A few words from the authors of the program... (with a few of my comments):
"GeoList Professional, the first of itΒs kind in targeted email verification. The program, created with a internal name list, queries Internet mail servers to
validate for a matching email address. Internet Service Providers (ISP's), may not have seen this type of email verification, and may presume it to be
bulk email." (maybe because it's an abusive and a non RFC way of doing it? What happened to using VRFY ?)
"It is important that you realize: Using multi-threaded products like GeoList to query mail servers across the Internet is not a standard practice." (looks
like they are admitting it is abusive!)
"Most ISP's mistake this activity as sending multiple messages through their servers." (Maybe this is due to the poor programming?)
"The result of complaints to your ISP usually leads to the loss of your account. In no way is GeoList Professional relaying any messages through any
servers, it is only validating email addresses which is a standard feature built into most email servers, but rarely used." (Umm you might want to re-check the
RFC to see the "proper" way to VRFY an email address!)
Then they go on to say that you need to accept the use policy of a few sites that house email addresses but do not mention that they should abide by the
use policy of the domains they scan.
Here is a break-down of what the program does and some info on how to help prevent your server from being abused
Effects: Connects to SMTP server and "pretends" to be sending a message. It uses a dictionary of names to add to a domain to see if it generates an
error. If it does not it "assumes" it is a valid email address.
Signature: The email address it uses when it connects to the SMTP server was first seen as "[email protected]" and has now been seen as
[email protected]. In a newer version it has been changed to [email protected].
New Problem: In the newer version the makers of the software have "Hard Coded" over 4200 domains into the program to be used for scanning. This
invites it's users to abuse those 4200+ domains with their poorly written software.
Example from SMTP log:
02:24 16:22 SMTPD(00360110) [209.86.182.86] MAIL FROM:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
02:24 16:22 SMTPD(00360110) [209.86.182.86] RCPT TO:<[email protected]>
02:24 16:22 SMTPD(00360110) [209.86.182.86] ERR 954access.net invalid user <[email protected]
To block these attempts you will need to add the email address listed above to a kill list to deny email coming from those addresses.
Unknowns: It is unknown if the users have the ability to change those email addresses used as the MAIL FROM as I have not run the program on any of
my machines (which requires registration). I have a good feeling it is not changeable. If they do have that ability none of them have been smart enough to
change it yet, and if they don't it would have been alot wiser for the makers to use their own domain instead of abusing someone else's domain.(but then
again they probably don't want to put up with the complaints?!)
GeoList Features as quoted from the program help file:
"Geolist has incorporated special anti-blocking measure that will reconnect your Internet provider when it detects that your current IP address is being
blocked from one of the search engines." (or domains maybe ? I would consider this abuse features built in. If the IP was being blocked it was probably for good reason)
"This software is to be used only in a lawful manner in compliance with any laws, regulations or rules applicable to the user or use of the software.
Applicable laws vary according to country, state, province, territory, city etc. It is entirely the responsibility of the user to know the applicable laws
pertaining to them. Laws can change. If you are uncertain, please check with a competent attorney." (what about usage policy's that providers have set on the use of
their equipment? Didn't they design the software to comply with the laws? If so why hard code over 4200 domains into the program?)
03/07/99 Preperations are being made to post some usefull links and information on how to possibly combat this type of attack on SMTP server. I feel
there has been some good discussion in the list-serv regarding this. There have been other discussions as well and may result in splitting the list serv
into two different subscriptions to make it easier for those trying to communicate etc.
03/07/99 Many have asked what my motivation was for this site and for notifying people.
Basically to inform people of the problem and why it is happening. Many people had seen it
happening and where clueless as to what was causing it. The owner of savings.com was taking the
brunt of it as many thought it had something to do with him.
In one case (prior to sending the message out) one ISP called us to report a user on our system
that was trying to relay mail through his system with the program. He was unaware that in fact it
was not trying to relay but instead scanning for valid email address (this was learned after
contacting the user on our system to find out what he was doing). The reason that he called us was
that the scanning was locking up his system and he was continously having to reboot the system
so that his ISP could continue function.
I felt this is a very abusive program and that those most likely to be affected by it (the domains
hard coded into the program) should know about it.
-paul
03/07/99 Many have asked for copies of the program etc. If you do a search on HotBot or other search engines(I used HotBot) searching for the words
EarthOnline and Geolist will result in many lsitings of "many" sites that are vendors or distributors of the product. Many of those sites have downloads
available and some of them contain older versions of the program. I would reccomend this as your best solution for finding a copy of the program if needed.
03/04/99 It appears they now have a version glp34.exe and the glp33.exe is no longer available. This new version requires you to enter a email address
instead of using it's default (from what I can tell so far) They have also encrypted the domain names that are hard coded into the program. (It would
appear they know they have a problem and are now trying to hide it, if not why encrypt it?)
03/04/99 On 03-03-99 One of the machines I admin was hit with either the same program or a different program and 75% of the log (which amounted to
20meg) was due to abuse by this program or similar program. The email address used was random chars @MSN.COM. So either it's a different program
or they are using the new version.
03/04/99 A List_Serv has been setup for those that wish to discuss this with others that have been abused by this program and others and discuss ways
to prent these attacks or trying to control them etc. To subscribe send a email message to [email protected] with the following line:
subscribe smtpabuse your_name
Substituting your_name with your name of course.
If you have any comments or would like additional information posted on this site or know of similar programs feel free to email them to [email protected].
Depending on the response and feedback I may expand this site to include other problem software or other network abuse notices.
----------------------------------------------------------------------
Date: Mon, 8 Mar 1999 12:13:22 -0700
From: Brett Glass <[email protected]>
To: [email protected]
Subject: SMTP server account probing
Several ISPs throughout the Net are reporting an attack described at
http://www.l8r.com/nwa/nwa1.htm
In this attack, an SMTP server is probed for common names, presumably
so that spam can the be targeted at them. The attacking machine
connects and issues hundreds of RCPT TO: commands, searching a long
list of common user names (e.g. susan) for ones that don't cause
errors. It then compiles a list of target addresses to spam.
Unfortunately, the attack -- besides allowing the perpetrator to spam
users -- also brings SMTP servers to their knees. This happens most
often if the server maintains lists of user names in a database where
looking up a name requires substantial disk activity or computational
overhead.
Some people whose domain names have been hard-coded into a commercial
program designed to implement this attack have responded with outrage,
e.g.
http://www.junk.org/earthonline/
I'm surprised that I haven't seen this one on the Bugtraq list yet.
--Brett Glass
----------------------------------------------------------------------
Date: Wed, 10 Mar 1999 11:24:30 -0800
From: Frank Miller <[email protected]>
To: [email protected]
Subject: SMTP Abuse - Extracted domains from glpro.exe application
Per request, the following URL lists domains hardcoded into the glpro.exe
application (version 3.3 trail).
ftp://ftp.apaynet.com/pub/glpro/glpro.txt
In summary, the glpro.exe application performs, as discussed, a dictionary
based 'attack' upon MTA's (RCPT/MAIL) in order to obtain a list of addresses
for UCE's. Approximately 4000 + domains (including isi.edu!!) was noted.
Take care,
Frank Miller
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 13:14:06 -0500
From: David Gale <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
On Mon, 8 Mar 1999, Brett Glass wrote:
> Several ISPs throughout the Net are reporting an attack described at
>
> http://www.l8r.com/nwa/nwa1.htm
Using /usr/dict/words on my linux box and the TCL code below I ran this
attack against a sendmail (8.9.2) mailserver which uses virtual user
tables and a lengthy aliases database.
The result was the load went up slightly and log entries consumed some
disk space. All in All, Minimal threat to service. I would not call this a
DOS attack in our configuration.
#!/usr/bin/tclsh
set infile [open /usr/dict/words r]
set sock [socket someserver.example.com 25]
puts $sock "HELO remotehost.example.com"
puts $sock "MAIL FROM: [email protected]"
while {[eof $infile] != 1} {
gets $infile input
puts $sock "RCPT TO: $input"
flush $sock
gets $sock output
if {[string range $output 0 2] != "550"} {
puts "Valid Username! $input"
}
}
close $sock
exit
DG.
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 08:57:32 -0800
From: Frank Miller <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
The following is from the company (earthonline.com) that wrote the
commerical software
that performed the dictionary attack against MTA's. I do have copies of the
software
and can generate a list of 'hard coded' ISP's that were probed, if desired.
Dear ISP and Fellow Internet User,
GeoList Professional has been removed from the
Earthonline Product Line.
If used as it was intended, this product would
have created email address lists that would
have proven highly targeted to a specific state
or region.
Although GeoList is only one of many different
programs that verify state related email
addresses on the market, we find it appropriate
for the good of the Internet Community, that we
pull this product from our shelves.
GeoList was designed for the individual or
business looking for a target market in
specific states or regions. Initially this
program was developed for an online political
campaign. The candidates campaign staff
requested the ability to target their specific
region. GeoList, utilized in this market,
proved effective; for this reason Earthonline
released it as a targeted lead generation
product.
The subsequent mis-use of GeoList Professional
by certain companies and individuals has
reportedly made it difficult on the ISPs. As
GeoList validates a list of user names and
matches them with email addresses in the given
state, it was our intent to target email
addresses for any give "region specific"
campaign.
It is undetermined how end-users were using
this product. However, we have had reports of
customers using this product as a non-targeted
spam list collection tool. Earthonline stands
behind targeted email notification and
solicitation of targeted lead lists. However,
we do not condone or promote spam as a way to
market products or services. Our products are
intended as a cost effective way for companies
and organizations to email their customers, and
clients, with new product offerings, updates,
and/or informative news.
GeoList Professional has reportedly been used
"not as intended" - and although we could limit
the sales of the product to certain individuals
and companies, we choose not to sensor those
customers of our products. However, with
reports of how the GeoList product is being
used; It is our decision to make GeoList a
discontinued product as of March 08, 1999.
As the technology within GeoList is not
proprietary to Earthonline, the discontinuation
of this product will not be the discontinuation
of other products in the marketplace that
promote similar functionality.
If you should have direct questions, or
comments regarding this notice, email to:
[email protected]
- Earthonline Administration
----------------------------------------------------------------------
http://www.junk.org/earthonline/
Close EarthOnline Campaign
EarthOnline Hate and Destruction Page - 1999-03-08
You HATE spam, please help us!
EarthOnline is a company made of stupid and dangerous lamers.
Have a look at their site (if it's up between two nukes) : http://www.earthonline.com/
It is not a new business.
They WILL NOT LISTEN you, they will rather add a line to deny you a web connection if you try to explain them they are wrong.
They make lame software, intended for bulk e-mailing.
They KNOW it is for sending SPAM. They KNOW it is ABUSE.
Their software VIOLATES laws, by using UNAUTHORIZED ways to retrieve e-mail addresses.
Their softwares ABUSES Internet servers resouces. Read this : http://www.l8r.com/nwa/nwa1.htm
Their softwares can even CRASH mail servers - qualifying it as some kind of DENIAL-OF-SERVICE crackware. Programs sold by
Earthonline are just as nefast as viruses, exploits, trojans, or other networks-scans-for-dummy-crackers.
They ARE AWARE of this, and they continue to sell their crap, for more than one year (probably more, but I only know them for one year).
It is a PYRAMIDAL SCHEME.
A quote from http://www.earthonline.com/newweb/vfaq.htm :
We do not assume any responsibility for products being delivered (whether electronically or otherwise) into a foriegn country, that are
considered illegal. Please investigate your local laws before purchasing and selling questionable products or items.
THAT'S ENOUGH !!! LET'S ALL BLOW THEM UP
Please note that most proposals below are illegal. You engage YOUR OWN responsibility. The author of the page denies any responsibility on what YOU
will do.
ILLEGAL - use any mailbombing software against them. Try these addresses :
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
STRONGLY ILLEGAL - use any TCP/IP nuke you can find on the net against them. As long as their web is down spammers won't buy this
crap. Try these ips :
SUPPORT 209.20.201.81
NS12 209.20.201.76
VENDOR 209.20.201.68
MIDAS 209.20.201.75
MAIL 209.20.201.80
They are under Winblows NT (This is the only thing I love with NT : bastards use it).
They (or their provider ?) seem to own other domains :
EOLCORP.COM
CLUBSOFTWARE.COM
LYLEANDAUDREY.COM
CELLDATA.COM
ILLEGAL - use any FTP/SMTP/POP3/DNS/HTTP nuke you can find. Use denial-of-service progs. Open stale sockets. SYN flood them.
Mailbomb, mailbomb, mailbomb. Nuke them.
FTP server software : (unknown)
SMTP server software : IMail 4.06 768-1
DNS server software : (unknown)
POP3 server software : IMail 4.06 1148-1
HTTP server software : Microsoft-IIS/4.0
port_139 : open (enjoy!)
LEGAL and ENCOURAGED - Send complaints to their connectivity providers. Denounce their resellers to domain admins - chance are that
resellers accounts will be closed. I did it on other spamware resellers and it worked. Lawsuit them, if you can.
Resellers page : http://www.earthonline.com/VendSites/default.asp
Sample list :
[closed] http://www.uslink.net/~nikken/home/
[partially deleted] http://www.e-earth.com/earthonline
[up] http://www.totalbiz-solutions.com/eolproducts.htm
[up] http://www.ltgcomm.com/product_center.htm
[up] http://www.emailkings.com/
[up] http://www.theemailshop.com/products/earthonline/products.htm
[up] http://www.informationmart.com/Software/BulkEmail/products.htm
[up] http://www.email123.com/
[closed] http://www.emailhouse.com/
[up] http://www.meandaur.com/earthonline/index.htm
LEGAL - According to D. L. G. :
Contact the Washington State Attorney General. While WA's anti-spam law isn't the greatest, it does exist, and these idiots have coded their
software in violation of several of its points, and according to the Internic reg, they're based out of Washington.
I urge you to do so if you can prove they made illegal use of your domain name (i.e. you are in their internal list).
http://www.wa.gov/ago/junkemail/complaint.html
NOT LEGAL - If you are in the US, phone them and yell. Blow their fax. Or make them lose time, by any means. MAKE THEIR LIFE
IMPOSSIBLE !!! These guys are impatient. If we can poison their life long enough they will give up and find another less harming business.
Phone numbers : (425)865.9000 ;
Fax numbers : 425.865.9100 ;
Snail mail :
EOL Corporation
7981 168th Ave. NE
Building 4
Redmond, WA 98052
Your are encouraged to mirror this page. Advertise about it (don't spam newsgroups, thanks).
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 09:36:04 -0800
From: John E. Martin <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
>In this attack, an SMTP server is probed for common names, presumably
>so that spam can the be targeted at them. The attacking machine
>connects and issues hundreds of RCPT TO: commands, searching a long
>list of common user names (e.g. susan) for ones that don't cause
>errors. It then compiles a list of target addresses to spam.
This is a good reason for sendmail users to add the following to their .cf
files:
O PrivacyOptions=goaway
This will prevent VRFY and EXPN commands from functioning at all and
releasing correct addresses.
>Unfortunately, the attack -- besides allowing the perpetrator to spam
>users -- also brings SMTP servers to their knees. This happens most
>often if the server maintains lists of user names in a database where
>looking up a name requires substantial disk activity or computational
>overhead.
While the 'goaway' option may not prevent the program from continuing to
verify addresses, it will keep your users address from being picked up by
the program.
Perhaps someone with better sendmail experience could come up with an idea
to automatically disconnect connections that are issuing more than 25 VRFY
statements at a time?
Cheers,
John E. Martin
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 20:58:25 +0300
From: GvS <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
Hi there!
On Mon, 8 Mar 1999, Brett Glass wrote:
BG> In this attack, an SMTP server is probed for common names, presumably
BG> so that spam can the be targeted at them. The attacking machine
BG> connects and issues hundreds of RCPT TO: commands, searching a long
BG> list of common user names (e.g. susan) for ones that don't cause
BG> errors. It then compiles a list of target addresses to spam.
The most common protection method against this attack is to restrict
the number of recipients per message as defined in sendmail.cf:
O MaxRecipientsPerMessage=NN
It doesn't protect from name probing, but protects from overhead in
conjunction with O ConnectionRateThrottle and O MaxDaemonChildren
options.
BG> I'm surprised that I haven't seen this one on the Bugtraq list yet.
I do not think it's bugtraq issue really. This attack can easily be
prevented with configuration methods.
SY, Seva Gluschenko, just stranger at the Road.
GVS-RIPE: Cronyx Plus / RiNet network administrator.
--- IRC: erra
* Origin: Erra Netmale ([email protected]) [http://gvs.rinet.ru/]
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 13:51:28 -0700
From: Brett Glass <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
At 09:36 AM 3/9/99 -0800, John E. Martin wrote:
>While the 'goaway' option may not prevent the program from continuing to
>verify addresses, it will keep your users address from being picked up by
>the program.
>
>Perhaps someone with better sendmail experience could come up with an idea
>to automatically disconnect connections that are issuing more than 25 VRFY
>statements at a time?
Unfortunately, the program was designed to defeat the "goaway" option by
using RCPT TO: commands instead of VRFY commands. What's needed is
the ability to kill the connection after more than two or three recipient
names have generated errors.
--Brett
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 16:08:32 -0500
From: [email protected]
To: [email protected]
Subject: Re: SMTP server account probing
On Tue, 09 Mar 1999 09:36:04 PST, you said:
> Perhaps someone with better sendmail experience could come up with an idea
> to automatically disconnect connections that are issuing more than 25 VRFY
> statements at a time?
Wrong solution. They'll just reconnect and try another 25. All you've bought
then is an extra fork() of the sendmail daemon every 25 pokes. Remember,
these people don't give a s**t if they waste your resources...
Maybe what's needed is a new ioctl on a socket, so you can do this:
if (vrfy_cnt > 25) {
ioctl(net_socket,SO_NOSENDFIN);
clkose(net_socket);
}
so you can free up the socket at YOUR end, and intentionally fail to
send the FIN packet, so the OTHER end gets to wait for a timeout.
Yes, yes, yes, I *KNOW* it's Evil and Against The RFCs. But it's tempting. ;)
--
Valdis Kletnieks
Computer Systems Senior Engineer
Virginia Tech
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 23:45:46 +0000
From: Alan Cox <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
> Maybe what's needed is a new ioctl on a socket, so you can do this:
>
> if (vrfy_cnt > 25) {
> ioctl(net_socket,SO_NOSENDFIN);
> clkose(net_socket);
> }
How about adding a firewall rule for the site concerned ? Thats programatically
similar and has the advantage they wont be back until you get bored enough
to remove the block
----------------------------------------------------------------------
Date: Wed, 10 Mar 1999 10:08:06 +1100
From: Nick Andrew <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
Forwarding a message from Brett Glass:
> Unfortunately, the program was designed to defeat the "goaway" option by
> using RCPT TO: commands instead of VRFY commands. What's needed is
> the ability to kill the connection after more than two or three recipient
> names have generated errors.
Just modify your SMTP daemon to return the appropriate error code for
all RCPT TO requests after #25. They can continue to probe forever but all
probes will return false. It might be a good idea to also put a short
delay into the responses to probes (like 1 second).
If the other end actually tries to send a message after doing all this
probing, route the message to /dev/null (or drop it in a directory for
later examination).
Larger sites may wish to alter the threshold at which defence actions are
initiated.
Nick.
--
Zeta Internet SP4 Fax: +61-2-9233-6545 Voice: 9231-9400
G.P.O. Box 3400, Sydney NSW 1043 http://www.zeta.org.au/
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 17:04:30 -0800
From: Brian Behlendorf <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
On Tue, 9 Mar 1999, Brett Glass wrote:
> At 09:36 AM 3/9/99 -0800, John E. Martin wrote:
>
> >While the 'goaway' option may not prevent the program from continuing to
> >verify addresses, it will keep your users address from being picked up by
> >the program.
> >
> >Perhaps someone with better sendmail experience could come up with an idea
> >to automatically disconnect connections that are issuing more than 25 VRFY
> >statements at a time?
>
> Unfortunately, the program was designed to defeat the "goaway" option by
> using RCPT TO: commands instead of VRFY commands. What's needed is
> the ability to kill the connection after more than two or three recipient
> names have generated errors.
I would recommend against doing this. There are many legitimate large
mailing lists out there that are very likely to use multiple RCPT headers
in a single transaction to save bandwidth, and the odds of getting more
than two or three bounces from closed accounts are fairly good, so this
would break valid SMTP conversations. Besides, the address harvesters
will simply reopen a second connection.
Brian
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 18:24:06 -0500
From: Stefan Monnier <monnier+lists/bugtraq/news/@TEQUILA.CS.YALE.EDU>
To: [email protected]
Subject: Re: SMTP server account probing
>>>>> "Brett" == Brett Glass <[email protected]> writes:
> Unfortunately, the program was designed to defeat the "goaway" option by
You mean "fortunately":
I'm actually quite pleased to have such a good example of why turning
off VRFY and EXPN buys you nothing.
Stefan
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 15:08:39 -0800
From: Keith Woodworth <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
On Tue, 9 Mar 1999, John E. Martin wrote:
>>>In this attack, an SMTP server is probed for common names, presumably
>>>so that spam can the be targeted at them. The attacking machine
>>>connects and issues hundreds of RCPT TO: commands, searching a long
>>>list of common user names (e.g. susan) for ones that don't cause
>>>errors. It then compiles a list of target addresses to spam.
>>
>>This is a good reason for sendmail users to add the following to their .cf
>>files:
>>
>>
>>O PrivacyOptions=goaway
>>
>>
>>This will prevent VRFY and EXPN commands from functioning at all and
>>releasing correct addresses.
>>
The goaway option will also, if I'm not mistaken, also screwup anyone who
does ETRN to collect mail. Fetchmail is one program that uses ETRN I
believe.
Keith
----------------------------------------------------------------------
Date: Wed, 10 Mar 1999 09:18:25 +0800
From: Jose C. Oon <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
.....snip.....
> Unfortunately, the program was designed to defeat the "goaway" option by
> using RCPT TO: commands instead of VRFY commands. What's needed is
> the ability to kill the connection after more than two or three recipient
> names have generated errors.
This is a good idea where a predetermined number of errors in RCPT
should warrant the sendmail process to abort and terminate. But on
the other side, it'll interrupt normal mail messages delivery, hence,
causing lots of retries. Default of 3-5 days.
I'd suggest to add some intended delays, for instance:
when there's a RCPT error, the attacked sendmail daemon will
delay say 30 seconds, before it accepts another RCPT TO or other command.
Of course eventually the sendmail will time out and drop the
connections when necessary.
--Joseph
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 15:20:44 -0600
From: Ryan Permeh <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
This is a good idea, but the problem with this program is that it acts like
it were sending mail to a user, not using the VRFY command, but the RCPT
to: command, as any normal mail user agent would.
I have been playing around with an idea that would send false rcpt to
errors after a certain number of failures. This would, at the very least,
not give the program any more information than the first couple rcpt to:,
until a certain number of bad rcpt to:'s happen.
there are other ways of doing this, that are not apporpriate for this use,
that limit the total number of RCPT to:'s accepted. this can be done (at
least in 8.9.3) using the :
O MaxRecipientsPerMessage
directive in the sendmail.cf file.
Ryan Permeh
At 09:36 AM 3/9/99 -0800, you wrote:
>>In this attack, an SMTP server is probed for common names, presumably
>>so that spam can the be targeted at them. The attacking machine
>>connects and issues hundreds of RCPT TO: commands, searching a long
>>list of common user names (e.g. susan) for ones that don't cause
>>errors. It then compiles a list of target addresses to spam.
>
>This is a good reason for sendmail users to add the following to their .cf
>files:
>
>
>O PrivacyOptions=goaway
>
>
>This will prevent VRFY and EXPN commands from functioning at all and
>releasing correct addresses.
>
>>Unfortunately, the attack -- besides allowing the perpetrator to spam
>>users -- also brings SMTP servers to their knees. This happens most
>>often if the server maintains lists of user names in a database where
>>looking up a name requires substantial disk activity or computational
>>overhead.
>
>While the 'goaway' option may not prevent the program from continuing to
>verify addresses, it will keep your users address from being picked up by
>the program.
>
>Perhaps someone with better sendmail experience could come up with an idea
>to automatically disconnect connections that are issuing more than 25 VRFY
>statements at a time?
>
>Cheers,
>John E. Martin
>
Ryan R Permeh E-MAIL: [email protected] [email protected]
IS Engineer WEB : http://www.rconnect.com http://www.response.net
Rural Connections / HELP : [email protected]
Response Inc. FAQ : http://www.rconnect.com/help
SALES : [email protected] [email protected]
------------------------------------------------------------
120 First Street NE PHONE : (507) 281-5005
Rochester, MN 55906 FAX : (507) 281-9272
----------------------------------------------------------------------
Date: Tue, 9 Mar 1999 18:48:44 -0800
From: James Lick <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
On Tue, 9 Mar 1999, David Gale wrote:
> Using /usr/dict/words on my linux box and the TCL code below I ran this
> attack against a sendmail (8.9.2) mailserver which uses virtual user
> tables and a lengthy aliases database.
The way your code is implemented, you send a RCPT and wait for a response
before sending the next RCPT. Due to latency, this algorithm is very
inefficient and results in not much load on the server. The "attack" in
question does not pause between RCPT commands, but rather sends them as
fast as possible and looks at the results later. Also it tries quite a
bit more the few thousand words in /usr/dict/words.
Jim Lick
----------------------------------------------------------------------
Date: Wed, 10 Mar 1999 21:42:44 +0100
From: Alexander Bochmann <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
Hi,
...on Tue, Mar 09, 1999 at 04:16:13PM -0600, Scott Fendley wrote:
> Couldn't you just compile sendmail with tcp_wrapper support, and have a
> script parsing your logs so that if someone manages to get n # of pokes at
> your system then their Ip address and/or DNS server will be placed in the
> hosts.deny.
Perhaps Spamshield could be enhanced to solve this problem.
http://www.abest.com/~kai/spamshield.html
Even if the detection is adapted, it would probably only work after the first
attack though, as it seems sendmail doesn't log the attacking hosts name
before the connection is closed when no data is sent.
Alex.
----------------------------------------------------------------------
Date: Wed, 10 Mar 1999 14:30:25 -0700
From: Tobias J. Kreidl <[email protected]>
Reply-To: Tobias J. Kreidl <[email protected]>
To: [email protected]
Subject: Re: SMTP server account probing
Scott Fendley said on Tue, 09 Mar 1999 16:16:13 -0600:
> Couldn't you just compile sendmail with tcp_wrapper support, and have a
> script parsing your logs so that if someone manages to get n # of pokes at
> your system then their Ip address and/or DNS server will be placed in the
> hosts.deny. Then as an admin you remove those that need to be removed
> after the problem user has been properly slapped or you could possibly run
> an automatic removal of k # of hours (or days).
I did this a year or so ago, using a shell script. Via a cron job, it can look every
10 minutes or however often you wish and if it sees an incoming mailbox exceeding a
certain size that has received email more than N times from a particular user, it
automatically puts an entry into /etc/hosts.allow (and since sendmail is run through
inetd, the effect is instantaneous). In this case, hosts.deny is empty, but you could
readily make the appropriate change to use hosts.deny, if desired.
It's one way to protect against mail bombings, as well. Right now, the code checks
if the mailbox (inbox) has exceeded a certain size before parsing for repetitive senders,
but it'd be trivial to change the code to skip the mailbox size checking by making
MAXSIZE equal to 1. Note that for systems with lotsof users and big inboxes, the
checking process can take up considerable time and CPU resources. Another caveat is that
if you have also "friendlies" that send from the same sending host, they, too,
will be blocked. This could be devastating for, say, email coming from somewhere like
aol.com, so I'd be very careful if and whether you actually use this code. Or, follow
Scott's suggestion of removing the entry periodically to keep legitimate email
>from bouncing. I wrote this more as an exercise and as a proof of concept and so it's
not been thoroughly exercised and may contain various "gotchas" I haven't even thought
about.
Tobias J. Kreidl, PhD
Email: [email protected]
#!/bin/sh -
#
# mailmonitor -- check if incoming mail boxes exceed a limited size; if so,
# check if mail originated from more than N from the same address, and if
# so, then block that host from being able to send mail until manually
# edited out. Tested under Solaris 2.X and freeBSD 2.X.
#
# TK 97-Jan-17
# updates: TK 97-Jan-20/21 (initial version)
#
# TK 97-Jan-27: Add list of host exceptions.
#
# TK 98-Apr-11 -- Use "From: " instead of "From " in search. Otherwise,
# MAILER-DAEMON can dominate in the "From " line. Grep out any possible
# trailing ">" in address.
#
# To do:
# Consider option to flush all mail in /var/spool/mqueue containing
# that entry.
# Add an option to skip checking specific accounts.
#
# Copyright (c) 1998 by Tobias Kreidl. Feel free to distribute this
# code provided this acknowledgment header remains. The user assumes all responsibilities
# for any use of this code and by using it, releases the author of any liabilities
# or other problems that might result from use of the code either "as is" or after
# any modifications are made to it.
#
PATH=/usr/bin:/usr/sbin:/usr/local/bin; export PATH
unalias rm
# name of this program (important for grepping purposes)... preferably,
# the same full path name as put in the cron entry...
PNAME="/usr/local/bin/mailmonitor"
# limit in bytes:
MAXSIZE=4000000
# limit of messages from one user:
MAXNUM=20
# full path to hosts.allow file:
HAFILE="/etc/hosts.allow"
# list of exceptions for receiving bulk mail (if none, set to "");
# separate the list items with spaces.
# You can exclude hosts you trust here, as well as possibly the
# machine itself on which this runs.
EXCEP="root@localhost mylocalmachine.mydomain.com"
# whom to send mail message reports to:
MAILTO="root, [email protected]"
#
# see if running -- never ever run more than one version of this
# routine at the same time !!!
PS="/bin/ps"
switch="-ax"
flag=`uname`
number="3"
if [ $flag = "SunOS" ] ; then
switch="-ef"
number="2"
fi
test=`$PS $switch | grep -v grep | grep $PNAME | wc -l`
if [ $test -gt $number ] ; then
echo "Another version of this routine is already running! Abort..."
exit 0
fi
uqname () {
# subroutine to return list of unique non-local email addresss of the
# mail in a user's inbox. Returned variable is UNAMES, which overwrites
# any previous definition.
name=$1
UNAMES=""
LOC="/var/mail"
UNAMES=`grep "^From:"' ' $LOC/$name | grep @ | awk '{print $2}' | sort | uniq`
}
mailcount () {
# subroutine to check frequency of occurrence of non-local email senders
# inputs: acount name, email_address_of_sender
LOC="/var/mail"
COUNT=0
name=$1
email=$2
# COUNT=`grep "^From $email" $LOC/$name | wc -l`
COUNT=`grep "^From: $email" $LOC/$name | wc -l`
}
# set initially so that multiple informational messages are not sent out
newinfo="no"
list=`/bin/cat /etc/passwd | awk -F: '{print $1}'`
for name in $list
do
# check size
echo "$name"
if [ -f /var/mail/$name ] ; then
size=`ls -l /var/mail/$name | awk '{print $5}'`
home=`grep "^$name:" /etc/passwd | awk -F: '{print $6}'`
# debug --
echo "home dir is: $home"
else
size=0
fi
if [ $size -gt $MAXSIZE ] ; then
# debug --
echo "Too big -- size is $size"
echo "" >>/tmp/LISTmonit$$
echo "email for $name overflowed with $size bytes: " >>/tmp/LISTmonit$$
# check box for multiple messages...
uqname $name
for addr in $UNAMES
do
mailcount $name $addr
# check for exceptions
test=`echo $EXCEP | grep -i $addr`
if [ XYZ$test = "XYZ" ] ; then
# process
if [ $COUNT -gt $MAXNUM ] ; then
# debug
echo "$addr has sent $COUNT messages."
echo "$addr has sent $COUNT messages." >> /tmp/LISTmonit$$
# see if already denied -- note syntax of string MUST be
# sendmail: this.organization.org: DENY
# for this to work consistetly!
sender=`echo $addr | awk -F@ '{print $1}'`
hostname=`echo $addr | awk -F@ '{print $2}'`
# eliminate possible trailing ">" 98-Apr-12
hostname=`echo $hostname |awk -F\> '{print $1}'`
echo "hostname is: $hostname"
test=`grep "sendmail: $hostname:" $HAFILE | grep DENY | awk -F: '{print $2}'| awk
'{print $1}'`
# debug --
echo "search yields: $test"
if [ XYZ$test = "XYZ" ] ; then
# this is a new entry...
newinfo="yes"
da=`date`
string="sendmail: $hostname: DENY # ($sender) $da"
# edit
/bin/ed $HAFILE <<EOF
0a
$string
.
w
q
EOF
else
# was already in the file
echo "host entry $hostname already denied..."
fi
# no, not an excessive number of messages from that user
fi
else
# address was an exception
echo "The address $addr is an exception ($COUNT messages received)"
fi
done
# looped through all excessively large mailboxes
fi
# looped through all mail users
done
# track and inform...
if [ $newinfo = "yes" ] ; then
# inform
LIST=`cat /tmp/LISTmonit$$`
da=`date`
/usr/ucb/mail -s "Mail OVERFLOWED" $MAILTO <<EOF
The incoming mailbox for the following account(s) exceeded the
limit of $MAXSIZE bytes on $da.
The following users have sent more than $MAXNUM messages...
$LIST
Entries have been made, denying sendmail access to the pertinent hosts
(the file $HAFILE should be reviewed for accuracy). Note that these
denials will remain until these entries are manually deleted.
This is an automated response.
EOF
else
# no need to send out mail -- nothing has changed
echo "No changes detected..."
fi
# clean up
rm -f /tmp/LISTmonit*
# or use "rm -f /tmp/LISTmonit$$" if you wish
exit 0
----------------------------------------------------------------------
Date: Thu, 11 Mar 1999 19:31:21 -0500
From: Peter W <[email protected]>
To: [email protected]
Subject: sendmail 8.9.3 patches to curb RCPT harvesters
Aleph One wrote:
> I am killing the spam address harvesting thread unless someone posts some
> actual code.
Per Joseph's suggestion. Use these patches against sendmail 8.9.3 and add
O RCPTFailDelay=30
to sendmail.cf to make sendmail sleep() for 30 seconds before reporting any
"550" errors. Set the value to 0 for "normal" behavior.
Note that RFC 1123 suggests RCPT responses be returned in less than 5 minutes
(if they're verified immediately -- 1123 allows verification of RCPT to be
deferred and notes that a "250" response does not guarantee the address is
legit). Eric Allman argues in doc/op/op.ps that sending SMTP agents ought to
wait an hour. Choose wisely.
This quick modification should at least frustrate current** RCPT abuse tools,
give admins more time to notice the failures in the maillog and react, and not
confuse mailers that legitimately send multiple RCPT commands to known
addresses.
-Peter
** Eventually I think sys admins would want to defer all RCPT verifications
until after the DATA transmission, erroring with 554 if there is a single
invalid RCPT address, to make SMTP username-harvesting visible. SMTP senders
would need to be sure they heeded RFC 1123 section 5.2.7 regarding the meaning
of a 250 response to RCPT.
--
Q: How could China track down and punish dissidents more effectively?
A: The new Pentium III chip! http://www.privacy.org/bigbrotherinside/
Intel doesn't care about your privacy. Join the boycott today.
$ diff -C 2 sendmail.h.orig sendmail.h
*** sendmail.h.orig Thu Mar 11 07:57:42 1999
--- sendmail.h Thu Mar 11 08:06:51 1999
***************
*** 1293,1296 ****
--- 1293,1298 ----
EXTERN int MaxMimeHeaderLength; /* maximum MIME header length */
EXTERN int MaxMimeFieldLength; /* maximum MIME field length */
+ EXTERN int RCPTFailDelay;
+ /* delay before report user does not exist to inbound SMTP commands */
extern int errno;
$ diff -C 2 readcf.c.orig readcf.c
*** readcf.c.orig Thu Mar 11 07:57:52 1999
--- readcf.c Thu Mar 11 08:15:29 1999
***************
*** 1532,1535 ****
--- 1532,1537 ----
{ "MaxHeadersLength", O_MAXHDRSLEN, FALSE },
#endif
+ #define O_RCPTFAILDELAY 0xab
+ { "RCPTFailDelay", O_RCPTFAILDELAY, FALSE },
{ NULL, '\0', FALSE }
};
***************
*** 2211,2214 ****
--- 2213,2220 ----
case O_MAXCHILDREN: /* max # of children of daemon */
MaxChildren = atoi(val);
+ break;
+
+ case O_RCPTFAILDELAY: /* delay before reporting user does not exist */
+ RCPTFailDelay = atoi(val);
break;
$ diff -C 2 err.c.orig err.c
*** err.c.orig Thu Mar 11 08:05:41 1999
--- err.c Thu Mar 11 08:12:58 1999
***************
*** 526,529 ****
--- 526,532 ----
eb += 4;
spaceleft -= 4;
+
+ if ((num != NULL) && (strncmp(num, "550", 3) == 0) )
+ sleep(RCPTFailDelay);
/* output the file name and line number */
----------------------------------------------------------------------
Date: Sat, 13 Mar 1999 01:47:58 -0500
From: Tim Pierce <[email protected]>
To: [email protected]
Subject: Re: sendmail 8.9.3 patches to curb RCPT harvesters
On Thu, Mar 11, 1999 at 07:31:21PM -0500, Peter W wrote:
> Aleph One wrote:
>
> > I am killing the spam address harvesting thread unless someone posts some
> > actual code.
>
> Per Joseph's suggestion. Use these patches against sendmail 8.9.3 and add
>
> O RCPTFailDelay=30
>
> to sendmail.cf to make sendmail sleep() for 30 seconds before reporting any
> "550" errors. Set the value to 0 for "normal" behavior.
According to the reports I'm seeing, GeoList Pro does not wait for a
response from the server -- instead, it streams the RCPT TO commands
continuously and then reads the results at the end of transmission.
If that is the case, it doesn't sound like this patch will have any
effect.
--
Regards,
Tim Pierce
RootsWeb Genealogical Data Cooperative
system obfuscator and hack-of-all-trades
----------------------------------------------------------------------
Date: Sat, 13 Mar 1999 10:59:16 -0500
From: Peter W <[email protected]>
To: [email protected]
Subject: Re: sendmail 8.9.3 patches to curb RCPT harvesters
Tim Pierce wrote:
> On Thu, Mar 11, 1999 at 07:31:21PM -0500, Peter W wrote:
> > Per Joseph's suggestion. Use these patches against sendmail 8.9.3 and add
> >
> > O RCPTFailDelay=30
> >
> > to sendmail.cf to make sendmail sleep() for 30 seconds before reporting any
> > "550" errors. Set the value to 0 for "normal" behavior.
>
> According to the reports I'm seeing, GeoList Pro does not wait for a
> response from the server -- instead, it streams the RCPT TO commands
> continuously and then reads the results at the end of transmission.
> If that is the case, it doesn't sound like this patch will have any
> effect.
(1) It will slow down your server's responses to GeoList, et al. Set the delay
to 60 seconds and a 5000 word attack could take 83 hours to send the responses
they need (assuming they don't run parallel attacks, and sendmail already has
means to limit such attacks).
(2) sendmail logs the RCPT failure notices via syslog as soon as it sends them
to the client.
Which is why I said the changes would "frustrate current RCPT abuse tools, give
admins more time to notice the failures in the maillog and react". If the
attacker thinks it's worthwhile to wait for the response codes, and you're not
watching your log files, then you're right, these changes won't help you much.
Also I said "current... tools" because a more intelligent harvester could
compare the delay rates of "250" and "550" responses and learn when to time out
and assume the RCPT failed. To get around this you'd need to make a simple
change so that sendmail had a deliberate delay before *all* RCPT responses; that
doesn't seem warranted yet, and would slow legitimate mail delivery. See my
previous post for comments on RFC 1123 and deferring verification.
-Peter
--
Q: How could China track down and punish dissidents more effectively?
A: The new Pentium III chip! http://www.privacy.org/bigbrotherinside/
Intel doesn't care about your privacy. Join the boycott today.
----------------------------------------------------------------------
Date: Sat, 13 Mar 1999 11:36:32 EST
From: Andy Church <[email protected]>
To: [email protected]
Subject: Re: sendmail 8.9.3 patches to curb RCPT harvesters
>> Per Joseph's suggestion. Use these patches against sendmail 8.9.3 and add
>>
>> O RCPTFailDelay=30
>>
>> to sendmail.cf to make sendmail sleep() for 30 seconds before reporting any
>> "550" errors. Set the value to 0 for "normal" behavior.
>
>According to the reports I'm seeing, GeoList Pro does not wait for a
>response from the server -- instead, it streams the RCPT TO commands
>continuously and then reads the results at the end of transmission.
>If that is the case, it doesn't sound like this patch will have any
>effect.
It should work fine, because (1) sendmail won't process anything while
it's sleep()ing, and (2) GeoList will stop sending data when the socket
buffer fills up (because sendmail isn't reading from it).
--Andy Church
[email protected]
http://achurch.dragonfire.net/
----------------------------------------------------------------------
Date: Sat, 13 Mar 1999 13:36:47 +0100
From: [email protected]
To: [email protected]
Subject: Re: SMTP server account probing
On Wed, Mar 10, 1999 at 02:30:25PM -0700, Tobias J. Kreidl wrote:
...
> echo "" >>/tmp/LISTmonit$$
> echo "email for $name overflowed with $size bytes: " >>/tmp/LISTmonit$$
> # check box for multiple messages...
...
> # clean up
> rm -f /tmp/LISTmonit*
> # or use "rm -f /tmp/LISTmonit$$" if you wish
> exit 0
hehe.. not to be too sarcastic.. but on big boxes this wouldn't only lead to
high cpu usage but under certain circumstances also to root compromise..
typo
----------------------------------------------------------------------
Date: Sun, 14 Mar 1999 15:46:52 +0000
From: Kerb <[email protected]>
To: [email protected]
Subject: GLPro.exe spam fix
This is not a complete fix, but it will work until something better comes along.
Take a look at http://www.cana.net/~kerb/sendmail.html for all the details.
-Kerb
If your domain was one of the 4200+ domains hard coded into that new spam program that hits your mail server for active email address, this will fix it. It is a ruleset that
goes in your /etc/sendmail.cf file. I have tested this on my machine running sendmail 8.8.7-20.
Scheck_mail
R$* $: $>3 $1 focus on the host
R$* <@ $+. > $* $1 <@ $2> $3 strip trailing dots
R$* <@ $+ > $* $: $2 isolate the host
R$ . $+ $+ $: $2 strip subdomains
Rwhynot.com $#error $@ 5.7.1 $: "We don't accept mail from you, asshole."
Do this once more for "@savings.com". There are a few versions of this program going around, and so far the reported "MAIL FROM" addresses have been
[email protected], [email protected], and recently, [email protected]. I am guessing that you the reader are not admin on either of those domains, so it would be a
good idea to add this into your sendmail.cf, after all, why should users on savings.com and whynot.com be sending mail FROM your mail server?
Note: This does NOT stop them from dumping the requests on you and sucking up resources, but it DOES keep them from getting valid addresses. Here is a sample
SMTP session with my server:
MAIL FROM:<[email protected]>
553 <[email protected]>... We don't accept mail from you, asshole.
RCPT TO:<root@localhost>
503 Need MAIL before RCPT
And it stops them there... they can get no further. It appears that these MAIL FROM addresses are HARD-CODED into the program, although I cannot confirm that.
As long as they are, you can keep blocking them as they appear. Or better yet, if you know the sendmail configuration well enough to block all MAIL FROM's that do
NOT match your system, then block it there.
This code is by no means a complete fix, but it does stop them from getting any valid email addresses whatsoever. That is the good news. The bad news is that it
doesn't stop them from dumping requests on you and sucking up bandwidth and resources. If you know enough about sendmail configuration to tweak the above code to
automatically disconnect them (or maybe intentionally "forget" to send the FIN packet and make them have to wait for their end of the socket to time-out [idea a la
BugTraq!]) when they try using a MAIL FROM with whynot.com or savings.com, please E-Mail me! [email protected]
`