#!d:/cygwin/bin/perl.exe # PROJECT HONEY POT ADDRESS DISTRIBUTION SCRIPT # For more information visit: http://www.projecthoneypot.org/ # Copyright (C) 2004-2007, Unspam Technologies, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA # # If you choose to modify or redistribute the software, you must # completely disconnect it from the Project Honey Pot Service, as # specified under the Terms of Service Use. These terms are available # here: # # http://www.projecthoneypot.org/terms_of_service_use.php # # The required modification to disconnect the software from the # Project Honey Pot Service is explained in the comments below. To find the # instructions, search for: *** DISCONNECT INSTRUCTIONS *** # # Generated On: Fri, 21 Sep 2007 17:15:34 -0400 # For Domain: www.alexejromanov.com # # use strict; use Digest::MD5 qw(md5_hex); # *** DISCONNECT INSTRUCTIONS *** # # You are free to modify or redistribute this software. However, if # you do so you must disconnect it from the Project Honey Pot Service. # To do this, you must delete the lines of code below located between the # *** START CUT HERE *** and *** FINISH CUT HERE *** comments. Under the # Terms of Service Use that you agreed to before downloading this software, # you may not recreate the deleted lines or modify this software to access # or otherwise connect to any Project Honey Pot server. # # *** START CUT HERE *** # my $__REQUEST_HOST = 'hpr3.projecthoneypot.org'; my $__REQUEST_PORT = '80'; my $__REQUEST_SCRIPT = '/cgi/serve.php'; # # *** FINISH CUT HERE *** # my $__HPOT_TAG1 = '6630d566e612402251a920471720ac27'; my $__HPOT_TAG2 = 'c13af942ec16062f81f1b25cfa3ddd90'; my $__HPOT_TAG3 = '60eff423c208d7fdab40a0dd2d377e0b'; my $__CLASS_STYLE_1 = 'nezaxixaswic'; my $__CLASS_STYLE_2 = 'lepuswufr'; my $__DIV1 = 'kowr7'; my $__VANITY_L1 = 'MEMBER OF PROJECT HONEY POT'; my $__VANITY_L2 = 'Spam Harvester Protection Network'; my $__VANITY_L3 = 'provided by Unspam'; my $__DOC_TYPE1 = '\n'; my $__HEAD1 = '\n\n'; my $__HEAD2 = 'Bald Possible Music Rollon\n\n'; my $__ROBOT1 = '\n'; my $__NOCOLLECT1 = '\n'; my $__TOP1 = '\n
\n'; my $__EMAIL1A = ''; my $__EMAIL1C = ''; my $__EMAIL2A = ''; my $__EMAIL2C = ''; my $__EMAIL3A = ''; my $__EMAIL3C = ''; my $__EMAIL4A = ''; my $__EMAIL4C = ''; my $__EMAIL5A = ''; my $__EMAIL5C = '..'; my $__EMAIL6A = ''; my $__EMAIL6C = ''; my $__EMAIL7A = ''; my $__EMAIL7C = ''; my $__EMAIL8A = ''; my $__EMAIL9A = '
'; my $__EMAIL9C = '

'; my $__EMAIL10A = ''; my $__LEGAL1 = ''; my $__LEGAL2 = '\n'; my $__STYLE1 = '\n'; my $__VANITY1 = '
@'.$__VANITY_L1.'
'.$__VANITY_L2.'
'.$__VANITY_L3.'
\n'; my $__BOTTOM1 = '
\n\n\n'; sub getLegalContent() { return '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 
k
Th
to
ot
We
re
ag
th
no
We

 
s
Sp
No
sp
pr
au

Em
It
acarriage piano island makeupl
ha
st
va
st
ag

 f
 
