Skip to content

Commit 66752f1

Browse files
committed
Add commands
1 parent f31c5ae commit 66752f1

10 files changed

Lines changed: 869 additions & 0 deletions

assets/commands/ges-launch-1.0.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# TAGLINE
2+
3+
Create and render GStreamer multimedia timelines
4+
5+
# TLDR
6+
7+
**Play back a media file** on the timeline
8+
9+
```ges-launch-1.0 +clip [path/to/file.mp4]```
10+
11+
**Render a timeline** to an output file
12+
13+
```ges-launch-1.0 +clip [path/to/input.mp4] -o file:///[path/to/output.webm]```
14+
15+
**Add a clip with a specific duration** (in nanoseconds)
16+
17+
```ges-launch-1.0 +clip [path/to/file.mp4] duration=[5000000000]```
18+
19+
**Apply a video effect** to a clip
20+
21+
```ges-launch-1.0 +clip [path/to/file.mp4] +effect videobalance saturation=[0.0]```
22+
23+
**Load an existing project** file
24+
25+
```ges-launch-1.0 -l [path/to/project.xges]```
26+
27+
**Add a title clip** to the timeline
28+
29+
```ges-launch-1.0 +title text="[Hello World]" duration=[3000000000]```
30+
31+
# SYNOPSIS
32+
33+
**ges-launch-1.0** [_options_] [_commands_]
34+
35+
# PARAMETERS
36+
37+
**-h**, **--help**
38+
> Display help options.
39+
40+
**--help-all**
41+
> Display all available help options.
42+
43+
**--help-gst**
44+
> Display GStreamer-specific options.
45+
46+
**-l**, **--load** _URI_
47+
> Load an existing project from a .xges file.
48+
49+
**-s**, **--save** _URI_
50+
> Save the current timeline to a project file before rendering.
51+
52+
**-p**, **--sample-path** _PATH_
53+
> Search for missing assets in the specified directory.
54+
55+
**-o**, **--outputuri** _URI_
56+
> Render the timeline to the given file URI instead of playing it back.
57+
58+
**-f**, **--format** _PROFILE_
59+
> Specify the encoding profile from the command line.
60+
61+
**-e**, **--encoding-profile** _PRESET_
62+
> Use an encoding profile preset.
63+
64+
**-t**, **--track-types** _TYPES_
65+
> Define which track types to create (audio, video, or both).
66+
67+
**-v**, **--videosink** _SINK_
68+
> Set the video output sink for playback.
69+
70+
**-a**, **--audiosink** _SINK_
71+
> Set the audio output sink for playback.
72+
73+
**-m**, **--mute**
74+
> Mute audio and video during playback.
75+
76+
**--disable-mixing**
77+
> Disable layer mixing and compositing.
78+
79+
**--list-transitions**
80+
> List all valid transition types and exit.
81+
82+
**-r**, **--repeat** _N_
83+
> Repeat the timeline _N_ times.
84+
85+
# TIMELINE COMMANDS
86+
87+
**+clip** _URI_ [_inpoint=ns_] [_duration=ns_] [_start=ns_] [_layer=n_]
88+
> Add a media clip to the timeline. Times are in nanoseconds.
89+
90+
**+effect** _BIN-DESCRIPTION_
91+
> Apply a GStreamer bin effect to the preceding clip (uses gst-launch syntax).
92+
93+
**+title** [_text=STRING_] [_duration=ns_]
94+
> Insert a title text clip into the timeline.
95+
96+
**set-** _PROPERTY_ _VALUE_
97+
> Set a property on a timeline object (clip, effect) by name.
98+
99+
# DESCRIPTION
100+
101+
**ges-launch-1.0** is the command-line tool for the **GStreamer Editing Services** (GES) library. It constructs multimedia timelines from clips, effects, and titles, then either plays them back in real time or renders them to a file in a specified format. Timelines can be built from command-line arguments or loaded from existing **.xges** project files.
102+
103+
The tool leverages the full GStreamer pipeline framework, meaning any format or codec supported by GStreamer can be used for input and output. It is commonly used for quick video editing tasks, automated rendering pipelines, and testing GES functionality.
104+
105+
# CAVEATS
106+
107+
Duration and time values are specified in **nanoseconds**, which can be unintuitive (1 second = 1000000000). The rendering format depends on available GStreamer plugins and encoding profiles; missing plugins will cause silent failures or cryptic errors. Complex timelines are better managed through the .xges project file format or a GUI editor like **Pitivi** rather than long command-line invocations.
108+
109+
# HISTORY
110+
111+
GES was developed as part of the **GStreamer** project to provide a high-level editing API on top of GStreamer's media framework. The **ges-launch-1.0** tool was introduced alongside the GES library to allow command-line timeline construction and rendering. It is closely tied to the **Pitivi** video editor, which uses GES as its backend engine. The tool follows the GStreamer 1.x versioning scheme.
112+
113+
# SEE ALSO
114+
115+
[gst-launch-1.0](/man/gst-launch-1.0)(1), [gst-inspect-1.0](/man/gst-inspect-1.0)(1), [ffmpeg](/man/ffmpeg)(1)
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# TAGLINE
2+
3+
GStreamer media transcoder
4+
5+
# TLDR
6+
7+
**Transcode a video file** to WebM format (auto-detected from extension)
8+
9+
```gst-transcoder-1.0 file:///[path/to/input.mp4] file:///[path/to/output.webm]```
10+
11+
**Transcode with a specific encoding format**
12+
13+
```gst-transcoder-1.0 file:///[path/to/input.mp4] file:///[path/to/output.mkv] "[encoding_format]"```
14+
15+
**Transcode and resize** the video to a specific frame size
16+
17+
```gst-transcoder-1.0 -s [1280x720] file:///[path/to/input.mp4] file:///[path/to/output.mp4]```
18+
19+
**Transcode with a specific video framerate**
20+
21+
```gst-transcoder-1.0 -f [30/1] file:///[path/to/input.mp4] file:///[path/to/output.mp4]```
22+
23+
**List all available encoding targets**
24+
25+
```gst-transcoder-1.0 -l```
26+
27+
**Limit CPU usage** during transcoding
28+
29+
```gst-transcoder-1.0 -c [50] file:///[path/to/input.mp4] file:///[path/to/output.mp4]```
30+
31+
# SYNOPSIS
32+
33+
**gst-transcoder-1.0** [_options_] _input-uri_ _output-uri_ [_encoding-format_[/_profile-name_]]
34+
35+
# PARAMETERS
36+
37+
**-h**, **--help**
38+
> Show help options.
39+
40+
**--help-all**
41+
> Show all help options.
42+
43+
**--help-gst**
44+
> Show GStreamer-specific options.
45+
46+
**-c**, **--cpu-usage** _PERCENT_
47+
> Target CPU usage percentage for the transcoding process.
48+
49+
**-l**, **--list-targets**
50+
> List all available encoding targets and exit.
51+
52+
**-s**, **--size** _WxH_
53+
> Set the output video frame size (e.g. 1280x720).
54+
55+
**-r**, **--audio-rate** _HZ_
56+
> Set the audio sampling rate in Hz.
57+
58+
**-f**, **--framerate** _FRACTION_
59+
> Set the video framerate as a fraction (e.g. 24/1) or a single number (e.g. 24).
60+
61+
**-v**, **--video-encoder** _ENCODER_
62+
> Specify the video encoder element to use.
63+
64+
# DESCRIPTION
65+
66+
**gst-transcoder-1.0** is a command-line tool that transcodes multimedia streams from one format to another using the GStreamer framework. It reads from an input URI, processes the media, and writes to an output URI in the specified encoding format.
67+
68+
The encoding format can be specified explicitly as a serialization string (e.g. **muxer_caps:video_caps:audio_caps**), as a named target from **.gep** profile files, or omitted entirely to let the tool guess the format from the output file extension.
69+
70+
The tool uses the GStreamer Transcoder API internally, leveraging **decodebin** and **encodebin** elements for automatic format detection and encoding.
71+
72+
# CAVEATS
73+
74+
Input and output paths must be specified as URIs with the **file:///** prefix, not as plain file paths. The available encoding formats depend on which GStreamer plugins are installed on the system. The CPU usage throttling is approximate and depends on system load. Complex transcoding scenarios may require explicit encoding format strings rather than relying on file extension detection.
75+
76+
# HISTORY
77+
78+
**gst-transcoder-1.0** was originally developed as part of the **Pitivi** video editor project to provide transcoding functionality. It was later integrated into **gst-plugins-bad**, becoming a standard GStreamer utility. The tool builds on the GstTranscoder library, which provides a simplified high-level API for media transcoding on top of GStreamer's pipeline framework.
79+
80+
# SEE ALSO
81+
82+
[gst-launch-1.0](/man/gst-launch-1.0)(1), [gst-inspect-1.0](/man/gst-inspect-1.0)(1), [ges-launch-1.0](/man/ges-launch-1.0)(1), [ffmpeg](/man/ffmpeg)(1)
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# TAGLINE
2+
3+
Dump remote host NTLM authentication information
4+
5+
# TLDR
6+
7+
**Dump NTLM info** from a target host via SMB
8+
9+
```impacket-dumpntlminfo [192.168.1.100]```
10+
11+
**Dump NTLM info** using a specific port
12+
13+
```impacket-dumpntlminfo -port [139] [192.168.1.100]```
14+
15+
**Dump NTLM info** using RPC protocol instead of SMB
16+
17+
```impacket-dumpntlminfo -protocol RPC [192.168.1.100]```
18+
19+
**Dump NTLM info** with a specific target IP
20+
21+
```impacket-dumpntlminfo -target-ip [192.168.1.100] [hostname]```
22+
23+
**Enable debug output** for troubleshooting
24+
25+
```impacket-dumpntlminfo -debug [192.168.1.100]```
26+
27+
# SYNOPSIS
28+
29+
**impacket-dumpntlminfo** [_-debug_] [_-ts_] [_-target-ip IP_] [_-port PORT_] [_-protocol {SMB,RPC}_] _target_
30+
31+
# PARAMETERS
32+
33+
**-debug**
34+
> Turn DEBUG output on.
35+
36+
**-ts**
37+
> Add timestamp to every logging output.
38+
39+
**-target-ip** _IP_
40+
> IP address of the target machine. Useful when target is a NetBIOS name that cannot be resolved.
41+
42+
**-port** _PORT_
43+
> Destination port to connect to the SMB/RPC server. Default is 445.
44+
45+
**-protocol** {**SMB**, **RPC**}
46+
> Protocol to use. Default is SMB. Port 135 normally uses RPC.
47+
48+
# DESCRIPTION
49+
50+
**impacket-dumpntlminfo** performs NTLM authentication against a remote host and extracts information from the NTLM challenge response, **without requiring any credentials**. By initiating an SMB or RPC connection, the tool triggers an NTLM authentication handshake and parses the server's response to reveal details such as the hostname, domain name, DNS information, OS version, and timestamp.
51+
52+
This is useful for reconnaissance during penetration testing, as it provides network and host information without authentication.
53+
54+
# CAVEATS
55+
56+
Only works against hosts with SMB or RPC services exposed. Firewalls or security policies may block unauthenticated NTLM negotiation. The amount of information returned depends on the target's SMB/RPC configuration and Windows version.
57+
58+
# HISTORY
59+
60+
Part of the **Impacket** library, originally developed by **SecureAuth** (now **Fortra**). Impacket is a collection of Python classes for working with network protocols, widely used in penetration testing and security research. The tool leverages the NTLM authentication handshake to extract server metadata without credentials.
61+
62+
# SEE ALSO
63+
64+
[impacket-psexec](/man/impacket-psexec)(1), [impacket-smbclient](/man/impacket-smbclient)(1), [impacket-rpcdump](/man/impacket-rpcdump)(1)

