CARVIEW |
Select Language
HTTP/2 200
date: Fri, 18 Jul 2025 20:00:41 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"2f1836ee782ac3ba05c259518b962bdf"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=iGpZpc10eT27FcW0FhTLK7Kg7ah8FuLTFzxu1krrEwVhW0ePNX36cdadiNz2sA5jRHa6%2FgMXXLmKz91prN2O1rH8C6uTEQL7HmtD%2B9X9D5a%2FTbTfXXgBE%2FXo3mT3oav563z5b%2FKLrOkvVDZ7X8LsibREwcj33p2MynCQtOibSOmG8aJ%2FzwPltLq8T0LrqZjlnMeB%2B46iX%2F%2BUivfsHoMRbyGwI8JYvvmexkEerHdUEqTK%2Faplhrl7HAj2W5%2Fw%2B9nhX7RqjtbEPC%2BQKkqalqv2mg%3D%3D--QPTaVK68HE5LJ0%2Fk--boVnLWqkOfyWVmtiXU%2FDLg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.441886173.1752868840; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 20:00:40 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 20:00:40 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: D724:FD994:1307C0:1846B1:687AA7E8
GitHub - gamelinux/passivedns: A network sniffer that logs all DNS server replies for use in a passive DNS setup
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 380
A network sniffer that logs all DNS server replies for use in a passive DNS setup
gamelinux/passivedns
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# # ______ ____ __ __ _____ # | __ | @ | \ | \ | || ___| (TM) # | _____|.------. .-----. .-----. _ -. .-.------. | |\ || \| ||___ | # | | | __ ||__ --'|__ --'| |\ Y /| _--__|_| |/ || || \_| | # |__| |____|_||______||______||_| \_/ |_______/|____/ |__|\__||_____| # # A tool to collect DNS records passively to aid Incident handling, Network Security Monitoring (NSM) and general digital forensics. PassiveDNS sniffs traffic from an interface or reads a pcap-file and outputs the DNS-server answers to a log file. PassiveDNS can cache/aggregate duplicate DNS answers in-memory, limiting the amount of data in the logfile without losing the essense in the DNS answer. Example output from version 1.0.0->Current in the log file (/var/log/passivedns.log): #timestamp||dns-client ||dns-server||RR class||Query||Query Type||Answer||TTL||Count 1322849924.408856||10.1.1.1||8.8.8.8||IN||upload.youtube.com.||A||74.125.43.117||46587||5 1322849924.408857||10.1.1.1||8.8.8.8||IN||upload.youtube.com.||A||74.125.43.116||420509||5 1322849924.408858||10.1.1.1||8.8.8.8||IN||www.adobe.com.||CNAME||www.wip4.adobe.com.||43200||8 1322849924.408859||10.1.1.1||8.8.8.8||IN||www.adobe.com.||A||193.104.215.61||43200||8 1322849924.408860||10.1.1.1||8.8.8.8||IN||i1.ytimg.com.||CNAME||ytimg.l.google.com.||43200||3 1322849924.408861||10.1.1.1||8.8.8.8||IN||clients1.google.com.||A||173.194.32.3||43200||2 PassiveDNS works on IPv4 and IPv6 traffic and parse DNS traffic over TCP and UDP. ** How can PassiveDNS be used: ** Typical usages: 1) Search for domain or IP history when working on an incident. Example: Company has malware talking to bad.twittertoday.com. At current time, the domain is resolving to say 202.29.94.200 You search your Flowdata and find the clients talking to that IP and remidate. You look at the Flowdata, and you discover that the date and time the clients first talked to that IP, and concludes that as the time of infection... But using PassiveDNS data, quering the domain, you get following history: FirstSeen | LastSeen | TYPE | TTL | Query | Answer ---------------------------------------------------------------------------- 2011-12-01 | 2011-12-11 | A | 60 | bad.twittertoday.com | 71.51.115.11 2011-12-11 | 2011-12-18 | A | 60 | bad.twittertoday.com | 127.0.0.1 2011-12-18 | 2012-01-14 | A | 60 | bad.twittertoday.com | 202.29.94.200 Going back and searching for 71.51.115.11 in your Flowdata, you find traffic back to the FirstSeen data, and you also see more clients initially infected (so you did not manage to remidate/check out all your clients in the first run by just looking at IP 202.29.94.200). Doing forensics on the the clients you missed in the first run, reveals that they have downloaded a different malware and deleted the initial one, that beeing the reason you did not see flows from them to 202.29.94.200. The new malware gives you new domains and IPs to go look for... 2) Say you have an indication of malicious C&C traffic going to an IP on port 80. The domain used by the alleged malware is supposed to be cc.twittertoday.com. Searching you Flowdata, reveals lots of clients talking to that IP, and you might think that the whole company is p0wned. A quick search in your PassiveDNS DB shows you that the IP in question is also hosting 300 + websites and you might even spot a website hosted on that IP that you are familiar with and that you know lots of people in the company would legit visit daily. Searching your PassiveDNS DB gives you no hits for the domain in question, hopefully meaning that you dont have that malware talking to that domain in your network. 3) You know that *.twittertoday.com are often used in malware and the subdomains change randomly. Many have rules for such domains in their IDS/IPS, sucking up unnecessary juice from the systems. Having a script pre-loaded with a list of regexp of domains and subdomains to watch for and giving you an alert when they hit will give you much better detection on threat based on domains. You can also do a whois for all new top domains seen, correlate the whois info with a list of know bad info, such as the name of the person or company that has registered the domain, telephone/fax numbers, address and so on, ending up with a score that might be high enough for triggering an alert to you :) Questions, suggestions, sugar or flame is always welcome :) I hope PassiveDNS gives you a new tool to fight malware and its herders... (c)2011-2020 - Edward Bjarte Fjellskål
About
A network sniffer that logs all DNS server replies for use in a passive DNS setup
Resources
Stars
Watchers
Forks
Packages 0
No packages published
You can’t perform that action at this time.