Open
Description
Hey there!
Just tried the C2 UI out and I found some stuff that can be improved, if you like to 😊
- When going up or down in the history of commands the cursor places at the beginning. Casual CLI behavior would put the cursor at the and. So this was kind of confusing
- The tab completion does accept
tabs
but notshift-tabs
. This would allow to go back in the flags, if one skipped over the desired item - When starting to type commands the UI could display a list of available commands. There is no "easy" way of exploring the features interactively. One would have to go through the documentation, which can of course also be a design decision. However, I like seeing the available commands in the list, as by concept of e.g. Apollo each implant might have a different subset of commands available.
- I have yet to play around with this, but how is the look and feel when you run execute-assembly and have multiple arguments that may contain dash commands itself? Would they look like the following?
execute-assembly -Assembly seatbelt.exe -arguments -this -looks -confusing -to -me 5
I can imagine this is hell for the parser. Ideas for this would be -- separation or quotes like
execute-assembly seatbelt.exe -- -this -looks -confusing -to -me 5
or
execute-assembly -Assembly seatbelt.exe -arguments "-this -looks -confusing -to -me 5"
I like the first option more, as it feels more cli like. However, user must be made aware of this usage 😅 - The top navigation bar holds items like "Payloads and C2 Profiles" that do not open submenus as well as items that open up the second row of navigation. This is a bit confusing especially because the sorting of the second navigation bar is different than the main menu at the top.
- The second navigation bar feels "doubled". It might make sense to group all top row items into one group element "agents" "implants" or whatsoever and then keep the second menu as it is.
- I still have to find the part of the UI where I can register new dotnet binaries. From the in-page help or notifications one cannot guess the right place to do this as far as I tried. Will read the documentation though. :)
- "Register New Credential" will not refresh the table. F5 is needed to see the new results.
- Editing credentials will open a context menu with four+ items to choose what should be changed. This could/should be the full dialog with all fields to tab/shift-tab through
- ok, found register_assembly. When completing arguments of execute-assembly in CLI it happens to me that I autocomplete
-assembly
with tab, then press space and presstab
again to see the available payloads. What happens though?-assembly
😀 As the payloads are available to theshift-enter
menu it makes sense to have the assemblies available to the cli auto completion as well. :) - There could be a kind of library for common arguments that are passed with each command. Not sure how this would look like during real engagements though. If the server persists multiple engagements you could build a "top N used arguments with your selected assembly", which would e.g. display
sekurlsa::logonpasswords
for mimikatz. Just thinking of nice additions to the UI here.
I hope my feedback makes sense to you 😄
Thanks again for the excellent presentation at your booth at Black Hat.
Metadata
Metadata
Assignees
Labels
No labels