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

记得之前在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环境运行。正常来说都是向下支持。

原文发布于微信公众号 - 晨星先生(MoXuanIT)

原文发表时间:2017-04-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安智客

8G内存的电脑编译不了Android O系统?

Android系统的编译工作始终是一件基础性工作,但是随着Android版本的不断升级、Ubuntu的升级、JDK版本的升级等等、以及各种第三方依赖库、不同的系...

19420
来自专栏技术文章

资深专家深度剖析Kubernetes API Server第3章(共3章)

在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中。在本文中我们将探讨如何扩展API资源。

15220
来自专栏Java职业技术分享

如果你想搞懂“分布式锁”,必须要看这篇文章 ,看了很意外!

对于锁大家肯定不会陌生,在 Java 中 synchronized 关键字和 ReentrantLock 可重入锁在我们的代码中是经常见的,一般我们用其在多线程...

5.5K30
来自专栏Pythonista

saltstack高效运维

saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。

25950
来自专栏腾讯Bugly的专栏

dex分包变形记

一、背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。这一问题意...

460110
来自专栏北京马哥教育

windows环境下使用virtualenv对python进行多版本隔离

最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python...

29750
来自专栏后端技术探索

PHP并发IO编程之路

并发IO问题一直是后端编程中的技术挑战,从最早的同步阻塞Fork进程,到多进程/多线程,到现在的异步IO、协程。PHP程序员因为有强大的LAMP框架,对底层方面...

29110
来自专栏java一日一条

Android 中构建快速可靠的 UI 测试

让我一起来看看 Iván Carballo和他的团队是如何使用Espresso, Mockito 和Dagger 2 编写250个UI测试,并且只花了三分钟就运...

6610
来自专栏后端技术探索

PHP并发IO编程之路

并发IO问题一直是后端编程中的技术挑战,从最早的同步阻塞Fork进程,到多进程/多线程,到现在的异步IO、协程。PHP程序员因为有强大的LAMP框架,对底层方面...

68030
来自专栏DT乱“码”

Mongdb,Memcached,Redis的使用区别

简介 MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。 Mysql在大...

340100

扫码关注云+社区

领取腾讯云代金券