主页 PC知识 网管技术 黑客帝国 安全技术 开放系统 程序设计 搜索 技术论坛

 

相关联接
 
RHU本级分类

编程语言
程序代码
WIN/*NIX编程
其他类别
JAVA专区

 
RHU阅读排行
·新欢乐时光病毒源代码
·ShixxNote 6.net缓冲区溢出代码
·“BBSxp 5.15”暴库工具源码
·Serv-u本地权限提升漏洞Exp源代码
·一个写硬盘的VBS脚本程序
·冲击波病毒源代码
·超级DDOS源码~每秒>4W
·socks5协议转http协议源码
·得到远程机器MAC地址源代码
·一个简单的CMDSHELL后门

 
 
RHU最新文章
·Python写的蜘蛛程序代码
·C#抓取alexa排名的代码
·一个超级mail蠕虫的诞生
·洪水攻击原理及代码实现全攻略(附源代码)
·修改了一个抓包的程序(c语言队列)
·企业内部AD脆弱密码审计
·用vbs加用户的绝妙方法
·黑客编程利用Debug Api 获得QQ2007密码
·Firewire搞定你的WIN PC的攻击代码来了
·机器狗写入到userinit.exe文件的下载者源码

 
 
RHU相关搜索









 
 
RHU广而告之

 
 
>您的位置:首页 -> 程序设计 -> 程序代码
企业内部AD脆弱密码审计

作者:RHU-TAC编辑员 来自:RHU网络采集 时间:2008-7-11 双击滚屏 收藏本页 字体:


点击 查看RHU2004全年文章


企业内部AD脆弱密码审计
这个是前段时间做的个小脚本,没什么用,审计内部AD脆弱密码的。做这样一些简单的工作,脚本语言确实挺合适的。需要一个普通的AD账号,导出账户名,过滤掉禁用的,然后开始扫描。密码字典按照自己公司的实际情况写就好了,支持%USERNAME%123这样的格式。

脚本里面的各种参数我写死了,因为自己用,不必要敲参数。如果想要用用看,自己改就是了,perl这种东西简单的学一下的话,一个上午就够了。下午不行,这种天气下午只适合睡觉,或者吃点冰绿豆汤之类的东西,反正是不适合看代码。



#!/usr/bin/perl



use warnings;

use strict;

use Win32::OLE;

use Data::Dumper;

use Authen::Simple::ActiveDirectory;



use constant ADS_UF_ACCOUNTDISABLE => 2;

use constant ADS_SCOPE_SUBTREE => 2;



my $server = 'bj.microsoft.com';

my $domain = 'bj.microsoft.com';

my %users;

my @pwds;



select( STDOUT );

$| = 1;



print "Loading account from ad...";



&LoadUser( );



print "done!n";

print scalar(keys(%users))." users loaded!n";



print "Loading password from dic...";

&LoadPwd( );

print "done!n";



open( REPORT, ">report.txt" ) || die "create report error: $!n";

select( REPORT );

$| = 1;

select( STDOUT );



foreach my $user( keys(%users) )

{

foreach my $pwd( @pwds )

{

$pwd =~ s/%USERNAME%/$user/;



my $ret = &TestPwd( $user, $pwd );

if( $ret == 1 )

{

print "cracked! username=$user,password=$pwd,mail=".$users{$user}."n";

print REPORT "cracked! username=$user,password=$pwd,mail=".$users{$user}."n";



last;

}

#print "testing [$user/$pwd] ...n";

}

}

close( REPORT );



sub LoadUser

{

my $objConnection = Win32::OLE->new( "ADODB.Connection" );

my $objCommand = Win32::OLE->new( "ADODB.Command" );



# open ad

$objConnection -> open( "Provider=ADsDSOObject;" );



$objCommand -> {"ActiveConnection"} = $objConnection;



# search what and how

my $cmd = "select userAccountControl,distinguishedName,mail from 'GC://dc=bj,dc=microsoft,dc=com' where objectCategory='user'";

$objCommand -> {"CommandText"} = $cmd;



# import all users

$objCommand -> Properties -> {"Page Size"} = 1000;

# search all subtree

$objCommand -> Properties -> {"searchscope"} = ADS_SCOPE_SUBTREE;



my $objRecordSet = Win32::OLE->new( "ADODB.Recordset" );

$objRecordSet = $objCommand->Execute( ) || die "query data from active directory error,exitn";



while( not $objRecordSet -> eof )

{

my $intUAC = $objRecordSet -> Fields("userAccountControl") -> value;



# remove diable account

if( not ( $intUAC & ADS_UF_ACCOUNTDISABLE ) )

{

my $longName = $objRecordSet -> Fields("distinguishedName") -> value;

my $mail = $objRecordSet -> Fields("mail") -> value;



if( (!defined($mail)) or $mail eq "" )

{

$mail = "null";

}

if( $longName =~ /^CN=([w.-_]+),/ )

{

#print ."n";

my $userName = $1;



chomp( $mail );

chomp( $userName );



$users{$userName} = $mail;

}

}

$objRecordSet -> MoveNext();

}

}



sub LoadPwd

{

open( FH, "<pass.txt" ) || die "Open password dict error,exit!n";



@pwds = <FH>;

chomp( @pwds );

}



sub TestPwd

{

my $username = shift;

my $password = shift;



my $ad = Authen::Simple::ActiveDirectory -> new( host => $server, principal => $domain ) || die "Connected error: $!";



if ( $ad->authenticate( $username, $password ) )

{

return 1;

}

else

{

return 0;

}

}

OVER

[1] 页 RedHyphone.Union 投稿邮箱
[特别声明]:
本站文章大多搜索转载自网络中,如果侵犯了您的权利,请告之我们。本站将立即删除。
本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
查看评论】【向上滚屏】【关闭窗口】【 打印
-相关文章
  • Python写的蜘蛛程序代码
  • C#抓取alexa排名的代码
  • 一个超级mail蠕虫的诞生
  • 洪水攻击原理及代码实现全攻略(附源代码)
  • IE7自动完成口令获取
  • -文章评论 (关闭)
    ·还没有相关的评论!

    网上大名:
    红旋风网络技术联盟 RHUTech.Union
     
    Copyright © 2000-2007 RedHyphone.Union All Rights Reserved. 红旋风联盟版权所有.皖ICP备05011033号
    中国红旋风网络技术联盟 | www.RedHyphone.net
    Mailto:Redhyphone@gamil.com