Building a Basic Password Cracker with Python
A fun and practical guide to the basics of the pwd and crypt libraries.
Introduction
In the vast digital landscape, Unix or Linux systems often play a major role in our infrastructure. With admin permission over one of these devices, you could easily find yourself with the capability to wreak some serious havoc. On systems like these, the gatekeeper between you and complete control is often just a password. In this tutorial, we’ll explore how to crack those passwords using Python.
Prerequisites
Before we dive into the code, let’s cover the basics. We’ll be using two Python libraries: pwd
and crypt
. If you’re not familiar with them, don’t worry—I’ll explain everything step by step.
The pwd
Library
The pwd
library provides access to the Unix password database. It allows us to retrieve user information, including encrypted passwords. We’ll use it to simulate a login scenario.
Simulating a Login
import pwd
import crypt
import getpass
def login():
username = input('Enter your username: ')
try:
user_info = pwd.getpwnam(username)
crypted_passwd = user_info.sp_pwdp
if crypted_passwd == 'x' or crypted_passwd == '*'…