Jump to content
Hak5 Forums
Dave-ee Jones

PopsWRT - Remotely access and configure the PS

Recommended Posts

PopsWRT
Latest Version: 2G-1

Yes, it's finally released!
So, here it is! Feel free to try it out and have a play - keep in mind that some things (like the VPN feature) aren't tested and therefore aren't guaranteed to work. If they don't work let me know and I'll try dealing with it.

Configuration.
PopsWRT allows you to configure the PS in ways you always thought possible but weren't sure how to do easily (for some people). You can configure the IP, Netmask, DHCP range, VPN details, SSH server and DNS server, giving you an infinite amount of possibilities for any network situation you plug your PS into.

By default the PS starts up with the domain name "popswrt" so you can type "popswrt.com" in your browser to access it's web server. If you change the IP you can still access PopsWRT by typing "popswrt.com" in your browser (as of version 1G-3), so fear not!

Payloads and Modules.
PopsWRT comes with TCPDump ready-to-run straight from the web browser - however you can add your own payloads to the "custom" folder in the payload directory, allowing you to remotely launch payloads from the website.

Here's an example of what the file structure looks like for a custom payload:

/switch3 (PopsWRT switch directory)
	/www
	/custom
  		/tcpdump
  			/payload.sh
 	/cfg
 	/payload.sh
 	/server.py
 	/version.txt

What's with the weird version names?

Explanation: 
 0g = Pop
 1g = Grand Pop
 2g = Great Grand Pop

Examples:
 0g-0 = Pop - Variant 0
 1g-2 = Grand Pop - Variant 2

PopsWRT API for the CLI.
There's a list of commands you can use (aside from the normal bash commands) from an API that is sourced every time you call a command in the CLI on the web server. The list can be read in the "api.sh" file located in the "custom" folder of the payload directory - have a read, since some of them are quite useful!

Things you should know..

  • PopsWRT is still in development so don't expect everything to work 100%. I haven't tested running the payload for more than an hour so bear in mind it might not handle month-long applications. I've already fixed a bunch of bugs in the first day and added a few features that I'm sure you will find useful.
  • There are some options at the start of the "payload.sh" file that you can change to customise it's startup a bit.
  • Bugs should be reported via Github Issues or in this thread.

Here's a link to the Github.

Have any suggestions?
Feel free to shoot 'em at me via a DM, a comment to this post or a Github Issue.

Edited by Dave-ee Jones
  • Like 1
  • Upvote 2

Share this post


Link to post
Share on other sites

The Poll Question
What would you guys like to see in the new web design?

  • Sidebar Navigation Menu (like it is currently - feel free to let me know of any changes you want made to it)
  • Login Page (authentication into the PS - this means that anyone else who browses to the PS will see a more legitimate page - also prevents random people shutting down your PS..)
  • Cards (example - however the title background would be the blue colour and the rest white or gray or something along those lines)
  • Shadows (shadow would be on titles, buttons, textboxes and cards - not on normal text)
  • Modals (example - pop-up window whenever you click on a complicated button)
  • Graphs
    • I've made 2 quick scripts (soon-to-be functions) that allow me to calculate the current percentage of free RAM and CPU usage - this could mean graphs that show the CPU usage and free RAM on the website itself
    • Radial or Standard
      • Radial graphs would be easier on the PS as it wouldn't eventually stack up to a huge file of numbers like a history-based one would

Comment what you would like to see, or what you would like to see removed!

 

VARIANT UPDATE: 2G-1

In this update I fixed a pretty major bug. Whenever you changed the DNS server for the VPN it would cause PopsWRT to crash.
I've fixed this, and added a few more features while I was at it..Enjoy. :)

Changelog:

 SH 	- Re-written the entire payload.sh (based on itself), tweaking as I go
 SH	- "update" function now takes a path to a configuration file as an argument
 API	- Added "cfg" as a configuration management function
 API	- Added "svc" as a service management function
 FIX 	- DNS didn't show as running when it was launched on startup
 FIX	- Default DNS entry wouldn't apply unless other entries were added

 

 

As always, let me know of any more suggestions you guys can come up with! Or feel free to add onto the ones above!

