title: Python实现Flag生成
tags: Python,Flag,攻防
生成Flag
功能:根据不同主机的不同ip地址,在靶机的C盘Flag文件夹中生成Flag.txt文件,为了防止Flag.txt文件被删除,每隔三秒判断一下Flag.txt文件是否存在,不存在就重新生成
# -*- coding:utf-8 -*-
#filename:exist.py
import socket
import hashlib
import os
import time
#获取本地ip地址
localIP = socket.gethostbyname(socket.gethostname())
#创建md5对象
md = hashlib.md5()
#生成加密串
md.update(localIP)
#获取加密串
flag = md.hexdigest()
while True:
filePath = 'c:\Flag'
flagFile = 'c:\Flag\Flag.txt'
#判断c盘下是否存在Flag文件夹,没有则创建
if not os.path.exists(filePath):
os.mkdir(filePath)
#判断c盘下的Flag文件夹中是否存在Flag.txt文件,没有则创建
if os.path.isfile(flagFile):
pass
else:
fobj = open('c:\Flag\Flag.txt', 'w')
fobj.write(flag)
fobj.close()
time.sleep(3)
将python文件打包成exe可执行文件
参考:http://www.itoldme.net/archives/1242
http://legendtkl.com/2015/11/06/pyinstaller
- 下载安装pyinstall,其中,Windows上运行PyInstaller还需要PyWin32或者pypiwin32,其中pypiwin32在你安装PyInstaller的时候会自动安装。
pip install pyinstall
- 将.py文件打包成exe文件,-F用于制作独立的可执行程序,-w:不弹出Dos窗口
pyinstall -F -w exist.py
- 运行完成后会在当前目录下生成一个build和dist文件夹,生成的exist.exe文件会输出到dist文件夹中
用其它文件来调用exist.exe
exist.exe根据需要设置为自启动运行,如果直接把exist.exe文件放到启动文件夹或者启动项中,可能会很容易被找到,导致进程直接被kill掉,所以要用其它自启动文件来调用它(当然查看进程后,还是很容易被找到的)
# -*- coding:utf-8 -*-
#filename:start.py
import os
cmd = 'exist.exe'
tmpdir = 'c:\Flag'
os.chdir(tmpdir)
os.system(cmd)
将start.py打包成start.exe放到开启启动项中