本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的《Kali Linux 渗透测试》课程
1. 简介
-
防火墙禁止 TCP 出战访问流量
- SSH 隧道、端口转发全部失效
- 使用基于UDP协议的隧道
- DNS 的工作原理适合用于实现隧道
- DNS TCP 53 端口主要用于 DNS 服务器之间进行数据同步(区域传输)
- 用户提交的 DNS 查询请求,都是 UDP 53 端口的流量
-
DNS 工作原理
- DNS 隧道原理:注册受自己控制的 DNS 记录
-
重定向和 SSH 隧道 只能适用于 TCP 53 端口,对 UDP 53 端口无法使用。
2. dns2tcp
-
dns2tcp
- 利用合法 DNS 服务器实现 DNS 隧道
- C/S (dns2tcp/dns2tcpd)结构
- 通过 TXT 记录加密传输数据(A记录长度有限)
- 隧道建立后保持连接
- 默认记录生存时间 TTL 值为 3 秒
-
服务器配置文件
- /etc/dns2tcpd.conf
- .dns2tcprcd
- 资源可以是其他地址
-
启动
- dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
- F:前端运行
- d:debug level 1-3
- f:指定配置文件
测试环境1
-
m0n0wall
hostonly:1.1.1.1 桥接:192.168.1.10
-
win2003
桥接:192.168.1.124
区域名称:lab.com 创建新文件:lab.com.dns
新建主机记录到 kali
新建委派到 kali
委派的域:test 添加完全合格的域名 kali.lab.com
配置转发器(凡是不解析不了的域名都使用转发器转发到类似于8.8.8.8的官方dns服务器)
-
xubuntu
hostonly:1.1.1.12
配置 dns 指向 win2003
-
kali
桥接:192.168.1.14 # 配置服务端文件 root@kali:~# cat /etc/dns2tcpd.conf
root@kali:~# vim /etc/ssh/sshd_config Port 22 PermitRootLogin yes PasswordAuthentication yes root@kali:~# systemctl restart ssh.service # 启动 - F:前端运行 - d:debug level 1-3 - f:指定配置文件 root@kali:~# dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
-
xubuntu 指定 ssh 资源
指定要使用的端口 2222 root@lamp:~# dns2tcpc -c -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com
在 2222 端口有流量流过的时候,将会建立隧道
root@lamp:~# ssh root@127.0.0.1 -p 2222
触发流量(访问本地 2222 端口,等于访问kali 22 端口)
-
xubuntu 指定 http 资源
指定要使用的端口 2222 root@lamp:~# dns2tcpc -c -k pass123 -d 1 -l 2222 -r http -z test.lab.com
在 2222 端口有流量流过的时候,将会建立隧道
浏览器访问 http://127.0.0.4:2222
也可以使用 http 代理,squid3 监听在 3128 端口,资源指向 3128 即可
-
xubuntu 指定 https 资源
会自动指向 kali 的 8087 端口 如果在 8087 端口配置翻墙代理,则可以在 xubuntu 的浏览器上设置浏览器代理,设置代理端口为 127.0.0.1:2222,访问谷歌:时会自动将流量流向 kali 的 8087 端口的翻墙代理上
-
隧道嵌套
动态端口转发可以做成网关进行代理转发局域网内的主机连接流量 基于 SSH 资源将 SSH 动态端口转发隧道嵌套与 DNS 隧道中 ssh -CfNg root@127.0.0.1 -p 2222 -D 7001 root@lamp:~# dns2tcpc -c -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com root@lamp:~# ssh -CfNg root@127.0.0.1 -p 2222 -D 7002 root@lamp:~# netstat -tulnp | grep 7002 # XP IE、Firefox 使用嵌套的 socks 代理上网
测试环境2
-
FW 限制只允许内网 DNS 服务器访问外网指定 DNS 服务器 UDP 53 端口
-
内网 DNS 服务器:安装 DNS 服务,配置转发器到外网 DNS 服务器
-
m0n0wall
hostonly:1.1.1.1 桥接:192.168.1.10
指定策略来源 LAN_DNS,目的指向 win2003
-
win2003
桥接:192.168.1.124
区域名称:lab.com 创建新文件:lab.com.dns
新建主机记录到 kali
新建委派到 kali
委派的域:test 添加完全合格的域名 kali.lab.com
配置转发器(凡是不解析不了的域名都使用转发器转发到类似于8.8.8.8的官方dns服务器)
-
LAN DNS
hostonly:1.1.1.111
配置转发器(凡是不能解析的都转发到win2003)
测试解析
-
kali
桥接:192.168.1.14
root@kali:~# vim /etc/ssh/sshd_config Port 22 PermitRootLogin yes PasswordAuthentication yes root@kali:~# systemctl restart ssh.service # 安装 squid3 root@kali:~# apt-get install squid3 # 启动 squid3 root@kali:~# /etc/init.d/squid restart # 启动 - F:前端运行 - d:debug level 1-3 - f:指定配置文件 root@kali:~# dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
-
xubuntu
hostonly:1.1.1.12
配置 dns 指向 LAN_DNS(111)
root@lamp:~# dns2tcpc -c -k pass123 -d 1 -l 8080 -r http -z test.lab.com
浏览器配置代理127.0.0.1:8080,即可访问外网