使用增强的psexec在远程计算机上执行其他操作

Enhanced-PsExec的Python项目详细描述


< >!!!!!!!!!!!!!!use"help(pspc)"这将显示可用的方法。(此使用表将包含它,但尚未完成。)!!!!!!!!!!!!!!

关于

epxec(增强型psexec)使用微软的sysinternals psexec实用程序,它使用smb在远程系统上执行程序。 psexec是一个轻量级telnet替代品。
如果发现任何错误,请向gmail.com报告

安装

运行以下命令进行安装:

pip install Enhanced-PsExec

要求

攻击者机器:

  1. 必须安装psexec 如果您有32位安装,请将psexec安装到c:\windows\syswow64
    否则,转到c:\ windows\system32
    推荐:
    pspc类有一个静态方法下载psexec可以为您自动执行该过程。
    运行:pspc.download_psexec()
  2. 必须以管理员身份运行python(ctrl+esc,键入"python",ctrl+shift+enter,alt-y)。

远程电脑:
远程PC(您正在攻击的PC)几乎没有要求;

  1. SMBV2需要在Windows端口上启动并运行。在远程计算机上运行此命令脚本: powershell.exe设置smbserverconfiguration-enablesb2protocol$true

  2. 管理员$共享将启用,并配置用户的读/写访问权限。
    除非机器已经有一个带密码的管理员用户,否则我建议让另一个用户成为管理员。
    CMD:
    net user/add usernametohack passtobeused
    要启用管理员:
    net本地组管理员用户名tohack/add

  3. 您需要添加注册表项。
    这是因为uac被设置成拒绝这样的连接,所以在尝试连接时会出现访问被拒绝错误。
    修复:以管理员身份运行cmd并运行:
    reg add hklm\software\microsoft\windows\currentversion\policies\system/v localaccounttokenfilterpolicy/t reg_dword/d 1/f

  4. 建议:禁用远程计算机上的防火墙。
    这样可以在连接时获得更快的体验。
    还有一种方法可以做到这一点,因此您现在不需要转到远程PC。
    您可以使用:pc.firewallchange(state="rule")
    或者,在administrator命令中的远程计算机上运行此命令:
    netsh advfirewall firewall set rule name="file and printer sharing(smb in)"dir=in new enable=yes
    或者,您可以完全禁用防火墙管理员命令:
    netsh advfirewall设置所有配置文件状态为关闭

  5. 重新启动系统。

导入

要导入包,请使用epsexec import pspc中的

用法

  1. 创建一个pspc类实例。
pc1=PsPc(ip="IPv4",username="username",password="password")

或者,如果要从文件导入:

pc1=PsPc(file="name_of_file.txt")

常规设置:

delay_before---这将暂停操作{delay_before}毫秒,然后再开始操作。(默认值100)
以管理员身份运行---如果为true,它将以管理权限运行操作。(默认为真)

防火墙更改

这可能是最重要的方法。为什么?< BR> 好吧,因为防火墙会使psexec进程非常缓慢(大约需要12秒而不是1秒)。
因此,它变得非常令人沮丧。
模式:

  1. "打开"以启用远程计算机上的防火墙。
  2. "关闭"以禁用远程计算机上的防火墙。
  3. "smb"以添加仅限smb的规则。这将允许W从端口445(SMB)连接
  4. "rdp"添加远程桌面规则,使从远程桌面的连接更容易。

下载NIR

nircmd是一个Windows命令行实用程序,允许您在不显示任何用户界面的情况下执行有用的任务。
不幸的是,nircmd在windows系统上默认不安装。
这就是这种方法存在的原因。所有这些方法都可以使用powershell在远程PC上下载nircmd。
以下方法需要nircmd:

  1. 嘟嘟
  2. 发送屏幕截图
  3. 设置音量
  4. texttospeech

嘟嘟声

需要nircmd
哔声方法采用频率(赫兹)和持续时间(毫秒)参数。
然后它以给定的频率和持续时间播放声音。

获取外壳

getshell方法是最基本的方法。
打开as和管理权限需要一个shell。(默认为"cmd.exe",true)
这是您在另一台电脑上的日常遥控外壳。
您也可以选择powershell而不是cmd

按配置文件设置

此方法是获取一个文件名,其中包含预先制作的计算机信息列表。
此文本文件与openurl用于获取
预先生成的URL,但这是用于计算机的。
示例:

config:IPUSERNAMEPASSWORD10.0.0.15userp@asswordendconfigurls:nameURLyoutubehttps://www.youtube.comendurl

您还可以包含分隔符,例如(逗号)而不是""(空格)

关闭进程

close_process方法接受进程名或进程id,并在程序关闭进程之前延迟等待。
然后它使用taskkill(cmd命令)关闭它。

关闭镀铬

此方法关闭远程计算机上的每个chrome选项卡。
它需要两个参数:runasadmin和delay_before。(默认为真)

texttospeech

需要nircmd
texttoSpeech方法接受一个字符串来说话,而maleVoice是一个布尔值。(默认为真)
然后它使用nircmd在远程PC上说出文本。

设置音量