Eprecision daily reticulatea
ag
("
th
su
an
of
an
Se
th

 
c
Yo
ma
ab
Vi

VI
PA
SU
i 

elist ugliest notable 
 y
he
bs
ad
ebeach success gasn
em
n-
bs

 

ec
n-
id
og
to

ai
 i
on
sd
or
lu
or
re

i 

ch
ai
Ju
e
ch
d
 f
y
rv
e

 

u
ye
us
si

SI
RT
BS
 

we
ou
rs
it
dt
tsprince ton quick
.
tr
it

 

ia
Hu
er
ra
ma

l
sa
e.
a
ag
e
in
em

 

 p
ns
dispoonfed dog eggs
re
 l
pe
ed
ac
ic
ab

f 

co
ap
e.
to

TO
Y
EQ
h 

bs
 s
te
e
he
 o
Th
an
e.

ek

l
ma
s,
ms
ti

ad
re
 Y
va
e,
of
g
en

 

ar
t
ci
gi
aw
rf
er
ti
e.
ov

o 

ns
pe
dT
rs

RS
OR
UE
i 

it
ub
rm
yo
m
f
ed
sf


 

re
n
 b
 d
ca

dr
co
ou
lu
 a
 t
th
t

 

ty
th
al
st
s
or
al
oncompetitive direct foundation menu
dY
e

 

en
ar
he
 a

 A
iS
NT
 

ei
je
s
u
ca
th
agenitive breezyc
er


 

st
Vi
ot
es
ll

es
gn
 a
e
nd
he
is
an

 

 a
ed
 A
er
ar
me
 a
 b
ou
ag

 

t
 s
 I
gr

GR
EN
 B
 

fr
ct
go
ac
re
e
ce
aarab punyb


 d

ri
si
s,
ig
y.

se
iz
ck
no
/o
se
 W
da

 

gr
ot
ct
ed
ee
d
nd
ro
ic
re

 

to
om
de
ee

EE
DI
RE
 

om
 t
ve
ce
fu
in
ss
le


eS

ct
to
 i
ne


s
ed
no
t
r
 a
eb
ex

 

ee
he
io
 A
ap
en
fs
ug
on
em

a 

fh
ew
nt
 n

 T
NG
AC
 

 w
o
rn
pt
ll
di
or
 w


PE

io
rs
nd
d


on
 t
wl
le
di
dd
si
pr

 

s
r
n"
dm
pl
ti
ta
ht
se
en

 

av
he
if
ot

HA
 A
H
 

hi
th
in
it
y.
vi
ig
it


CI

ns
.t
ex
to


 t
ha
ed
ss
st
re
te
es

 

th
in
)
in
ie
re
te
 a
nt
t.

 

in
re
ie
 t

T
NY
OF
 

ch
e
g
he
 A
du
ht
ho


AL

 o
No
er
 a


hi
t
ge
 t
ri
ss
\'s
sl

 

atdirectional petrol peacocks
gc
sh
is
dh
ly
 c
ga
 t


 

g
fo
r
o

HA
 M
gT
 

 y
fo
ashockc
se
nhoyden major worry senators precedenty
al
sc
ut


 L

n
n-
s,
cc


s
th
 a
ha
bu
es
 e
y

 

 a
on
al
tr
to
fw
ou
in
od


f 

yo
ng
is
us

RV
ES
HE
 

ou
lltrust lush organic
ce
 t
 N
(s
gr
dt


IC

a
Hu
 r
es


si
es
nd
n
ti
.i
ma
pr

 A

ny
ne
l
at
 a
it
rt
st
el


RE

ur
th
 u
e

ES
SA
SE
 T

 a
ow
ss
er
on
)
an
he


EN

vi
ma
ob
s,


te
e
 a
US
on
In
il
oh

PPtank drippy epicurean garrulous isle

 s
cslashandburn husky dirtyt
be
iv
gr
hi
ss
 h
ec


CO

 I
is
ni
tsubalternh

TI
GE
 T
ER

cc
in
 t
ms
-H
wh
te
ge


SE

si
n
ot
 r


 a
em
gr
 $
 o
te
 a
ib

LI

ui
io
 g
eg
ee
n
wi
im
tr


RD

nt
 p
qu
is

