0x00 Links

http://rootkiter.com/EarthWorm/download/ew.zip
http://www.freebuf.com/articles/system/12182.html
http://rootkiter.com/Termite/README.txt
http://idoge.cc/index.php/archives/24/
http://staff.washington.edu/corey/fw/ssh-port-forwarding.html
https://github.com/sensepost/reGeorg
https://www.youtube.com/watch?v=w_vGD-96O54

0x01 Earthworm

Download Address:

http://rootkiter.com/EarthWorm/download/ew.zip

Use:

本地开启socks5服务

./ew -s ssocksd -l <port>

在172.17.0.2建立sock5服务,流量出口为172.17.0.4

./ew_for_linux64 -s rcsocks -l 9999 -e 8888     //ip:172.17.0.2
./ew_for_linux64 -s rssocks -d 172.17.0.2 -e 8888  //ip:172.17.0.4

本地端口转发

./ew -s lcx_listen -l  1080   -e 8888

将本地端口流量转发至目标主机目标端口

./ew -s lcx_tran   -l  1080   -f 2.2.2.3 -g 9999

将1.1.1.1的8888端口的流量转发至2.2.2.3的9999端口

./ew -s lcx_slave  -d 1.1.1.1 -e 8888    -f 2.2.2.3  -g  9999

一个三级级联:

172.17.0.2开启socks5服务

./ew_for_linux64 -s rcsocks -l 9999 -e 8888

172.17.0.3将172.17.0.2的8888端口流量转发至172.17.0.4的7777端口

./ew_for_linux64 -s lcx_slave -d 172.17.0.2 -e 8888 -f 172.17.0.4 -g 7777

172.17.0.4将7777端口流量转发至本地9999端口,并链接socks5服务

./ew_for_linux64 -s lcx_listen -l 7777 -e 9999
./ew_for_linux64 -s rssocks -d 127.0.0.1 -e 9999

0x02 Termite

官方文档:

http://rootkiter.com/Termite/README.txt

Use:

agent为一个个节点,可以自己连接上一个agent,也可以主动连接下一个agent

example:

本地开启agent,端口为8888:

./agent_Linux64 -l 8888

管理端连接本地agent:

./admin_Linux64 -c 127.0.0.1 -p 8888

主动连接上一个agent:

./agent_Linux64 -c 172.17.0.2 -p 8888

主动连接下一个agent:

./agent_Linux -l 8888 /172.17.0.4 开启本地服务,管理端在172.17.0.3主动连接即可
connect 172.17.0.4 8888  //admin端进入172.17.0.3执行该语句即可

执行以后可以在管理端看到网络拓扑:

>>>> show
>>>>>>>>>>>>> Current ID is 2 <<<<<<<<<<<<< 
0L
+-- 1L
|   +-- 2L
|   |   +-- 3L

若想在某结点开启socks5服务,执行如下语句即可:

//172.17.0.2为管理端所在,想开启代理通往3L结点
goto 3
socks 1080

这样我们就会在172.17.0.2中开启一个socks5代理,通往第三个结点即172.17.0.4

0x03 ssocks

文件ssocksd开启本地sock5代理:

ssockd - Server Socks5 v0.0.14
Usage:
    ./ssocksd --port 8080
    ./ssocksd -b 127.0.0.1 --port 8080
    ./ssocksd --address 127.0.0.1 --port 8080
    ./ssocksd -p 8080 -a ssocksd.auth -d
    ./ssocksd -vv

Options:
    --daemon   daemon mode (background)
    --verbose  increase verbose level

    --port {port}  listening port (default 1080)
    --bind {ip} listening on ip (default all)
    --file {file}  see man 5 ssocksd.conf
    --auth {file}  see man 5 ssocksd.auth
    --log {file}   if set connections are log in this file

渗透过程中可以直接执行:

./ssocksd --port <port>

文件ssocks相当于一个代理转发的工具:

如172.17.0.3开启了一个socks5的服务在1080端口,此时在172.17.0.2执行:

./ssocks --socks 172.17.0.3:1080 --listen 9898

这时172.17.0.2在9898端口会开启一个socks5的服务,连接这个代理,流量可以从172.17.0.3出去。

文件nsocks相当于一个具有代理功能的nc:

./nsocks -s 172.17.0.3:1080 172.17.0.1 8000

即可通过172.17.0.3的socks5代理连接172.17.0.1的8000端口,和nc功能相同。

文件rssocks和rcsocks是一个反向代理的工具:

./rcsocks -l 9898 -p 9999 //172.17.0.2执行,本地9898端口开启socks5服务
./rssocks --socks 172.17.0.2:9999  //172.17.0.3执行

连接172.17.0.2的socks5代理后,流量出口为172.17.0.3

0x04 metasploit

msf自带socks4代理模块,不过要自己加路由。

msf auxiliary(socks4a) > use auxiliary/server/socks4a
msf auxiliary(socks4a) > show options

Module options (auxiliary/server/socks4a):

Name     Current Setting  Required  Description
----     ---------------  --------  -----------
SRVHOST  0.0.0.0          yes       The address to listen on
SRVPORT  8888             yes       The port to listen on.


Auxiliary action:

Name   Description
----   -----------
Proxy  


msf auxiliary(socks4a) > route add 172.17.0.0 255.255.255.0 1
[*] Route already exists
msf auxiliary(socks4a) > run
[*] Auxiliary module execution completed
msf auxiliary(socks4a) > 
[*] Starting the socks4a proxy server

0x05 ssh

-L参数:本地端口转发

ssh -L8888:172.17.0.3:8000 172.17.0.4  //172.17.0.2执行

将172.17.0.2的8888端口转发至172.17.0.3的8000端口

-R参数:远程端口转发

ssh -R 8888:172.17.0.3:8000 172.17.0.2 //172.17.0.4执行

将172.17.0.2的8888端口转发至172.17.0.3的8000端口

-D参数:开启一个socks5的代理

ssh -D root@172.17.0.2

-q:安静模式
-T:不占用shell
-fn:后台运行
-N:不执行远程命令

0x06 reGeorg

一个http转socks5的代理,用法就不多说了,上传文件后本地执行:

 reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u  [-v]

example:

python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp

0x07 iptables

待补充