This repository has been archived by the owner on Mar 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
makebig.pl
executable file
·119 lines (90 loc) · 5.61 KB
/
makebig.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/perl
# by Jan-Piet Mens
# 2010-02-01 initial dirty version
# 2010-02-02 continues being dirty; added NS glue and CNAMEs
use strict;
use File::Slurp qw(slurp);
use PerlIO::gzip;
my $ipv6 = '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
my @wl = slurpwords('wordlist.gz'); # words MUST be unique
my @cnames = (qw(google.com yahoo.de cnn.com powerdns.org isc.org nlnetlabs.nl));
my $n = 0;
my %unique;
my @fortunes = slurp('files/fortunes');
chomp(@fortunes);
srand (time ^ $$ ^ unpack "%L*", `ps axww | gzip -f`);
print slurp('files/SOA.in'), "\n";
print slurp('files/delegations.in'), "\n";
while ($n < 1000000) {
my $domain = @wl[ int(rand($#wl)) ];
next if defined($unique{$domain});
$unique{$domain} = 1;
if (!($n % 14)) {
printf "%-40s IN CNAME %s.\n", $domain, $cnames[ int(rand($#cnames)) ];
$n++;
next; # no cname and other data...
}
printf '%-40s IN A ', $domain;
$,=".";
print map int rand 256,1..4;
print "\n";
printf "%-40s IN TXT \"zone %07d\"\n", "", $n;
if (!($n % 5)) {
printf "%-40s IN MX 10 xs.powerdns.com.\n", "";
printf "%-40s IN AAAA 2001:1178:6bf::422:9871:1034:1fdb\n", "";
printf "%-40s IN TXT \"%s\"\n", "", @fortunes[ int(rand($#fortunes)) ];
}
if (!($n % 9)) {
printf "%-40s IN LOC 37 23 30.900 N 121 59 19.000 W 7.00m 100.00m 100.00m 2.00m\n", "";
printf "%-40s IN SSHFP 2 1 e3db90da2bbd6ef25fdb63a4e892a3cfd6e3ea50\n", "";
printf "%-40s IN SSHFP 1 1 7bad41a65aa0c86a07900b74a3c48fb80834efa7\n", "";
}
if (!($n % 25)) {
printkeys($domain);
}
if (!($n % 30)) {
printcert();
}
$n++;
}
print "jp-was-here IN TXT \"end-of-file\"\n";
sub slurpwords {
my ($file) = @_;
my @words;
open WORDS, "<:gzip", $file or die $!;
while (<WORDS>) {
next unless (/^[a-z-]+$/i);
next if (/^-/);
chomp;
my $w = lc $_;
# add more words by pushing in -0 -1, ...
push(@words, "${w}");
push(@words, "${w}-0");
push(@words, "${w}-1");
push(@words, "${w}-2");
push(@words, "${w}-3");
push(@words, "${w}-aa");
push(@words, "${w}-ab");
push(@words, "${w}-jp");
push(@words, "${w}-ah");
push(@words, "${w}-44");
push(@words, "${w}-54");
push(@words, "${w}-bh");
push(@words, "${w}-six");
}
close WORDS;
return @words;
}
sub printkeys {
my ($domain) = @_;
print <<END;
$domain 7200 IN KEY 512 3 3 CL4RffcIPWv3HBEl3kmxSMTjE9+rvbIxRep36OirNyONLynrrts2bUs8 u3EnMkEi6Y8niIJG2A7aHWuzerJJ3elq/QDUTUkRxZyod3aY8Fsz/dgr +kLrqdd9NY3OWgRlN+MKODIbm4TZDpcZ/zooWC+jt3HOvEBIPL+GTOeo yzycxECCnM9g6G3qCgqvFrECVI+VfjN2CPC17qUGfiVQgfRsSjLynL0t SqpihGs/rHH7fii1mQ6907sWqcmT3OJF+T50lCc5KMhuTt0/dtnLzioy QbixLKHRylrwbRHW7vgQrOzqHAXCY6O6DpW6QzJ0v6IyBouHD/Gz5L4C byAeHfjICH5yQaitmIMI6CizFGbL7fSVB64T/DwyDlpcYNuTG0GhXbDI G5CaCRcjNnOUyVdair5RQvK7LUaNwAMnupetRX9mx2TyW5MjTdKsJd47 grwrzeS4uY8TvL5N7wwAxHtaGzWq/rzlYQIVEspaPZizXplcQivZ+mE3 sRkv/UP8yzzc+g6WFmBWkleiHKIichl+zc5t
$domain 7200 IN KEY 512 3 1 AwEAAazIX+Ywi7HM6ciZXDR4ACLW0tviuUbP6qnavvSQRaBQMURthX5h OHIdRqbRwi1uXfSpWkrL0yQAzF1H4uW17RP9/PPULNzVY256FSctOrXt 4AmMgtJeLCKxqUjmIrJceEjt+G4Ujwuwzy0fX/Nvj/V2kGMIfJ/dWNDt DcM/eTg1
END
}
sub printcert()
{
print <<END;
CERT 1298 0003 0000 00 9901A20439D8DAF1110400F770EC6AA006076334BEC6DB6FBB237DC194BC0AB8302C8953F04C28FC2085235D4F10EFA027234FBD63D142CCADD5213AD2B79A22C89ED9B4138370D8220D0F987F993A5364A4A7AC3D42F3765C38471DDD0FF3372E4AE6F7BEE1E18EF464A0BEB5BBE860A08238891455EBE7CB53D567E981F78ADBD263206B0493ADCB74DD00A0FF0E9A1CD245415ECEF59435162AFCE4CDD14BC70400EA38FF501256E773DEA299404854D99F4EDB2757AA911A9C77C68AB8D6622E517A556C43D21F0523C568F016CD0DB89EF435F0D53B4E07434213F899E6578955DC2C147931E7B6901C9FD8A02705417D69A879B3CC196D2AC2EAEF311192EE89ABAF5A60942167B4625735FCBDFB5DE0E3AC1236A53FA4D7CDD7D75F5DE85AF50400867D9546B28B79AF10541053CF4AB06A6171BFD21458BFD12AF1AE2B2401CAD8851661F8AF6602F80EDAC99C79616BE1F910F4156242003779C68D7A079A8B18F89DD293E1B247E7420471300A4A0730AA61DE281CCC211FC405A0A8A79877999FF9042AD892AB927DA371E8883BBB370AB7A97841408C3486BB18598CF2559BB42844616E69656C20502E204D61686F6E6579203C64616E6D407072696D652E67757368692E6F72673E884E04101102000E050239D8DAF1040B030102021901000A0910FBBE5A30624BB249FA2E009B057503ED498695AE5ED73CA1B98EBAEE13F717E500A0921E0D92724459100266FEBBC29E911C8B0F530BB43244616E69656C204D61686F6E657920285365636F6E6461727920456D61696C29203C67757368694067757368692E6F72673E8860041311020020050245D49FD7021B23060B090807030204150208030416020301021E01021780000A0910FBBE5A30624BB249158400A082C8AF43DA8B85F740D6B1A6E9FF0B4490520B8C00A08F77D21FBF86C842963E8090DC0646D1DD7F95C9B9020D0439D8DAF4100800F64257B7087F081772A2BAD6A942F305E8F95311394FB6F16EB94B3820DA01A756A314E98F4055F3D007C6CB43A994ADF74C648649F80C83BD65E917D4A1D350F8F5595FDC76524F3D3D8DDBCE99E1579259CDFDB8AE744FC5FC76BC83C5473061CE7CC966FF15F9BBFD915EC701AAD35B9E8DA0A5723AD41AF0BF4600582BE5F488FD584E49DBCD20B49DE49107366B336C380D451D0F7C88B31C7C5B2D8EF6F3C923C043F0A55B188D8EBB558CB85D38D334FD7C175743A31D186CDE33212CB52AFF3CE1B1294018118D7C84A70A72D686C40319C807297ACA950CD9969FABD00A509B0246D3083D66A45D419F9C7CBD894B221926BAABA25EC355E9320B3B00020207FF5E1A3CC5DA00E1E94EC8EF6C7FE9B49D944C71D8BBC817DD8E64A7344B9E48392E0B833B3B1DB7E6D5A38BE2826DEF0060F78C6417871EAF1CFBCBC47D27E93718D975E0A3A36D868C021D6B771740CE2918307D69D614BBF0632DC31932EA31397A7F3B04618C9A76C2F38265C7037E303EDD8AEF03D069208E3FE9C4EA77D83E6311ED36C013D58C54E914B263A459E22D463A0288510C4752B99C163EEA0A55686979691AB0D9F9AA0C06C834446D7A723EC534D819301382621ACF8930C74E9FD28C8797718AEC2C30CF601E24194B799234104A3D6239657B1D4AD545BDAA637F61541435CB51B4D138FBF55E1A9FD2EED860E4459D6795B6FCCA23155A8846041811020006050239D8DAF4000A0910FBBE5A30624BB249415A009E37BCFDC64E76CBF6A8682B85EA161BD1DFB793DF00A0C471BC7B9723535CD855D8FF1EB93F01E251B698
END
}