需要nircmd
set_volume方法将0到100之间的数字作为百分比,并在之前延迟。
然后它在远程PC中打开nircmd,并使用"setsysvolume"设置计算机的音量。
如果音量设置为零,将使远程电脑静音。 如果音量设置为101,将取消远程电脑的静音(电脑可以静音,但音量很高)。

发送屏幕截图

需要nircmd
SendScreenshot记录电子邮件地址并在之前延迟。
它使用nircmd截图,保存到c:\ epsExecScreenshot.png
然后,它使用powershell smtpclient.send()将电子邮件发送到给定的电子邮件地址

打开URL

这种方法是最复杂的方法。
它可能需要多个参数。
建议:转到远程计算机上的chrome://extensions。然后转到Adblocker的设置。
单击"允许匿名进入"。这将允许您的广告拦截器在匿名时。
因此,YouTube歌曲不会加载广告,从而获得更好的体验。

现在我将解释每个参数:
url---这是要在远程计算机中打开的url。如果使用了fromfile的

fromfile---此参数用于获取文本文件并获取每个URL及其快照名称。
查看更多信息

分隔符---仅当您还指定了fromfile-如何分隔每个名称、url

选项卡---此参数负责在远程计算机上打开的选项卡数量。(默认)=1)

delaybefore opening---此参数决定程序在开始操作之前应暂停多长时间(毫秒)。(默认值=100)

delaybetweentabs---此参数决定程序每次打开新选项卡之间应暂停的时间(毫秒)。

新建窗口---此参数决定是否每次都在新窗口中打开选项卡。(默认值=false)

匿名---此参数决定是否以匿名模式打开选项卡。(默认值=false)

不可见---此参数决定是否以不可见且不交互的方式打开选项卡,以便用户不会注意到其已打开,除非窗口播放声音(默认值为false)。

可用的类方法:

HelponclassPsPcinmoduleepsexec:classPsPc(builtins.object)|PsPc(**kwargs)||Methodsdefinedhere:||__getitem__(self,item)||__init__(self,**kwargs)|Initializeself.Seehelp(type(self))foraccuratesignature.||__repr__(self)|Returnrepr(self).||__setitem__(self,key,value)||beep(self,frequency,duration_ms,delay_before=0)||close_chrome(self,delay_before=0)||close_process(self,proc_name,delay_before=0)|proc_name---Theprocesstoclose(couldbeeitheraname,oranID).|delay_before---Theamount(inmilliseconds)topausebeforeclosingtheprocess.||download_nir(self)||enable_remote_desktop(self)||firewallChange(self,state='smb',delay_before=0)|state---Controlstheoperationtoperform.|off/on-Turnoff/onthefirewall.|smb-Addaruletoallowsmbconnections(recommended).|rdp-Addaruletoallowremotedesktopconnections.||delay_before---Theamount(inmilliseconds)topausebeforeperformingtheoperation.||getShell(self,shell='cmd.exe',run_as_admin=True)|shell---programtoopen(default"cmd.exe")|run_as_admin---Shouldtheshellberanwithadministrativeprivileges(defaultTrue)||openurl(self,url='*://*/*',fromFile='fileName.txt',delimiter=' ',tabs=1,new_window=False,delay_before=0,delay_between=10,incognito=False,invisible=False)|URL---ThisistheURLtobeopenedintheremotemachine.If`fromFile`parameterisused,itmustbe:`'*://*/*'`,itsdefault||fromFile---ThisparameterisusedtotakeAtextfileandgeteveryURLanditsshotcutname.|Seemore:https://github.com/orishamir/Epsexec/blob/master/fromFile.md||delimiter---Thisisonlyifyoualsospecified`fromFile`-Howtoseperateeachname,url||tabs---Thisparameterisresponsiblefortheamountoftabstoopenontheremotemachine.(Default=1)|||||incognito---Thisparameterdecidesifthetab(s)wouldbeopenedinIncognitomode.(Default=False)||invisible---Thisparameterdecidesifthetab(s)wouldbeopenedinvisibly,andnotinteractive,sotheuserwouldnotnoticeitsopened,unlessthewindowplayssound(Default=False).||run_command(self,program,arguments,delay_before=0,run_as_admin=True,invisible=False)||send_screenshot(self,email_recipient_addr,delay_before=0)||set_by_config_file(self,file_name,delimiter=' ',extern=False)||set_volume(self,percent,delay_before=0)||startRemoteDesktop(self)||textToSpeech(self,text,male_voice=True,delay_before=0)||----------------------------------------------------------------------|Staticmethodsdefinedhere:||download_psexec()||----------------------------------------------------------------------|Datadescriptorsdefinedhere:||__dict__|dictionaryforinstancevariables(ifdefined)||__weakref__|listofweakreferencestotheobject(ifdefined)

学分

epxec由ori shamir创建。
如果发现任何错误,请向gmail.com报告

更改日志:

0.4.9-修复了两个数据库之间的openurl延迟问题。

0.5.1:

0.5.3:

0.5.5:

0.5.6:

0.5.7:

0.5.9:

0.6.0:

0.6.1:

0.6.2:

0.6.3:

0.6.4:

待办事项:

  1. 添加从配置文件导入计算机的方法(如urls.txt
    1.1)完成了!
  2. 给我建议!在epsexecnoreply@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同