主流浏览器密码获取-WebBrowserPassView二次开发

来源:互联网 发布:师洋的淘宝店号是多少 编辑:程序博客网 时间:2024/06/15 17:08

WebBrowserPassView二次开发

    关于获取浏览器的保存过的账号密码的问题,之前研究过一次,当时写了chrome相关的分析文档和获取密码源码,整理的代码和思路我整理在了这:

http://blog.csdn.net/u013761036/article/details/53822036   前面是分析思路,地下有代码链接。这里就不再次解释分析细节。这次打算搞一个二次开发,因为前一阵子看到了这个:

http://www.nirsoft.net/utils/web_browser_password.html


    Nirsoft的很多小小工具都挺好的,可以下载下来玩玩。看上面的那个介绍貌似是支持了几乎所有的主流浏览器,而且应该还在持续更新。其实我大体能猜到,他们获取密码的思路应该和我上面整理的差不多,因为当时我自己去琢磨实现过chrome的密码获取,永不了太多时间,只是实现的时候各种细节需要处理,而且要兼容所有浏览器的话正经要拿出些时间来弄,同时各大浏览器在更新,如果我写出了一个软件对外公开之后,后期的维护还是要花时间,于是乎我就想到了 二次开发 这个事,这里说的二次开发并不是平时所见到的那种,获得源码,而后进行改造,或者得到相关公开模块,然后直接调用。这里的二次开发我是要把已有的软件的成果根据实际情况想办法拿出来为我所有,并且开发自由灵活接口,好处就是开发完成后通常不用跟着浏览器的更新而更新,因为有人帮我们做这个事,额...对,这有点猥琐......但是这个思路在很多极限开发中会有很大帮助。这里不深说。

之前自己写过一个工具,功能是获取bilibili以及一些网站视频文件的源地址,写这个东西的起因不是因为我要用这个东西,只是纯粹的一不小心听到了一个网站:

http://www.flvcd.com/

    可以把很多主流的网站视频溯源。当时看到一惊。Soga  还有这种操作,原谅我的无知,之前并不知道还可以网站视频溯源,然后我就在网上查了一些资料,获取视频原地址的思路和原理,看了很多,大体知道了。但是 这个有点类似攻防,需要长期维护。So......我就又懒了,简单分析了下那个网站的网络交互情况,然后自己本地程序模拟了下浏览器的交互请求,再写个界面解析出来,再添加个下载功能就OK了。用了几个月之后发现不能用了,上官网上看了下,貌似改了逻辑。并没有去重新维护再次分析请求协议。因为并不着急用那个工具,其实主要还是时间有限。每天想做的事太多。@硕鼠 请原谅我当时的顽皮,不过放心,只是写着玩,并没有传播工具的使用。同时也羡慕你们 可以做到这种溯源服务 没有被冠上侵权的名号。

    提醒一点,对于很多类似的东西,如果大家决定和我一样搞二次开发玩。最好是先把原理弄清楚就比如我今天要弄这个,我之前已经做了chrome的从分析抓行为到落实代码,到最后执行获取chrome存储密码全过程。然后再想着偷懒。不然的话,收获并不多。

OK开始搞,一步一步来,先分析:

我的思路是这样 

           分析工具->获取结果(做成命令行)->隐藏界面->结构合并并且免杀

(1)用之前最好先简单逆向一下,看看要二次开发的东西自己有什么不在预期内的功能,监控下网络请求什么的,确定下有没有数字签名等等等等。总之尽可能确保你用的东西是安全的,别再自己啥都不知道,弄了个炸弹在自己的程序里。然后还帮忙推广给别人用。这就有点SB了,就比如WebBrowserPassView,一开始我在网上随便下了一个,vt上扫了下,一大半杀软报毒,我仔细一看,连签名都没有,这种情况强烈建议不要用,玩PE结构的都知道这东西很可能被二进制级别改造过,同时也极有可能是利用我今天的姿势,在原有的程序上加壳或者二次开发下,或者最省事的直接就内存加载下,然后改下自己的图标和他一样就行了,然后在植入自己的代码在里面,贼危险,后来在官网上下载了个带签名的,发现报毒情况好很多,当然数字签名并不代表善良。

(2)接下来是想办法把他弄成命令行,如果本身就支持命令行,那最好,但是经验证明很多都不支持命令行,因为很多敏感类工具都是防止你直接带出去当做模块使用做坏事啥的。比如看下今天的主角WebBrowserPassView,在官网上简单逛了一圈,没看到啥命令行支持:

所以要相伴发把下面的信息弄出来:


所以说要把上面获取信息界面里面的东西弄出来,简单用了几下,能马上想到的方法有四个:

姿势1.


    这几个按钮,看到了没,可以通过模拟点击来触发,但是这种东西之前遇到过一个问题,就是为了隐藏界面,很多时候就直接切到虚拟桌面上执行这个程序,但是在虚拟桌面上启动界面程序之后再去模拟点击是由坑的,这个坑自己经理了n次,所以这里不建议用模拟点击,可以这样想,每个按钮或者选项点击后都是给主窗体发送消息的,只要能截获这个消息,并且模拟个窗体发,这样就靠谱了,关于这个软件的这个姿势之后会整理在逆向模块了,这里不细说。

 

姿势2

    刚刚无意中发现一个问题,就是这个工具支持快捷键,可以直接权限并且复制所有内容,这个挺好比较省事,同时更关键的一点是启动这个程序后,默认的焦点是在这个界面上,起码在我桌面上看是这样,虚拟桌面需要单独测试,这样的话貌似可以直接采取模拟按键然后玩剪切板的姿势去弄。虽然在虚拟桌面上模拟按键也可能有坑,但是模拟按键比模拟鼠标点击坑少点。

 

姿势3

   从窗体界面的角度思考这个问题,启动起来之后,根据标题获取到界面句柄,然后一层一层往下获取,最后找到展示的那个界面,然后把所有内容都拿出来就行了,这个思路之前用过,也整理过相关界面获取的笔记在这里:

http://blog.csdn.net/u013761036/article/details/52915146

 

姿势4

    总写外挂的小伙伴可能会第一时间想到这个思路吧,就是直接分析下程序调用相关内存偏移,找到存储结果的地址,按照表面上的那个尿性看,估计是个二位数组把,然后读取出来就行了。

上面的四个思路之后会整理好相关代码。目的是为了学习和分析东西,不是为了把这个功能实现,毕竟业余爱好开发和工作不是一回事。工作要高效,学习要细致嘛(我就是小装B一吧,不要理会我)。

 

(3)上面两步之后就已经能自己随意控制给工具发命令并且获取结果了,接下来就是隐藏界面,这个好办,直接自己开启虚拟桌面,然后在虚拟桌面上跑就行,不知道虚拟桌面的请自行百度补脑。

 

(4)最后一步就是结构规划和免杀

    免杀这里不提,自己想。结构规划的话方法不固定,我打算是这么弄: 

    a.先把工具进行加密:隐藏自己所带的这个原始功能性工具。

    b.然后已资源或者是直接追加到PE结构上的方式把这个加密的东西存在自己的程序上,DLL或者EXE。建议是DLLDLL后期很灵活。

    c. 调用的时候可以直接解密之后,内存加载或者是采用傀儡进程的姿势去在内存里执行,达到文件不落地的目的,同时如果是内存加载的话,可以在b加密的时候直接把PE头里面的相关关键字抹掉,这个我之前在整理DIY PE解析器的时候细说过。如果是傀儡姿势的话就要选好傀儡载体,最好找好载体自己随身携带,不要直接本地获取windows的载体,同一个东西并不是所有的载体都能跑起来,这个之前我测试过。

DIY PE解析器:

http://blog.csdn.net/u013761036/article/details/54882193

内存加载,傀儡进程:

http://blog.csdn.net/u013761036/article/details/53324860

http://blog.csdn.net/u013761036/article/details/53230535

    OK上面就是基本原理,代码的话在之后会整理并且上传,尽可能会把(3)和(4)里面的所有方案用里面提到的姿势实现一遍。

 

原创粉丝点击