首页
社区
课程
招聘
[分享]生成发送修改密码工具说明
发表于: 2014-12-12 21:33 4543

[分享]生成发送修改密码工具说明

2014-12-12 21:33
4543
声明:本帖工具和实例代码非本人完全原创(除了生成密码工具完全原创,其他代码参考自网络),工具不可用于非法目的,请保持工具的纯净和完整,有错误之处欢迎批评指正,谢谢!

原帖见:http://bbs.pediy.com/showthread.php?t=195432

附件1: 检测网络状态.rar

附件2: 生成密码.rar

附件3: 发送邮件.rar

附件4: 一次性生成发送修改密码工具.rar

附件5: 10秒时效密码生成器.rar

传上来的东西没好好写,今天周末,整理一下。下面简要讲下代码的含义:

1.检测网络工具:
首先PING邮件服务器,如果成功记录网络状态,失败则每隔5秒PING下网络,一共PING了5次,5次以后结束检测

2.生成密码工具:
首先生成一个1-62的随机数,62是字典文件中字符的数目,这个随机数作为与字典字符索引比较的值,接着解析字典中每一行,用递增的索引变量与随机数比较,相等则字符串连接索引对应的字符,这就生成了密码的一位,依次循环N次,N就是位数,这里是11

3.发送邮件工具:
使用vbs生成文件,再使用telnet发送邮件,邮件标题是年月日+时分秒,内容是生成的密码

4.最后两个工具:
就是以上的结合

接着讲下我是怎么使用的,大家可以按照自己的需要修改代码并使用:
首先谈下怎样改成自己需要的:
1.检测网络工具可修改的地方:
1.smtp.163.com 改成要探测的IP
2.!idx! EQU 5,5改成要探测的次数
3.ping -n 5 127.0>nul,5改成间隔的秒数

2.生成密码工具可修改的地方:
1.for /L %%i  in  (1,1,11),11改成密码位数,这个位数不能超过字典表.txt中的字符数目
2.!random!%%62+1,62改成字典表.txt中的字符数目
3.字典表.txt可以修改生成密码的字符,并每个字符一行
4.>新密码.txt可以修改>替换文本为>>追加文本

3.发送邮件工具可修改的地方:
1.open 邮件smtp,这里修改成smtp
2.这里填用户名base64加密文改成自己邮箱用户名base64编码,不包括@后内容
3.这里填密码base64加密文改成自己邮箱密码base64编码
4.这里填发件邮箱改成xxx@xxx.com格式
5.这里填收件箱改成xxx@xxx.com格式
6.subject:邮件标题改成邮件标题,我写的是%date:~0,10% %time:~0,8%,表示日期+时间,供参考
7.邮件正文改成正文,这里是生成的密码,写成!key!

4.一次性生成发送修改密码工具可修改的地方:
综合以上并net user a !key!把a改成要修改的账户名

5.10秒时效密码生成器
综合以上

最后说下用途,说下我的,各人可以根据自己的需要:
第一个:
xp下,运行gpedit.msc,计算机配置,windows设置,脚本(启动/关机),以关机为例,启动同,双击“关机”,点击添加,添加完毕点击“显示文件”,把字典表.txt放到里面

第二个:
见附件5

其他问题:
xp下测试通过,win7的话可能涉及UAC和vbsript.dll

完毕

本人很菜,不喜勿喷,也请勿用于非法用途,并保证源码的纯净完整

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1183
活跃值: (3642)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
实现功能:每隔30分钟生成新动态密码并发送到指定邮箱修改账户后转入登录界面
测试环境:163邮箱,QQ邮箱发邮件报错,强烈建议用163邮箱作为发件人
注:1.由于o,O和0,l和1难以区分,所以取消难以区分的字母,便于输入正确密码
    2.此代码具有一定危险性,请谨慎使用,要注意smtp服务器,用户名,密码,发件人和收件人一定要填写正确,
      运行代码前可以建立一个管理员用户,如果无法登陆,可以用管理员登陆查看此文件目录下新密码.txt文件或者
      用U盘下个PE工具清除密码或者在运行前把源代码中& net user a !key!
         && rundll32.exe user32.dll,LockWorkStation删除只看效果,建议只看效果就行了
实例代码:
@echo off
setlocal enabledelayedexpansion
set index=0::运行次数
:1
if !index! EQU 48 ( ::30分钟运行一次,共运行24小时
exit
)
ping -n 1800 127.0>nul ::间隔30分钟,1800秒
@echo 第!index!个30分钟密码
set key=::密码变量
for /L %%i in (1,1,11) do (::11位密码
set /a num=!random!%%59+1::新建"字典表.txt"中字符数目A-Z,0-9,a-z,取消o,O,l,一共59,每个字符一行,生成1-59的随机数
set idx=1::字典表索引变量
for /F %%j in (字典表.txt) do (
if !num! EQU !idx! (::比较随机数索引和字典表索引,相等则字符串连接索引对应字符
set key=!key!%%j
)
set /a idx+=1::索引递增
)
)
@echo 密码是:!key!
@echo !key!>新密码.txt
::vbs发送邮件开始
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open smtp.163.com 25{ENTER}" >>telnet_tmp.vbs::smtp.163.com修改为自己邮箱的smtp服务器
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys "helo abc{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "auth login{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "YQ=={ENTER}" >>telnet_tmp.vbs::YQ==是邮箱用户名base64加密,这里是a
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "YQ=={ENTER}" >>telnet_tmp.vbs::YQ==是邮箱密码base64加密,这里是a
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "mail from:{ENTER}" >>telnet_tmp.vbs::a@163.com发件人
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "rcpt to:{ENTER}" >>telnet_tmp.vbs::a@163.com收件人
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "data{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "subject:%date:~0,10% %time:~0,8%{ENTER}{ENTER}" >>telnet_tmp.vbs::邮件标题,这里是年-月-日 时:分:秒
echo sh.SendKeys "!key!{ENTER}" >>telnet_tmp.vbs:邮件正文,这里是密码变量
echo sh.SendKeys ".{ENTER}" >>telnet_tmp.vbsstart telnet
::vbs发送邮件结束
::执行vbs,修改账户a密码并切换到登录界面,即30分钟后生成密码,发送密码到邮箱,修改密码并切换到登录界面
cscript //nologo telnet_tmp.vbs && del telnet_tmp.vbs & net user a !key! && rundll32.exe user32.dll,LockWorkStation
set /a index+=1
goto :1
2014-12-13 19:34
0
游客
登录 | 注册 方可回帖
返回
//