前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现一个简单的3389读取工具(1)

python实现一个简单的3389读取工具(1)

作者头像
lonelyvaf
发布2018-06-07 14:42:41
1.6K0
发布2018-06-07 14:42:41
举报

记得之前在freebuf看过一篇文章,《Python黑客学习笔记:从HelloWorld到编写PoC》,应该是翻译稿~

里面好像有一篇写到,python脚本转exe,免去环境的苦恼~~

感觉大学都白学了C了,很多东西没有用C实现。

windows下的服务器环境上传nc或者其他的反弹shell脚本又显得很麻烦。

所以如果用python打造出一款简单粗暴,又免环境困扰的小工具还是不错的。

00x1 使用PyInstaller生成可以执行程序

python脚本编译成windows下可执行文件,它可以让你的python脚本跨平台去运行,并且不需要去安装python解释器。首先我们需要下载依赖包。

装最新版本的 pywin32:

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py2.7.exe/download

下载pyinstaller并解压(可以去官网下载最新版):

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win-amd64-py2.7.exe/download

安装PIL-1.1.7.win32-py2.7的时候,无法在注册表中识别出来python2.7

方法:新建一个register.py 文件,把一下代码贴进去,保存

http://effbot.org/zone/python-register.htm

显示“python 2.7 is already registered”

再安装setuptools的时候,就能自动识别出来python2.7了。

win7是 64的原因,在安装python(32位)时,如果选择只为当前用户,以上问题是不会出现的,如果选择所有用户,那就用上面的方法解决吧。

安装完环境之后进入cmd ,运行python pyinstaller.py

如果没有安装pywin32的环境

就会提示如下的错误,安装好就会提示usage。

以下是pyinstall的参数列表:

指定打包后只生成一个exe格式的文件

然后我们在用以下python代码生成exe文件:

#encoding:utf-8
import  os
import  re
remote_port = os.popen('REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber')
port = remote_port.read()
get = re.compile('0x.*?\S+')
port = get.findall(port)
port  = port[0]
port = int(port,16)
print """
    Read the RDP port
                    --by vaf
"""
if get:
    print "    port is:"+str(port)
else:
    print "    read fair"

原理就是读取注册表中的值

我建议用32位的python环境生成,我以上附的下载链接是64位的,用32位的环境生成的好处就是几乎可以在所有的windows环境运行。正常来说都是向下支持。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 晨星先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档