目录
windows文件传输技巧
1.Makecab文件压缩命令
(1)单文件压缩和解压
(2)多个文件压缩和解压
2.Rar文件解压缩工具
(1)单个文件压缩和解压
(2)忽略指定后缀文件压缩
(3)分卷压缩和解压
(4)分卷压缩加解密
3. 7z文件压缩工具
(1)常见参数
(2)压缩文件
(3)解压文件
(4)分卷压缩加解密
Linux文件传输技巧
1.常用的参数
2.单个文件夹打包
3.多个文件夹打包
4.解包文件
5. 压缩文件
6. 解压解包
7.分卷压缩加解密
在渗透的过程中,拿到了一个主机权限后,但是主机中没有一些我们需要的工具,因此需要使用文件传输技术来将本地的文件传输到目标主机,或者将目标主机的一些文件传送到本地,因此就需要使用一些工具和命令来完成这些操作,那么在本篇我就会和大家分别学习一下windows和Linux中的文件传输技巧和命令ヾ(◍°∇°◍)ノ゙
在内网渗透时,当没有rar、7z等压缩工具时候,拖取文件的时候为了防止流量过大,又必须把文件压缩,这时候可以使用Makecab工具,它是Windows自带的压缩文件工具,使用简单方便,不容易暴露,下面就简单演示一下它的基本使用
在Windwos操作系统某个特定的场景中,当需要把1.txt文件压缩成1.zip进行传输,可利用Makecab工具去进行压缩(它支持压缩格式zip、rar、cab),执行命令Makecab 1.txt 1.rar,执行成功,压缩在当前目录下:
如果需要将解压缩,以上述所讲1.rar的文件为例,我们将其压缩包解压为2.txt,直接使用Makecab命令,执行解压命令expand 1.rar 2.txt即可解压缩到当前目录下:
假如需要压缩一个文件夹下中的多个文件时,可以将待压缩的文件名放置到一个文件夹中,执行dir /b > file.txt命令,把要压缩的文件名写入一个txt。
上述操作完成后,执行文件压缩命令makecab /f file.txt即可成功,但压缩多个文件的时,无法指定压缩后的格式:
执行压缩命令成功之后,目录下将生成一个disk1目录,还有两个文件setup.inf和setip.rpt文件
图1-4压缩后的文件列表
进入disk1目录下面,发现这里只有一个1.cab文件:
将其解压,执行对应的解压命令expand 1.cab -f:* F:\tmp\123,需要注意的是必须指定解压文件存放的目录,否则会报错,并且指定解压的文件必须存在:
注意:如果压缩的文件过大需要加上/d maxdisksize=1024000,设置压缩文件允许大小为10M,默认1424KB。
Winrar工具:
没有该工具的小伙伴可以去官网下载:
WinRAR download free and support: 下载 WinRAR (win-rar.com)
rar.exe是Winrar安装目录下的rar.exe文件,当安装完Winrar后,在目录下一般路径为C:\Program Files\WinRAR,去复制该文件到指定Windows主机即可使用。rar常见命令参数如下所示
常用命令参数 | 参数作用 |
---|---|
a | 添加文件到压缩文件中 |
d | 从压缩文件中删除文件 |
e | 解压文件到当前目录 |
u | 更新压缩文件中的文件,把不在压缩文件中的文件添加到里面 |
x | 带绝对路径解压 |
-r | 递归压缩 |
-r- | 不递归压缩 |
-m |
设置压缩模式(按照压缩率)-m0:存储 -m1:最快 -m2:较快 -m3:标准 -m4:较好 -m5:最好 |
-v | 分卷打包(压缩大文件时使用) |
-x |
排除指定文件 |
-y | 对所有问题回答yes |
-hp[p] | 加密数据和头 |
-v | 设置分卷大小 |
在windows系统中进入到rar文件所在目录即C:\Program Files\WinRAR,使用命令行工具打开,执行rar a -r -hptest -m3 file.tar F:\tmp命令对F:\tmp目录下的所有文件夹进行加密递归压缩
压缩后的文件会保存在C:\Program Files\WinRAR路径下,其中a参数表示将文件添加到压缩文件中,-r参数表示递归压缩,-hp参数表示加密数据和头,-m参数表示设置压缩级别,file表示压缩后文件名,F:\tmp表示将要进行文件压缩的路径。
解压缩文件也是需要同上面步骤一样,使用命令行工具打开rar.exe的文件所在地址,在目录下执行rar e ./file.tar -hptest命令,该命令会指定解压缩当前目录下的file.tar文件,解压密码为test:
假设在某些特定的场景中,由于目录中某些格式的文件过大,不需要该文件,进行压缩时需要忽略,可执行rar a -r -hptest -m3 -x*.txt file.tar F:\tmp命令,该命令会在压缩文件时忽略目标文件夹下的所有txt格式文件:
假如想要通过分卷压缩file文件夹内部文件,可以执行“rar a -r -v1K -m3 file.tar F:\tmp命令,-v1m压缩设置分卷压缩的文件为1KB,可以看到生成了2个分卷:
相反,如果我们想要解压缩分卷文件也很简单,只需要对当前目录下的分卷压缩的第一个文件,执行rar x ./file.tar.part1.rar ./file命令即可,虽然命令中只有file.tar.part1.rar文件;
当我们使用Rar压缩工具对数据进行分卷加密压缩时,可以执行Rar.exe a -m5 -v100K test.rar test.txt -p password命令,将一个名为test的文件夹分卷压缩加密成10个单个分卷大小为100KB,压缩级别为5级、压缩密码为password的分卷压缩文件,其中a参数表示将文件添加到压缩文件中,-m参数表示设置压缩级别,-v参数表示设置分卷大小,-p参数为设置密码,test.rar表示分卷压缩加密后的压缩包名称,test.txt表示将要添加到压缩文件中的文件名称。
当需要对分卷加密压缩的文件进行解密解压时,我们只需对test.part01.rar这个加密压缩文件进行解密解压操作即可,我们通过执行rar x test.part01.rar -ppassword命令已完成了分卷解密解压操作。
7z是一款压缩比很高的开源软件,支持Windows系统和linux系统版本,当下载并安装完成后,我们需要到安装目录将其命令行工具(7z.exe)及同目录下的7z.dll共同保存到一个文件夹。使用7z.exe进行命令行操作即可,7z常见命令参数如下,下面以7z工具为案例进行演示使用方法。
常见参数 | 参数作用 |
---|---|
a | 添加压缩文件 |
x | 完整路径释放 |
-r | 递归压缩 |
-p | 指定密码 |
-o | 指定输出目录 |
-v{size} | 分卷压缩 |
假设通过漏洞进入内网获取到权限后,要对其桌面下的test文件夹进行下载读取,考虑到文件存储较大的情况,可利用7z压缩工具的命令行进行压缩,将桌面的文件压缩到当前目录为test.7z的压缩文件,执行7z.exe a -r ./test.7z ./test命令即可压缩:
当需要将文件解压时,可以将上述生成的test.7z文件,解压并改名为test2执行命令7z.exe x ./test.7z -o./test2,此时查看当前目录下,已成功解压缩。
当我们需要使用7z压缩工具对数据进行分卷加密压缩时,可以执行7z.exe a -r -v100K -ptest ./test.7z ./test.txt命令将名称为test的文件夹进行分卷压缩加密:
在这条命令中,-a表示压缩文件,-r表示递归压缩,-v表示分卷压缩,-v参数后面指定了分卷大小,-p表示压缩密码,./test.7z表示分卷压缩加密后的文件名,./test表示将要分卷压缩加密的文件夹。
2)执行完相关分卷压缩命令后,如图所示,可以查看到test文件已经被分卷压缩成了2个加密压缩包。
3)当需要对分卷加密压缩的文件进行解密解压的时候,我们只需选定test.7z.001这个文件进行解密解压即可,如果我们想将上述的分卷加密压缩的文件解压到一个名为test2的文件夹中,我们即可在当前目录下执行7z.exe x -ptest ./test.7z.001 -o./test2命令来完成分卷解密解压操作:
tar是linux系统中最常用的打包命令。文件打包和文件压缩是两个概念,文件打包是将一大堆文件或目录变成一个总的文件,文件压缩是将一个大文件通过压缩使其体积缩小,tar本身没有压缩功能,但可以调用压缩功能来实现相关功能,下述以tar命令为例进行演示Linux中的一些文件传输技巧和命令。
常用参数 | 参数作用 |
---|---|
-A | 新增压缩文件到已存在的压缩 |
-b<> | 设置每笔记录的区块数目,每个区块大小为12Bytes |
-x | 从压缩的文件中提取文件 |
-B | 读取数据时重设区块大小 |
-c | 建立新的压缩文件 |
-d | 记录文件的差别 |
-f | 指定备份文件名或设备 |
-r | 添加文件到已经压缩的文件 |
-u | 解开压缩文件还原文件之前,先解除文件的连接 |
-t | 显示压缩文件的内容 |
-z | 通过gzip解压文件 |
-j | 通过bzip2解压文件 |
-Z | 通过compress解压文件 |
-v | 显示操作过程 |
-l | 文件系统边界设置 |
-k | 保留原有文件不覆盖 |
-m | 还原文件时,不变更文件更改时间 |
-W | 确认压缩文件的正确性 |
假设在linux系统中有名为file的目录下有file1和file2两个目录,file1文件夹中有1.txt、2.txt、3.php三个文件,file2文件夹中有4.txt、5.txt两个文件,下面我们以这个file目录下的文件来进行演示相关操作:
使用Tar命令压缩文件夹时,执行tar -cvf file.tar file1命令可以将文件夹先打包,如图3-268所示,其中file.tar是打包后的文件名,file1是待打包的文件夹。
打包多个文件夹只需要在后面添加相关文件夹地址即可,例如将file目录下的file1与file2一起打包为file1.tar,执行tar -cvf file3.tar file1 file2:
解包文件与打包相比只需要将cvf变成xvf即可,例如将上文中的file1.tar解包,执行tar -xvf file1.tar:
前面我们已经说过如果想压缩一个文件夹我们必须先将其打包,但大多数情况我们是打包压缩一起执行,这里有两个参数供我们选择,-z参数是压缩或解压缩.tar.gz格式文件,而-j参数压缩或解压缩.tar.bz2格式文件。
这里我们配合打包命令,将file1文件夹压缩为file5.tar.gz执行命令tar -zcvf file5.tar.gz file1:
解压解包文件很简单,同上只需要将-zcvf换为-zxvf即可,比如要将上文生成的file.tar.gz解压解包,则使用命令tar -zxvf file5.tar.gz:
图1-6解压解包
如果我们想对单个文件夹进行分卷压缩加密,我们可以通过Openssl+Gizp+Tar命令的方式来实现分卷压缩加密,Openssl是一个可以实现“密钥证书管理”“对称加密“和“非对称加密”的一个安全套接字层密码库,其主要包含了密码算法、常见的密钥和证书封装管理功能及 SSL协议,我们可以通过使用其对称加密的方式来对文件进行加密,对称加密所使用的标准命令为openssl enc -ciphername,具体命令参数说明如表所示。
常用参数 | 参数作用 |
---|---|
-e | 指定一种加密算法,不指定将会使用默认加密算法 |
-a/-base64 | 使用-base64位编码格式 |
-salt | 自动插入一个随机数作为文件内容加密 |
-k | 指定密码(兼容以前版本) |
-in filename | 指定将要加密的文件路径 |
-out filename | 指定加密后的文件路径 |
若要对文件夹file1中的1.txt这个文件进行对称加密的话,可以执行openssl enc -e -des3 -a -salt -k password -in 1.txt -out 1.code命令进行加密,加密后我们通过more命令查看加密后的文件内容已为加密字符串:
若要对加密后的1.code文件进行解密操作的话,我们可以执行openssl enc -d -des3 -a -salt -in 1.code -out 1.decode来对已加密名为1.code的文件执行解密,解密后我们通过more命令即可看到解密后的内容。
我们也可以对整个文件夹进行分卷压缩加密,,我们将通过tar命令压缩file文件夹下面的所有文件,并通过管道符重定向的方式将tar压缩执行的结果传递给openssl进行加密,经过openssl加密完成后再通过管道符重定向的方式传递给dd命令进行输出
我们首先执行tar -czPf - file/ |openssl enc -e -des3 -a -salt -k password | dd of=file.tar.gz.desc来完成整个分卷压缩加密操作,其中“tar -czPf - ”后面为实际将要进行加密的文件存放路径,“dd of= ”后面为要输出的文件名称
完成分卷压缩加密操作后,我们再通过head命令来去查看验证下我们分卷压缩加密的文件内容:
4)若要对分卷压缩加密的压缩包执行解密操作,我们需要先使用dd命令输入文件,并通过管道符重定向的方式传递给openssl,由openssl执行解密操作,openssl解密后再通过管道符重定向的方式传递给tar,由tar执行命令进行解压。通过执行dd if=file.tar.gz.desc |openssl enc -d -des3 -a -salt -d -k password |tar -zxPf -命令来对经过分卷压缩加密后名为file.tar.gz.desc的压缩包执行解密操作,解密完毕以后即可看到具体的文件内容。
到此Windows和Linux中常见的文件操作命令就介绍完毕了(^▽^)