NG
(S
ER
MS

es
gs
o
 a
um
o
d
xp


 R

to
Vi
s,
ea


re
ai
ee
50
f
nt
dd
it

CA

t,
n
ov
Co
me
th
th
di
on


Sp

er
ag
el
ta

,
)
MS
 A

se
co
th
nd
anobdurate initiative southeast acid
co
to
re


ES

r\'
si
fc
d,


 c
l
 t
.e
th
io
re
ed

BL

 a
wi
er
nt
nt
e
iroadn
n
ic


OF

ne
e
y
dd

Gchain capitalist assessment cowardly scientificA
TO
 O
ND

d
nd
e
 c
 V
nt
 y
ss


TR

s
to
ra
pc


on
ad
ha
Yo
es
na
ss
.

E 

ct
th
ne
ac
sc
Adfuneral accusation rock augmentative owner
 t
co
is


 V

ta
(t
ma
re

TH
 T
F
eC

th
it
We
on
is
ro
ou
sw


IC

li
rs
wl
om


si
dr
t
uo
e
l
es


LA

io
 o
d
t
be
mi
he
nn
er


IS

Pr
he
tc
ss

ER
HE
SE
ON

is
io
bs
di
it
ls
 u
ri


TI

ce
 i
er
pi


dcommemorativee
es
ea
fu
ad
co
 i


Wh

n
r
by
(t
tw
n
gA
ec
vi


IT

ot
o"
he
 f

IN
 I
RV
DI

 a
ns
it
ti
or
,
nd
tt


ON

ns
nc
s,
le


re
se
ch
rt
dr
ll
s


AN

obottleneck juveniler
ar
 t
he
ee
St
dm
ti
ce


OR

oc
Id
d
or

G,
DE
IC
TI

gr
.
e.
on
s
au
er
en


S 

e
lu
 h
 o


d
s
se
hetoads
es
ec
re


Dg

 p
is
he
 "
ns
at
in
on
io


 U

ol
en
to
 a

 S
NT
E.
ON

ee
Th
 B
sf
to
th
 t
hp


FO

to
deaccessible rat weight chockablock ringed
ar
re


pr
ar
ma
rt
se
ti
co


JU

ro
in
 l
Ad
Ad
e.
 S
 w
fi


SE

 a
ti
 y
ny

TO
IF

S 

me
es
y
(t
 t
or
he
er


R 

 a
,
ve
ga


op
e
il
ag
s
on
gn


RI

ce
gk
aw
mi
mi
 Y
ta
it
pr


 A

dd
fi
ou
 r

RI
IE

OF

nt
e
vi
he
he
s
 T
mmounted deadpan flyi


NO

cc
bu
st
th


ri
pr
ha
re
su
,c
iz


SD

ed
fr
 o
n
n
ou
te
h
oc


ND

repond
er
r
ea

NG
R

 U

 (
te
si
 "
 W
or
er
ss


N-

es
t
er
er


et
ov
dd
e
bs
ha
ed


IC

in
om
f
St
St
 c
.
br
esexcuse region


 A

ss
")
In
so

,
CO

SE

"t
rm
ti
Te
eb
ko
mprotest yearling integrity breezy jams
io


HU

s
ar
s,
 c


ar
id
re
th
ta
rv
 a


TI

gf
ht
th
at
at
on
Yo
ea
s


BU

 r
 i
te
n.

TR
NS

 

he
s
ng
rm
si
th
 o
n


MA

th
e
 o
on


y
ed
ss
asailor prep softshoe tumid extendedt
nt
es
st


ON

br
he
e
e"classic insane difference
ea
se
u
ch
re


SE

ec
f
rn


AN
TI



eW
ar
 (
s
te
er
f
of


N 

e
no
r
te


in
 f
 t
 t
ia
ti
a


 

oarioso joker conscience secretu
 Tstaircase dusty
st
)
re
nt
co
es
ga


 

or
we
et


SF
TU



eb
e
in
of
 s
wi
Se
 t


VIvirtue subtle broadcasting antiestablishment

We
t
an
nt


te
or
he
he
ll
ng
vi




gh
er
at
fo
si
st
ns
 o
rd




de
 s
 P


ER
TE



si
in
ea
gS
haminor
se
rv
he


SI

bs
li
y
pf


ll
sh
 W
 c
y
,
ol




t
ms
e
rh
de
o
eprivate readyn
f
in




d.
us
ro


RI
S



te
 a
ny
er
ll
 m
ic
 o


TO

it
mi
ot
ro


ec
um
eb
om
di
ga
at




by
 o
of
th
nt
th
t
th
g




 A
pe
to


NG
AN



")
dd
 m
vi
 b
ak
e
wn


RS

e
te
he
m


tu
an
si
pi
mi
th
io




 s
f
 r
eh
s
e
to
es
ac




n
ct
co


 Tpensioner public tacit
 A



ii
it
an
ctundra homologous racemice
e
equery sequaciouss
ar
er


 

ap
d
r
th


al
 v
te
la
ni
er
n




uc
Se
es
We
en
juarchitecture classical baritone ambulance
 t
eh
ti




em
 p
l


Od
CC



s
io
ne
")
co
cu
e
 o




pl
to
co
e


ap
is
 c
ti
sh
in
of




hf
rv
id
bs
te
ri
he
Te
on




ai
ot
ad


A
EP



pr
nk
r)
.
ns
se

fh




y
,
mp
We


ro
it
onnonzero cable
on
es
g,
 t




pa
ic
en
it
re
sd
 v
rm
s




l
en
dr


TH
TA



ov
to
 t
Pl
id
 o

th




to
we
ut
bs


pe
obow compactr
ta
,
ot
 a
hi




rt
e
ce
e
d
ic
en
s
un




ad
ti
es


IR
NC



id
 a
he
ea
er
f

e





b
er
it


rt
s
in

he
nd
s




y

so
as
in
ti
ue
of
de




dr
al
s.


D
E



ed
ny

se
ed










e


y.

s


/o







f

to
on
 i

r




es





AN


























r











n






s





D

\n
'; } sub formatHTML { my $s = $_[0]; $s =~ s/\\n/\n/g; return $s; } sub getDocType { return formatHTML($__DOC_TYPE1); } sub getHeadHTML { return formatHTML($__HEAD1); } sub getRobotHTML { return formatHTML($__ROBOT1); } sub getNoCollectHTML { return formatHTML($__NOCOLLECT1); } sub getHeadHTML2 { return formatHTML($__HEAD2); } sub getTopHTML { return formatHTML($__TOP1); } sub getEmailHTML { my $method=$_[0]; my $m=$_[1]; if ($method eq "0" || !$method) { return ""; } elsif ($method eq "1") { return formatHTML($__EMAIL1A.$m.$__EMAIL1B.$m.$__EMAIL1C); } elsif ($method eq "2") { return formatHTML($__EMAIL2A.$m.$__EMAIL2B.$m.$__EMAIL2C); } elsif ($method eq "3") { return formatHTML($__EMAIL3A.$m.$__EMAIL3B.$m.$__EMAIL3C); } elsif ($method eq "4") { return formatHTML($__EMAIL4A.$m.$__EMAIL4B.$m.$__EMAIL4C); } elsif ($method eq "5") { return formatHTML($__EMAIL5A.$m.$__EMAIL5B); } elsif ($method eq "6") { return formatHTML($__EMAIL6A.$m.$__EMAIL6B.$m.$__EMAIL6C); } elsif ($method eq "7") { return formatHTML($__EMAIL7A.$m.$__EMAIL7B.$m.$__EMAIL7C); } elsif ($method eq "8") { return formatHTML($__EMAIL8A.$m.$__EMAIL8B.$m.$__EMAIL8C); } elsif ($method eq "9") { return formatHTML($__EMAIL9A.$m.$__EMAIL9B.$m.$__EMAIL9C); } return formatHTML($__EMAIL9A.$m.$__EMAIL9B.$m.$__EMAIL9C); } sub getLegalHTML { my $legal_text = &getLegalContent; return formatHTML($__LEGAL1.($legal_text).$__LEGAL2); } sub getStyleHTML { return formatHTML($__STYLE1); } sub getVanityHTML { return formatHTML($__VANITY1); } sub getBottomHTML { return formatHTML($__BOTTOM1); } sub performRequest { my $request = $_[0]; my $response = ""; my $head = ""; $head .= "POST ".$__REQUEST_SCRIPT." HTTP/1.1\r\n"; $head .= "Host: ".$__REQUEST_HOST."\r\n"; $head .= "User-Agent: PHPot ".$__HPOT_TAG2."\r\n"; $head .= "Content-Type: application/x-www-form-urlencoded\r\n"; $head .= "Content-Length: ".length($request)."\r\n"; $head .= "Connection: close\r\n\r\n"; use Socket; socket(SH, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!; my $sin = sockaddr_in($__REQUEST_PORT,inet_aton($__REQUEST_HOST)); connect(SH,$sin) || die "\n
Unable to contact the server...
\n"; syswrite(SH, $head, length($head)); syswrite(SH, $request, length($request)); my $line; while ($line = ) { $response .= $line; } close(SH); return $response; } sub prepareRequest { my %postvars = (); my $buffer; my @pairs; my $pair; my $name; my $value; $postvars{"tag1"} = $__HPOT_TAG1; $postvars{"tag2"} = $__HPOT_TAG2; $postvars{"tag3"} = $__HPOT_TAG3; if ($ENV{"SCRIPT_FILENAME"}) { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"SCRIPT_FILENAME"}))); } elsif($ENV{"PATH_TRANSLATED"}) { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"PATH_TRANSLATED"}))); } else { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"X_TOMCAT_SCRIPT_PATH"}))); } $postvars{"ip"} = $ENV{"REMOTE_ADDR"}; $postvars{"svrn"} = $ENV{"SERVER_NAME"}; $postvars{"svp"} = $ENV{"SERVER_PORT"}; $postvars{"svip"} = $ENV{"SERVER_ADDR"}; $postvars{"rquri"} = $ENV{"REQUEST_URI"}; $postvars{"sn"} = $ENV{"SCRIPT_NAME"}; $postvars{"sn"} =~ s/ /%20/g; $postvars{"ref"} = $ENV{"HTTP_REFERER"}; $postvars{"uagnt"} = $ENV{"HTTP_USER_AGENT"}; $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; if ($ENV{'REQUEST_METHOD'} eq "POST" && $ENV{'CONTENT_LENGTH'} > 0 && defined($ENV{'CONTENT_TYPE'})) { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if ($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data; boundary=\"?([^\";,]+)\"?/) { my $boundary = "--".$1; my @multipart = split(/(${boundary}(--)?[\r\n]+)/,$buffer); trim(@multipart); foreach my $part (@multipart) { if ($part =~ /Content-Disposition: form-data; name="([^"]+)"?\r?\n\r?\n(.+)/s) { $name = $1; $value = trim($2); $postvars{"post|$name"} = $value; if (defined($postvars{"has_post"})) { $postvars{"has_post"}++; } else { $postvars{"has_post"} = 1; } } } } elsif ($ENV{'CONTENT_TYPE'} =~ /x-www-form-urlencoded/) { @pairs = split(/&/, $buffer); $postvars{"has_post"} = @pairs; foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%(..)/pack("C", hex($1))/eg; $postvars{"post|$name"} = $value; } } } $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; if ($ENV{'REQUEST_METHOD'} eq "GET" && $ENV{'QUERY_STRING'}) { $buffer = $ENV{'QUERY_STRING'}; @pairs = split(/&/, $buffer); $postvars{"has_get"} = @pairs; foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%(..)/pack("C", hex($1))/eg; $postvars{"get|$name"} = $value; } } return %postvars; } sub transcribeResponse { my $response = $_[0]; my %settings = (); my @directives = (); my @arr = split("\n",$response); my $isParam = 0; my $i = 0; foreach my $v (@arr) { if ($v eq "") { $isParam = 0; } if ($isParam) { my @pieces = split("=",$v,2); $settings{$pieces[0]} = &urldecode($pieces[1]); } if ($v eq "") { $isParam = 1; } } if ($settings{"directives"}) { @directives = split(",",$settings{"directives"}); } return \(@directives,%settings); } print "Content-Type: text/html\n"; print "Cache-Control: no-cache\n\n"; my $response = ""; my $request = ""; my %post = prepareRequest(); foreach my $k (keys %post) { $request .= "&$k=".&urlencode(&stripslashes($post{$k})); } $request = substr($request,1); $response = performRequest($request); if ($response == "-1") { exit(); } my ($directives_ref,$settings_ref) = transcribeResponse($response); my @directives = @$directives_ref; my %settings = %$settings_ref; my $email = $settings{"email"}; my $emailmethod = $settings{"emailmethod"}; if ($directives[0] eq "1") { print getDocType(); } if ($settings{"injDocType"}) { print $settings{"injDocTypeMsg"}; } if ($directives[1] eq "1") { print getHeadHTML(); } if ($settings{"injHead1HTML"}) { print $settings{"injHead1HTMLMsg"}; } if ($directives[8] eq "1") { print getRobotHTML(); } if ($settings{"injRobotHTML"}) { print $settings{"injRobotHTMLMsg"}; } if ($directives[9] eq "1") { print getNoCollectHTML(); } if ($settings{"injNoCollectHTML"}) { print $settings{"injNoCollectHTMLMsg"}; } if ($directives[1] eq "1") { print $settings{"injHead2HTMLMsg"}; } if ($settings{"injHead2HTML"}) { print $settings{"injHead2HTMLMsg"}; } if ($directives[2] eq "1") { print getTopHTML(); } if ($settings{"injTopHTML"}) { print $settings{"injTopHTMLMsg"}; } if ($settings{"actMsgOn"}) { print $settings{"actMsg"}; } if ($settings{"errMsgOn"}) { print $settings{"errMsg"}; } if ($settings{"customMsgOn"}) { print $settings{"customMsg"}; } if ($directives[3] eq "1") { print getLegalHTML(); } if ($settings{"injLegalHTML"}) { print $settings{"injLegalHTMLMsg"}; } if ($settings{"altLegalOn"}) { print $settings{"altLegalMsg"}; } if ($directives[4] eq "1") { print getEmailHTML($emailmethod,$email); } if ($settings{"injEmailHTML"}) { print $settings{"injEmailHTMLMsg"}; } if ($directives[5] eq "1") { print getStyleHTML(); } if ($settings{"injStyleHTML"}) { print $settings{"injStyleHTMLMsg"}; } if ($directives[6] eq "1") { print getVanityHTML(); } if ($settings{"injVanityHTML"}) { print $settings{"injVanityHTMLMsg"}; } if ($settings{"altVanityOn"}) { print $settings{"altVanityMsg"}; } if ($directives[7] eq "1") { print getBottomHTML(); } if ($settings{"injBottomHTML"}) { print $settings{"injBottomHTMLMsg"}; } #################### PERL <-> PHP functions ################ sub file_get_contents { open(FILE, "< $_[0]") or die "can't open $_[0]: $!"; undef $/; my $whole_file = ; # 'slurp' mode $whole_file =~ s/^#![a-zA-Z0-9\/\\\:\.\-\_\~ ]*[\n\r;]//; close(FILE); return $whole_file; } sub basename { return $_[0]; } sub urldecode { my $theURL = $_[0]; $theURL =~ tr/+/ /; $theURL =~ s/%([a-fA-F0-9]{2,2})/chr(hex($1))/eg; $theURL =~ s///g; return $theURL; } sub urlencode { my $theURL = $_[0]; $theURL =~ s/([\W])/"%" . uc(sprintf("%2.2x",ord($1)))/eg; return $theURL; } sub stripslashes { return $_[0]; } sub trim { my $string = shift; for ($string) { s/^\s+//; s/\s+$//; } return $string; }