dissect.target.filesystems.smb
#
Module Contents#
Classes#
Filesystem implementation for SMB. |
|
Base class for filesystem entries. |
|
Stream implementation for reading SMB files. |
Attributes#
- dissect.target.filesystems.smb.log#
- class dissect.target.filesystems.smb.SmbFilesystem(conn: impacket.smbconnection.SMBConnection, share_name: str, *args, **kwargs)#
Bases:
dissect.target.filesystem.Filesystem
Filesystem implementation for SMB.
- __fstype__ = 'smb'#
- static detect(fh: BinaryIO) bool #
No, your file is not an SMB connection.
- get(path: str) dissect.target.filesystem.FilesystemEntry #
Returns a SmbFilesystemEntry object corresponding to the given path.
- class dissect.target.filesystems.smb.SmbFilesystemEntry(fs: Filesystem, path: str, entry: Any)#
Bases:
dissect.target.filesystem.FilesystemEntry
Base class for filesystem entries.
- fs: SmbFilesystem#
- entry: impacket.smb.SharedFile#
- get(path: str) dissect.target.filesystem.FilesystemEntry #
Retrieve a FilesystemEntry relative to this entry.
- Parameters:
path – The path relative to this filesystem entry.
- Returns:
A relative FilesystemEntry.
- iterdir() Iterator[str] #
Iterate over the contents of a directory, return them as strings.
- Returns:
An iterator of directory entries as path strings.
- scandir() Iterator[dissect.target.filesystem.FilesystemEntry] #
Iterate over the contents of a directory, return them as FilesystemEntry’s.
- Returns:
An iterator of directory entries as FilesystemEntry’s.
- open() SmbStream #
Open this filesystem entry.
- Returns:
A file-like object. Resolves symlinks when possible
- is_dir(follow_symlinks: bool = True) bool #
Determine if this entry is a directory.
- Parameters:
follow_symlinks – Whether to resolve the entry if it is a symbolic link.
- Returns:
True
if the entry is a directory or a symbolic link to a directory, returnFalse
otherwise. Iffollow_symlinks
isFalse
, returnTrue
only if the entry is a directory (without following symlinks).
- is_file(follow_symlinks: bool = True) bool #
Determine if this entry is a file.
- Parameters:
follow_symlinks – Whether to resolve the entry if it is a symbolic link.
- Returns:
True
if the entry is a file or a symbolic link to a file, returnFalse
otherwise. Iffollow_symlinks
isFalse
, returnTrue
only if the entry is a file (without following symlinks).
- is_symlink() bool #
Determine whether this entry is a symlink.
- Returns:
True
if the entry is a symbolic link,False
otherwise.
- readlink() str #
Read the link where this entry points to, return the resulting path as string.
If it is a symlink and returns the entry that corresponds to that path. This means it follows the path a link points to, it tries to do it recursively.
- Returns:
The path the link points to.
- stat(follow_symlinks: bool = True) dissect.target.helpers.fsutil.stat_result #
Determine the stat information of this entry.
If the entry is a symlink and
follow_symlinks
isTrue
, it gets resolved, attempting to stat the path where it points to.- Parameters:
follow_symlinks – Whether to resolve the symbolic link if this entry is a symbolic link.
- Returns:
The stat information of this entry.
- lstat() dissect.target.helpers.fsutil.stat_result #
Determine the stat information of this entry, without resolving the symlinks.
When it detects a symlink, it will stat the information of the symlink, not the path it points to.
- Returns:
The stat information of this entry.
- class dissect.target.filesystems.smb.SmbStream(conn: impacket.smbconnection.SMBConnection, share_name: str, path: str, size: int)#
Bases:
dissect.util.stream.AlignedStream
Stream implementation for reading SMB files.
- close() None #
Flush and close the IO object.
This method has no effect if the file is already closed.