assets/commands/impacket-getst.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# TAGLINE
2+
3+
Request a Kerberos Service Ticket and save as ccache
4+
5+
# TLDR
6+
7+
**Request a service ticket** for a specific SPN
8+
9+
```impacket-getst -spn '[cifs/target.domain.com]' '[domain]/[user]:[password]'```
10+
11+
**Request a service ticket** using an NTLM hash
12+
13+
```impacket-getst -spn '[cifs/target.domain.com]' -hashes ':[nthash]' '[domain]/[user]'```
14+
15+
**Impersonate a user** via S4U2Self and S4U2Proxy (delegation attack)
16+
17+
```impacket-getst -spn '[cifs/target.domain.com]' -impersonate '[administrator]' '[domain]/[user]:[password]'```
18+
19+
**Request a service ticket** using Kerberos authentication from ccache
20+
21+
```impacket-getst -spn '[cifs/target.domain.com]' -k -no-pass '[domain]/[user]'```
22+
23+
**Request a service ticket** using an AES key
24+
25+
```impacket-getst -spn '[cifs/target.domain.com]' -aesKey '[aes256key]' '[domain]/[user]'```
26+
27+
**Request a User-to-User ticket**
28+
29+
```impacket-getst -u2u -spn '[cifs/target.domain.com]' '[domain]/[user]:[password]'```
30+
31+
# SYNOPSIS
32+
33+
**impacket-getst** [_-spn SPN_] [_-impersonate USER_] [_-altservice SPN_] [_-additional-ticket FILE_] [_-hashes LMHASH:NTHASH_] [_-aesKey KEY_] [_-k_] [_-no-pass_] [_-dc-ip IP_] _identity_
34+
35+
# PARAMETERS
36+
37+
**-spn** _SPN_
38+
> Service Principal Name (service/server) of the target service.
39+
40+
**-altservice** _SPN_
41+
> Set a new sname/SPN in the resulting ticket.
42+
43+
**-impersonate** _USER_
44+
> Target username to impersonate via S4U2Self. Requires delegation privileges.
45+
46+
**-additional-ticket** _FILE_
47+
> Include a forwardable service ticket in an S4U2Proxy request for RBCD + KCD.
48+
49+
**-dmsa**
50+
> Use Delegated Managed Service Accounts.
51+
52+
**-u2u**
53+
> Request a User-to-User ticket.
54+
55+
**-self**
56+
> Only perform S4U2Self, skip S4U2Proxy.
57+
58+
**-force-forwardable**
59+
> Force the S4U2Self service ticket to be forwardable.
60+
61+
**-renew**
62+
> Renew the TGT used for authentication.
63+
64+
**-ts**
65+
> Add timestamp to every logging output.
66+
67+
**-debug**
68+
> Turn DEBUG output on.
69+
70+
**-hashes** _LMHASH:NTHASH_
71+
> Use NTLM hashes for authentication instead of password.
72+
73+
**-no-pass**
74+
> Do not prompt for password (useful with -k).
75+
76+
**-k**
77+
> Use Kerberos authentication from ccache file (KRB5CCNAME).
78+
79+
**-aesKey** _KEY_
80+
> AES key for Kerberos authentication (128 or 256 bit).
81+
82+
**-dc-ip** _IP_
83+
> IP address of the domain controller.
84+
85+
# DESCRIPTION
86+
87+
**impacket-getst** requests a Kerberos Service Ticket (ST) from an Active Directory domain controller and saves it as a ccache file. It supports standard ticket requests, S4U2Self/S4U2Proxy delegation attacks for user impersonation, and User-to-User authentication.
88+
89+
This tool is commonly used in penetration testing for Kerberos delegation abuse (constrained delegation, resource-based constrained delegation) where an attacker with delegation privileges can impersonate any user to a target service. The resulting ccache file can be used with other tools via the **KRB5CCNAME** environment variable.
90+
91+
# CAVEATS
92+
93+
Requires a valid TGT or credentials. Impersonation via S4U2Self/S4U2Proxy requires the identity account to have delegation privileges configured in Active Directory. Time synchronization between client and KDC must be within 5 minutes. The **-force-forwardable** flag exploits CVE-2020-17049 (Bronze Bit) and may not work on patched domain controllers.
94+
95+
# HISTORY
96+
97+
Part of the **Impacket** library by **SecureAuth** (now **Fortra**). The S4U extensions (S4U2Self and S4U2Proxy) were originally designed by Microsoft for constrained delegation scenarios. Security researchers discovered that these mechanisms could be abused for privilege escalation, making getST a key tool in Kerberos-based attack chains.
98+
99+
# SEE ALSO
100+
101+
[impacket-gettgt](/man/impacket-gettgt)(1), [impacket-getuserspns](/man/impacket-getuserspns)(1), [impacket-secretsdump](/man/impacket-secretsdump)(1), [klist](/man/klist)(1)

0 commit comments

Comments
 (0)