View Issue Details

IDProjectCategoryView StatusLast Update
0008805Kali LinuxQueued Tool Additionpublic2024-08-12 08:38
Reporterc1sc0 Assigned Tosbrun  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Fixed in Version2024.3 
Summary0008805: goshs - a simple HTTP Webserver with advanced capability like basic auth, webdav and TLS encryption
Description

[Name] - goshs
[Version] - v0.3.9
[Homepage] - https://github.com/patrickhener/goshs
[Download] - https://github.com/patrickhener/goshs/releases
[Author] - Patrick Hener
[Licence] - MIT (https://github.com/patrickhener/goshs/blob/main/LICENSE)
[Description] - It is a simple HTTP server with advanced capabilities. The feature list reads like:

  • Download or view files
    • Bulk download as .zip file
  • Upload files (Drag & Drop)
  • Delete files
    • Individually
    • Bulk delete
  • Basic Authentication
  • Transport Layer Security (HTTPS)
    • self-signed
    • let's encrypt
    • provide own certificate
  • Non persistent clipboard
    • Download clipboard entries as .json file
  • WebDAV support
  • Read-Only and Upload-Only mode
  • Silent mode (no webserver output)
  • Retrieve json on cli
  • Drop user privileges before execution (Unix only)
    • Example: Run on port 80, but process is "www-data"
  • Themes
    • Dark Mode
    • Light Mode
  • Command Line
    • Run Commands on the system hosting goshs
  • File Based ACLs
    • You can place a .goshs in any folder to apply custom ACLs
    • You can apply custom basic auth per folder
    • You can restrict access to specific files completely
  • Embed files on compile time

[Dependencies] - It is a golang tool and needs at least go 1.21.8 to be compiled. There are pre-compiled releases available
[Similar tools] - python3 -m http.server or updog. But those are not even remotely that feature rich.
[Activity] - The project started years ago and is still being actively maintained.
[How to install] - Either clone and use the Makefile or do like go install github.com/patrickhener/goshs@latest
[How to use] - See the examples given in the README.md
[Packaged] - This tool is not packaged as a Debian package.

Activities

c1sc0

c1sc0

2024-06-28 06:31

reporter   ~0019484

Last edited: 2024-06-28 06:37

@kali-team could you package it up? If it helps I could read into how to package a go binary as .deb package. I never did anything like this. But if you would merge the tool quicker then it might be worth the effort. Also the tool builds for virtually any architecture as it is written in golang. So it could be build and packed for arm based as well. It would at least fit kali 32 bit, kali 64 bit, kali apple silicon arm64, kali pi like images. I assume it would even be harder to package multiple architectures, right?

c1sc0

c1sc0

2024-06-28 07:26

reporter   ~0019485

I just realized if you were to compile it using the Makefile to minify the javascript and to compile sass you would need uglifyjs and sass cli tools. Those both have debian packages though and would be a dependency in this scenario then. Otherwise if you use the release binaries you will not need those tools.

c1sc0

c1sc0

2024-07-05 18:10

reporter   ~0019508

I did a little makeover to make it even more attractive to you to integrate into kali. The new version v0.4.0 does look and feel a little bit better. Also I created a comprehensive documentation at https://goshs.de/en/.
I hope to hear from you soon.

c1sc0

c1sc0

2024-07-11 13:15

reporter   ~0019518

And a new feature strikes again. Now goshs can be used with certificate based authentication. The most current version is now v0.4.1. @kali-team: any idea on the timeline when you would review the tool?

g0tmi1k

g0tmi1k

2024-08-02 14:38

administrator   ~0019587

@kali-team, please could this be packaged up.
@author, If you want to help the packaging process, you can check the documentation here:

c1sc0

c1sc0

2024-08-05 09:13

reporter   ~0019609

Last edited: 2024-08-05 09:13

@g0tmi1k: If I package it like it is described in https://www.kali.org/docs/development/intro-to-packaging-example/ (which I am already almost at the end of the guide), how would I be able to push it to gitlab.com/kalilinux/packages? I am no contributer yet for this repository. I also do not have any kali.org E-Mail address or anything like that. I do have a gpg key and ssh key for my private E-Mail address though.

c1sc0

c1sc0

2024-08-05 11:52

reporter   ~0019614

@g0tmi1k @kali-team: I have packaged it and it installs successfully. How to I provide you with the package? I cannot push directly to kalilinux/packages. Do you want a pull request?

c1sc0

c1sc0

2024-08-05 12:02

reporter   ~0019615

https://gitlab.com/patrickhener/kali-goshs This would be a public accessible repo with my packaged content.

g0tmi1k

g0tmi1k

2024-08-05 13:01

administrator   ~0019616

Thanks @ c1sc0

@daniruiz @Sophie - could you handle it from here?

sbrun

sbrun

2024-08-06 13:10

manager   ~0019620

I have just uploaded the package in kali-dev

c1sc0

c1sc0

2024-08-06 13:40

reporter   ~0019622

That was quick. Thanks @sbrun for adding so fast. I reviewed your changes and did learn a few additional things from them.

Issue History

Date Modified Username Field Change
2024-06-27 13:42 c1sc0 New Issue
2024-06-28 06:31 c1sc0 Note Added: 0019484
2024-06-28 06:37 c1sc0 Note Edited: 0019484
2024-06-28 07:26 c1sc0 Note Added: 0019485
2024-07-05 18:10 c1sc0 Note Added: 0019508
2024-07-11 13:15 c1sc0 Note Added: 0019518
2024-08-02 14:38 g0tmi1k Note Added: 0019587
2024-08-02 14:38 g0tmi1k Status new => acknowledged
2024-08-02 14:38 g0tmi1k Category New Tool Requests => Queued Tool Addition
2024-08-05 09:13 c1sc0 Note Added: 0019609
2024-08-05 09:13 c1sc0 Note Edited: 0019609
2024-08-05 11:52 c1sc0 Note Added: 0019614
2024-08-05 12:02 c1sc0 Note Added: 0019615
2024-08-05 13:01 g0tmi1k Note Added: 0019616
2024-08-06 12:22 sbrun Assigned To => sbrun
2024-08-06 12:22 sbrun Status acknowledged => assigned
2024-08-06 13:10 sbrun Note Added: 0019620
2024-08-06 13:40 c1sc0 Note Added: 0019622
2024-08-12 08:38 sbrun Status assigned => resolved
2024-08-12 08:38 sbrun Resolution open => fixed
2024-08-12 08:38 sbrun Fixed in Version => 2024.3