1
0
mirror of https://github.com/calebstewart/pwncat.git synced 2024-11-23 17:15:38 +01:00
pwncat/tests/test_session.py
Mitul16 0632beb992
chore: Pre-merge tasks completed
Oops, I missed the import for PlatformError :p
2022-02-16 16:19:35 +05:30

70 lines
2.0 KiB
Python

#!/usr/bin/env python3
import pytest
from pwncat.modules import IncorrectPlatformError
def test_session_iter_users(session):
"""Test the ability to iterate users. This happens
implicitly with session.current_user(), but it's worth
testing separately."""
assert "john" in [user.name for user in session.iter_users()]
def test_session_find_user_name(session):
"""Test that locating a user by name works"""
assert session.find_user(name="john") is not None
def test_session_find_user_uid(linux):
"""Test locating a user by their UID (for linux only)"""
user = linux.find_user(uid=0)
assert user is not None
assert user.name == "root"
def test_session_find_user_sid(windows):
"""Test locating a user by their SID (for windows only)"""
# This is the SID of the Administrator in the windows servercore image...
# This will only work from the testing container, but I've decided that's fine.
user = windows.find_user(uid="S-1-5-21-1417486881-3347836355-822217238-500")
assert user is not None
assert user.name == "Administrator"
def test_session_find_module(session):
"""Test that locating modules works"""
assert len(list(session.find_module("enumerate.*"))) > 0
assert len(list(session.find_module("enumerate.user"))) == 1
assert len(list(session.find_module("module_does_not_exist"))) == 0
def test_session_run_module(session):
"""Test running a module within a session"""
# We should be able to enumerate a hostname
facts = session.run("enumerate", types=["system.hostname"])
assert len(facts) > 0
def test_session_wrong_platform_linux(linux):
"""Test that windows modules don't run in linux"""
with pytest.raises(IncorrectPlatformError):
linux.run("windows.enumerate.user")
def test_session_wrong_platform_windows(windows):
"""Test that linux modules don't run on windows"""
with pytest.raises(IncorrectPlatformError):
windows.run("linux.enumerate.user")