summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler St. Onge <tylertstonge@gmail.com>2020-08-22 02:10:32 -0400
committerTyler St. Onge <tylertstonge@gmail.com>2020-08-22 02:10:32 -0400
commit384d4fabdea754d1b37922fa13b6875aac3c4aca (patch)
tree607c74e2c7982142e31db326949d5cc183aac68c
parenta600075abf8515977c7728b35e8677d7d5f1756c (diff)
randomly generate passive port
-rw-r--r--src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileReceiver.scala2
-rw-r--r--src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala9
2 files changed, 9 insertions, 2 deletions
diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileReceiver.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileReceiver.scala
index 9f88b06..fa54d28 100644
--- a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileReceiver.scala
+++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileReceiver.scala
@@ -49,3 +49,5 @@ class FtpFileReceiver(port: Int, controller: ActorRef) extends Actor {
}
}
}
+
+case class Ready() \ No newline at end of file
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"