MSN 密码获取

利用mimikatz查看rdp连接密码【渗透测试】_mimikatz pth rdp szDescription : 本地凭据数据。 阅读详情

 **
** Windows Live Messenger v8.0 Password Finder for Windows XP & 2003
** (Compiled-VC++ 6.0 SP6, tested on WinXP SP2, Windows Live Messenger
8.0.0812.00)
** - Gregory R. Panakkal
** http://www.crapware.tk/
** http://www.infogreg.com/
**/

#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

//Following definitions taken from wincred.h
//[available only in Oct 2002 MS Platform SDK / LCC-Win32 Includes]

typedef struct _CREDENTIAL_ATTRIBUTEA {
   LPSTR Keyword;
   DWORD Flags;
   DWORD ValueSize;
   LPBYTE Value;
}
CREDENTIAL_ATTRIBUTEA,*PCREDENTIAL_ATTRIBUTEA;

typedef struct _CREDENTIALA {
   DWORD Flags;
   DWORD Type;
   LPSTR TargetName;
   LPSTR Comment;
   FILETIME LastWritten;
   DWORD CredentialBlobSize;
   LPBYTE CredentialBlob;
   DWORD Persist;
   DWORD AttributeCount;
   PCREDENTIAL_ATTRIBUTEA Attributes;
   LPSTR TargetAlias;
   LPSTR UserName;
} CREDENTIALA,*PCREDENTIALA;

typedef CREDENTIALA CREDENTIAL;
typedef PCREDENTIALA PCREDENTIAL;


////////////////////////////////////////////////////////////////////

typedef BOOL (WINAPI *typeCredEnumerate)(LPCTSTR, DWORD, DWORD *,
PCREDENTIAL **);
typedef VOID (WINAPI *typeCredFree)(PVOID);

typeCredEnumerate pfCredEnumerate = NULL;
typeCredFree pfCredFree = NULL;

////////////////////////////////////////////////////////////////////

