How to Transfer Files from Windows PC to Linux Server Using Putty’s PSCP Command

Many blogs and web applications are being hosted on cloud based web servers. Of those web servers, many are running some flavor of the Linux operating system (OS).

If you’re a Windows PC user who is using a Linux web server for your online project then you have unique challenge that comes with being a dual OS user.

How will we transfer our files from our Windows development PC to our Linux cloud hosted blog or web app? Enter Putty and the PSCP command line tool!

What is Putty?

Putty is a Client application that handles connections to remote computers via the Telnet, SFTP and SSH protocols.

Putty Screenshot

What is PSCP?

PSCP is a command line application that is typically included in the Putty installation. PSCP transfers files between two computers from the Windows command line as long as firewalls allow the traffic on the designated ports for each type of traffic.

Transferring Files with PSCP from the Command Line

If you’ve installed Putty in the default directory, it will be here.

C:\Program Files\PuTTY

Open a Windows command line by clicking on the Windows start menu icon then entering “cmd” in the search field then find and click on the cmd icon.

Navigate to the Putty Directory by entering the command below.

C:\>CD c:\Program Files\Putty

Let’s look at an example PSCP command to transfer a file from a Windows PC to a Linux cloud web server with a fake user named root, IP of 45.99.99.99 and a target folder of /var/www/html

PSCP Command Example

c:\>C:\Program Files\Putty\pscp c:\temp\sample.txt root@45.99.99.99:/var/www./html

Screenshot

That’s all you should need to know about connecting to a Linux cloud based web server from a Windows PC using the Putty SSH client.

Hope this helps you on your Cyber journey!

~Cyber Abyss

Securing Your WordPress Blog from xmlrpc.php Attacks

Today marks my first week of owning a WordPress blog.

I figured a week should be ample enough time to have the web server run and let the bad guys and bots take a swing at it. A review of my Apache web server log should show me what type of WordPress hacks would be attempted first.

My site is really new so I don’ t expect a lot of traffic. I downloaded my Apache web server log and noticed that apparently I had a lot of traffic for a brand new site that had not yet been promoted.

Once I downloaded and looked through the web server log file, a pattern quickly appeared. Lots of requests for a specific file called xmlrpc.php.

What the hell is xmlrpc.php?

I had found this in depth article about the xmlrpc file. For a more in-depth dive please check it out.

https://www.hostinger.com/tutorials/xmlrpc-wordpress

The super short version is, that XML-RPC is a WordPress feature enabling transmission of XML messages between systems using HTTP as the transport mechanism.

WordPress being an open system, occasionally needs to communicate with other systems, xmlrpc.php is supposed to handle that job.

My understanding is that xmlrpc.php is being deprecated in future versions of WordPress so why leave an artifact that can be used to enable a brute force attack on your site. Get rid of it ASAP!

Block Access to the xmlrpc.php file using Apache’s .htaccess file

.htaccess files are used by Apache web servers to allow or deny access to resources on your web site. We can allow or deny based on things like IP addresses or file names.

Your WordPress installation on Apache has a .htaccess file included by default.

You won’t see it using the >ls command as files beginning with a dot are hidden files. You can’t see it in the directory but we can open it.

In the screenshot below, I’ve opened the default WordPress .htaccess file using the nano text editor after connecting via SSH using PuTTY.

Setting an Access Restriction to the xmlrpc.php file using .htaccess file

Blocking access to the xmlrpc.php file to all users can be done using an entry in the .htaccess file that the Apache web server uses to grant or deny access to web resources.

When a request comes in to the Apache web server for the xmlrpc.php file, the server will apply this access rule which states that only local request will be granted and all others will be denied.

Navigate to your WordPress root folder. Mine was in: /var/www/html

I opened the .htaccess file by entering the command >sudo nano .htaccess

In the screenshot below, you see the special entry for <Files xmlrpc.php>.

.htaccess code for Denying Access to xmlprc.php

#Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
Order deny,allow
deny from all
</Files>

One More Thing: Check Your Apache Config AllowOverride Setting

Of course I did not realize for 24 hours that my .htaccess settings were not actually working. There was one more thing we had to configure on the Apache web server.

Double check your Apache2.conf file to see if the AllowOverride setting is set to All for you WordPress public html directory. Mine was in the /var/www directory.

My AllowOverride setting was set to None by default as you can see the /srv/ is still set to None. Your installation maybe different.

Installing Virtualbox Guest Additions on Kali Linux: When nothing goes right and how I fixed it

Kali Linux Installation Problems

I’m getting various errors when installing Virtualbox Guest Additions on a Kali Linux VM.

Resources that helped:

Online articles and resources:
– https://askubuntu.com/questions/80341/unable-to-mount-virtualbox-guest-additions-as-a-guest-win7-host
– https://www.youtube.com/watch?v=KAWRNjKpEd0
https://askubuntu.com/questions/75709/how-do-i-install-kernel-header-files
– https://unix.stackexchange.com/questions/328655/cant-install-linux-headers-kali-linux
– https://www.youtube.com/watch?v=SOEYLMmfxKk

Below are the specific steps extracted from the command line history below which contains all of my troubleshooting session. I did fix it so if you follow along you can see my steps and the output from them. Hope this helps!

Steps:
1. Copy to desktop copy of VBoxLinuxAdditions.run from Guest Additions CD
2. run chmod +x ./VBoxLinusAdditions.run on Desktop copy
3. Attempt to fix headers on recommendation by upgrading of Linux components using: # apt update -y && apt upgrade -y && ajpt dist-upgrade
4. Realize that last step didn’t fix issue and that specific issue header module is corrupt or missing.
5. Find out what header modules are available using: apt-cache search linux-headers
6. Selected and installed module using:  apt-get install linux-headers-4.13.0-kali1-all-amd64
7. Run ./VBoxLinuxAdditions.run
8. Success

Linux Command Line of Trial and Error w/ Fix

root@kali:~# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.2 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.2 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    linux-headers-amd64 linux-headers-4.13.0-kali1-amd64
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    linux-headers-amd64 linux-headers-4.13.0-kali1-amd64
root@kali:~# clear

root@kali:~# apt update -y && apt upgrade -y && ajpt dist-upgrade
Get:2 https://packages.microsoft.com/repos/vscode stable InRelease [2,802 B]
Get:1 http://mirrors.ocf.berkeley.edu/kali kali-rolling InRelease [30.5 kB]    
Get:3 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 Packages [15.6 MB]
Get:4 https://packages.microsoft.com/repos/vscode stable/main amd64 Packages [33.4 kB]
Get:5 http://mirrors.ocf.berkeley.edu/kali kali-rolling/non-free amd64 Packages [166 kB]
Get:6 http://mirrors.ocf.berkeley.edu/kali kali-rolling/contrib amd64 Packages [113 kB]
Fetched 16.0 MB in 4s (3,495 kB/s)                   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
86 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  libarmadillo7 libxerces-c3.1
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  libarmadillo8 libconfig-inifiles-perl libxerces-c3.2 python-jwt
The following packages will be upgraded:
  aircrack-ng cabextract cgpt console-setup console-setup-linux exim4-base
  exim4-config exim4-daemon-light flasm fontconfig fontconfig-config
  fonts-noto-mono gdal-bin gdal-data glusterfs-common iproute2 iso-codes
  keyboard-configuration libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
  libc-bin libc-dev-bin libc-l10n libc6 libc6-dbg libc6-dev
  libdbd-sqlite3-perl libdevel-partialdump-perl libdevel-stacktrace-perl
  libfcgi-bin libfcgi0ldbl libfontconfig1 libgcab-1.0-0 libgdal20 libkeyutils1
  libmailutils5 libmariadbclient18 libmysofa0 libopenmpt0 liborc-0.4-0
  libsmbclient libtevent0 libwbclient0 libwebp6 libwebpdemux2 libwebpmux3
  libwww-perl locales locales-all mailutils mailutils-common man-db
  mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common
  mariadb-server-10.1 mariadb-server-core-10.1 metasploit-framework
  multiarch-support nano python-cairo python-construct python-cryptography
  python-gdal python-gi python-gobject python-samba python3-cairo
  python3-construct python3-cryptography python3-gi python3-gi-cairo
  python3-pyatspi samba samba-common samba-common-bin samba-dsdb-modules
  samba-libs samba-vfs-modules smbclient socat vboot-kernel-utils vboot-utils
  winexe xauth
86 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 173 MB/177 MB of archives.
After this operation, 3,631 kB disk space will be freed.
Get:1 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc-l10n all 2.25-2 [844 kB]
Get:2 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 locales all 2.25-2 [3,287 kB]
Get:3 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 locales-all amd64 2.25-2 [3,603 kB]
Get:4 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc6 amd64 2.25-2 [2,727 kB]
Get:5 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc-bin amd64 2.25-2 [788 kB]
Get:6 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc6-dbg amd64 2.25-2 [9,365 kB]
Get:7 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc-dev-bin amd64 2.25-2 [262 kB]
Get:8 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libc6-dev amd64 2.25-2 [2,431 kB]
Get:9 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 man-db amd64 2.7.6.1-4 [1,047 kB]
Get:10 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 console-setup-linux all 1.171 [982 kB]
Get:11 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 console-setup all 1.171 [103 kB]
Get:12 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 keyboard-configuration all 1.171 [401 kB]
Get:13 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 fontconfig-config all 2.12.6-0.1 [304 kB]
Get:14 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libfontconfig1 amd64 2.12.6-0.1 [368 kB]
Get:15 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 fontconfig amd64 2.12.6-0.1 [439 kB]
Get:16 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba-vfs-modules amd64 2:4.7.3+dfsg-1 [402 kB]
Get:17 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba-dsdb-modules amd64 2:4.7.3+dfsg-1 [342 kB]
Get:18 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba amd64 2:4.7.3+dfsg-1 [954 kB]
Get:19 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba-common-bin amd64 2:4.7.3+dfsg-1 [615 kB]
Get:20 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 smbclient amd64 2:4.7.3+dfsg-1 [448 kB]
Get:21 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libsmbclient amd64 2:4.7.3+dfsg-1 [153 kB]
Get:22 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 winexe amd64 1.1~20140107-0kali6+b3 [32.4 kB]
Get:23 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 python-samba amd64 2:4.7.3+dfsg-1 [2,018 kB]
Get:24 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba-libs amd64 2:4.7.3+dfsg-1 [5,402 kB]
Get:25 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libwbclient0 amd64 2:4.7.3+dfsg-1 [127 kB]
Get:26 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 samba-common all 2:4.7.3+dfsg-1 [162 kB]
Get:27 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mariadb-common all 1:10.1.29-6 [28.2 kB]
Get:28 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mariadb-client-core-10.1 amd64 1:10.1.29-6 [4,764 kB]
Get:29 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libconfig-inifiles-perl all 2.94-1 [53.4 kB]
Get:30 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mariadb-server-10.1 amd64 1:10.1.29-6 [5,050 kB]
Get:31 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mariadb-client-10.1 amd64 1:10.1.29-6 [5,649 kB]
Get:32 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mariadb-server-core-10.1 amd64 1:10.1.29-6 [4,920 kB]
Get:33 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 multiarch-support amd64 2.25-2 [204 kB]
Get:34 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 nano amd64 2.9.0-1 [512 kB]
Get:35 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libkeyutils1 amd64 1.5.9-9.2 [12.9 kB]
Get:36 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 aircrack-ng amd64 1:1.2-0~rc4-4 [2,722 kB]
Get:37 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 cabextract amd64 1.6-1.1 [31.5 kB]
Get:38 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 cgpt amd64 0~R63-10032.B-2 [30.3 kB]
Get:39 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 exim4-config all 4.89-11 [317 kB]
Get:40 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 exim4-base amd64 4.89-11 [1,093 kB]
Get:41 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 exim4-daemon-light amd64 4.89-11 [546 kB]
Get:42 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 flasm amd64 1.62-10 [90.2 kB]
Get:43 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 gdal-data all 2.2.2+dfsg-2 [566 kB]
Get:44 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libarmadillo8 amd64 1:8.200.2+dfsg-1 [82.3 kB]
Get:45 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libmariadbclient18 amd64 1:10.1.29-6 [737 kB]
Get:46 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libwebp6 amd64 0.6.0-4 [254 kB]
Get:47 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libxerces-c3.2 amd64 3.2.0+debian-2 [863 kB]
Get:48 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libgdal20 amd64 2.2.2+dfsg-2+b3 [5,318 kB]
Get:49 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 gdal-bin amd64 2.2.2+dfsg-2+b3 [373 kB]
Get:50 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 python-jwt all 1.5.3+ds1-1 [18.4 kB]
Get:51 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 glusterfs-common amd64 3.12.3-1 [5,188 kB]
Get:52 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 iso-codes all 3.77-1 [2,398 kB]
Get:53 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libaprutil1-ldap amd64 1.6.1-1 [16.3 kB]
Get:54 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-1 [18.2 kB]
Get:55 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libaprutil1 amd64 1.6.1-1 [91.1 kB]
Get:56 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libdbd-sqlite3-perl amd64 1.55~04-1 [166 kB]
Get:57 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libdevel-partialdump-perl all 0.20-1 [15.3 kB]
Get:58 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libdevel-stacktrace-perl all 2.0300-1 [28.0 kB]
Get:59 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libfcgi-bin amd64 2.4.0-10 [12.4 kB]
Get:60 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libfcgi0ldbl amd64 2.4.0-10 [155 kB]
Get:61 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libgcab-1.0-0 amd64 0.7-5 [28.8 kB]
Get:62 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mailutils amd64 1:3.4-1 [581 kB]
Get:63 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libmailutils5 amd64 1:3.4-1 [873 kB]
Get:64 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 mailutils-common all 1:3.4-1 [678 kB]
Get:65 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libmysofa0 amd64 0.6~dfsg0-2 [37.9 kB]
Get:66 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libopenmpt0 amd64 0.3.3-1 [572 kB]
Get:67 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 liborc-0.4-0 amd64 1:0.4.28-1 [141 kB]
Get:68 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libwebpdemux2 amd64 0.6.0-4 [81.7 kB]
Get:69 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libwebpmux3 amd64 0.6.0-4 [91.8 kB]
Get:70 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 libwww-perl all 6.29-1 [186 kB]
Get:71 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 metasploit-framework amd64 4.16.19-0kali1 [88.8 MB]
Get:72 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 python-gdal amd64 2.2.2+dfsg-2+b3 [755 kB]
Get:73 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 python3-pyatspi all 2.26.0+dfsg-1 [34.6 kB]
Get:74 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 vboot-kernel-utils amd64 0~R63-10032.B-2 [268 kB]
Get:75 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 vboot-utils amd64 0~R63-10032.B-2 [121 kB]
Get:76 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 xauth amd64 1:1.0.10-1 [40.3 kB]
Fetched 173 MB in 23s (7,473 kB/s)                                             
apt-listchanges: Reading changelogs...
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 327440 files and directories currently installed.)
Preparing to unpack .../libc-l10n_2.25-2_all.deb ...
Unpacking libc-l10n (2.25-2) over (2.24-17) ...
Preparing to unpack .../locales_2.25-2_all.deb ...
Unpacking locales (2.25-2) over (2.24-17) ...
Preparing to unpack .../locales-all_2.25-2_amd64.deb ...
Unpacking locales-all (2.25-2) over (2.24-17) ...
Preparing to unpack .../libc6_2.25-2_amd64.deb ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking libc6:amd64 (2.25-2) over (2.24-17) ...
Setting up libc6:amd64 (2.25-2) ...
Checking for services that may need to be restarted...
Checking init scripts...

Restarting services possibly affected by the upgrade:
  cron: restarting...done.

Services restarted successfully.
(Reading database ... 327440 files and directories currently installed.)
Preparing to unpack .../libc-bin_2.25-2_amd64.deb ...
Unpacking libc-bin (2.25-2) over (2.24-17) ...
Setting up libc-bin (2.25-2) ...
(Reading database ... 327440 files and directories currently installed.)
Preparing to unpack .../00-libc6-dbg_2.25-2_amd64.deb ...
Unpacking libc6-dbg:amd64 (2.25-2) over (2.24-17) ...
Preparing to unpack .../01-libc-dev-bin_2.25-2_amd64.deb ...
Unpacking libc-dev-bin (2.25-2) over (2.24-17) ...
Preparing to unpack .../02-libc6-dev_2.25-2_amd64.deb ...
Unpacking libc6-dev:amd64 (2.25-2) over (2.24-17) ...
Preparing to unpack .../03-man-db_2.7.6.1-4_amd64.deb ...
Unpacking man-db (2.7.6.1-4) over (2.7.6.1-2) ...
Preparing to unpack .../04-console-setup-linux_1.171_all.deb ...
Unpacking console-setup-linux (1.171) over (1.170) ...
Preparing to unpack .../05-console-setup_1.171_all.deb ...
Unpacking console-setup (1.171) over (1.170) ...
Preparing to unpack .../06-keyboard-configuration_1.171_all.deb ...
Unpacking keyboard-configuration (1.171) over (1.170) ...
Preparing to unpack .../07-fontconfig-config_2.12.6-0.1_all.deb ...
Unpacking fontconfig-config (2.12.6-0.1) over (2.12.3-0.2) ...
Preparing to unpack .../08-libfontconfig1_2.12.6-0.1_amd64.deb ...
Unpacking libfontconfig1:amd64 (2.12.6-0.1) over (2.12.3-0.2) ...
Preparing to unpack .../09-fontconfig_2.12.6-0.1_amd64.deb ...
Unpacking fontconfig (2.12.6-0.1) over (2.12.3-0.2) ...
Preparing to unpack .../10-libtevent0_0.9.34-1_amd64.deb ...
Unpacking libtevent0:amd64 (0.9.34-1) over (0.9.33-2) ...
Preparing to unpack .../11-samba-vfs-modules_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking samba-vfs-modules (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../12-samba-dsdb-modules_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking samba-dsdb-modules (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../13-samba_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking samba (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../14-samba-common-bin_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking samba-common-bin (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../15-smbclient_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking smbclient (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../16-libsmbclient_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking libsmbclient:amd64 (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../17-winexe_1.1~20140107-0kali6+b3_amd64.deb ...
Unpacking winexe (1.1~20140107-0kali6+b3) over (1.1~20140107-0kali6+b2) ...
Preparing to unpack .../18-python-samba_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking python-samba (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../19-samba-libs_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking samba-libs:amd64 (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../20-libwbclient0_2%3a4.7.3+dfsg-1_amd64.deb ...
Unpacking libwbclient0:amd64 (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../21-samba-common_2%3a4.7.3+dfsg-1_all.deb ...
Unpacking samba-common (2:4.7.3+dfsg-1) over (2:4.7.1+dfsg-2) ...
Preparing to unpack .../22-mariadb-common_1%3a10.1.29-6_all.deb ...
Unpacking mariadb-common (1:10.1.29-6) over (10.1.26-1) ...
Preparing to unpack .../23-mariadb-client-core-10.1_1%3a10.1.29-6_amd64.deb ...
Unpacking mariadb-client-core-10.1 (1:10.1.29-6) over (10.1.26-1) ...
Selecting previously unselected package libconfig-inifiles-perl.
Preparing to unpack .../24-libconfig-inifiles-perl_2.94-1_all.deb ...
Unpacking libconfig-inifiles-perl (2.94-1) ...
Setting up mariadb-common (1:10.1.29-6) ...
(Reading database ... 327475 files and directories currently installed.)
Preparing to unpack .../00-mariadb-server-10.1_1%3a10.1.29-6_amd64.deb ...
/var/lib/mysql: found previous version 10.1
Unpacking mariadb-server-10.1 (1:10.1.29-6) over (10.1.26-1) ...
Preparing to unpack .../01-mariadb-client-10.1_1%3a10.1.29-6_amd64.deb ...
Unpacking mariadb-client-10.1 (1:10.1.29-6) over (10.1.26-1) ...
Preparing to unpack .../02-mariadb-server-core-10.1_1%3a10.1.29-6_amd64.deb ...
Unpacking mariadb-server-core-10.1 (1:10.1.29-6) over (10.1.26-1) ...
Preparing to unpack .../03-iproute2_4.9.0-2.1_amd64.deb ...
Unpacking iproute2 (4.9.0-2.1) over (4.9.0-2) ...
Preparing to unpack .../04-socat_1.7.3.2-2_amd64.deb ...
Unpacking socat (1.7.3.2-2) over (1.7.3.2-1) ...
Preparing to unpack .../05-multiarch-support_2.25-2_amd64.deb ...
Unpacking multiarch-support (2.25-2) over (2.24-17) ...
Preparing to unpack .../06-nano_2.9.0-1_amd64.deb ...
Unpacking nano (2.9.0-1) over (2.8.7-1) ...
Preparing to unpack .../07-libkeyutils1_1.5.9-9.2_amd64.deb ...
Unpacking libkeyutils1:amd64 (1.5.9-9.2) over (1.5.9-9) ...
Preparing to unpack .../08-aircrack-ng_1%3a1.2-0~rc4-4_amd64.deb ...
Unpacking aircrack-ng (1:1.2-0~rc4-4) over (1:1.2-0~rc4-2) ...
Preparing to unpack .../09-cabextract_1.6-1.1_amd64.deb ...
Unpacking cabextract (1.6-1.1) over (1.6-1+b1) ...
Preparing to unpack .../10-cgpt_0~R63-10032.B-2_amd64.deb ...
Unpacking cgpt (0~R63-10032.B-2) over (0~R52-8350.B-2) ...
Preparing to unpack .../11-exim4-config_4.89-11_all.deb ...
Unpacking exim4-config (4.89-11) over (4.89-7) ...
Preparing to unpack .../12-exim4-base_4.89-11_amd64.deb ...
Unpacking exim4-base (4.89-11) over (4.89-7) ...
Preparing to unpack .../13-exim4-daemon-light_4.89-11_amd64.deb ...
Unpacking exim4-daemon-light (4.89-11) over (4.89-7) ...
Preparing to unpack .../14-flasm_1.62-10_amd64.deb ...
Unpacking flasm (1.62-10) over (1.62-8) ...
Preparing to unpack .../15-fonts-noto-mono_20171026-2_all.deb ...
Unpacking fonts-noto-mono (20171026-2) over (20161116-1) ...
Preparing to unpack .../16-gdal-data_2.2.2+dfsg-2_all.deb ...
Unpacking gdal-data (2.2.2+dfsg-2) over (2.2.2+dfsg-1) ...
Selecting previously unselected package libarmadillo8.
Preparing to unpack .../17-libarmadillo8_1%3a8.200.2+dfsg-1_amd64.deb ...
Unpacking libarmadillo8 (1:8.200.2+dfsg-1) ...
Preparing to unpack .../18-libmariadbclient18_1%3a10.1.29-6_amd64.deb ...
Unpacking libmariadbclient18:amd64 (1:10.1.29-6) over (10.1.26-1) ...
Preparing to unpack .../19-libwebp6_0.6.0-4_amd64.deb ...
Unpacking libwebp6:amd64 (0.6.0-4) over (0.6.0-3) ...
Selecting previously unselected package libxerces-c3.2:amd64.
Preparing to unpack .../20-libxerces-c3.2_3.2.0+debian-2_amd64.deb ...
Unpacking libxerces-c3.2:amd64 (3.2.0+debian-2) ...
Preparing to unpack .../21-libgdal20_2.2.2+dfsg-2+b3_amd64.deb ...
Unpacking libgdal20 (2.2.2+dfsg-2+b3) over (2.2.2+dfsg-1) ...
Preparing to unpack .../22-gdal-bin_2.2.2+dfsg-2+b3_amd64.deb ...
Unpacking gdal-bin (2.2.2+dfsg-2+b3) over (2.2.2+dfsg-1) ...
Selecting previously unselected package python-jwt.
Preparing to unpack .../23-python-jwt_1.5.3+ds1-1_all.deb ...
Unpacking python-jwt (1.5.3+ds1-1) ...
Preparing to unpack .../24-glusterfs-common_3.12.3-1_amd64.deb ...
Unpacking glusterfs-common (3.12.3-1) over (3.12.2-2) ...
Preparing to unpack .../25-iso-codes_3.77-1_all.deb ...
Unpacking iso-codes (3.77-1) over (3.76-1) ...
Preparing to unpack .../26-libaprutil1-ldap_1.6.1-1_amd64.deb ...
Unpacking libaprutil1-ldap:amd64 (1.6.1-1) over (1.6.0-2) ...
Preparing to unpack .../27-libaprutil1-dbd-sqlite3_1.6.1-1_amd64.deb ...
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-1) over (1.6.0-2) ...
Preparing to unpack .../28-libaprutil1_1.6.1-1_amd64.deb ...
Unpacking libaprutil1:amd64 (1.6.1-1) over (1.6.0-2) ...
Preparing to unpack .../29-libdbd-sqlite3-perl_1.55~04-1_amd64.deb ...
Unpacking libdbd-sqlite3-perl (1.55~04-1) over (1.54-2) ...
Preparing to unpack .../30-libdevel-partialdump-perl_0.20-1_all.deb ...
Unpacking libdevel-partialdump-perl (0.20-1) over (0.18-2) ...
Preparing to unpack .../31-libdevel-stacktrace-perl_2.0300-1_all.deb ...
Unpacking libdevel-stacktrace-perl (2.0300-1) over (2.0200-1) ...
Preparing to unpack .../32-libfcgi-bin_2.4.0-10_amd64.deb ...
Unpacking libfcgi-bin (2.4.0-10) over (2.4.0-8.4+b1) ...
Preparing to unpack .../33-libfcgi0ldbl_2.4.0-10_amd64.deb ...
Unpacking libfcgi0ldbl:amd64 (2.4.0-10) over (2.4.0-8.4+b1) ...
Preparing to unpack .../34-libgcab-1.0-0_0.7-5_amd64.deb ...
Unpacking libgcab-1.0-0:amd64 (0.7-5) over (0.7-4) ...
Preparing to unpack .../35-mailutils_1%3a3.4-1_amd64.deb ...
Unpacking mailutils (1:3.4-1) over (1:3.2-1) ...
Preparing to unpack .../36-libmailutils5_1%3a3.4-1_amd64.deb ...
Unpacking libmailutils5:amd64 (1:3.4-1) over (1:3.2-1) ...
Preparing to unpack .../37-mailutils-common_1%3a3.4-1_all.deb ...
Unpacking mailutils-common (1:3.4-1) over (1:3.2-1) ...
Preparing to unpack .../38-libmysofa0_0.6~dfsg0-2_amd64.deb ...
Unpacking libmysofa0:amd64 (0.6~dfsg0-2) over (0.6~dfsg0-1) ...
Preparing to unpack .../39-libopenmpt0_0.3.3-1_amd64.deb ...
Unpacking libopenmpt0:amd64 (0.3.3-1) over (0.3.2-1) ...
Preparing to unpack .../40-liborc-0.4-0_1%3a0.4.28-1_amd64.deb ...
Unpacking liborc-0.4-0:amd64 (1:0.4.28-1) over (1:0.4.27-1) ...
Preparing to unpack .../41-libwebpdemux2_0.6.0-4_amd64.deb ...
Unpacking libwebpdemux2:amd64 (0.6.0-4) over (0.6.0-3) ...
Preparing to unpack .../42-libwebpmux3_0.6.0-4_amd64.deb ...
Unpacking libwebpmux3:amd64 (0.6.0-4) over (0.6.0-3) ...
Preparing to unpack .../43-libwww-perl_6.29-1_all.deb ...
Unpacking libwww-perl (6.29-1) over (6.27-1) ...
Preparing to unpack .../44-metasploit-framework_4.16.19-0kali1_amd64.deb ...
Unpacking metasploit-framework (4.16.19-0kali1) over (4.16.18-0kali1) ...
Preparing to unpack .../45-python-cairo_1.15.4-2_amd64.deb ...
Unpacking python-cairo:amd64 (1.15.4-2) over (1.8.8-2.2) ...
Preparing to unpack .../46-python-construct_2.8.16-0.1_all.deb ...
Unpacking python-construct (2.8.16-0.1) over (2.8.8+really2.5.2-0.1) ...
Preparing to unpack .../47-python-cryptography_2.1.3-3_amd64.deb ...
Unpacking python-cryptography (2.1.3-3) over (1.9-1) ...
Preparing to unpack .../48-python-gdal_2.2.2+dfsg-2+b3_amd64.deb ...
Unpacking python-gdal (2.2.2+dfsg-2+b3) over (2.2.2+dfsg-1) ...
Preparing to unpack .../49-python-gi_3.26.1-1_amd64.deb ...
Unpacking python-gi (3.26.1-1) over (3.24.1-6) ...
Preparing to unpack .../50-python-gobject_3.26.1-1_all.deb ...
Unpacking python-gobject (3.26.1-1) over (3.24.1-6) ...
Preparing to unpack .../51-python3-cairo_1.15.4-2_amd64.deb ...
Unpacking python3-cairo:amd64 (1.15.4-2) over (1.10.0+dfsg-5+b3) ...
Preparing to unpack .../52-python3-construct_2.8.16-0.1_all.deb ...
Unpacking python3-construct (2.8.16-0.1) over (2.8.8+really2.5.2-0.1) ...
Preparing to unpack .../53-python3-cryptography_2.1.3-3_amd64.deb ...
Unpacking python3-cryptography (2.1.3-3) over (1.9-1) ...
Preparing to unpack .../54-python3-gi-cairo_3.26.1-1_amd64.deb ...
Unpacking python3-gi-cairo (3.26.1-1) over (3.24.1-6) ...
Preparing to unpack .../55-python3-gi_3.26.1-1_amd64.deb ...
Unpacking python3-gi (3.26.1-1) over (3.24.1-6) ...
Preparing to unpack .../56-python3-pyatspi_2.26.0+dfsg-1_all.deb ...
Unpacking python3-pyatspi (2.26.0+dfsg-1) over (2.24.0+dfsg-1) ...
Preparing to unpack .../57-vboot-kernel-utils_0~R63-10032.B-2_amd64.deb ...
Unpacking vboot-kernel-utils (0~R63-10032.B-2) over (0~R52-8350.B-2) ...
Preparing to unpack .../58-vboot-utils_0~R63-10032.B-2_amd64.deb ...
Unpacking vboot-utils (0~R63-10032.B-2) over (0~R52-8350.B-2) ...
Preparing to unpack .../59-xauth_1%3a1.0.10-1_amd64.deb ...
Unpacking xauth (1:1.0.10-1) over (1:1.0.9-1+b2) ...
Setting up python3-cryptography (2.1.3-3) ...
Setting up keyboard-configuration (1.171) ...
Setting up libwbclient0:amd64 (2:4.7.3+dfsg-1) ...
Setting up fontconfig-config (2.12.6-0.1) ...
Setting up libc6-dbg:amd64 (2.25-2) ...
Setting up libconfig-inifiles-perl (2.94-1) ...
Setting up mariadb-server-core-10.1 (1:10.1.29-6) ...
Setting up libdbd-sqlite3-perl (1.55~04-1) ...
Setting up exim4-config (4.89-11) ...
Processing triggers for mime-support (3.60) ...
Setting up flasm (1.62-10) ...
Setting up libfcgi0ldbl:amd64 (2.4.0-10) ...
Setting up iso-codes (3.77-1) ...
Setting up libopenmpt0:amd64 (0.3.3-1) ...
Setting up socat (1.7.3.2-2) ...
Setting up mariadb-client-core-10.1 (1:10.1.29-6) ...
Setting up multiarch-support (2.25-2) ...
Setting up libdevel-stacktrace-perl (2.0300-1) ...
Setting up libgcab-1.0-0:amd64 (0.7-5) ...
Setting up vboot-kernel-utils (0~R63-10032.B-2) ...
Setting up aircrack-ng (1:1.2-0~rc4-4) ...
Processing triggers for menu (2.1.47+b1) ...
Setting up samba-common (2:4.7.3+dfsg-1) ...
Setting up cgpt (0~R63-10032.B-2) ...
Setting up libmariadbclient18:amd64 (1:10.1.29-6) ...
Processing triggers for sgml-base (1.29) ...
Setting up python3-gi (3.26.1-1) ...
Setting up exim4-base (4.89-11) ...
Setting up python3-construct (2.8.16-0.1) ...
Setting up iproute2 (4.9.0-2.1) ...
Setting up python-jwt (1.5.3+ds1-1) ...
Setting up libdevel-partialdump-perl (0.20-1) ...
Setting up fonts-noto-mono (20171026-2) ...
Setting up xauth (1:1.0.10-1) ...
Setting up libarmadillo8 (1:8.200.2+dfsg-1) ...
Setting up gdal-data (2.2.2+dfsg-2) ...
Setting up libtevent0:amd64 (0.9.34-1) ...
Setting up nano (2.9.0-1) ...
Installing new version of config file /etc/nanorc ...
Setting up cabextract (1.6-1.1) ...
Setting up python-gi (3.26.1-1) ...
Processing triggers for libc-bin (2.25-2) ...
Setting up libaprutil1:amd64 (1.6.1-1) ...
Setting up libc-l10n (2.25-2) ...
Processing triggers for systemd (235-3) ...
Setting up python-cryptography (2.1.3-3) ...
Setting up python-cairo:amd64 (1.15.4-2) ...
Setting up vboot-utils (0~R63-10032.B-2) ...
Setting up man-db (2.7.6.1-4) ...
Updating database of manual pages ...
Setting up libfcgi-bin (2.4.0-10) ...
Setting up python3-cairo:amd64 (1.15.4-2) ...
Setting up libc-dev-bin (2.25-2) ...
Setting up exim4-daemon-light (4.89-11) ...
Setting up liborc-0.4-0:amd64 (1:0.4.28-1) ...
Setting up libkeyutils1:amd64 (1.5.9-9.2) ...
Setting up console-setup-linux (1.171) ...
Setting up metasploit-framework (4.16.19-0kali1) ...
Setting up libc6-dev:amd64 (2.25-2) ...
Setting up python-construct (2.8.16-0.1) ...
Setting up locales (2.25-2) ...
Installing new version of config file /etc/locale.alias ...
Generating locales (this might take a while)...
Generation complete.
Setting up libmysofa0:amd64 (0.6~dfsg0-2) ...
Setting up libxerces-c3.2:amd64 (3.2.0+debian-2) ...
Setting up mailutils-common (1:3.4-1) ...
Setting up libwww-perl (6.29-1) ...
Setting up libaprutil1-ldap:amd64 (1.6.1-1) ...
Setting up libwebp6:amd64 (0.6.0-4) ...
Setting up libmailutils5:amd64 (1:3.4-1) ...
Setting up console-setup (1.171) ...
Setting up libfontconfig1:amd64 (2.12.6-0.1) ...
Setting up mariadb-client-10.1 (1:10.1.29-6) ...
Setting up samba-libs:amd64 (2:4.7.3+dfsg-1) ...
Setting up samba-vfs-modules (2:4.7.3+dfsg-1) ...
Setting up python3-pyatspi (2.26.0+dfsg-1) ...
Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-1) ...
Setting up python-gobject (3.26.1-1) ...
Setting up glusterfs-common (3.12.3-1) ...
Setting up libgdal20 (2.2.2+dfsg-2+b3) ...
Setting up python-samba (2:4.7.3+dfsg-1) ...
Setting up winexe (1.1~20140107-0kali6+b3) ...
Setting up python3-gi-cairo (3.26.1-1) ...
Setting up mailutils (1:3.4-1) ...
Setting up libsmbclient:amd64 (2:4.7.3+dfsg-1) ...
Setting up python-gdal (2.2.2+dfsg-2+b3) ...
Setting up smbclient (2:4.7.3+dfsg-1) ...
Setting up locales-all (2.25-2) ...
Setting up libwebpmux3:amd64 (0.6.0-4) ...
Setting up libwebpdemux2:amd64 (0.6.0-4) ...
Setting up samba-common-bin (2:4.7.3+dfsg-1) ...
Setting up mariadb-server-10.1 (1:10.1.29-6) ...
mariadb.service is a disabled or a static unit, not starting it.
Setting up gdal-bin (2.2.2+dfsg-2+b3) ...
Setting up samba-dsdb-modules (2:4.7.3+dfsg-1) ...
Setting up fontconfig (2.12.6-0.1) ...
Regenerating fonts cache... done.
Setting up samba (2:4.7.3+dfsg-1) ...
Samba is not being run as an AD Domain Controller.
Please ignore the following error about deb-systemd-helper not finding samba-ad-dc.service.
Processing triggers for libc-bin (2.25-2) ...
Processing triggers for menu (2.1.47+b1) ...
bash: ajpt: command not found
root@kali:~# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.2 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.2 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    linux-headers-amd64 linux-headers-4.13.0-kali1-amd64
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    linux-headers-amd64 linux-headers-4.13.0-kali1-amd64
root@kali:~# apt -get linux-headers-4.13.0-kali-amd64
E: Command line option 'g' [from -get] is not understood in combination with the other options.
root@kali:~# apt-get install linux-headers-4.13.0-kali-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package linux-headers-4.13.0-kali-amd64
E: Couldn't find any package by glob 'linux-headers-4.13.0-kali-amd64'
E: Couldn't find any package by regex 'linux-headers-4.13.0-kali-amd64'
root@kali:~# apt-get search linux-headers
E: Invalid operation search
root@kali:~# apt-cache search linux-headers
aufs-dkms - DKMS files to build and install aufs
linux-headers-4.13.0-kali1-all - All header files for Linux 4.13 (meta-package)
linux-headers-4.13.0-kali1-all-amd64 - All header files for Linux 4.13 (meta-package)
linux-headers-4.13.0-kali1-amd64 - Header files for Linux 4.13.0-kali1-amd64
linux-headers-4.13.0-kali1-common - Common header files for Linux 4.13.0-kali1
linux-headers-amd64 - Header files for Linux amd64 configuration (meta-package)
linux-libc-dev-alpha-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-arm64-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-armel-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-armhf-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-hppa-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-m68k-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mips-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mips64-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mips64el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mips64r6-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mips64r6el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsel-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsn32-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsn32el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsn32r6-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsn32r6el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsr6-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-mipsr6el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-powerpc-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-powerpcspe-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-ppc64-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-ppc64el-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-s390x-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-sh4-cross - Linux Kernel Headers for development (for cross-compiling)
linux-libc-dev-sparc64-cross - Linux Kernel Headers for development (for cross-compiling)
root@kali:~# apt-get install linux-headers-4.13.0-kali1-all-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libarmadillo7 libxerces-c3.1
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  cpp-6 gcc-6 linux-compiler-gcc-6-x86 linux-headers-4.13.0-kali1-amd64
  linux-headers-4.13.0-kali1-common linux-kbuild-4.13
Suggested packages:
  gcc-6-locales gcc-6-multilib gcc-6-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan3-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg
The following NEW packages will be installed:
  cpp-6 gcc-6 linux-compiler-gcc-6-x86 linux-headers-4.13.0-kali1-all-amd64
  linux-headers-4.13.0-kali1-amd64 linux-headers-4.13.0-kali1-common
  linux-kbuild-4.13
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 23.0 MB of archives.
After this operation, 101 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 cpp-6 amd64 6.4.0-10 [6,354 kB]
Get:2 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 gcc-6 amd64 6.4.0-10 [6,718 kB]
Get:3 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 linux-compiler-gcc-6-x86 amd64 4.13.13-1kali1 [496 kB]
Get:4 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 linux-headers-4.13.0-kali1-common all 4.13.13-1kali1 [7,756 kB]
Get:5 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 linux-kbuild-4.13 amd64 4.13.13-1kali1 [693 kB]
Get:6 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 linux-headers-4.13.0-kali1-amd64 amd64 4.13.13-1kali1 [463 kB]
Get:7 http://mirrors.ocf.berkeley.edu/kali kali-rolling/main amd64 linux-headers-4.13.0-kali1-all-amd64 amd64 4.13.13-1kali1 [496 kB]
Fetched 23.0 MB in 3s (6,388 kB/s)                        
Selecting previously unselected package cpp-6.
(Reading database ... 327473 files and directories currently installed.)
Preparing to unpack .../0-cpp-6_6.4.0-10_amd64.deb ...
Unpacking cpp-6 (6.4.0-10) ...
Selecting previously unselected package gcc-6.
Preparing to unpack .../1-gcc-6_6.4.0-10_amd64.deb ...
Unpacking gcc-6 (6.4.0-10) ...
Selecting previously unselected package linux-compiler-gcc-6-x86.
Preparing to unpack .../2-linux-compiler-gcc-6-x86_4.13.13-1kali1_amd64.deb ...
Unpacking linux-compiler-gcc-6-x86 (4.13.13-1kali1) ...
Selecting previously unselected package linux-headers-4.13.0-kali1-common.
Preparing to unpack .../3-linux-headers-4.13.0-kali1-common_4.13.13-1kali1_all.deb ...
Unpacking linux-headers-4.13.0-kali1-common (4.13.13-1kali1) ...
Selecting previously unselected package linux-kbuild-4.13.
Preparing to unpack .../4-linux-kbuild-4.13_4.13.13-1kali1_amd64.deb ...
Unpacking linux-kbuild-4.13 (4.13.13-1kali1) ...
Selecting previously unselected package linux-headers-4.13.0-kali1-amd64.
Preparing to unpack .../5-linux-headers-4.13.0-kali1-amd64_4.13.13-1kali1_amd64.deb ...
Unpacking linux-headers-4.13.0-kali1-amd64 (4.13.13-1kali1) ...
Selecting previously unselected package linux-headers-4.13.0-kali1-all-amd64.
Preparing to unpack .../6-linux-headers-4.13.0-kali1-all-amd64_4.13.13-1kali1_amd64.deb ...
Unpacking linux-headers-4.13.0-kali1-all-amd64 (4.13.13-1kali1) ...
Setting up linux-kbuild-4.13 (4.13.13-1kali1) ...
Setting up linux-headers-4.13.0-kali1-common (4.13.13-1kali1) ...
Processing triggers for man-db (2.7.6.1-4) ...
Setting up cpp-6 (6.4.0-10) ...
Setting up gcc-6 (6.4.0-10) ...
Setting up linux-compiler-gcc-6-x86 (4.13.13-1kali1) ...
Setting up linux-headers-4.13.0-kali1-amd64 (4.13.13-1kali1) ...
Setting up linux-headers-4.13.0-kali1-all-amd64 (4.13.13-1kali1) ...
root@kali:~# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.2 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.2 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
VirtualBox Guest Additions: Starting.
root@kali:~# 

Adventures in Web Development: How to Build a Simple Cloud Hosted Web Server using Ubuntu and GOLang

Sometimes you want to learn something new but you don’t know where to start.

I’ve been working in the Microsoft world & IIS stack so long, I forget how many other web stacks are out there and how many have past us by. OMG!

I wanted to challenge myself to learn how to setup a Cloud hosted, Linux based, web server to host a website. 

Where do I start? Well, I just started looking stuff up and decided to blog my learning process along the way.

I hope this helps somebody else with the same desire to learn this topic as quickly and painlessly as possible.

Here we go…. 

First off, I was not sure what programming language I wanted to use.

This project will use a Linode cloud hosted server and Ubuntu as our operating system.

I started off thinking about a web server using a LAMP stack. I thought it would be OK to consider other options too.

I hate to assume people know tech jargon so I will stop and explain things as best I can along the way. My intent is to inform, not to annoy.

That being said, what is a stack? 

A stack is just a term used to describe a collection of all the moving parts required to have a modern functional website. Includes server operating system, web server software, a database and a framework/language.

When we hear the term, “Full Stack Developer”, someone is talking about a developer with experience in all of the aspects of the stack.
For example,a LAMP stack is Linux OS + Apache Web Server + MySQL Database + PHP language/framework. 

Other server options are replacing Apache with NginX (Pronounced engine x) or building our own using the GO programming language (GoLang). 

I started off with Apache then went to NginX.

I got NginX to work as a server so I’m leaving that information in this article at the bottom.

The rest of this article is focused on trying to get a very basic Linux Ubuntu + GOLang stack up and running.  No database.

If you and I can get a server up and running, I’m going to celebrate then come back later and add the database.

Let’s do this!

What you need before you start:
If you’re using Windows to connect to your Linux server, use Putty to connect via SSH. Details are in the video. Get Putty here.

SSH is a client/server program that enables secure connection to the SSH server on a remote machine. The SSH command is used for remote execution of login, file transfer between machines and executing other remote commands.
Step 1. Go to https://www.Linode.com and create an account. You will need a credit card. A web server can be run on Linode for about .50 a day so learning can be inexpensive. You can delete the server anytime and just rebuild it in about 5 minutes.

Once you have your account, watch and follow along with this video.

Video: Setting up You Linode Ubuntu Server

Command line commands:
– sudo apt-get update
– sudo apt-get upgrade
– nano /etc/hosts

2. Once, You’ve installed your server. You should take some time to secure it. Watch this video and follow along.

Video: Securing Your Linode Server

Command line commands:
– adduser example_user
– adduser example_user sudo
– ssh-keygen -b 4096 

Installing GO and Use It to Setup a Super Simple Web Server

I tried several times and failed to get Apache running quickly so I moved on to NginX and GOLang since this was supposed to be easy.
Use the two videos above to walk you thru building your server operating system and securing it.  
Then go to https://www.linode.com/docs/development/go/install-go-on-ubuntu/ to get the instruction on how to install GO on Ubuntu.
Then watch and follow along with this video to see how to write your own web server and web application using GO.  It has all the moving parts built in, you won’t believe how easy it is. Give it a try!

It may be working when you click. Here is a simple page up and running.

http://74.207.244.122:8000/about/

 I 

**** Learning Note ****

This is where I’ll stop and relate some Microsoft stack items to what we just did.

When we build sites on the Microsoft stack, we already have a server, Internet Information Services (IIS), it runs on Windows as a background service.  If we’re having issues or make an update to the web.config file, we restart the IIS service.

So we just built a super simple IIS web server using a GO net/http library but we have not learned how to run in in the background as a service on Ubuntu. 

**** Learning Note ****

Once you get your simple server working, you will realize it is only running when you run it at the command line.  If you exit, your server stops.

We can cheat a bit by using the Linux command nohup which is short for “No Hangups”.

We don’t run nohup by itself, it is a supplemental command that tells Linux not to stop the main command, even if the user logs out. 

I won’t cover nohup in detail here I recommend this resource for learning more about the nohup command

We can fool our friends in to thinking we’ve built our server by launching our GO app using nohup but this is not the right way to do this. It needs to be running as a background service (daemon).

You will want to learn how to make your GO server run in the background all the time and restart automatically if the server restarts.

I was stuck on this part for a day or so but thank goodness I know the founder of chapbook.com, who is using GOLang so I hit them up and was  pointed to the link below.

https://fabianlee.org/2017/05/21/golang-running-a-go-binary-as-a-systemd-service-on-ubuntu-16-04/

This link is a good example of how to setup a background service called a daemon in Linux terms. 

We’ll do the example on the site above as an exercise to get some daemon code working before we move on to the next task of making our own server code run as a daemon.

It took me a while to get it working but I did. Took longer than I expected as I’m not used to doing everything remotely via SSH and with the nano text editor.  Feels like bootcamp.

Here is a screenshot of my successful attempt.

Installing NginX Web Server on Ubuntu

This is an older part of blog where I was going to go the NginX route and had a simple working server up. I’ll come back to update this later.

I started trying to do this using a LAMP stack but had too many problems getting the Apache2 web server to work and was getting tired and frustrated.

After staying up until 0230 failing to get the Apache2 server installed on Ubuntu, exhaustion was setting in and I was feeling the need a confidence boost so I started my Linode server over from scratch and tried this video on getting NginX web server installed and had success. Use this video first, it was much easier.

Video: Setting up a Linode Server and Hosting a Website using NginX Web Server

As next step, I followed these instructions to install the GO language and get a hello world app to work.

Next we figure out how to use GO to handle business logic on the web server.

Copying Files to Windows from Linux Using Putty’s PSCP Command Line Tool

I’m wanting to look at my cloud hosted Linux Apache web server log files on my local Windows PC and I’m using PuTTY SSH as my Windows SSH telnet client.

How do we transfer the Apache web server log files over to my local Windows PC so I can work with it?

Instead of trying to copy the file from inside the PuTTY SSH session on the remote server, we can use a built-In Windows command line tool (pscp.exe) included with PuTTY called “PSCP” which mimic much of what you get with Linux’s built-in scp file transfer utility.

Putty’s Command Line File Transfer Tool (PSCP)

Below is a screenshot of me figuring out how to properly transfer an Apache web server log file over to my Windows PC temp folder on the C drive.

Sample Command Line Code

Run from the Windows Command Line from your Putty Install folder.

I used // to escape the forward slashes on the Linux server and \\ to escape backslahes and it worked.

Below should be entered all on one line.
c:\Program Files\PuTTY>pscp user@remoteserver://var//log//apache2//access.log c:\\temp\\access.log