Ah, I just noticed I only enabled debug level. Here's the verbose log, don't mind the timestamps I've copied pasted some stuff around:
2015-06-24 09:24:20.562 Opening log file.
2015-06-24 09:24:20.562 Using FileLogWriter version 2.0.5298.0.
2015-06-24 09:24:20.609 INFO Ftp(1)[8] Info: Connecting to 1.2.3.4:123 using Ftp 4.0.5298.0.
2015-06-24 09:24:20.609 INFO Ftp(1)[8] Info: Using proxy SOCKS5 5.6.7.8:567.
2015-06-24 09:24:20.609 DEBUG ProxySocket(2)[8] Proxy: Connecting to 5.6.7.8:567.
2015-06-24 09:48:39.150 VERBOSE ProxySocket(2)[12] Proxy: Sending data:
0000 |05-02-00-02 | ....
2015-06-24 09:48:39.150 VERBOSE ProxySocket(2)[12] Proxy: Received data:
0000 |05-02 | ..
2015-06-24 09:48:39.150 VERBOSE ProxySocket(2)[12] Proxy: Sending data:
0000 |01-11-6E-6F-74-6D-79-72 65-61-6C-75-73-65-72-6E| ..notmyrealusern
0010 |61-6D-65-11-6E-6F-74-6D 79-72-65-61-6C-70-61-73| ame.notmyrealpas
0020 |73-77-6F-72-64 | sword
2015-06-24 09:48:39.181 VERBOSE ProxySocket(2)[12] Proxy: Received data:
0000 |05-00 | ..
2015-06-24 09:24:24.513 ERROR Ftp(1)[8] Info: Rebex.Net.FtpException: Invalid Socks5 response. ---> Rebex.Net.ProxySocketException: Invalid Socks5 response.
at Rebex.Net.OV.T(String A)
at Rebex.Net.PV.HC(IAsyncResult A, String B)
at Rebex.Net.PV.QB(IAsyncResult A)
at Rebex.Net.ProxySocket.EndConnect(IAsyncResult asyncResult)
at Rebex.Net.MJ..ctor(Ftp A, ISocketFactory B, String C, Int32 D)
at Rebex.Net.Ftp.SM(String A, Int32 B, TlsParameters C, FtpSecurity D)
--- End of inner exception stack trace ---
at Rebex.Net.Ftp.SM(String A, Int32 B, TlsParameters C, FtpSecurity D)
Actually when looking at rfc 1929 it seems that the proxy is sending back 05-00 which should be 01-00. Right?