[SANS ISC] Keeping an Eye on Dangerous Python Modules, (Fri, Jun 11th)

With Python getting more and more popular, especially on Microsoft Operating systems, it’s common to find malicious Python scripts today. I already covered some of them in previous diaries[1][2]. I like this language because it is very powerful: You can automate boring tasks in a few lines. It can be used for offensive as well as defensive purposes, and… it has a lot of 3rd party “modules” or libraries that extend its capabilities. For example, if you would like to use Python for forensics purposes, you can easily access the registry and extract data:

This snippet of code starts with an import line. First, I need to load a specific module (in this case winreg) that will add to Python all the required code to manipulate the OS registry hives.

Let’s switch back to the “dark side”. When an attacker needs to write a piece of code to perform specific tasks, he will search for existing modules and not reinvent the wheel. To search for Python modules, the best place is to visit pypi.org[3]. Let’s take another example: injection of code. Python is able to use all the Windows API calls with the help of the ctypes module:

In this example, I’m using the ctypes modules to call the Windows API VirtualAlloc() and allocated 1KB of memory with the flag “0x04” (which means that the memory will be allowed to contain executable code).

ctypes is not a common module used in simple scripts to automate tasks like System Administrators could write. It could be categorized as “suspicious”. Let’s have another example. I found this malicious script that implements a keylogger. It uses another not common Python module:

The suspicious module is pyHook which “provides callbacks for global mouse and keyboard events in Windows” as the documentation says.

Want more? Let’ use now wave and sounddevice to use the host microphone and record some conversations…

Other interesting modules?  Use pyscreenshot to take screenshots or pynput to build another type of keylogger.

The question is now, from a defender’s perspective, how can we detect suspicious Python modules?

If you have access to the host, you can always use the “pip” command (the utility to manage modules):

pip will list the modules that have been installed “manually” (could be done by an attacker). To get a full list of modules, you can use the help() command in the Python interpreter:

As you can see, it’s interesting to spot malicious Python code just by having a look at the imported modules! If you would like to hunt, you can create a YARA rule to search for interesting modules inside text files…

[1] https://isc.sans.edu/forums/diary/Python+and+Risky+Windows+API+Calls/26530
[2] https://isc.sans.edu/forums/diary/From+Python+to+Net/27366
[3] https://pypi.org

Xavier Mertens (@xme)
Senior ISC Handler – Freelance Cyber Security Consultant

(c) SANS Internet Storm Center. https://isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.

Source: Read More (SANS Internet Storm Center, InfoCON: green)

You might be interested in …

[ESET] Vacationing? How to avoid the cybersecurity blues

All posts, ESET feed

From securing your devices to avoiding public Wi-Fi hotspots for logging into apps we look at measures you can take to remain safe while this holiday season. The post Vacationing? How to avoid the cybersecurity blues appeared first on WeLiveSecurity Source: Read More (WeLiveSecurity)

Read More

Daily NCSC-FI news followup 2020-03-12

Critical Patch Released for ‘Wormable’ SMBv3 Vulnerability Install It ASAP! thehackernews.com/2020/03/patch-wormable-smb-vulnerability.html Microsoft today finally released an emergency software update to patch the recently disclosed very dangerous vulnerability in SMBv3 protocol that could let attackers launch wormable malware, which can propagate itself from one vulnerable computer to another automatically.. see also www.kyberturvallisuuskeskus.fi/fi/kriittinen-haavoittuvuus-microsoftin-smbv3-toteutuksessa 48K Windows Hosts Vulnerable […]

Read More

[ZDNet] Average organization targeted by over 700 social engineering attacks each year: report

All posts, ZDNet

According to a new Barracuda study, IT staffers receive an average of 40 targeted phishing attacks in a year. Source: Read More (Latest topics for ZDNet in Security)

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.