旧文迁移,关于流量操控的工具用法,以前的笔记合集,可能很乱。。。
环境搭建
实验时需要的两个需要的环境
monowall
为了模拟更加真实的环境(在流量操控中也会用到),现在写下monowall的使用,mono就是一种软件防火墙。
这是网络图(技术问题,不要吐槽),左面红色是选择了host-only模式的3台主机,处于同一局域网,中间是mono防火墙,使用了两张网卡,一张是host-only网卡,和左面三台处于同一网络,一张是桥接,将会和右边的同样使用桥接的kali,window2k3server处于同一网络。
在编辑,虚拟机网络编辑器里面将仅主机的DHCP服务关闭(否则等会其他主机可能是接受虚拟机的DHCP而非mono的)
首先下载软件,软件是很小的,就几十M,下载ISO文件,和正常的系统安装方法一样,在虚拟机里面安装,安装很简单就不介绍了,安装后为它指定两张网卡,一张是桥接,一张是host-only
在网卡那里点击高级会看到那张网卡的mac地址,记住,等下好分网卡
这里host-only是00**75,打开mono,开机后画面如图,选择1
会显示当前存在的网卡,名称,地址,先是选择lan地址,使用host-only这张网卡
然后选择wan卡,其实可以直接回车自动识别,设置好后主界面选2设置lan
这里就设置自己的ip为10.21.11.1
,自己用掩码选24就够了,然后开启DHCP服务,设置lan能够使用的ip地址段,先写开始,再写结束,只要符合那个网段就好了
现在差不多可以用了,再来重置一下mono的网页面板的管理密码,选3,重置后密码是mono,用户名是admin
这时差不多就好了,然后Windowsxp1,选择自动获取网络配置,再去查看就会看到连上了mono这时可以在浏览器里面试着访问网页,发现是可以访问的,这与host-only不符,因为是连上了mono,而mono还有桥接网卡,所以能上网。
然后我们需要再去配置mono,就是打开地址10.21.11.1,输入账号进入配置页面
我们就可以在这里进行常规的设置,主要要使用的就是rules规则选项
而且一般设置的也就是lan的规则,默认已经有一条规则了,这条规则是允许所有协议(所有用*表示),来源为lan这个里面的网络的任何端口到外面任何地址的任何端口,相当于没有设置拦截规则,绿色表示生效,灰绿色箭头是失效,右边的操作是删除规则,编辑规则,添加规则,现在先禁用默认的,再去添加规则
第一个是哪种类型的规则,选择允许匹配的通过,使用pass,然后是否失效,不选,设备默认,协议选择tcp/udp,这样就不能选择icmp类型了(后面有icmp隧道工具的使用,会在这里选择),然后source不管,来源的端口也是所有,目的地址视情况而定,一般也是所有都可以,然后目标端口可以使用协议来指定他的默认端口,例如这里指定了从53到443的所有端口都开放,这样是不会影响正常的网页浏览的,其他不管,再去改下描述信息,让它好记就好了。
这样这条规则就是内网可以以任何端口发起连接,可以连接任意地址的53-443端口,这是初步了解。一般情况下如果内网被防火墙限制访问外网,还是会开通53端口的,所以以后的流量操控会只允许DNS到DNS
opensense
现在monowall已经停止维护了,取而代之的是opnsense,它们的使用方法几乎一样,下面记录下安装方法:
- 下载镜像,这里根据架构(64位),镜像类型(iso)与下载地区(China)选择如下,下载:
- 下载到的镜像是.iso.bz2的,用好压等解压一次得到.iso文件
- 打开vmw新建一台虚拟机,在新建的过程中注意两点,第一是在如下界面时,选择刚刚得到的iso镜像:
接着在新建向导的最后一步处,选择自定义硬件添加一张网卡,点击完成即成功新建虚拟机: - 在高级网络配置中新添加一个网段,先在编辑->高级虚拟网络编辑器 里面点击获得管理员权限,然后新建网段,这里新建了
vmnet 2
,新建完以后关掉dhcp服务并且设置为仅主机模式: - 现在运行新建的虚拟机,选择第一种方式启动,遇到如下导入网卡可以直接回车:
- 到这里,可以看到系统成功识别出了两张网卡并分别为其命名了,此时打开VMware右下角的网络设置,看到有两张网卡,选中任意网卡打开高级设置能够看到对应网卡的mac地址,这样就能将VMware里的网卡与opnsense系统识别出来的网卡对应起来,(如此处可以看到em0对应着
网络适配器
,em1对应着网络适配器 2
,现在就拿网络适配器
作为lan口,将网络适配器 2
作为wan口,作为wan口,它的网络连接需要连接到外部,这和平时使用虚拟机一样,选择桥接或者nat,而lan口是对内提供服务的,它需要被设置为自定义:特定虚拟网络 vmnet2
这个刚刚新建的网段:
此时再在opnsense里面是指定lan与wan的网卡: - 设置完成,使用内置账户与默认密码root:opnsense登录:
- 和monowall一样,主要的操作还是要在web管理界面,所以,现在再打开一台虚拟机,将其网卡的网段设置为
自定义:特定虚拟网络 vmnet2
,它会自动获取到ip地址,此时访问http://192.168.1.1即可打开管理界面: - 操作和monowall差不多,就不再记录了。
DNS搭建
为了学习dns2tcp,先来介绍下dns服务器怎么搭建,这里使用的是windows2003server,可能有点复杂。需要点dns解析的知识:
Dns在没有缓存时是从根域开始查询的,例如www.baidu.com.(这个例子实际可能是错的,不重要),先从.查.com.的权威dns服务地址,然后com域的权威dns服务器就将baidu.com这个域委派给百度的dns服务器,百度的dns服务器就能解析baidu.com这个域的dns地址,如`tieba.baidu.com,yun.baidu.com`,我们这里也是在本地虚拟一台授权服务器,让它指定一个特殊域的解析由哪个解析服务器完成。
用到kali rolling版,主机名是kali.hia.com地址是192.168.99.199负责解析的域是test.hia.com
Windows2k3server作为网络上很正常的一台公用域名解析服务器(可以想成8.8.8.8这种),然后将test.hia.com的解析委派给kali。
如图从左到右,先选管理您的服务器,添加角色选择dns服务器,安装过程中提示需要安装光盘,插入光盘即可,然后如果是DHCP形式的网络配置会提示需要改为静态的,如图,上面部分按照实际情况,下面可以填写本机(其实随意)
添加好服务气候在管理工具里面选择dns服务器,右键点击那个主机图标,新建区域
按照向导,设置一个区域名称,这样如果属于这个区域就会到指定地方解析
直接下一步就OK了
然后点击主机图标下面的正向查找区域,右击刚才建立的那个区域,选择新建主机。
填写用来指定解析特定域的dns服务器,完成后再次右击刚才创建的区域,选择新建委派,指定委派的域
然后这里会要求指定为这个域指定dns解析服务器,选择刚才创建的那台主机
这样,windows2k3就能将test.hia.com这个域的解析权交给主机名为kali.hia.com的这台dns服务器了,但是其他的域名解析他依然不知道,虽然我们在这里用不上,但是也可以为他再配置下,将其他域名的解析权交给其他的dns缓存服务器,配置方式如图,右击主机,选择转发器,对于其他域,设置解析服务器为公用的,如114.114.114.114
这样一台dns服务器就搭好了。
隧道工具
rinet
mono里已经讲到很多都只会开放53端口,对于单纯的开放53端口,可以使用端口转发功能将流量转出去,本就是使用rinet转发流量,环境比较多,看图
同样,左边是防火墙内受限的网络,中间防火墙阻隔只允许53端口的流量,右边XP开放了3389远程桌面等待连接,kali rolling版是做流量转发的(共4台虚拟机,其他的不用管)。
1:开启xp的远程桌面
右击我的电脑,属性,打开远程桌面,然后添加用户,本机是administrator,按实际来(注意,远程桌面必须要有密码才能连接)
2:设置防火墙规则
如图,其他默认不变(添加好后禁用默认规则,并且点击应用生效),然后检查一下网络,发现浏览器已经不能打开网页了
3:使用kali2.0去用nc使用53端口连接rolling版,看53端口是否连通
先来看看rolling版的地址是
开始监听
在2.0中连接,发现是可以连通的
4:在rolling中安装转发软件
1 | apt-get install rinetd |
然后修改配置文件
1 | vim /etc/rinetd.conf |
如图:
第一个是rolling本机的地址,第二个是监听的端口,后面的是要转发到的目标地址和端口(即XP的3389端口)
设置好以后启动rinet
1 | rinetd |
看到已经开始监听53端口了
5:在2.0中开始连接rolling的53端口
发现能够转到XP去
其他的端口也是同样的方法。。。
ssh
防火墙还是保持rinet中的配置,这次的环境如图,防火墙内是一台kali2.0和一台XP,防火墙外是kali rolling版来做ssh转发,一台xptarget靶机和一台metasploitable2靶机(最后一台可以不用。。。)。
这个方法是用ssh在kali2.0和rolling版间建立一条隧道,所有的通信都经过这条隧道完成。步骤:
1:配置好环境,参照前面的rinet和mono部分
2:设置rolling的ssh,设置方法见本站的kali使用ssh文章前部,添加一步,将端口改为53端口,如图
然后重启服务,查看可见的确监听着53端口
3:开始连接ssh
在kali2.0中输入如下命令连接,第一次会要求输入yes,然后输入密码,查看可见的确建立好了连接
然后连接目标
现在来做下命令解释
1 | ssh -fCN -L 1234:192.168.99.125:3389 root@192.168.99.199 -p 53 |
4:但是可以看到,本地监听的是127.0.0.1:1234,是本地回环地址,同样受限的xp并不能想用2.0建立的隧道,于是可以将此隧道共享出来
如图,加了个-g
参数,监听本地的12345端口,此时查看地址不再是127.0.0.1了,此时在xp里面访问,地址是kali2.0的地址,端口是2.0监听隧道的端口
可以看到这样也能连接成功,这就相当于把翻墙网络共享出去了
5:其实也发现了,这种方式在一些时候还是存在不便的,例如日常使用,每次去一个不同的主机都要建立不同的新的连接,其实是可以动态转发的
命令如图,然后就可以在浏览器里面设置代理了,端口为8888,协议是sock4/5都可以
结果如图
在同样受限的网络里面可以共享的,如图
6:最后一个命令是使用图形映射,不懂就不懂吧,我把电脑已经关了,就不演示了。。。
1 | ssh –X root@192.168.99.199 –p 53 |
iodine
这次再来一个dns相关的工具,他会虚拟出一张网卡,然后通过那张网卡来建立一个通讯隧道,通过ifconfig查看会感觉像是真实的客户端与服务端相连了。
它支持在很多系统使用,例如win,Linux,Android。因为这里内容有点多,就不适用win2k3做中转了。环境如图:
还是防火墙只允许udp53端口。
1:下载这三个软件,安装在winxp
http://code.kryo.se/iodine/iodine-0.7.0-windows.zip
http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.11-I001-i686.exe
https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
2:开启服务端
Kali rolling 里面开启服务端,指定一个网段的ip,这个ip首先不能喝自己已有的ip网段重合,然后因为客户端也会使用这个网段的ip,所以同样不能与他们的重合。
如图,输入的ip是10.0.0.1 ,然后指定自己要解析的域为hia-hia-hia.com会要求创建连接密码
此时再查看网络配置会发现多了一个dns0的设备,ip为10.0.0.1
3:客户端连接(kali)
在kali2.0里面输入:如图,因为系统指定的dns服务器是其他的,所以在这里我指定dns的地址为kali rolling的地址,后面为服务器端配置的那个域。然后会要求输入服务端的密码,输入后看到后面提示是连接成功的,此时可以看下配置
2.0里面也多了一张网卡,名字也是dns0,地址是10.0.0.2
这时隧道其实就已经建立成功,但是还是不能直接使用的,可以使用ssh在这个隧道里面通信,下面说。
4:客户端连接(windows)
下载的软件里面只有openVPN需要安装,直接下一步安装就好了,然后将iodine文件解压出来,为了方便可以放在根目录,反正就是为了等会使用cmd能够轻易进入那个目录
执行同样的命令
查看配置
自己的地址是10.0.0.3
5:使用ssh连接 (kali)
方法就是以前讲的ssh方法
这样就可以访问了,其他的应用可以用proxychain代理
6:使用ssh连接 (windows)
打开putty,这样设置,连接,输入账号和密码即可,其他和kali一样
*cat
目前开了四台虚拟机:
kali2.0:内网下主机(10.21.11.2)
win10:内网下主机(10.21.11.3)
kali2016:外网下主机(192.168.0.113)
monowall:防火墙(192.168.0.112|10.21.11.1)
NC
似乎不应该放到此处,但是其他地方也不好放,那就只能这样咯。NC-网络工具中的瑞⼠士军⼑刀,软件很小巧但功能很强大:
侦听模式 / 传输模式
telnet / 获取banner信息
传输⽂文本信息
传输⽂文件/目录
加密传输⽂文件
远程控制/⽊马
加密所有流量
流媒体服务器
远程克隆硬盘
主要的知识就是两个,监听端口,重定向。
参数:
1 | -n 不做域名解析,就是只能用IP地址 |
如果要被连接,就用监听一个端口,如果要连接,就去输入IP地址和端口,他可以配合多个工具在用管道重定向等实现很多功能
1:TELNET / BANNER
1 | nc –nv 1.1.1.1 110 //这是去连接1.1.1.1的100端口,如果连接成功就能接受到欢迎信息了 |
2:传输⽂文本信息
1 | A:nc -l -p 4444 //这是在接收端监听4444端口,当别的设备来连接这个端口,就能将输入的信息输出了,默认输出设置是屏幕,可用重定向输出到文件 |
3:传输⽂文件/目录
1 | #传输⽂文件 |
4:流媒体服务
1 | A: cat 1.mp4 | nc -lp 333 |
5:端⼝口扫描
1 | nc -nvz 1.1.1.1 1-65535 |
6:远程克隆硬盘
1 | #远程电⼦子取证,可以将⺫⽬目标服务器硬盘远程复制,或者内存。 |
7:远程控制
1 | 正向: |
8:NCAT
Nc缺乏加密和⾝身份验证的能⼒力,可以使用它代替,Ncat包含于nmap⼯工具包中
1 | A:ncat ncat -c bash --allow 192.168.20.14 -vnl 333 --ssl |
NCAT
被称为众多NC衍生版软件中最优的选择。这里使用它的代理功能,在kali上执行此命令,就会成为一个http代理服务器,在其他电脑上设置此代理就可代理上网。Kali2.0上:
1 | ncat -l 8080 --proxy-type http --proxy-auth hiahiahia:hiahiahia |
这样就在kali2.0上开启了http代理,账号和密码都是hiahiahia,此时在win10的浏览器里设置代理:
然后会弹框输入账号密码完成验证,然后代理就生效了。
在有就是中介功能,在kali上执行此命令,就会成为一个中介,其他主机可以连接此中介,然后那些主机就相互联通了,可以发送消息,执行命令,发送文件。。
服务器上,ncat -l 333 --broker
客户端电脑,ncat 10.21.11.2:333 (直接通信)
客户端电脑,ncat 10.21.11.2:333 --sh-exec "echo
pwd"(命令执行)
客户端电脑,ncat --send-only 10.21.11.2:333 < filename(文件传输)
SOCAT
被称为nc++(增强版x2的nc):双向数据流通道工具
(突然发现本文不需要配置防火墙,但是就不修改文首的实验配置了,下一篇会用到。。。)
以下示例都是kali2016作服务端,2.0作客户端,两张图为一组,先设置服务端再设置客户端。
直接建立通信:
(注意,socat后面又根短横线表示标准输入输出,若输出到文件或从文件输入数据就不需要这个)
传输文件:
这里是监听25号端口,将收到的数据以新建的方式存在hia.txt里面,后续传输数据作为追加。
命令执行:
端口转发:
监听TCP的1234端口,将数据转发到192.168.0.1的80端口(路由器管理页面)
可见转发成功。。。
ptunnel
它是Ping tunnel ICMP隧道工具,通过ICMP echo和reply实现隧道,一般在最严厉的防火墙策略下也会允许icmp数据通信,所以这个很有用的。可见它适用于防火墙只允许ping出站流量的环境(当然这个也可以用于允许dns通信的,接-udp参数即可),而且它有如下优点:
支持多并发连接,性能优:执行一条命令就会打开一条隧道,可以同时建立多个隧道
支持身份验证:只有输入正确密码才能建立隧道
支持抓包:
windows:winpcap
linux:libpcap
工作过程:
proxy,client,destination
服务器:
1 | ptunnel -x hiahiahia |
这样就开启监听了(icmp的,省去指定端口环节,-x key可选,建议添加更加安全)
客户端:
1 | ptunnel -p 192.168.0.113 -lp 2222 -da 192.168.0.113 -dp 22 -x hiahiahia |
参数意思如下:
1 | -p 接服务端地址 |
(这样就建立了一条TCP隧道(其实可以传输任意协议数据),但是这个局限性太大,就像端口转发一样,不便捷)
所以一般都会再在隧道里面嵌套一层ssh隧道,使用动态的方式:
1 | ssh -CNfg -D 7000 root@127.0.0.1 -p 2222 |
最后,注意。。。ptunnel直到目前(20160527)的最新版仍存在拒绝服务漏洞
proxytunnel
Proxytunnel:通过标准的http/https代理创建隧道工具
准备:
实验环境:
Kali 2016:外网 192.168.0.113 (用于使用ssh)
Ubuntu14server:外网 192.168.0.114
物理机:外网 192.168.0.104 (用于访问HTTP服务)
Monowall:防火墙 192.168.0.110/255.255.255.0
Woobuntu:代理服务器 10.21.11.4 (这是在硬盘角落找出来的,祭奠死去的乌云。。。。)
Kali 2.0:内网pc 10.21.11.5
使用场景:
为了做更加严格的审计和防护,防火墙仅允许内网的一台代理服务器的80端口访问外网,其他的什么DNS,ICMP都禁止,而内网的电脑只能通过代理服务器代理浏览网页。
实现:
通过http 的CONNECT 方法封装信息
安装代理:
1 | apt-get install squid3 (其实可以用ncat….) |
配置防火墙规则:
woobuntu测试80连通:
Kali2.0测试代理生效:
实验一:将外网资源映射为内网指定端口(即,若外网目标是80端口,只需要一台主机即可)
配置squid3
1 | vi /etc/squid3/squid.conf |
修改,如图:
重启服务:
创建隧道:
1 | proxytunnel -a 80 -p 10.21.11.4:80 -d 192.168.0.104:80 |
-a接本地监听的端口-p接代理服务器-d接目标地址
之所以叫做映射到本地,就是这个和直接使用代理效果一样,只是上面是本地访问
实验二:外网资源非防火墙允许端口(修改目标资源监听端口可能无法躲避防火墙深层检测)
外网代理(ubuntu14)安装squid3代理服务器并监听80端口(同上)
检查下:
创建HTTP隧道:
1 | proxytunnel -a 80 -p 127.0.0.1:3128 -r 192.168.0.1:80 -d 192.168.0.2:22 |
-a接本地监听端口-p接内网代理地址-r接外网代理地址-d接目标地址
这样就可以通过外网的一台可控主机来访问特定的资源了!
实验三:创建ssl隧道
在上一步的基础上,可以再在里面套接一个SSL隧道以实现加密和访问UDP资源的效果!
1 | ssh -CfN -D 8080 root@127.0.0.1 -p 80 |
实验四:ssh客户端配置自动创建代理隧道
一般来讲,套接ssl隧道是普遍用法,在日常工作中常用,可以创建配置文件来简化步骤!
1 | vi ~/.ssh/config |
Host 192.168.1.1 目标主机地址
Hostname 192.168.0.1 目标主机名
ProtocolKeepAlives 30 存活时间(一段时间没有流量就自动关闭隧道)
ProxyCommand /usr/bin/proxytunnel -p 1.1.1.1:3128 -r 192.168.1.1:80 -d %h:%p
这样配置,以后就可以直接使用如下这种方式建立隧道了。
sslh
Sslh:端口分配器, 监听一个端口,根据客户端第一个包检测协议类型,判断客户端期待访问的资源,并转发给匹配的资源,(根据协议检测结果将流量转发给不同目标)支持HTTP,HTTPS,SSH,OpenVPN,停车,XMPP和其他可基于正则表达式判断的协议类型,适用于防火墙允许443端口入站访问流量的环境
本次的实验和以前的就不一样了,这次是外网访问内网的资源!
大写的PS:
本来打算在内网服务器上配置https,不过不知道哪里出问题了,用了两个多小时都没有解决,然后我就只能在公网找现成的,接着配置防火墙时也不知道哪里出了问题,网络不通,所以这里先写下这两个的配置方法,以后有时间再来排错(在本例中并不重要)
实验环境:
Kali 2.0:内网 10.21.11.2 (后来舍弃防火墙了,所以有了外网地址:192.168.0.117)
Mono :防火墙 10.21.11.1/192.168.0.117
Kali2016:外网 192.168.0.114
配置HTTPS:
因为这里实验用,就生成自签名证书即可,如图
然后编辑/etc/apache2/sites-available/default-ssl****
(一般来说都是要修改先备份,然后这里就如图好了,懒得打字,注意看目录)
然后增加软连接:
1 | ln –s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load |
重启服务
配置防火墙:
这里是添加nat转发规则,如下图(第一个图上的规则是配置后才会出现)
如图配置:
可以看到规则里面的wan也新增的了规则。
配置sslh:
1 | vi /etc/default/sslh |
Listen是设置sslh的监听配置,可以直接写为0.0.0.0:443,后面的就是能识别和转发的资源。。。
配置好会如图,然而。。。上面的防火墙配置在我的电脑有问题,所以这里监听的地址需要改变一下0.0.0.0或者192.168.0.112
配置好启动服务如上图。。。
这样就可以通过不同的客户端访问同一个端口来访问不同的资源了。
访问https资源:
访问http资源(第一个是对比):
访问ssh资源:
通过nmap的扫描,可以看到443端口上被识别出很多服务,这是正确的。。。
排错:这里是的防火墙问题,是因为默认阻止了私有IP地址,而自己实验用的是私有的,关掉即可,在WAN设置里
dns2tcp
前面两种都是那种只单纯的限制为53端口通行,并为限制53端口只能是udp的域名解析,如果有这种限制,前面的方法都将失效,于是下面介绍一种将其他的数据封装在dns协议里面的工具。
实验环境六台虚拟机。。。如果受不了可适当删减活用轻量系统代替,意思和以前一样就不再赘诉。只是防火墙规则改为仅允许53的udp通过。
接上一节dns服务已经在windows2003server上配置完成,现在就可以直接配置dns2tcp了,它分为客户端和服务器端,将在kali rolling上使用服务端,kali 2.0上使用客户端。
1:配置服务端,打开配置文件
1 | vim /etc/dns2tcpd.conf |
配置如下
意思为:
Listen为监听的网卡,可以填本机的ip地址,也可以填0.0.0.0,这代表本机的所有网卡都监听
Port为监听端口
Domain为被委派负责解析的域,我设置的是test.hia.com
Key是连接的密码,如不需要就可以把它注释掉
Resource是资源,这个就是连接好后,rolling这台电脑能提供的服务,例如在客户端指定使用http服务,在服务端会自动将流量从53端口转到本机的8087端口,而8087端口又有GoAgent监听着,这样就相当于客户端使用服务器端的GoAgent做代理了。(注意,截图里面有两个http资源,是错的。。。懒得在截图了。。。)
2:启动服务端程序
命令如图,这样就启动监听了,可以看到支持了这些资源,这些资源是可以自己添加的,随意添加。
3:启动客户端连接
如图,因为我已经将系统的dns解析服务器改成了win2k3,所以没有指定dns服务器,若没改,就在test.hia.com后面指定win2k3的ip即可
C是启动压缩,d是信息的详细度等级,为1级,k后接连接密码123456,l后是本机的监听端口8888,r指定服务器提供的资源名,这里就测试下GoAgent的使用吧,指定http,-z就是那个域名。
确定后就建立了通道了
4:测试连接
Kali rolling里打开GoAgent,然后在2.0的浏览器里设置好代理
这是ssh测试
其他的测试就不做了,最后说下隧道是可以嵌套的,并且那个windows的dns服务器可以不设置,那样会简单很多,就不演示了。之所以设置windows的dns服务器是那样适合隐藏自己的身份,所有的通信都是通过dns服务器转发的
stunnel4
stunnel4:可无需修改源代码的情况下将TCP流量封装于SSL通道内,适用于本身不支持加密传输的应用,支持openssl安全特性,而且跨平台,性能优。
图:
实验环境:
Kali2.0:内网的应用服务器
Woobuntu:内网的stunnel4服务器
Mono:防火墙
Kali2016:stunnel4客户端和应用客户端
配置应用服务端(MySQL):
MySQL默认禁止远程登录,需要修改监听端口和账号权限:
1 | vim /etc/mysql/my.cnf |
Kali自带的MySQL默认密码为空,所以如图修改即可。。。
测试直接从kali2016远程连接MySQL抓包(就不写了,过程了,看下图,虽然不易读,但是可确定都是明文的)
配置stunnel4服务器:
生成证书:
1 | openssl req -new -days 365 -nodes -x509 -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem |
如图生成了一张包含公私钥的证书。
安装stunnel4:
1 | apt-get install stunnel4 |
创建配置文件:
1 | vim /etc/stunnel/stunnel.conf #创建一个一conf为后缀的配置文件 |
设置自动启动:
1 | /etc/default/stunnel4 |
启动stunnel4服务端:
1 | service stunnel4 start |
防火墙规则:
访问规则是允许外网访问内网woobuntu的443端口:
转发规则:外网的443流量转发至woobuntu的443端口
配置客户端:
1 | vim /etc/stunnel/stunnel.conf |
1 | vim /etc/default/stunnel4 |
启动服务并检查:
1 | service stunnel4 start |
抓包查看效果:
外网客户端访问本地的3389,实则访问内网服务端的MySQL(虽然外网客户端本地也存在MySQL,但是并没有开启)
抓包看下效果:
最后:
其实发现了,很多操作可以并不用这么麻烦,之所以这样做是想要学习或是练习更多的工具使用方法,若只为学习每篇笔记中的工具,很多东西其实是可以省略的。。。
来源
安全牛课堂-kali-linux