-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathchangelog
256 lines (207 loc) · 11.3 KB
/
changelog
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
04/Feb/2025
- release version 1.6.0
03/Feb/2025
- new catalog documentation using GitHub Pages, providing detailed explanations, examples, and PCAP files for each example
- major rework of all modules to align with the new documentation format, including examples and in-depth explanations
- added tests (total test count: 2407)
28/Jan/2025
- deprecated the `bigcname` feature, succeeded by the `nfz` modifier
- deprecated the `cgena` feature, succeeded by the `nfz` modifier
- deprecated the `cgenb` feature, succeeded by the `nfz` modifier
- deprecated the `cnamefuzz1` feature, succeeded by the `nfz` modifier
- deprecated the `cnamefuzz2` feature, succeeded by the `nfz` modifier
- deprecated the `dotcname` feature, succeeded by the `nfz` modifier
- deprecated the `illcname` feature, succeeded by the `nfz` modifier
- deprecated the `manycnames` feature, succeeded by the `nfz` modifier
- deprecated the `manylabels` feature, succeeded by the `nfz` modifier
- deprecated the `cutabuf` feature, succeeded by the `cut` modifier
- deprecated the `cutcnamebuf` feature, succeeded by the `cut` modifier
- deprecated the `chunkedcnames` feature, succeeded by the `cnk` modifier
27/Jan/2025
- deprecated the `inj01` feature, succeeded by the `inja` feature
- deprecated the `inj02` feature, succeeded by the `inja` feature
- deprecated the `inj03` feature, succeeded by the `inja` feature
- deprecated the `inj04` feature, succeeded by the `inja` feature
- deprecated the `inj05` feature, succeeded by the `inja` feature
- deprecated the `inj06` feature, succeeded by the `injaaaa` feature
- deprecated the `inj07` feature, succeeded by the `inja` feature
- deprecated the `inj08` feature, succeeded by the `inja` feature
- deprecated the `inj09` feature, succeeded by the `injptr` feature
- deprecated the `inj10` feature, succeeded by the `injns` feature
- deprecated the `inj11` feature, succeeded by the `injns` feature
- deprecated the `inj12` feature, succeeded by the `injns` feature
- deprecated the `inj13` feature, succeeded by the `injns` feature
- deprecated the `inj14` feature, succeeded by the `injcname` feature
26/Jan/2025
- major consolidation of all cache poisoning (record injection) modules, introducing new injection features
- added the `inja` feature for injecting unsolicited A records
- added the `injns` feature for injecting unsolicited NS records
- added the `injaaaa` feature for injecting unsolicited AAAA records
- added the `injcname` feature for injecting unsolicited CNAME records
- added the `injdname` feature for injecting unsolicited DNAME records
- added the `injmx` feature for injecting unsolicited MX records
19/Jan/2025
- overhaul of the `nfz` name fuzzing generator, now supporting variable, parameterized, and customizable malformations
- enhanced the `always` feature feature to support generating a variable number of A or AAAA records
15/Dec/2024
- enhanced the `size` feature to support both A and AAAA records
- enhanced the `self` feature to return both the client's IP address and source port
11/Dec/2024
- added the `cnk` modifier enabling transmission of DNS responses in variable sized chunks
- added the `len` modifier allowing adjusting the DNS packet length (size) in TCP
28/Oct/2024
- added the `queryback4` feature
- added self-DoS protection in the `queryback3` feature
24/Sep/2024
- release version 1.5.0
- adopting the semantic versioning (SemVer)
- added the `nptenumalias` and `nptenumloop` features returning NAPTR records in response to ENUM (E.164) phone number queries
- updated the catalogue documentation
- added tests (total test count: 750)
19/Sep/2024
- send only one alias by default, ensuring uniform behavior across all `alias*` feature (CNAME/DNAME/HTTPS/SVCB/SRV/MX/NS/TXT)
06/Aug/2024
- small fix in matching of underscored domain names for the SRV and SVCB alias/chain/loop features
15/Jul/2024
- added the `add` modifier for appending arbitrary bytes to the end of the packet
- added the `rl` modifier for recalculating the length in TCP in case `cut` or `add` modifiers were used during a request
- updated the catalogue documentation
- added tests (total test count: 746)
- various minor optimizations
12/Jul/2024
- added the `ptralias`, `ptrloop1` and `ptrloop2` features responding with PTR records
- updated the catalogue documentation
- added tests (total test count: 720)
11/Jul/2024
- added the `spfloop`, `spfchain`, `spfalias1` and `spfalias2` features responding with TXT SPF records
- the `loop`, `chain` and `alias` features now also support the NS and SPF (TXT) record types
- added tests (total test count: 714)
10/Jul/2024
- added the `nsloop`, `nschain` and `nsalias` features responding with NS records
- enhanced the tests, `test/test.sh -h` will give usage info
- added tests (total test count: 707)
08/Jul/2024
- release version 1.4
- added the `cut` modifier for cutting arbitrary number of bytes from the end of the packet
- deprecated the `cutabuf` and `cutcnamebuf` features
- added tests (total test count: 678)
05/Jul/2024
- added the `size` feature that responds with the maximum number of A records that can fit in the specified packet size
- added support for DNS compression, configurable via config file
- added the `nc` modifier to not use compression in a response
- added the `fc` modifier to force compression in a response
- added tests (total test count: 669)
- various code optimizations
04/Jul/2024
- optimization in the startup routine to remove all debug messages if debug mode is disabled
- added support for parsing the EDNS0 section, configurable via config file
03/Jul/2024
- added support for the Attrleaf naming pattern (underscored domain names) for the SRV and SVCB alias/chain/loop features
- enhanced the `nfz` modifier, added 4 more variants, now it can produce 49 different domain name variants
- deprecated the `manycnames`, `cnamefuzz1`, `cnamefuzz2` and `illcname` features
- added tests for the Attrleaf naming patterns and additional `nfz` variants (total test count: 612)
- various small fixes in polardns.py
- updated the catalogue documentation
04/Jun/2024
- release version 1.3
- enhanced the `nfz` modifier, which can now produce 45 different parametrized domain name variants
- added tests for the `nfz` name fuzzing modifier (total test count: 545)
- updated the catalogue documentation
03/Jun/2024
- the `schain` feature renamed to `alias` to be consistent with the rest of cn/dn/ht/sv/sr/mx alias features
- the `loop`, `chain` and `alias` features now also support the CNAME/DNAME/HTTPS/SVCB/SRV/MX record types
- added tests for all the new variants (total test count: 438)
- updated the catalogue documentation
31/May/2024
- added the `cnloop`, `cnchain` and `cnalias` features responding with CNAME records
- added the `dnloop`, `dnchain` and `dnalias` features responding with DNAME records
- added the `htloop`, `htchain` and `htalias` features responding with HTTPS records
- added the `svloop`, `svchain` and `svalias` features responding with SVCB records
- added the `srloop`, `srchain` and `sralias` features responding with SRV records
- added the `mxloop`, `mxchain` and `mxalias` features responding with MX records
- added the `nfz` modifier for name fuzzing, which can be utilized in various features
- added tests for all the new features (total test count: 384)
- updated the catalogue documentation
30/May/2024
- optimized the random number generation everywhere to use the random.getrandbits() function which is fastest
29/May/2024
- improved the startup module loading logic to be more robust and user-friendly
- release version 1.2
28/May/2024
- added the `httpsloop` feature for creating alias loops in HTTPS records (RFC 9460)
- added the `httpschain` feature for creating infinite alias chains in HTTPS records (RFC 9460)
- added the `svcbloop` feature for creating alias loops in SVCB records (RFC 9460)
- added the `svcbchain` feature for creating infinite alias chains in SVCB records (RFC 9460)
- added the `dloop` feature for creating alias loops in DNAME records
- added tests for all the new features (total test count: 344)
- updated the catalogue documentation
- small code fixes in polardns.py
23/May/2024
- added the `self` feature for returning the client's IP address (aka. what is my IP)
08/May/2024
- release version 1.1
- update of the documentation
- upon startup, sort the modules in alphabetical order during the construction of polardns_real.py
08/May/2024
- major update of the contribution page
- added steps how to implement new features to PolarDNS
- added steps how to debug PolarDNS in the contribution page
08/May/2024
- added support for standalone feature modules in the form of `.toml` files
- moved the majority of existing features to a modular format
- major cleanup of the polardns codebase
- major review of the variables scope and naming conventions in the code
- adopting a more object-oriented approach for DNS request and DNS response variables
07/May/2024
- release version 1.0
- relocated the BHMEA presentations to another online location
31/Jan/2024
- removed the empty1 test from test.sh, because dig behaves differently when run remotely vs. locally due to ethernet padding
- removed the hard coded IP in the sed command
12/Jan/2024
- edited the test.sh and Dockerfile to use the toml file
- added port and timeout feature to test.sh
- changes to test.sh to permit tests that use a hard coded IP in the DNS response to pass.
- added a comment to the readme about the dig version required for tests.
09/Nov/2023
- cleanup of the `manylabels` feature
- cleanup of the `afuzz1` and `afuzz2` features
- enhanced the `cgena` and `cgenb` features, added more variants
08/Nov/2023
- enhanced the `dotcname` feature, added more variants
- cleanup of the `cgena` and `cgenb` features
07/Nov/2023
- cleanup of the `cutabuf` and `cutcnamebuf` features, should make these as response modifiers in the future (todo)
06/Nov/2023
- added empty/incomplete responses, namely the `timeout` and `close` features
- socketserver has certain limitations when it comes to these features
- cleanup of the alias chain scenarios
03/Nov/2023
- added empty/incomplete responses, namely the `empty5`, `empty6` and `empty7` features
- fixed a bug in the logging causing an exception under certain circumstances
01/Nov/2023
- improved the tests to automatically read the domain name from the polardns.yml
- improved the tests to be indepent on the domain name
29/Oct/2023
- added support for a config file (polardns.yml)
- the domain name and the IPs are now configurable via the config file
19/Oct/2023
- added support for SOA records in the ZONEFILE
18/Oct/2023
- fixed problem with dots `.` in the query domain name not being reflected in the response properly
- enhanced the tests and added 41 more tests (total test count: 293)
17/Oct/2023
- added support for getting version information using `dig version.polar CH TXT` command
16/Oct/2023
- added functionality for CNAME loops
27/Sep/2023
- fixed exception in the `close` feature in UDP mode
26/Jul/2023
- added `flgs` global modifier to allow specifying custom flags in the DNS header
10/Jul/2023
- optimization: got rid of the parsing the request in HEX, parsing it in RAW now
- enhanced parsing of the domain name in the request (added the backslashreplace option in decode())
05/Jul/2023
- added a collection of tests (total test count: 252)
16/Jun/2023
- fixed exceptions when parsing various incomplete requests, too short DNS packets etc.