Pentesting Note Taking with Neovim and Tmux | Complete Guide
Cleared Workforce is a specialty search firm focused on security-cleared Talent Recruitment for Government Contractors.
100+
product reviews of trending tech
100+
tech written guides for users
100+
tech tools in our tool database
Learn how to create a terminal environment that enables efficient note-taking during penetration testing assessments.
The art of efficient note-taking is one of those things that will set the good apart from the great. This comprehensive guide is dedicated to establishing a powerful pen-testing note-taking environment on a Debian Linux system, utilizing the powerful capabilities of Neovim, tmux, and Nvim-tree.
This environment allows you to have a terminal open with all your notes using nvim-tree so that you can easily see them in a different pane from your working pane using tmux. The beauty of it is also in the search capability directly within the terminal using telescope which I mapped to ctrl+s for easier use.
Setting the Stage with Neovim and Tmux
We will begin with the installation of Neovim, an enhanced iteration of the Vim editor, known for its extensibility and adaptability. To seamlessly integrate Neovim into your Debian-based ecosystem, initiate the process by refreshing your package lists with sudo apt update
, followed by the command sudo apt install neovim
to welcome Neovim into your system.
sudo apt update
sudo apt install neovim
In tandem with Neovim, tmux stands as a formidable terminal multiplexer, a tool of immeasurable value for professionals who navigate multiple tasks in a singular terminal window.
To install tmux do sudo apt install tmux
, paving the way for a multitasking environment where multiple sessions are managed with unparalleled ease.
sudo apt install tmux
Elevating Neovim with Strategic Plugins
With the foundational elements in place, it’s time to augment Neovim’s capabilities, tailoring it into a sanctuary for your penetration testing notes. Begin by crafting or editing your init.vim
configuration file located within Neovim’s configuration sanctuary: ~/.config/nvim/init.vim
.
vim ~/.config/nvim/init.vim
Here, we introduce a constellation of plugins designed to elevate your note-taking prowess:
- Vimwiki: A cornerstone for your wikified notes, allowing an organized compilation of findings and methodologies.
- Nvim-tree.lua and nvim-web-devicons: These plugins render a visually intuitive file tree, streamlining your navigation and file management endeavors.
- Telescope.nvim and plenary.nvim: A duo offering profound search capabilities, ensuring that no detail remains hidden in the vast expanse of your notes.
Populate your init.vim
with the following configurations to weave these plugins into the fabric of your Neovim:
call plug#begin('~/.local/share/nvim/plugged')
Plug 'vimwiki/vimwiki'
Plug 'kyazdani42/nvim-web-devicons' " for file icons
Plug 'kyazdani42/nvim-tree.lua'
Plug 'nvim-telescope/telescope.nvim', {'do': ':Telescope update'}
Plug 'nvim-lua/plenary.nvim'
call plug#end()
nnoremap <C-s> :Telescope live_grep<CR>
let g:vimwiki_list = [{'path': '~/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}]
autocmd VimEnter * cd ~/vimwiki | NvimTreeOpen
lua << EOF
require'nvim-tree'.setup {}
EOF
After embedding these plugins within your configuration, start a Neovim session and run :PlugInstall
command to orchestrate the installation symphony.
nvim
NOTE: Make sure you run :PlugInstall
while inside nvim. So essentially you will first type in colon “:” and PlugInstall and click enter. That should bring up some text showing that it is installing.
:PlugInstall
Orchestrating an Organized Workflow
With Vimwiki, your notes transform into a structured repository, categorizing the multifaceted domains of your pen-testing universe from tools and techniques to findings and references.
Nvim-tree stands by your side, offering a tactile pathway through the files and folders that constitute your pen-testing arsenal.
But the crown jewel in this triad is Telescope, empowered by ripgrep
, a tool you must install using sudo apt install ripgrep
. Telescope, mapped to Ctrl+s
, becomes your beacon, illuminating the path through the dense forests of data with its live_grep
functionality. Telescope was previously installed using the init.vim instructions above but needs ripgrep to work.
sudo apt install ripgrep
Customizing Neovim with Personalized Key Mappings:
One of the most powerful features of Neovim is its ability to be highly customized to fit the individual needs and preferences of its user. Key mappings in Neovim allow you to streamline your workflow by assigning custom keyboard shortcuts to frequently used commands or sequences of actions. This customization can significantly enhance your productivity, especially in the context of penetration testing, where time is often of the essence.
To create new key mappings in Neovim, you will need to edit your init.vim
file. This file acts as the heart of your Neovim configuration. Let’s start with a simple example: mapping Ctrl + t
to open a new tab. In your init.vim
, you would add the following line: nnoremap <C-t> :tabnew<CR>
.
nvim ~/.config/nvim/init.vim
This tells Neovim that, in normal mode (nnoremap
), pressing Ctrl + t
should execute the :tabnew
command, which opens a new tab. Remember, the <CR>
at the end simulates pressing the Enter key, which is necessary to execute the command.
Expanding further, suppose you frequently search for strings within your penetration testing notes. You could map Ctrl + f
to initiate a search using Telescope’s live grep feature, enhancing your efficiency in locating relevant information. To achieve this, include the line nnoremap <C-f> :Telescope live_grep<CR>
in your init.vim
.
nnoremap <C-f> :Telescope live_grep<CR>
Now, with a simple Ctrl + f
, Neovim launches a powerful search throughout your entire note database. By integrating such personalized key mappings into your Neovim setup, you streamline your navigation and search processes, allowing you to focus more on the content and less on the mechanics of note management.
The Convergence of Tools into a Unified Workflow:
The combination of Neovim, tmux, and Nvim-tree creates a robust, efficient, and highly customizable environment. This setup not only streamlines your pen-testing workflow but also ensures that your findings, notes, and scripts are meticulously organized and readily accessible.
By dedicating time to establishing this environment, you’re not just setting up a note-taking system; you’re architecting a comprehensive workspace that stands ready to enhance your efficiency, focus, and ultimately, your effectiveness as a penetration tester.