XPROBE2(1)
π XPROBE2 π
okay bestie, so this is the manual page for xprobe2, and it lives in the General Commands Manual section β that's the XPROBE2(1) situation, iykyk. it's a remote active operating system fingerprinting tool, and she is that girl. let's get into it π¦
β¨ NAME β¨
xprobe2 β a remote active operating system fingerprinting tool. periodt. π
πΈ SYNOPSIS πΈ
xprobe2 [ -v ] [ -r ] [ -p proto:portnum:state ] [ -c configfile ] [ -o
logfile ] [ -p port ] [ -t receive_timeout ] [ -m numberofmatches ] [ -D
modnum ] [ -F ] [ -X ] [ -B ] [ -A ] [ -T port spec ] [ -U port spec ]
host
like yes, that's a lot of brackets, but she's flexible okay π
π« DESCRIPTION π«
xprobe2 is an active operating system fingerprinting tool that takes a whole different approach to OS fingerprinting, and honestly? it's giving main character energy. instead of doing the basic thing, xprobe2 relies on:
- fuzzy signature matching
- probabilistic guesses
- multiple matches simultaneously
- a signature database
the way she operates is described in a paper titled "xprobe2 - A Β΄FuzzyΒ΄ Approach to Remote Active Operating System Fingerprinting", which you can grab from http://www.sys-security.com/html/projects/X.html πβ¨
β οΈ okay this part matters a LOT: becausexprobe2uses raw sockets to send probes, you must have root privileges forxprobe2to be able to use them. no root, no probes, no vibes. π₯
π OPTIONS π
-vβ be verbose. she's talking, and you WILL listen. π£οΈ-rβ display route to target. it's a traceroute-like output, lowkey iconic. π£οΈ-cβ use configfile to read the configuration file,xprobe2.conf, from a non-default location. moving day, bestie. π¦-Dβ disable module number modnum. not every module gets a seat at the table. π-mβ set number of results to display to numofmatches. quality over quantity, fr fr. π-oβ use logfile to log everything (default output isstderr). write it down so you don't forget βοΈ-pβ specify port number (portnum), protocol (proto) and it's state forxprobe2to use during rechability/fingerprinting tests of remote host. possible values for proto aretcporudp, portnum can only take values from1to65535, and state can be either:closedβ fortcpthat means that remote host replies withRSTpacket, forudpthat means that remote host replies withICMP Port Unreachablepacketopenβ fortcpthat means that remote host replies withSYN ACKpacket and forudpthat means that remote host doesn't send any packet back
she contains multitudes, okay? π
-tβ set receive timeout to receive_timeout in seconds (the default is set to10seconds). patience is a virtue but ten seconds is ten seconds β³-Fβ generate signature for specified target (use-oto save fingerprint into file). glow-up, but make it a fingerprint β¨-Xβ write XML output to logfile specified with-o. fancy formatting, we love to see it π-Bβ causesxprobe2to be a bit more noisy, as-Bmakes TCP handshake module to try and blindly guess an open TCP port on the target, by sending sequential probes to the following well-known ports:80,443,23,21,25,22,139,445and6000hoping to getSYN ACKreply. ifxprobe2receivesRST|ACKorSYN|ACKpackets for a port in the list above, it will be saved in the target port database to be later used by other modules (i.e. RST module). loud and proud, honestly π-T,-Uβ enable built-in portscanning module, which will attempt to scan TCP and/or UDP ports respectively, which were specified in port spec. multitasking queen π-Aβ enable experimental support for detection of transparent proxies and firewalls/NIDSs spoofing RST packets in portscanning module. option should be used in conjunction with-T. all responses from target gathered during portscanning process are divided in two classes (SYN|ACKandRST) and saved for analysis. during analysis module will search for different packets, based on some of the fields of TCP and IP headers, within the same class and if such packets are found, message will be displayed showing different packets within the same class. detective mode: activated π
π§ EXAMPLES π§
xprobe2 -v -D 1 -D 2 192.168.1.10
will launch an OS fingerprinting attempt targeting 192.168.1.10. modules 1 and 2, which are reachability tests, will be disabled, so probes will be sent even if target is down. output will be verbose. she's persistent, what can I say π€
xprobe2 -v -p udp:53:closed 192.168.1.20
will launch an OS fingerprint attempt targeting 192.168.1.20. the UDP destination port is set to 53, and the output will be verbose. π
xprobe2 -M 11 -p tcp:80:open 192.168.1.1
will only enable TCP handshake module (number 11) to probe the target, very useful when all ICMP traffic is filtered. when the vibes are blocked, we route around them π«
xprobe2 -B 192.168.1.1
will cause TCP handshake module to try blindly guess open port on the target by sequentially sending TCP packets to the most likely open ports (80, 443, 23, 21, 25, 22, 139, 445 and 6000). π―
xprobe2 -T 1-1024 127.0.0.1
will enable portscanning module, which will scan TCP ports starting from 1 to 1024 on 127.0.0.1. π§Ή
xprobe2 -p tcp:139:open 192.168.1.2
if remote target has TCP port 139 open, the command line above will enable application level SMB module (if remote target has TCP port 445 open, substitue 139 in the command line with 445). ποΈ
xprobe2 -p udp:161:open 192.168.1.10
will enable SNMPv2c application level module, which will try to retrieve sysDescr.0 OID using community strings taken from xprobe2.conf file. nosy in the best way π
π«Ά NOTES π«Ά
xprobe2 fingerprints remote operating system by analyzing the replies from the target, so to get the most out of xprobe2 you need to supply xprobe2 with as much information as possible. in particular it is important to supply at least one open TCP port and one closed UDP port. π
open TCP port can either be provided in command line (-p), obtained through built-in portscanner (-T) or -B option can be used to cause xprobe2 to try to blindly guess open TCP port. UDP port can be supplied via command line (-p) or through built-in portscanner (-U).
so basically: feed her data. she thrives on it. πΈ
π HISTORY π
xprobe has been developed in 2001 based on research performed by Ofir Arkin <ofir@sys-security.com>. the code has been officially released at the BlackHat Briefings in Las-Vegas in 2001. xprobe2 is a logical evolution of xprobe code. signature based fuzzy fingerprinting logic was embedded. a glow-up arc for the history books, no cap β¨π
π SEE ALSO π
π AUTHORS π
- Fyodor Yarochkin
<fyodor@o0o.nu> - Ofir Arkin
<ofir@sys-security.com> - Meder Kydyraliev
<meder@o0o.nu>
(see also CREDITS in distro tarball). the girlies who built her π
π AVAILABILITY π
the current version and relevant documentation is available from following url:
https://sourceforge.net/projects/xprobe/
go get her, bestie ποΈ
π BUGS π
None known (please report).
not me being shocked that there are zero known bugs π but like, if you find one, PLEASE report it.
and that's the whole page, fr fr. this was the XPROBE2(1) manual page from the General Commands Manual, and we are officially done here. stay fuzzy, stay root, and go fingerprint something responsibly πβ¨π
π¦ where this page comes from
- ubuntu jammy: xprobe 0.3-5 Β· GPL-2.0-or-later
- Copyright (C) 2001-2002 Fyodor Yarochkin <fygrave@tigerteam.net>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms