Wednesday, May 2, 2018

The tools on my Ubuntu 18.04 laptop

Update September 15, 2018: Ubuntu 18.04 has support for Snaps and Flatpaks. What are these? A new method for installing applications where everythimg is bundled into the package so you don’t have to deal with dependencies. I haven’t used Flatpaks yet but Snaps are great!  You go to https://snapcraft.io/store and find the app you want. Then you click a button, copy the link and paste it into a terminal.

So far I have used snaps for:
  • Brave - A new browser that is much more privacy respecting than Chrome
  • Corebird - A nice Twitter app
  • fKill - Fabulously kill processes
  • GHex - A graphical Hex editor from Canonical 
  • Hiri - A Microsoft Exchange/Office 365
  • Hollywood - Fill your console with Hollywood melodrama technobabble 
  • KeepasXC - My preferred Keepas client
  • Mailspring - A lretty good mail client for IMAP servers. I’m using it for gmail  
  • Mumble - An open source voice chat client that is popular in Linux circles
  • Notepadqq - A notepad++ like editor for Linux
  • Powershell - Microsofts Opensource version of Powershel
  • Skype
  • Slack- The official Slack client
  • Speedy Duplicate Finder - Blazingly fast duplicate finder for Windows, Mac and Linux
  • Telegram - Official desktop client 
  • Termius - A cross platform SSH client. I use it on IOS when I just need to make a few changes and don’t want to carry a laptop.
******************************************************************************

After the 2016 Southern California Linux Expo (SCALE15) I purchased a System76 Gazelle laptop. System76 sells laptop and desktops designed for Linux so there are no issues with drivers or hardware incompatibility.

I was thinking about buying a new Macbook to replace my aging Macbook Air but Apple dropped all ports except USB-C and that was just unacceptable for my work. Unlike the Macbook, the Gazelle has VGA, HDMI, three USB3-A, one USB2-A, Ethernet, and a full-size SD card slot.

Plus, System76 laptops are as open as you can get!  I purchased it with 8GB of RAM and a 250GB spinning disk. Not long after, I decided to go to 16GB of RAM and an m.2 NVME drive (The new Gazelle supports 32GB of RAM!). How hard was it? Removed a few screws, popped off the cover, added one 8GB stick, plugged in the NVME and reinstalled the cover.

I contacted System76 beforehand and they told me to buy the drive and RAM from Amazon because it would be less expensive than buying from them!!! That is great customer service.

I think the build quality is pretty good, I recently knocked it off the top of a 6-foot ladder. It was open at the time, the floor was concrete with a thin carpet. I didn't want to look at it. I was sure the LCD would be broken and there would be other damage. But it's been a week and I haven't noticed any damage, it's still working.

So, how hard was it switching from Windows/MAC to Linux?  Not much of a challenge actually. The Ubuntu 16.04 desktop uses the Super key (Windows key if you are on a Dell/Lenovo that you converted to Linux) to open up the search tool just like Windows. The file explorer, Nautilus, is very similar to Explorer in Window or finder in OSX.

What I am loving about Linux is no tracking of what I am doing, lots of free open source tools and updates happen almost daily. Updates seldom require a reboot and a typical update takes a few minutes, and if you do need to reboot there isn't a long delay with a message not to power off while the system is reconfigured.

I updated to Ubuntu 18.04 the week it came out. Normally I would do a nuke and pave because it’s so easy in Ubuntu.  Most of the configuration data for the apps is in your home folder so you back it up, nuke/pave and put the home folder back.  But I hadn’t been running 17.04 very long and just did an in place upgrade. It went off without any drama and now I’m using the Gnome desktop.

Ubuntu has decided to drop the Unity desktop and standardize on Gnome. I am loving 18.04, the Gnome desktop has been easy to transition to and 18.04 lets you setup the live update feature so kernel updates are automatic and you can postpone a reboot if one is needed. I installed the following Gnome extensions to replace functionality lost in the switch to Gnome:

Learning Linux
There are so many Linux sites with free tutorials and a lot of Kindle books for $.99 to $2.99. I had no problem finding answers to questions I had. Also, it seems that the old RTFM response om forums has gone away, I didn't get flamed anywhere! I purchased the Linux Professional Institute’s cert guide and took the Linux Essentials test. It’s not a system engineer level but I’m comfortable with the OS now.

I found the following podcasts for Linux and they have really helped my transition:
  • Linux Unplugged
  • The Ask Noah show
  • Ubuntu podcast
  • Linux in the ham shack
  • Late Night Linux
  • Linux Action News
  • Destination Linux

The network stack on Linux is much better than Windows. You can create multiple network profiles and use them as needed. For example, I have a profile named Eth-DHCP that uses DHCP and one called Eth-con1 that uses static addressing.

It's easy to change the static settings and then just click it to use it. Another small advantage is that the boxes for IP, Mask, Gateway allow pasting. You don't have to type one octet, tab, next octet, tab, etc. And the gateway can be /24 or whatever you need.



Not earth-shattering, but if you change networks a lot it's more convenient. Plus, I haven't had issues changing networks many times per day. The stack just seems to work. It is much easier to query networks status than it is on Windows.

The tools iwlist, nm-tool, nmcli and ip let you quickly see what channels your wifi card supports, what SSIDs are available, what interfaces are up, the IP addresses, etc. This blog isn't going to go into how to use them but I do have a blog on some uses for the tools here.

Finally, you can do monitor mode captures without a special adapter like a Riverbed AirPcap. If you do a lot of wireless troubleshooting this is a big advantage.

The Tools

The great thing about Linux is all of the built-in and free open source networking tools.

Tools from the Ubuntu software store

Network Tools (gnome)- Graphical tool for ping, ifconfig, netstat, etc.

simplenote - free tool similar to Evernote.

PERL auto connect - SSH/RDP client. Install PAC-VS from the Ubuntu software store. This tool is really nice, you have RDP, SSH, Telnet all in one interface.

KeepassXC - A cross platform password manager. Supports Yubikey and other forms of two factor authentication.

unetbootin - Tool for creating live USB drives

FSLint - is a utility to find and clean various forms of lint on a filesystem, especially duplicate files and broken symlinks.

Disk Usage Analyzer - Similar to WinDirStat on windows. It's built into Ubuntu.

brasero - CD/DVD burner. I know, but my Gazelle has a DVD burner and occasionally I need to burn an archive.

cheese webcam - I use this with my Ebay.com endoscope for looking into tight spaces. An interesting story, I bought the scope and it said Windows only. I figured I would use it with my Windows VM.

When it came in it had a small CD with all Chinese on it. I used ClamAV to scan it and ClamAV found a virus. I plugged the Endoscope into the Gazelle and did an lsusb (list USB). It listed the endoscope and the hardware manufacturer. I did a quick Google and found an AskUbuntu.com post saying it is supported by the built-in Cheese webcam! No windows needed.

FBReader - eBook reader.

bleachbit - You too can be like Hillary.

Meld - A cross-platform file compare utility. I like it a lot better than notepad++ with the compare plugin

ClamTK - Graphical frontend for ClamAV.

shutter - A screenshot tool with rectangles, lines, etc. I have used the Windows Snipping tool for years and really like it. Shutter is even better. It can be used like MS Paint.net

etcher - A live usb tool. This tool is highly recommended in the Raspberry Pi and SoC communities.

smemstat - snap package memory tool.

Gnome Hex Editor - Inspect and edit binary files.

Remmina - Remote Desktop tool built into Ubuntu. Works great.

Tools installed from the terminal

Arpscan - A great tool from Roy Hill. Allows you to find devices that don’t respond to ping and much more. I wrote a Python wrapper for Arpscan. It’s on my github at https://github.com/rikosintie

Gnome Sushi file preview - Allows you to select a file in the file manager (Nautilus) and just press the spacebar to preview it. Install instructions are here - How to Geek

Docker - https://www.docker.com/community-edition

Clam AV - I use this to scan windows files before inserting a flash drive or running something on windows. Install from the synaptic package manager.

Python 2.7 - A fresh install of 18.04 doesn’t include Python 2.7, 3.x is now the default. 

Microsoft Visual Studio Code - A great open source IDE. Supports Python, Powershell and just about every other programming language.

Microsoft Powershell Core - For those times when you need to pop a windows box but don’t want to fire up a Windows VM! Microsoft released PS Core as an open source project. I have to admit, it’s pretty convenient having Powershell native on Linux. 
https://blogs.msdn.microsoft.com/powershell/2018/01/10/powershell-core-6-0-generally-available-ga-and-supported/

FoxtrotGPS - I use this with my external USB GPS when I run wigle.net or want to track my trip on my laptop.

Sublime Text - $75.00 text editor. Has great support for Python. The site realpython.com sells a packege

sudo apt install minicom - Serial terminal emulator for use with USB to Serial adapters. It runs in the Linux terminal so it's very convenient.

sudo apt install smem - memory display tool

sudo apt-get install xsltproc - xml to html converter

sudo apt install traceroute - This is a legacy tool but I still like it.

sudo apt install gcc python-dev python-pip - Python installer and c compiler

sudo apt-get install xclip - copies files to the clipboard Ex. xclip -sel clip < ~/.ssh/id_rsa.pub

Hex editor - https://github.com/krpors/hx

Solaar - sudo apt install solaar - A tool for Logitech unify receivers.
https://github.com/pwr/Solaar

sudo apt install snmp - Allows you to run all the snmpget, snmpwalk, etc. tools

sudo apt install linssid - A tool similar to inSSIDer

sudo apt install aircrack-ng - Put wireless card into monitor mode.

sudo apt install apt-show-versions

https://www.insynchq.com/ - Google Drive sync tool.

Progress - Linux tool to show progress for cp, mv, dd, ... (formerly known as cv)
https://github.com/Xfennec/progress

sudo apt install apt-file - a software package that indexes the contents of packages in your available repositories and allows you to search for a particular file among all available packages.

sudo apt install cryptsetup - manage plain dm-crypt and LUKS encrypted volumes

sudo apt install procinfo - lsdev is installed with this.

sudo apt-get install network-manager-vpnc-gnome (Cisco VPN)

sudo apt install htop - an ncurses replacement for top. Has sorting capability.

sudo apt-get install joe - a super fast cli text editor. It can open and work with huge files. I use it for my password cracking dictionary files.

**************************************************
 IP Address calculator - Simple terminal program. Works great!
sudo apt install sipcalc

Example:
sipcalc 10.34.208.0/20
-[ipv4 : 10.34.208.0/20] - 0

[CIDR]
Host address - 10.34.208.0
Host address (decimal) - 170053632
Host address (hex) - A22D000
Network address - 10.34.208.0
Network mask - 255.255.240.0
Network mask (bits) - 20
Network mask (hex) - FFFFF000
Broadcast address - 10.34.223.255
Cisco wildcard - 0.0.15.255
Addresses in network - 4096
Network range - 10.34.208.0 - 10.34.223.255
Usable range - 10.34.208.1 - 10.34.223.254

*************************************************
Tool to locate files in the file system.
sudo apt install mlocate

run sudo updatedb after installing locate. It sets up the database and indexes all package files.

**************************************************
Moreutils - A small package with several useful utilities. See this page for more.
https://rentes.github.io/unix/utilities/2015/07/27/moreutils-package/#installing
sudo apt install moreutils

**************************************************
INXI is a great system information tool
https://github.com/smxi/inxi
sudo apt install inxi - inxi is a full featured CLI system information tool.
inxi -F -x -c13 -- all output with extra data
inxi -F -xx -c13 -- all output with extra, extra data
inxi -B -- Battery info
inxi -c13 -- use black output
inxi -C -- CPU information
inxi -D -- hard drive info
inxi -f -- all cpu flags
inxi -G -- graphics card info
inxi -i -- network interface info
inxi -I -- processes, uptime, memory, inxi version,
sudo inxi -m -c13 - list memory

