Good day,

It appears that nmap doesn't currently recognize TCP-bound NSConnection (
https://developer.apple.com/documentation/foundation/nsconnection ).

Example server code:

NSConnection *a = [NSConnection connectionWithReceivePort:[[NSSocketPort
alloc] init] sendPort:nil];
[a setRootObject:[[NSObject alloc] init]];
[a runInNewThread];
[NSThread sleepForTimeInterval:300.0f];

Example client code:

NSLog(@"%@\n", [[NSConnection connectionWithReceivePort:nil
sendPort:[[NSSocketPort alloc] initRemoteWithTCPPort:remoteport
host:@"remotehost"]]
rootProxy]);

Possible probe based on first client packet:
Probe TCP NSConnection_rootProxy
q|\xd0\xcf\x50\xc0\x00\x00\x00\x7b\x00\x00\x00\x00\x02\x01\x06\x10\x10\x02\xc0\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x53\x04\xed\xfe\>

Across multiple runs I found little variation in clients' initial packets.
The data byte at offset 0x13 (assuming the first byte has offset 0x0)
appeared variable in the client.

SF-Port49157-TCP:V=7.94SVN%I=2%D=10/11%Time=6709CDA7%P=x86_64-pc-linux-gnu
SF:%r(NSConnection_rootProxy,D0,"\xd0\xcfP\xc0\0\0\0\xd0\0\0\0\0\x02\x01\x
SF:06\x10\x10\x02\xc0\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x98bplis
SF:t00\xd5\x01\x02\x03\x04\x05\x06\t\n\x0b\rRrpRidSseqSexcSret\xd1\x07\x08
SF:R\$n\t\x12\x0e/\xfe\xce\x10\x01\xd1\x07\x08\t\xd1\x0e\x0fR\$g\xa1\x10\x
SF:d3\x11\x12\x13\x14\n\x15S\$cnQiQt_\x10\x0fNSDistantObject\x10\0\x08\x13
SF:\x16\x19\x1d!%\(\+,1367:=\?FJLN`\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x16\
SF:0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\x01\0\0\0\x080001KeYd");

Some similarities between this and the existing match for DEVONthink
dcoument management [sic].  My original thought was to target bplist00 for
a match because it would avoid getting confused by a server echoing the
client's initial packet and it appears to be a known and researched topic
per Google.  Maybe a match pattern like bplist00.+NSDistantObject could
work here without negatively impacting the DEVONthink match?  I
personally would be hesitant to try matching on too much of the server's
first response, not knowing exactly what those bytes mean, and not knowing
how variations in the server code (e.g.,
https://developer-mdn.apple.com/library/archive/documentation/Cocoa/Conceptual/DistrObjects/Tasks/delegate.html
) could affect the server's first response.

SF-Port49154-TCP:V=7.94SVN%I=2%D=10/11%Time=6709D113%P=x86_64-pc-linux-gnu
SF:%r(NSConnection_rootProxy,D0,"\xd0\xcfP\xc0\0\0\0\xd0\0\0\0\0\x02\x01\x
SF:06\x10\x10\x02\xc0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x98bplis
SF:t00\xd5\x01\x02\x03\x04\x05\x06\t\n\x0b\rRrpRidSseqSexcSret\xd1\x07\x08
SF:R\$n\t\x12\x0e/\xfe\xce\x10\x01\xd1\x07\x08\t\xd1\x0e\x0fR\$g\xa1\x10\x
SF:d3\x11\x12\x13\x14\n\x15S\$cnQiQt_\x10\x0fNSDistantObject\x10\0\x08\x13
SF:\x16\x19\x1d!%\(\+,1367:=\?FJLN`\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x16\
SF:0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\0\0\x01\0\0\0\x080001KeYd");

The targets were running Sonoma.  I can't speak to how different things
would be on different MacOS versions, but NSConnection's deprecation would
suggest it may not be too much of a moving target.

-HN
PGP CC7C 7F5A
_______________________________________________
Sent through the dev mailing list
https://nmap.org/mailman/listinfo/dev
Archived at https://seclists.org/nmap-dev/

Reply via email to