一个通过GINA拦截 盗窃登陆口令的病毒分析
病毒行为:
1\将资源中的DLL释放到当前目录下
2\设置注册表,将GINA DLL设置为上一步中释放的DLL
DLL行为:
1\在DLL被进程装载时, 装载正常的msgina.dll, 并保存句柄,用于后续调用,保证系统正常运行
2\在hook WlxLoggedOutSAS时, 将第七个参数中的敏感信息保存到文件中.
以下是详细分析:
在资源段中发现一个PE文件.
用IDA查看代码:
此程序先获取了本身的模块句柄,之后传入sub_401080进行操作:
sub_401080中:
将资源段的资源拷贝到了VirtualAlloc申请出来的空间中,并写入到当前目录,文件名为"Msgina32.dll"
返回上一层函数后:
先得到模块全路径文件名并传给Filename,在FileName字符串中查找'\'字符,并将该位置写为NULL,然后将Filename(此时不包括后面的文件名)跟"\msgina32.dll"连接起来,形成完整地路径.
之后将此路径+文件名传入sub_401000:
打开注册表'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'将"GinaDLL"的值改为上面构造的文件路径.
这样,以后使用的ginadll就都是这个恶意软件的ginadll了.
接下来查看这个恶意的DLL:
在DLL入口函数中:
这里用LoadLibrary装载了系统目录下正常的msgina.dll, 并将句柄保存在全局函数hLibModule中, 这样可以让自身完成正常的msgina功能.
接下来查看其它DLL的导出函数:
以上函数均为:
将数字3改为1~28,就是分别对应的函数,此函数gina_x()的作用是返回正常msgina.dll的导出序号为x的函数地址.
sub_10001000如下:
用于得到指定函数地址.
这里的大部分函数,均调用了一下正常msgina.dll里的对应功能函数即返回. 除了
WlxLoggedOutSAS
如果v8获得了WlxLoggedOutSAS的函数地址,之后调用此函数,返回值为v9
如果v9==1,说明函数调用成功,此时v7是一个结构体的指针:
所以之后的sub_10001570的参数其实相当于
将这结构体里的4个字符串指针传入了, 在sub_10001570中:
这里得到了日期时间,以及上面说到的4个值,用户名,域名,用户密码,旧的用户密码,都写入到一个名为msutil32.sys的文件中, 另外这文件是在winlogon进程中的,所以创建的文件应该在system32文件夹下.
一个通过GINA拦截 盗窃登陆口令的病毒分析的更多相关文章
- 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能. 项目是用springMVC+spring+hibernate实现 (和这个没有多大关系) 第一步: 首先 ...
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*; ...
- ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器。用springframework自带的便可
ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器.用springframework自带的便可
- firebug登陆之数据包分析
登陆之数据包分析 工具: python-urllib2 | firefox+firebug或者chrome,用浏览器打开登陆页面之后,按F12键会默认打开开发者工具或者启动firebug,点击n ...
- PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...
- 一个std::sort 自定义比较排序函数 crash的分析过程
两年未写总结博客,今天先来练练手,总结最近遇到的一个crash case. 注意:以下的分析都基于GCC4.4.6 一.解决crash 我们有一个复杂的排序,涉及到很多个因子,使用自定义排序函数的st ...
- 【病毒分析】对一个vbs脚本病毒的分析
[病毒分析]对一个vbs脚本病毒的分析 本文来源:i春秋社区-分享你的技术,为安全加点温度 一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如 ...
- 一个团队和他们的调查表-----("调查表与调查结果分析"心得体会)
注:这篇blog主要是描述六小灵童团队在从接到调查表任务到分析调查数据最后完成本次任务的过程,以及过程中的点滴和心德体会.---蔡何 1.制表历程 随着课程的推进,我们逐步进入了软件项目中比较重要的需 ...
- (转)一个MySQL 5.7 分区表性能下降的案例分析
一个MySQL 5.7 分区表性能下降的案例分析 原文:http://www.talkwithtrend.com/Article/216803 前言 希望通过本文,使MySQL5.7.18的使用者知晓 ...
随机推荐
- ASUS RT-N16 使用OpenWrt 安装 ss记录
本文用于记录一下使用ASUS RT-N16 使用OpenWrt 安装 shadowsocks的过程. 前后一共折腾了一个星期,原先使用的是tomato固件,但是在配置iptables的过程中,执行 r ...
- [C++ Primer Plus] 第9章、内存模型和名称空间(二)课后习题
一.复习题 2.using声明和using编译指令的区别 using声明: using std::cin; using std::cout; using std::endl; using编译指令:us ...
- layui 单选项 点击显示与隐藏
同一个页面有多个单选按钮:https://blog.csdn.net/haibo0668/article/details/86220767
- easyUI使用datagrid-detailview.js实现多级级列表嵌套
转载请注明出处: 注意事项: 原本在谷歌浏览器进行示例测试的,url请求对应的json文件,效果一直显示不出来,换到谷歌和IE是可以正常显示的, 解决方法可参考:http://www.cnblogs. ...
- SAP 跨公司销售业务
SAP 跨公司销售业务 http://blog.sina.com.cn/s/blog_95ac31e30102x5wh.html 分类: SAP_SD SAP 跨公司销售业务 一.业务简介 在由 ...
- 20165306 Exp3 免杀原理与实践
Exp3 免杀原理与实践 一.实践内容概述 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 2.通过组合应用各种技 ...
- SVN导出差异版本更新的文件列表
对于在服务器上没有使用版本控制的运维人员来说,每次SVN修改的文件都需要查看更改日志,一个个查找出来再更新到服务器,过程实在是痛苦 那么有没有一种方法跑个命令比对一下版本就哗啦啦的把修改好的文件复制出 ...
- Manjaro安装后,应该做的操作,仅作为自己备份使用,如有参考不懂,请留言咨询,或Q609916691
家目录下,通用文件夹名称中英文互转: --(1)中文->英文 export LANG=en_US.UTF-8 xdg-user-dirs-update --force --(2)英文->中 ...
- glom初级教程
1.glom介绍 通常对于字典和json的提取我们都是使用如下方式 >>> data = {'a': {'b': {'c': 'd'}}} >>> data['a' ...
- python小技巧---打印出不同颜色的输出
在调试代码时打印常常一种颜色,找个东西真的是很难,在一次听金角大王的视频中听到了个方法,也是喀什使用了,本来不打算做记录了,可是稍微有几天不用,还得翻之前的代码,找着也是听麻烦的,现在在这里做个记录 ...