powershell脚本之windows服务与进程

前端之家收集整理的这篇文章主要介绍了powershell脚本之windows服务与进程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 

自动完成的,不需要和用户交互的过程,可长时间运行的可执行应用程序

cpu、内存等资源

cpu时间片等资源,这一次运行就对应一个“进程”

登录账户有三种:

1.)

 

用户组,因此所有本地Administrators用户能够进行的操作该账户也能够进行。

文件的权限(NTFS   文件系统)和注册表权限,甚至占据所有者权限来取得访问资格。如果机器处于域中,那么运行于Local   System账户下的服务还可以使用机器账户在同一个森林中得到其他机器的自动认证。最后一点就是运行于Local   System下的进程能够使用空会话(null  session)去访问网络资源。

三、Local  Service(本地服务)

方法启动服务,net和sc,net用于打开没有被禁用的服务,语法是:

自动

属性,从那里看服务名称,注意是服务名称,不是显示名称

用法:

  

2.开启服务,这里以windows update服务为例

查询服务的状态(sc query 服务名),可以看到服务状态时关闭的。

  

查询服务状态   #开启服务可以在非以”管理员运行cmd”下开启服务

  

关闭服务  关闭服务必须在”以管理员运行的状态下运行”下关闭服务,不然会提示”拒绝访问”

  

  

自动或者手动(sc config 服务名 start =demand/auto)再使用sc start服务名或者net 服务名开启服务  #等号和值之间需要一个空格

  

 

  

301ef01476af5ac0682bbd1ab3123.png" alt="">

名称、可执行文件的路径、服务状态、启动类型的localsystem.log文件(fl 以列表形式显示

  

自动)的服务

 

文件,可得所有的启动类型为自动的服务

 

代码如下: 

< -Object的另一个别名 可以使用 Get-Alias -Definition Where-Object 查看Where-% 是foreach-Object的另一个别名 可以使用 Get-Alias -Definition -object 查foreach- =get-wmiobject win32_service =@=@() =@<span style="color: #0000ff;">foreach(<span style="color: #800080;">$i <span style="color: #0000ff;">in <span style="color: #800080;">$aaa) <span style="color: #008000;">#<span style="color: #008000;">遍历对象数组
<span style="color: #000000;">{
<span style="color: #0000ff;">if
(<span style="color: #800080;">$i
.startname <span style="color: #008080;">-like
<span style="color: #800000;">"
<span style="color: #800000;">LocalSystem
<span style="color: #800000;">"
<span style="color: #000000;">)
{
<span style="color: #800080;">$s1
+=<span style="color: #800080;">$i
<span style="color: #008000;">#
<span style="color: #008000;">添加数组

<span style="color: #000000;"> }
<span style="color: #0000ff;">elseif
(<span style="color: #800080;">$i
.startname <span style="color: #008080;">-like
<span style="color: #800000;">"<span style="color: #800000;">NT AUTHORITY\LocalService<span style="color: #800000;">"<span style="color: #000000;">)
{
<span style="color: #800080;">$s2+=<span style="color: #800080;">$i<span style="color: #000000;">
}
<span style="color: #0000ff;">else<span style="color: #000000;">
{
<span style="color: #800080;">$s3+=<span style="color: #800080;">$i<span style="color: #000000;">
}
}
<span style="color: #800080;">$s1|fl name,startmode | out<span style="color: #008080;">-file -filepath c:\test\localsystem.log <span style="color: #008000;">#<span style="color: #008000;">按表格输出并保存到文件
<span style="color: #800080;">$s2|fl name,startmode | out<span style="color: #008080;">-file -<span style="color: #000000;">filepath c:\test\localservice.log
<span style="color: #800080;">$s3|fl name,startmode | out<span style="color: #008080;">-file -filepath c:\test\netservice.log

<-方法可以用来更新权限和设定所有权 = =whoami 用户用户名 $a是对象数组,具有split方法 =.split()[1=(net user | where { }).split()[1].trim() 用户所属组 本次实验只适用于用户属于一个组 =Get-WmiObject win32_service |where{.startname .startmode =|where{.pathname <span style="color: #008000;">#<span style="color: #008000;">循环遍历获得所有服务程序的权限 get-acl 获得应用程序的权限,包含若干方法可以用来更新权限和设定所有权<span style="color: #008000;">

<span style="color: #008000;">icacls 也是获得应用程序的权限,不同之处是icacls获得的是对象数组

<span style="color: #800080;">$lujing|<span style="color: #0000ff;">foreach<span style="color: #000000;">{
<span style="color: #0000ff;">Trap{ <span style="color: #008000;">#<span style="color: #008000;">Trap异常处理,遇到错误,丢弃掉,继续往下处理
get-acl <span style="color: #800080;">$_<span style="color: #000000;">.pathname
<span style="color: #0000ff;">continue<span style="color: #000000;">
}

</span><span style="color: #0000ff;"&gt;if</span>($?<span style="color: #000000;"&gt;){
    </span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;********************************************************************</span><span style="color: #800000;"&gt;"</span>
    <span style="color: #800080;"&gt;$_</span><span style="color: #000000;"&gt;.name
    </span><span style="color: #800080;"&gt;$_</span><span style="color: #000000;"&gt;.pathname

    (icacls </span><span style="color: #800080;"&gt;$_</span>.pathname.tostring()|where{<span style="color: #800080;"&gt;$_</span> <span style="color: #008080;"&gt;-like</span> <span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;*$group*</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;}).trim()
}

}

文件路径中Windows错误解释空格。这些服务通常都是以系统权限运行的,如果我们利用这些服务就可能提权到系统权限。例如如下文件路径:

文件路径中的空格,Windows会尝试寻找并执行以空格前单词为名字的程序,操作系统会在文件路径下查找所有可能匹配项直到找到一个匹配为止。例如如下例子,Windows会尝试定位并执行如下的程序:

文件路径包含在引号内。将文件路径包含在引号内会降低这个漏洞的威胁。所以这个漏洞被称为“不带引号的服务路径(Unquoted Service Paths.)”

文件   从github下载:https://www.exploit-db.com/exploits/24872

  

文件

  

文件,放到上面漏洞程序的文件夹中,并把python打包的exe文件重命名为带漏洞的文件名,开启反弹shell服务端脚本,然后重新启动带漏洞的程序的服务。但连接是短暂的,这是因为当一个服务在Windows系统中启动后,它必须和服务控制管理器通信。如果没有通信,服务控制管理器会认为出现了错误,并会终止这个进程。我们所有需要做的就是在终止载荷进程之前,将它迁移到其它进程。

  

 

 

 

---------------------------------------------------------------------------------------------------------------

python 反弹shell请参考:https://www.cnblogs.com/yuzly/p/10473497.html  

 

原文链接:https://www.f2er.com/windows/238284.html

猜你在找的Windows相关文章