Edited by Dave-ee Jones

Share this post


Link to post
Share on other sites

Dave-ee Jones:

Just to be clear, this runs as a switch position on the Packet Squirrel?

So you could have PopsWRT on switch1 with many payloads inside it... and then 2 other switch positions for more hard coded original style payloads?

I haven't got my PS with me right now or i'd have a play around with this.

Good work though!

Edited by PixL
  • Like 1

Share this post


Link to post
Share on other sites
8 minutes ago, PixL said:

Just to be clear, this runs as a switch position on the Packet Squirrel?

Yep.

8 minutes ago, PixL said:

So you could have PopsWRT on switch1 with many payloads inside it... and then 2 other switch positions for more hard coded original style payloads?

Yep. I wouldn't recommend putting real heavy payloads that change the NETMODE all the time and stuff to be called by Pops, but you get the gist.

Thanks! It's been my favourite project so far, and I'm currently re-writing it a bit so I can add some more cool features in :)

Share this post


Link to post
Share on other sites

Okay, so I just released another update for a few fixes and new features - nothing special but certainly could be useful.

-snipped random useless stuff about a dashboard-

Edited by Dave-ee Jones

Share this post


Link to post
Share on other sites

Woah thats dope. Will test as much features as i can and will report back ;)

 

@Dave-ee Jones have you thought about minifying the bootstrap-iso.css to save a few bytes since storage is gold on the PS? :D

Edited by ThoughtfulDev

Share this post


Link to post
Share on other sites
7 hours ago, ThoughtfulDev said:

Woah thats dope. Will test as much features as i can and will report back ;)

:lol: Go for it!

7 hours ago, ThoughtfulDev said:

@Dave-ee Jones have you thought about minifying the bootstrap-iso.css to save a few bytes since storage is gold on the PS? :D

I have indeed. I didn't want to break the CSS, but I know what you mean. I'll have a crack.

So after taking a deeper look I figured I'll just completely redo the whole website under my own CSS file. I did up some drawings and I think it'll look quite nice, much better than it is at the moment, but of course everyone has their own preference.

That said, I think you'll like it. It's simple and looks nice, so what's not to love about it?

Edited by Dave-ee Jones

Share this post


Link to post
Share on other sites

Everything works. Except the tcpdump. A folder on the external Storage is created but there are not tcpdump logs in there. (normal tcpdump works fine)

Logs says that tcpdump has been started and is finished so i have no idea what could be wrong. (and yes i switched it to bridge before trying that).

Share this post


Link to post
Share on other sites
10 hours ago, ThoughtfulDev said:

Everything works. Except the tcpdump. A folder on the external Storage is created but there are not tcpdump logs in there. (normal tcpdump works fine)

Logs says that tcpdump has been started and is finished so i have no idea what could be wrong. (and yes i switched it to bridge before trying that).

Okay, I'll look into it.

What do you mean by normal TCPDump? Did you just run the TCPDump payload separate?

Yeah, the logs just say when it initiated TCPDump and when TCPDump finished, it doesn't say if it had any errors or not.

Share this post


Link to post
Share on other sites
15 hours ago, Dave-ee Jones said:

Okay, I'll look into it.

What do you mean by normal TCPDump? Did you just run the TCPDump payload separate?

Yeah, the logs just say when it initiated TCPDump and when TCPDump finished, it doesn't say if it had any errors or not.

Yep when i run it seperatly on another switch it works fine but it wont work when using PopsWRT sadly.

Share this post


Link to post
Share on other sites
On 2/8/2018 at 3:09 AM, ThoughtfulDev said:

Yep when i run it seperatly on another switch it works fine but it wont work when using PopsWRT sadly.

What Ill do is make it so the PS doesn't use NETMODE TRANSPARENT while it's capturing data. This way you don't have to wait however-many-seconds-you-set until you can access the Squirrel again - it'll just run for that amount of time.

Also (talking to all readers), I added a "poll" at the start of my second post (the "Update" post), so feel free to comment your thoughts in regards to that.

Thanks!

Edited by Dave-ee Jones

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×