void showBanner()
{
   _tprintf(_T("Windows Live Messenger Password Finder for Windows XP &
   2003/n"));
   _tprintf(_T(" - Gregory R. Panakkal, http://www.infogreg.com
   /n/n"));
}

////////////////////////////////////////////////////////////////////
int main()
{
   PCREDENTIAL *CredentialCollection = NULL;
   HMODULE hAdvapi32DLL = NULL;
   DWORD dwCount = 0;
   DWORD dwTempIndex = 0;
   BOOL bOK = FALSE;

   showBanner();

   do
   {
      
       hAdvapi32DLL = LoadLibrary(_T("advapi32.dll"));

       if(NULL == hAdvapi32DLL)
       {
           _tprintf(_T("Error loading advapi32.dll/n"));
           break;
       }


#ifdef _UNICODE
       pfCredEnumerate =
       (typeCredEnumerate)GetProcAddress(hAdvapi32DLL,
       "CredEnumerateW");
#else
       pfCredEnumerate =
       (typeCredEnumerate)GetProcAddress(hAdvapi32DLL,
       "CredEnumerateA");
#endif

       pfCredFree = (typeCredFree)GetProcAddress(hAdvapi32DLL,
       "CredFree");


       if( pfCredEnumerate == NULL||
           pfCredFree == NULL )
       {
           _tprintf(_T("Error loading Cred APIs/n"));
           break;
       }
 

       //Get an array of 'credential', satisfying the filter
       bOK = pfCredEnumerate(
                   _T("WindowsLive:name=*"),
                   0,
                   &dwCount,
                   &CredentialCollection
                   );


       if(FALSE == bOK)
       {
           _tprintf(_T("Error enumerating credentials/n"));
           break;
       }

 

       for(dwTempIndex=0; dwTempIndex<dwCount; dwTempIndex++)
       {

           _tprintf(
               _T("Username : %s/n"),
               CredentialCollection[dwTempIndex]->UserName
               );
          
           _tprintf(
               _T("Password : %s/n/n"),
               CredentialCollection[dwTempIndex]->CredentialBlob
               );
       }

       //Free credential collection
       pfCredFree(CredentialCollection);


   } while(false);


   //Free lib
   if(NULL != hAdvapi32DLL)
   {
       FreeLibrary(hAdvapi32DLL);
   }

   return TRUE;
}

 

 

/*
*  MSN Messenger v7.5 Password Decrypter Source Code for Windows XP & 2003
*  (Compiled - VC++ 2005, Tested on WinXP SP2, MSN Messenger v7.5.0324)
*      - Gregory R. Panakkal
*        http://www.infogreg.com/
*/

#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>
#include <WinCred.h>
#include <tchar.h>

#pragma comment(lib, "Crypt32.lib")

void showBanner()
{
   _tprintf(_T("MSN Messenger v7.5 Password Decrypter for Windows XP/2003/n"));
   _tprintf(_T("   - Gregory R. Panakkal, http://www.infogreg.com /n/n"));
}

////////////////////////////////////////////////////////////////////
int main()
{
   PCREDENTIAL* CredentialCollection = NULL;
   DATA_BLOB blobCrypt;
   DATA_BLOB blobPlainText;
   DATA_BLOB blobEntropy;
   DATA_BLOB blobDynEntropy;
   HKEY hKeyDynSalt = NULL;
   HKEY hKeyCreds = NULL;
   HKEY hKeyUserCred = NULL;
   DWORD dwRet = 0;
   DWORD dwType = 0;
   DWORD dwDataSize = 0;
   DWORD dwTemp = 0;
   PBYTE pDynamicSalt = NULL;
   PBYTE pEncPassword = NULL;
   TCHAR szMsgrUserName[MAX_PATH];
   DWORD dwCount = 0;
   REGSAM RegSAM = KEY_READ;
   WCHAR szEntropy[] = L"%GKP$^%^&LL(%^$^O&TR$^%^GV6;lxzd";

   ZeroMemory(&blobCrypt, sizeof(blobCrypt) );
   ZeroMemory(&blobPlainText, sizeof(blobPlainText) );
   ZeroMemory(&blobEntropy, sizeof(blobEntropy) );
   ZeroMemory(&blobDynEntropy, sizeof(blobDynEntropy) );

   showBanner();   

   do
   {
       //
       // Allocate some memory!
       //
       pEncPassword = (PBYTE)malloc( MAX_PATH );

       if(NULL == pEncPassword)
       {
           _tprintf(_T("ERROR: malloc failed!"));
           break;
       }


       //
       // Fetch & Calculate Dynamic Salt
       //
       dwRet = RegOpenKeyEx(
                   HKEY_CURRENT_USER,
                   _T("SOFTWARE//MICROSOFT//IdentityCRL//Dynamic Salt"),
                   0,
                   RegSAM,
                   &hKeyDynSalt
                   );

       if(ERROR_SUCCESS != dwRet)
       {
           _tprintf(_T("ERROR: Cannot opening dynamic salt reg key!"));
           break;
       }

       dwTemp = sizeof(dwDataSize);

       dwRet = RegQueryValueEx(
                   hKeyDynSalt,
                   _T("Size"),
                   NULL,
                   &dwType,
                   (LPBYTE)&dwDataSize,
                   &dwTemp
                   );

       if( ERROR_SUCCESS != dwRet ||
           REG_DWORD != dwType ||
           sizeof(DWORD) != dwTemp )
       {
           _tprintf(_T("ERROR: Cannot fetch dynamic salt data size!"));
           break;
       }

       pDynamicSalt = (PBYTE)malloc( dwDataSize );

       if(NULL == pDynamicSalt)
       {
           _tprintf(_T("ERROR: malloc failed!"));
           break;
       }

       dwTemp = dwDataSize;

       dwRet = RegQueryValueEx(
                   hKeyDynSalt,
                   _T("Value"),
                   NULL,
                   &dwType,
                   (LPBYTE)pDynamicSalt,
                   &dwTemp);


       if( ERROR_SUCCESS != dwRet ||
           REG_BINARY != dwType ||
           dwDataSize != dwTemp )
       {
           _tprintf(_T("ERROR: Cannot fetch dynamic salt data!"));
           break;
       }

       //Initial Crypt Blob
       blobCrypt.pbData = (LPBYTE)pDynamicSalt;
       blobCrypt.cbData = dwDataSize;


       //Initialize Entropy Blob
       blobEntropy.pbData = (LPBYTE)&szEntropy;
       blobEntropy.cbData = 0x40;

       if(FALSE == CryptUnprotectData(
                           &blobCrypt,
                           NULL,
                           &blobEntropy,
                           NULL,
                           NULL,
                           1,
                           &blobPlainText
                       ))
       {
           //something
           break;
       }

       //
       // Construct the 128 Char long Entropy value
       //

       memcpy(
           blobCrypt.pbData,
           blobEntropy.pbData, blobEntropy.cbData
           );

       memcpy(
           blobCrypt.pbData + blobEntropy.cbData,
           blobPlainText.pbData,
           blobPlainText.cbData
           );

       blobEntropy.cbData += blobPlainText.cbData;
       blobEntropy.pbData = blobCrypt.pbData;


       //Free memory & Zero-off Blob structure
       LocalFree(blobPlainText.pbData);
       ZeroMemory(&blobPlainText, sizeof(blobPlainText));


       //
       // Enumerate all the stored credentials in the registry
       //

       dwRet = RegOpenKeyEx(
                   HKEY_CURRENT_USER,
                   _T("SOFTWARE//MICROSOFT//IdentityCRL//Creds"),
                   0,
                   RegSAM,
                   &hKeyCreds
                   );

       if(ERROR_SUCCESS != dwRet)
       {
           _tprintf(_T("ERROR: Cannot opening credential key!"));
           break;
       }

       while( true )
       {
           dwRet = RegEnumKey(
                       hKeyCreds,
                       dwCount,
                       (LPTSTR)&szMsgrUserName,
                       MAX_PATH
                       );

           if( ERROR_SUCCESS != dwRet )
           {
               break;
           }

           dwRet = RegOpenKeyEx(
                       hKeyCreds,
                       szMsgrUserName,
                       0,
                       RegSAM,
                       &hKeyUserCred
                       );

           if(ERROR_SUCCESS == dwRet)
           {
               dwTemp = MAX_PATH;


               //
               // Read encrypted passsword
               //

               dwRet = RegQueryValueEx(
                           hKeyUserCred,
                           _T("ps:password"),
                           NULL,
                           &dwType,
                           (LPBYTE)pEncPassword,
                           &dwTemp);

               if( ERROR_SUCCESS == dwRet &&
                   REG_BINARY == dwType )
               {
                   blobCrypt.pbData = (LPBYTE)pEncPassword;
                   blobCrypt.cbData = dwTemp;

                   //
                   // Decrypt & Display Credential Info!
                   //
                   if(TRUE == CryptUnprotectData(
                                       &blobCrypt,
                                       NULL,
                                       &blobEntropy,
                                       NULL,
                                       NULL,
                                       1,
                                       &blobPlainText
                                   ))
                   {
                       _tprintf(
                           _T("Username : %s/nPassword : %ws/n/n"),
                           szMsgrUserName,
                           blobPlainText.pbData
                           );

                       LocalFree(blobPlainText.pbData);
                   }
               }

               //Close User Cred Key
               RegCloseKey(hKeyUserCred);
               hKeyUserCred = NULL;
           }

           dwCount++;
       }

   }while(false);


   if(NULL != pDynamicSalt)
   {
       free(pDynamicSalt);
   }

   if(NULL != pEncPassword)
   {
       free(pEncPassword);
   }

   if(NULL != hKeyCreds)
   {
       RegCloseKey(hKeyCreds);
   }

   if(NULL != hKeyDynSalt)
   {
       RegCloseKey(hKeyDynSalt);
   }
}

Windows客户端开发--通过CREDENTIAL保存用户名和密码 做windows客户端,尤其是c/s开发,几乎都要接触到用户的登录。需要用户名和密码,那么我们往往要对用户名和密码就行保存。方案1:写入ini配置文件 用过配置文件保存用户名和密码,密码肯定是不能实明文了,需要采用一定的加密算法。 但是,这是最大的麻烦,就是很容易被破解,反加密,得到用户的密码。 如何读取ini文件,请看:http://blog.youkuaiyun.com/wangshubo1989/a 阅读详情

相关推荐

Unity Android平台下插件/SDK开发通用流程

本文主要面向对Android开发不甚了解的Unity开发者,介绍了基于最新的Android Studio的标准Android开发环境与项目结构的配置流程,在此基础上,开发者可以快速的进行SDK的接入与插件的开发。

ZhangDi2017的博客 1万+

VC编程获取MSN口令的代码

MSN Messenger uses Windows Credential UI [credui.dll] on WinXP/2003. Password-Storage mechanism differs in these OSes so, the code posted by tombkeeper [http://xfocus.net/articles/200408/726.html] d

海阔天空的专栏 776

告别外置天线!手把手教你用HFSS仿真设计一个20x40mm的433MHz PCB蛇形天线

本文详细介绍了如何使用HFSS仿真工具设计一个20x40mm的433MHz PCB蛇形天线,解决物联网设备小型化中的天线集成难题。通过对比外置天线与PCB天线的性能差异,深入解析蛇形天线的电磁学原理,并提供从建模到优化的全流程实战指南,帮助工程师实现高效、低成本的微型化天线设计。

weixin_30606461的博客 433

Enumerating Windows credentials with CredEnumerate function (Windows XP/2003 Only)

The following code sample enumerates all credentials of the current logged on user, and dump them into the standard output.First, the CWinCredentials class encapsulates the calls to credentials API

1863

别再花屏了!手把手教你用STM32CubeIDE搞定LVGL 8.3移植(附完整源码)

本文详细介绍了如何在STM32CubeIDE环境下成功移植LVGL 8.3,解决常见的花屏问题。从环境配置、显示驱动优化到编译警告处理,提供完整的实战方案和源码示例,帮助开发者快速实现流畅的嵌入式GUI界面。特别针对STM32平台的DMA2D加速和内存管理进行了深度优化。

weixin_33739646的博客 244

浅谈一下小波变换和EEG信号处理

浅谈小波变换,总结不是很到位,请大家指正。

qq_45045249的博客 2864

转一个获取MSN口令的代码

MSN Messenger uses Windows Credential UI [credui.dll]on WinXP/2003. Password-Storage mechanism differs inthese OSes so, the code posted by tombkeeper[http://xfocus.net/articles/200408/726.html] doesn

yztgx的专栏 2002

《Python入门到精通》函数详解

函数就是一段「封装」起来的「代码」,目的是提高代码的「模块性」和「复用性」。 2、函数的参数 2.1、变量的就近原则 2.2、传递参数 2.3、形参和实参 2.4、位置参数 2.5、缺省参数 2.6、可变类型和不可变类型 2.7、关键字参数 3、匿名函数 4、函数的返回值

wangyuxiang946的博客 1万+

通过 DPAPI 获取当前帐号保存的 MSN Messenger 密码

通过 DPAPI 获取当前帐号保存的 MSN Messenger 密码tomekeeper 在水木BBS上贴了一个通过 DPAPI 获取保存的 MSN 密码的代码。其核心思想是从 MSN 加密保存在注册表中的键里,把加密后字符串抠出来,然后使用 DPAPI 的函数 CryptUnprotectData 解密之。关键代码如下://...ret = RegOpenKeyEx(HKEY_CURRENT_

onefish的专栏 1740

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

868

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例

COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。

qq_36130719的博客 158

msn密码获取软件

Msn密码获取工具软件 [url]http://www.antian365.com/bbs/viewthread.php?tid=70&extra=page%3D1[/url] 本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/88019 ...

weixin_33916256的博客 117

24、JavaFX MP3 音频播放器开发详解

本文详细介绍了如何使用JavaFX开发一个功能丰富的MP3音频播放器,涵盖文件拖放加载、音频播放控制、音频频谱可视化、进度定位滑块等核心功能,并提供了完整的代码实现和解析。适合希望学习JavaFX多媒体应用开发的开发者参考。

wind6的博客 170

密码获取.rar

收集到的VNC、IE密码、mail密码,msn等密码获取软件。

weixin_34018169的博客 135

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于MSN的密码验证漏洞

        一直以来我的MSN都是自动登录的,大概也许可能已经有1年多了吧!忘记最初的密码是多少了,想想上面现在还有那么多的朋友、同事,这要是找不回密码还是一件挺困难的事情。于是我先将我的MSN处于登录状态,然后打开网页登录邮箱,密码当然是忘记了,点击找回密码,然后发往MSN帐号的邮箱地址,再从已经登录的MSN进入邮箱,获得重置密码链接。         整个过程一切很简单,没遇到任何

IT有个圈儿 816

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

利用PStore获取帐号信息

1.简介:什么是PStore?   PStore的全称为:Protected Storage。在系统服务中我们可以看到它(9x没有)。它的作用就是为应用程序的安全保存做一个接口。在它里面记录了一些隐密的信息,比方说:   1. Outlook 密码   2. 删除的Outlook帐号密码   3. IE 密码保存站点密码   4. MSN登陆密码   5. IE 自动保

tony的专栏 1722

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

轻易发现你的msn密码

昨天同学问我有msn没有,我当时竟然没有反应过来。因为以为他要msdn,是不是说错了。结果来了句,“什么是msn?”。随即就反应了过来,哦,msn。呵呵,好久不用了。之所以用msn,是为了和msdn论坛里的几个专家讨论一些技术问题。但是,问题解决后,也不怎么联系了,他们貌似都很忙,也不想打扰。自己还是天天开着QQ。同学得到肯定回答后,给我传了一个小软件,叫msnpassfind。我一运行,自己的m...

weixin_30488085的博客 79

1.注册msn邮箱 2.使用MSN

1.按以下地址,申请msn帐号:https://accountservices.passport.net/reg.srf?rollrs=11&id=963&sl=1&vv=30或者申请hotmain帐号:http://www.msn.com.cn/2.到http://www.msn.com.cn/下载Messenger 7.5,安装,执行。3.把刚申请的邮件和密码输入即可登录。另外,用你原来的邮箱

徐晨光 www.xuchenguang.com 8141

SNS网站中怎样获取MSN联系人信息

几乎所有的SNS网站都有[邀请站外好友]加入本站这个功能,当然,我们正在开发的这个名为XXX的网站也不例外,今天学习了一下,把成果向大家做一简单汇报。 这个功能的关键点在于取得用户的已有联系人列表,并发送邀请函(一般都是电子邮件的形式),在这篇文章里,只涉及怎么样取得MSN中联系人信息,如果大家有兴趣,我会把怎么样取得Gmail、Yahoo等的联系人信息代码也都帖上来。 ...

165

SNS网站中如何获取MSN联系人信息

几乎所有的SNS网站都有[邀请站外好友]加入本站这个功能,当然,我们正在开发的这个名为XXX的网站也不例外,今天学习了一下,把成果向大家做一简单汇报。       这个功能的关键点在于取得用户的已有联系人列表,并发送邀请函(一般都是电子邮件的形式),在这篇文章里,只涉及怎么样取得MSN中联系人信息,如果大家有兴趣,我会把怎么样取得Gmail、Yahoo等的联系人信息代码也都帖上来。   ...

x306975056的专栏 324
上一篇: 跟踪Native API函数调用
下一篇: 修改引入表打造穿透KIS6的下载者
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值