Linux
本次编译环境为centos6.4 + python3
一、下载python3源码
1、创建安装包存放目录
#mkdir /usr/python
#cd /usr/python
2、下载python3安装包
先安装wget命令
#yum install wget
3、下载python3安装包
3.7官网地址:https://www.python.org/ftp/python/3.7.7/Python-3.7.7rc1.tgz
#wget https://www.python.org/ftp/python/3.7.0/Python-3.7.7rc1.tgz
二、安装依赖包
1、由于目前centos6源地址撤销,故先跟换centos6.4源文件
vim /etc/yum.repos.d/CentOS-Base.repo
内容跟新如下:
[base]
name=CentOS-6
failovermethod=priority
baseurl=https://vault.centos.org/6.9/os/x86_64/
gpgcheck=0
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
2、安装gcc编译器,gcc有些系统版本已经默认安装,通过 gcc --version 查看,没安装的先安装gcc,yum -y install gcc
3、安装其它依赖包,(注:不要缺少,否则有可能安装python出错,python3.7.0以下的版本可不装 libffi-devel )
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
三、升级ssl
由于pip新版本需要使用sv2_3,旧版本v1使用时会报错,故编译源码前先进行openssl源码编译,之后编译python3源码时使用新版openssl,因目前已有编译好的openssl漏洞升级包,故使用漏洞升级包升级ssl。此次环境搭建使用如下版本漏洞升级包。
四、解压安装包,安装python3
#tar -zxvf Python-3.7.7rc1.tgz
进入解压目录执行安装命令
安装python3到/usr/local/python3目录(会在/usr/local 目录下自动创建python3)
#./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/ssl --enable-shared
注意:此处参数表示对openssl源码编译安装路径,python3要求openssl1.0.2或者1.1以上版本否则pip安装时会报错,--enable-shared参数是由于使用pyinstaller打包py文件时要求的,否则会报错
进行安装
#make && make install
四:调整软连接
安装成功后去/usr/bin目录设置python和pip的软连接指向
# cd /usr/bin/
# ln -s /usr/local/python3/bin/python3.7 python3
# ln -s /usr/local/python3/bin/pip3.7 pip3
# find / -name libpython3.7m.so.1.0
将搜索到的路径加入到/etc/ld.so.conf文件中
#/sbin/ldconfig -v
如果输入#python3命令,如下图所示,至此,python3就安装完毕!
五、安装pyinstaller
本次安装使用pip3进行安装(也可下载源码包使用python setup.py install 进行安装)
pip3 install setuptools==40.6.3
pip3 install pyinstaller==3.4
ln -s /usr/local/python3/bin/pyinstaller /usr/bin/pyinstaller
六、安装impacket包
使用pip3进行安装,主要是对依赖包的下载
Pip3 install .
若下载失败,可能是源下载慢导致,请使用国内镜像,目前我们采用临时指定源
Pip3 install . -i https://mirrors.aliyun.com/pypi/simple/
七、使用pyinstaller进行打包
进入examples目录。
pyinstaller --specpath /tmp/spec --workpath /tmp/build --distpath ../bin --clean -F psexec.py
--distpath ../bin表示编译完成包的存放位置,其他参数请使用 –h参数进行查看。
查看编译好的可执行文件:
Windows
1、 机器环境为win10+ anocanda4.8.3,此处不对设置环境变量等操作进行记录。
和linux环境下类似,也是安装pyinstaller进行编译,impacket使用python进行安装。
目前遇到的问题是使用pip3安装时下载缓慢导致失败,解决方式同linux环境下,使用国内源地址,临时更换地址。
Pip3 install . -i https://mirrors.aliyun.com/pypi/simple/
pyinstaller --distpath ../bin --clean -F psexec.py
查看生成的可执行文件
Ps:常见pip源地址:
阿里云:https://mirrors.aliyun.com/pypi/simple/ (测试相对稳定)
清华:https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/