From 945332ca057383f258c78fd15cbc22f8b8d58a83 Mon Sep 17 00:00:00 2001 From: "Tyler St. Onge" Date: Fri, 24 Jul 2020 14:46:29 -0400 Subject: restructure project and flesh out more commands --- .../tylerstonge/honeypot/SimplisticHandler.scala | 11 --------- .../com/tylerstonge/honeypot/ftp/FtpHandler.scala | 27 ++++++++++++++++++++++ .../com/tylerstonge/honeypot/ftp/FtpListener.scala | 24 +------------------ .../tylerstonge/honeypot/http/HttpListener.scala | 1 - .../honeypot/http/SimplisticHandler.scala | 11 +++++++++ 5 files changed, 39 insertions(+), 35 deletions(-) delete mode 100644 src/main/scala/com/tylerstonge/honeypot/SimplisticHandler.scala create mode 100644 src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala create mode 100644 src/main/scala/com/tylerstonge/honeypot/http/SimplisticHandler.scala diff --git a/src/main/scala/com/tylerstonge/honeypot/SimplisticHandler.scala b/src/main/scala/com/tylerstonge/honeypot/SimplisticHandler.scala deleted file mode 100644 index 41b49c9..0000000 --- a/src/main/scala/com/tylerstonge/honeypot/SimplisticHandler.scala +++ /dev/null @@ -1,11 +0,0 @@ -package com.tylerstonge.honeypot - -import akka.actor.Actor -import akka.io.Tcp.{PeerClosed, Received, Write} - -class SimplisticHandler extends Actor { - def receive: Receive = { - case Received(data) => sender() ! Write(data) - case PeerClosed => context.stop(self) - } -} diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala new file mode 100644 index 0000000..8a55396 --- /dev/null +++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala @@ -0,0 +1,27 @@ +package com.tylerstonge.honeypot.ftp + +import akka.actor.Actor +import akka.event.{Logging, LoggingAdapter} +import akka.io.Tcp.{PeerClosed, Received, Write} +import akka.util.ByteString + +class FtpHandler extends Actor { + val log: LoggingAdapter = Logging(context.system, this) + + override def receive: Receive = { + case Received(data) => + log.info(">> {}", data.utf8String) + sender() ! Write(ByteString.apply(parse(data.utf8String))) + case PeerClosed => + log.info("closing connection") + context.stop(self) + } + + def parse(msg: String): String = msg match { + case "USER anonymous\n" => "331 Please specify password.\n" + case "PASS password\n" => "230 Login successful.\n" + case "PWD\n" => "257 \"/\" is the current directory\n" + case "QUIT\n" => "221 Goodbye.\n" + case _ => "200 sure\n" + } +} diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpListener.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpListener.scala index 460f2f8..3e6606a 100644 --- a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpListener.scala +++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpListener.scala @@ -13,7 +13,6 @@ class FtpListener extends Actor { val log: LoggingAdapter = Logging(context.system, this) IO(Tcp)(context.system) ! Bind(self, new InetSocketAddress("localhost", 2121)) - override def receive: Receive = { case Bound(localAddress) => log.info("listening on {}", localAddress) @@ -24,25 +23,4 @@ class FtpListener extends Actor { connection ! Register(handler) connection ! Write(ByteString.apply("220 (vulnFTPd 2.0.1)\n")) } -} - -class FtpHandler extends Actor { - val log: LoggingAdapter = Logging(context.system, this) - - override def receive: Receive = { - case Received(data) => { - log.info(">> {}", data.utf8String) - sender() ! Write(ByteString.apply(parse(data.utf8String))) - } - case PeerClosed => { - log.info("closing connection") - context.stop(self) - } - } - - def parse(msg: String): String = msg match { - case "AUTH SSL" => "500 cmd not recognized\n" - case "USER dropkick" => "200 come on in\n" - case _ => "200 sure\n" - } -} +} \ No newline at end of file diff --git a/src/main/scala/com/tylerstonge/honeypot/http/HttpListener.scala b/src/main/scala/com/tylerstonge/honeypot/http/HttpListener.scala index edd2b01..8943ee0 100644 --- a/src/main/scala/com/tylerstonge/honeypot/http/HttpListener.scala +++ b/src/main/scala/com/tylerstonge/honeypot/http/HttpListener.scala @@ -6,7 +6,6 @@ import akka.actor.{Actor, Props} import akka.event.Logging import akka.io.Tcp._ import akka.io.{IO, Tcp} -import com.tylerstonge.honeypot.SimplisticHandler class HttpListener extends Actor { diff --git a/src/main/scala/com/tylerstonge/honeypot/http/SimplisticHandler.scala b/src/main/scala/com/tylerstonge/honeypot/http/SimplisticHandler.scala new file mode 100644 index 0000000..2fe1409 --- /dev/null +++ b/src/main/scala/com/tylerstonge/honeypot/http/SimplisticHandler.scala @@ -0,0 +1,11 @@ +package com.tylerstonge.honeypot.http + +import akka.actor.Actor +import akka.io.Tcp.{PeerClosed, Received, Write} + +class SimplisticHandler extends Actor { + def receive: Receive = { + case Received(data) => sender() ! Write(data) + case PeerClosed => context.stop(self) + } +} -- cgit v1.1