getrawinputdata python用input输入列表

你好,我是周杰伦。

恶意代码的分类包括计算机病毒、蠕虫、特洛伊木马、后门程序、Rootkit、流氓软件、间谍软件、广告软件、bot、漏洞利用等。虽然它们的功能和形式不同,但有些技术基本都被它们所使用。本文将简单谈谈它们。

getrawinputdata python用input输入列表

恶意代码常见的功能技术如下:

进程遍历文件遍历密钥记录后门桌面截屏文件监控自删除u盘监控

知己知彼,百战不殆。这里的目的是为反病毒工程师提供参考。不要从事违法的事情。请绕过病毒作者。

0x01 进程遍历

进程遍历获取计算机上所有进程(用户进程、系统进程)的信息,通常是为了检索受害进程,检测其是否运行在虚拟机中,是否存在软件查杀等。有时候反调试技术也会检测进程名,所以进程遍历在恶意代码中非常常见。

特定过程

1调用CreateToolhelp32Snapshot获取所有进程的快照信息。之所以称之为快照,是因为保存了之前的信息,并且这个函数返回了进程快照句柄。

2调用Process32First获取第一个进程的信息,返回的进程信息保存在PROCESSENTRY32结构中。该函数的第一个参数是CreateToolhelp32Snapshot返回的快照句柄。

3循环调用Process32Next从进程列表中获取下一个进程的信息,直到Process32Next函数返回FALSE,GetLastError的错误代码为ERROR_NO_MORE_FILES,则遍历结束。

4关闭快照句柄并释放资源。

遍历线程和流程模块的步骤与上面类似。线程遍历使用Thread32First和Thread32Next,模块遍历使用Module32First和Module32Next。

0x02 文件遍历

文件操作几乎是所有恶意代码的必备功能。木马病毒窃取机密文件,然后打开秘密端口。即使在内核模式下,也经常会创建读写文件,经常会用到file函数。

文件搜索功能主要通过调用FindFirstFile和FindNextFile来实现。

特定过程

1调用FindFirstFile函数,该函数接收文件路径,第二个参数指向指向WIN32_FIND_DATA结构的指针。如果函数成功,则返回搜索句柄。该结构包含文件的名称、创建日期、属性、大小和其他信息。当返回结构中的成员dwFileAttributes为FILE_ATTRIBUTE_DIRECTORY时,表示返回一个目录;否则为文件,根据cFileName获取被搜索文件的名称。如果需要再次搜索目录中的所有子目录文件,则需要判断文件属性。如果文件属性是directory,则继续递归搜索以搜索其目录下的目录和文件。

2调用FindNextFile搜索下一个文件,根据返回值判断是否搜索到该文件。如果没有,文件遍历结束。

3搜索结束后,调用FindClose函数关闭搜索句柄,释放资源缓冲区中的资源。

0x03 按键记录

收集用户的所有关键信息,区分哪些关键信息与账号和密码相似,盗取密码。这里,原始输入模型用于直接从输入设备获取数据并记录关键信息。

为了接收设备原始输入WM_INPUT消息,应用程序必须首先向RegisterRawInputDevice注册原始输入设备,因为默认情况下,应用程序不接受原始输入。

特定过程

1注册原始输入设备

应用程序必须首先创建一个RAWINPUTDEVICE结构,该结构指示它要接受的设备类型,然后调用RegisterRawInputDevices来注册原始输入设备。将RAWINPUTDEVICE结构的成员dwFlags的值设置为RIDEV_INPUTSINK,这样即使程序不在焦点窗口中,它仍然可以接收原始输入。

2.获取原始输入数据

在消息流程中调用GetInputRawData来获取设备的原始输入数据。在WM_INPUT消息处理函数中,参数lParam存储原始输入的句柄。此时可以根据句柄直接调用GetInputRawData函数获取RAWINPUT结构的数据。DwType表示原始输入的类型,RIM_TYPEKEYBOARD表示键盘的原始输入,Message表示对应的窗口消息。WM_KEYBOARD表示普通按键消息,WM_SYSKEYDOWN表示系统按键消息,VKey存储键盘按键数据。

3保存关键信息

GetForegroundWindow获取关键窗口的标题,然后调用GetWindowText根据窗口句柄获取标题并保存在本地文件中。

0x04 后门

后门往往以套件的形式存在,用于向攻击者发送受害者信息或传播恶意可执行程序(下载程序)。最常见的功能是接收攻击者发送的命令,并执行某些操作。

Windows系统中有很多WIN32 API可以执行CMD命令,比如system Winexe CreateProcess。介绍了通过匿名管道实现远程CMD的方法

特定过程

1调用CreatePipe创建匿名管道,并获得管道数据读句柄和写句柄。

初始化STARTUPINFO结构,隐藏进程窗口,并将管道数据写句柄分配给新进程控制台窗口的缓存句柄。

3调用CreateProcess函数创建进程,执行CMD命令并调用WaitForSingleObject等待命令执行。

4根据匿名管道的数据读取句柄,调用ReadFile从匿名管道的缓冲区读取数据。

5关闭句柄并释放资源。

0x05 文件监控

全局钩子可以实现系统监控。Windows提供了一个文件监控接口函数ReadDirectoryChangesW,可以监控电脑上的所有文件操作。

在调用ReadDirectoryChangesW设置监控过滤条件之前,需要通过CreateFile函数打开监控目录,获取监控目录的句柄,然后可以调用ReadDirectoryChangesW函数设置监控过滤条件并进行阻塞。直到有符合监控过滤器条件的操作,ReadDirectoryChangesW才会返回监控数据继续执行。

特定过程

1打开目录,获取文件句柄,调用CreateFile获取文件句柄。文件句柄必须具有FILE_LIST_DIRECTORY权限。

2调用ReadDirectoryChangesW来设置目录监视

3.确定文件操作的类型。只要有符合过滤条件的文件操作,ReadDirectoryChangesW函数就会立即返回信息并返回到输出缓冲区,返回的数据按照结构FILE_NOTIFY_INFORMATION返回。

调用ReadDirectoryChangesW函数一次只会监视一次。为了实现连续监测,需要循环调用程序设置监测,获取监测数据。因为连续目录监控需要反复调用,所以程序会被阻塞。为了解决阻塞主线程的问题,可以创建一个文件监控子线程,并将文件监控的实现代码放到子线程中。

0x06 自删除

自删除功能对于病毒木马来说也是非常重要的。它通常会在完成目标任务后自行删除,不留痕迹。自删除的方法有很多种,包括使用MoveFileEx重启删除和使用批量删除。

MoveFileEx重新开始删除。

MOVEFILE_DELAY_UNTIL_REBOOT的标志只能由具有管理员权限的程序或具有本地系统权限的程序使用,并且该标志不能与MOVEFILE_COPY_ALLOWED一起使用,删除文件的路径需要在前面加上“?"前缀

通过批处理命令删除

del %0 batch命令将删除自己的批处理文件,而不会将其放入回收站。

特定过程

1.构造一个自删除批处理文件。这个批处理文件的作用是在开始删除文件和最后执行自删除命令之前,使用choice或ping命令延迟一定的时间。

在程序中创建新进程,并调用批处理文件。成功创建进程后,程序会立即退出整个程序。

看完这篇文章,你有什么收获吗?欢迎转发分享~

有问题的朋友欢迎留言讨论,也欢迎你直接问我(顺便给我一套安全学习资料)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论