diff options
author | Tyler St. Onge <tylertstonge@gmail.com> | 2020-08-22 02:10:32 -0400 |
---|---|---|
committer | Tyler St. Onge <tylertstonge@gmail.com> | 2020-08-22 02:10:32 -0400 |
commit | 384d4fabdea754d1b37922fa13b6875aac3c4aca (patch) | |
tree | 607c74e2c7982142e31db326949d5cc183aac68c /src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | |
parent | a600075abf8515977c7728b35e8677d7d5f1756c (diff) |
randomly generate passive port
Diffstat (limited to 'src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala')
-rw-r--r-- | src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala index 840ce97..46263c6 100644 --- a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala +++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala @@ -5,6 +5,8 @@ import akka.event.{Logging, LoggingAdapter} import akka.io.Tcp.{PeerClosed, Received, Write} import akka.util.ByteString +import scala.util.Random + object FtpHandler { def props(client: ActorRef): Props = Props(new FtpHandler(client)) } @@ -31,9 +33,12 @@ class FtpHandler(client: ActorRef) extends Actor { case "quit" => "221 Goodbye.\n" case "pasv" => log.info("entering passive mode") - context.actorOf(FtpFileReceiver.props(1287, client), name = "passive-connection") + val r = new Random() + val p1 = r.nextInt(200) + val p2 = r.nextInt(200) + context.actorOf(FtpFileReceiver.props(p1 * 256 + p2, client), name = "passive-connection") Thread.sleep(256) - "227 entering passive mode (127,0,0,1,5,7)\n" + "227 entering passive mode (127,0,0,1," + p1 + "," + p2 + ")\n" case "stor" => log.info("stor: {}", msg(1)) "150 File status okay; about to open data connection.\n" |