 
Following a really small and easy challenge published on PentesterAcademy blog focused on the MACCDC 2012 DNS dataset analysed with ELK, we thought it could be an great exercice to guide you solving it using Squey.
Click on the Local files... button located on the SOURCES section of the start page and browse the compressed dataset.
 
 
The file format and column types will be automatically detected, so just click Yes and Save.
 
 
Unfortunately the dataset isn’t containing a header with column names but don’t worry, we got them from the dataset description:
ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto port query qclass qclass_name qtype qtype_name rcode rcode_name QR AA TC RD Z answers TTLs rejected
Choose Yes, paste the column names provided above, click Ok, then click Save.
 
 
We now have the dataset loaded with the proper column names.
 
Right click on the query column header and select Distinct values.
 
 
Answer: teredo.ipv6.microsoft.com (with 39,273 requests representing 9.2% of all requests)
Select all events by clicking Selection menu and selecting select all events (or just press the a key).
Filter requests with empty DNS queries by right clicking on any value of the query column, select Search for..., paste the (empty) string and click Apply.
 
 
The dataset instantly got filtered and only empty DNS queries are now displayed.
 
Show IP repartition by right-clicking on the id.orig_h column header and selecting Distinct values.
 
Answer: 192.168.202.78 (with 860 empty DNS queries representing 31.2% of all empty DNS queries)
Select all events.
Filter NXDOMAIN requests by selecting NXDOMAIN in the Distinct values dialog of the column rcode_name.
 
 
Show IP repartition by displaying the Distinct values dialog of the id.orig_h column.
 
Answer: 192.168.202.103 (which received 7,471 NXDOMAIN responses, representing 14.8% of all NXDOMAIN responses)
As requests returning NXDOMAIN responses are still selected by previous question, we can directly show the repartition of target IPs and queries by displaying the Distinct values dialogs of both id.resp_h and query columns.
First, we can observe that the target IP 192.168.207.4 is generating 99.8% of all the NXDOMAIN responses (but it is also handling 62.3% of the total DNS requests).
Selecting the target IPs one after another will conveniently filter the distinct values of the query dialog so that you can easily see which domains are being considereded to be non-existant by the target IP.
 
 
 
We can also filter all these 9 target IPs returning NXDOMAIN from the global dataset and observe their respective repartition of NXDOMAIN responses.
 
 
 
Answer: Some target IPs are wrongly returning NXDOMAIN for existing domains. Target IP
192.168.207.4is returning NXDOMAIN for 18.9% of its responses.
Select all events.
Show IP repartition by displaying the Distinct values dialog of the id.orig_h column.
 
Answer: 10.10.117.210 (which sent 75,943 DNS requests representing 17.7% of all DNS requests)
Select all events.
Filter reverse DNS resolution requests by entering the following regular expression in the search dialog of the column query
.*in-addr.arpa$
 
 
 
Answer: 192.168.202.83 (which sent 7,283 reverse DNS requests representing 13.8% of all reverse DNS requests)
Select all events.
Show query type repartition by displaying the Distinct values dialog of the id.orig_h column.
 
Answer: 440 (which represent ~0.1% all of DNS requests)
Select all events.
Filter DNS requests from apple.com subdomains by entering the following text in the search dialog of the column query
.apple.com
 
 
Show DNS requests answers by displaying the Distinct values dialog of the answer column.
 
Isolate the suspicious-looking answer by clicking on it.
 
The column uid is displaying the connection ID of the request.
Answer: CmjiklOm3bnHgctw