********************************************************
LLDP client for Linux.
sudo apt-get install lldpd
sudo service lldpd restart
https://fnord.no/2016/04/28/lldp-on-linux/
Usage
lldpcli show neighbors

********************************************************
ssh-audit - A simple tool to pull down the crypto ciphers that an SSH server offers.
https://github.com/arthepsy/ssh-audit
usage: ssh-audit.py [-1246pbnvl]

-1, --ssh1 force ssh version 1 only
-2, --ssh2 force ssh version 2 only
-4, --ipv4 enable IPv4 (order of precedence)
-6, --ipv6 enable IPv6 (order of precedence)
-p, --port= port to connect
-b, --batch batch output
-n, --no-colors disable colors
-v, --verbose verbose output
-l, --level= minimum output level (info|warn|fail)

./ssh-audit.py 192.168.10.181

********************************************************
I-NEX - I-Nex is an application that gathers information for hardware components available on your system and displays it using an user interface similar to the popular Windows tool CPU-Z.

http://i-nex.linux.pl/install/

sudo add-apt-repository ppa:i-nex-development-team/daily
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install i-nex

********************************************************
sudo apt install sendip
SendIP is a command-line tool to send arbitrary IP packets.
http://www.ubuntugeek.com/sendip-tool-to-send-arbitrary-ip-packets.html

********************************************************
nmap scan report tool
https://blog.techorganic.com/2012/09/15/parsing-nmaps-output/
https://github.com/superkojiman/scanreport
https://github.com/superkojiman/onetwopunch

Example
cat targets.txt
192.168.81.171
192.168.81.182
192.168.81.143
192.168.81.119
192.168.81.190

nmap -sV -oG scan.txt -iL targets.txt
remove # from report
grep -v ^# scan.txt > report.txt

scanreport.sh -f report.txt
Host: 192.168.81.171 ()
22 open tcp ssh OpenSSH 5.3p1 Debian 3ubuntu4 (protocol 2.0)
80 open tcp http Apache httpd 2.2.14 ((Ubuntu))

Host: 192.168.81.182 ()
22 open tcp ssh OpenSSH 5.3p1 Debian 3ubuntu4 (protocol 2.0)
80 open tcp http Apache httpd 2.2.14 ((Ubuntu))
443 open tcp ssl|http Apache httpd 2.2.14 ((Ubuntu))

*************************************************************
Angry IP
http://angryip.org/download/#linux
dpkg -s ipscan_3.5.2_amd64.deb

**************************************************************
An extremely handy tool :: Incremental history searching
In terminal enter:
gedit ~/.inputrc
Then copy paste and save:
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

From now on, and many agree this is the most useful terminal tool, it saves you a
lot of writing/memorizing...

All you need to do to find a previous command is to enter say the first two or three letters and upward arrow will take you there quickly:

Say I want:

for f in *.mid ; do timidity "$f"; done
All I need to do is enter:

fo
And hit upward arrow command will soon appear.

*************************************************************************
Wireshark
On Ubuntu
sudo apt-get install wireshark libcap2-bin
sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 755 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
(step 6 to make the interfaces visible)

*************************************************************************
Go language
sudo apt install golang-go

gotop - Another tool like htop
https://github.com/cjbassi/gotop

/home/mhubbard/bin/gotop
└─> $ ./gotop
************************************************************************
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt install ncdu - an ncurses disk file display tool

************************************************************************
nmap 7.70
https://nmap.org/download.html

bzip2 -cd nmap-7.70.tar.bz2 | tar xvf -
cd nmap-7.70
./configure
make
sudo passwd root
Enter a strong password for the root user
sudo passwd -u root
to unlock the account
su root
make install
exit - logout as root

disable root account
sudo passwd -l root

Install HD Moore's banner-plus script
https://github.com/hdm/scan-tools/blob/master/nse/banner-plus.nse

*********************************************************


References
8 Ways to Maintain a Clean, Lean Ubuntu Machine
How To Make Gedit More Programmer Friendly


No comments:

Post a Comment