Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $file = "dnsservers.txt";
- $handle = fopen($file, "r");
- if ($handle) {
- while (($server = fgets($handle)) !== false) {
- $server = str_replace("\n", "", $server); //remove trailing \n
- checkForRecursion($server);
- }
- fclose($handle);
- } else {
- // error opening the file.
- echo "Failed to open file $file\n";
- die;
- }
- function checkForRecursion($target) {
- $request = "\xde\xad"; // Transaction-ID 0xdead
- $request .= "\x01\x00"; // flags (recursion desired)
- $request .= "\x00\x01"; // 1 question
- $request .= "\x00\x00"; // 0 answers
- $request .= "\x00\x00"; // 0 authority
- $request .= "\x00\x00"; // 0 additional
- $request .= "\x03www\x09wikipedia\x03org\x00"; // www.wikipedia.org
- $request .= "\x00\x01"; // type A
- $request .= "\x00\x01"; // class IN
- $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
- socket_set_option($sock,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>0,"usec"=>500000));
- $len = strlen($request);
- $port = 53;
- socket_sendto($sock, $request, $len, 0, $target, $port);
- $r = socket_recvfrom($sock, $response, 1024, 0, $target, $port);
- if ($response[3] == "\x80") {
- echo "[+] Recursion appears to be enabled on $target!\n";
- $logfile="recursive.txt";
- $fp = fopen($logfile, "a") or die("Unable to open file!"); fwrite($fp, $target . "\r\n") or die("Unable to write to file!");
- fflush($fp);
- fclose($fp);
- return true;
- } else if ($response == "") {
- echo "[-] No response from $target.\n";
- return false;
- } else {
- echo "[-] Recursion appears to be disabled on $target.\n";
- return false;
- }
- socket_close($sock);
- }
- ?>
Add Comment
Please, Sign In to add comment