<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: segatomo</title>
    <description>The latest articles on DEV Community by segatomo (@segatomo).</description>
    <link>https://dev.to/segatomo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F231765%2Fb1aaf3a4-b7a2-480c-90fa-f06d514659d8.JPG</url>
      <title>DEV Community: segatomo</title>
      <link>https://dev.to/segatomo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/segatomo"/>
    <language>en</language>
    <item>
      <title>Vuls(Agentless vulnerability scanner) for beginners: Scan Ubuntu container in remote host from macOS</title>
      <dc:creator>segatomo</dc:creator>
      <pubDate>Thu, 19 Sep 2019 06:54:08 +0000</pubDate>
      <link>https://dev.to/segatomo/vuls-agentless-vulnerability-scanner-for-beginners-scan-ubuntu-container-in-remote-host-from-macos-41ef</link>
      <guid>https://dev.to/segatomo/vuls-agentless-vulnerability-scanner-for-beginners-scan-ubuntu-container-in-remote-host-from-macos-41ef</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;I'll tell you how to deploy &lt;a href="https://github.com/future-architect/vuls"&gt;Vuls&lt;/a&gt; and how to build development environment of it. &lt;br&gt;
I used &lt;a href="https://vuls.io/docs/en/tutorial.html"&gt;https://vuls.io/docs/en/tutorial.html&lt;/a&gt; as a reference. &lt;/p&gt;
&lt;h2&gt;
  
  
  Set up
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Docker container
&lt;/h3&gt;

&lt;p&gt;Pull the CentOS 7 official Docker image and run an interactive terminal session. Then, get into docker container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker pull centos:centos7
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; mycentos centos:centos7 
&lt;span class="nv"&gt;$ &lt;/span&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; mycentos /bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Set up Vuls environment on CentOS
&lt;/h3&gt;

&lt;p&gt;See &lt;a href="https://vuls.io/docs/en/install-manually-centos.html"&gt;Manual&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local Scan
&lt;/h2&gt;

&lt;p&gt;Scan CentOS itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# vi config.toml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create &lt;code&gt;config.toml&lt;/code&gt; like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[servers]&lt;/span&gt;

&lt;span class="nn"&gt;[servers.localhost]&lt;/span&gt;
&lt;span class="py"&gt;host&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"localhost"&lt;/span&gt;
&lt;span class="py"&gt;port&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"local"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Check config.toml and settings on the server before scanning
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# vuls configtest
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:03:34]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Validating config...
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:03:34]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Detecting Server/Container OS...
...
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:03:34]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Scannable servers are below...
localhost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Start Scanning
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# vuls scan
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:03:37]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Start scanning
...

One Line Summary
&lt;span class="o"&gt;================&lt;/span&gt;
localhost   centos7.6.1810  200 installed, 74 updatable

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Report
&lt;/h3&gt;

&lt;p&gt;Display the scan result simply.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# vuls report &lt;span class="nt"&gt;-format-one-line-text&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:10:18]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Validating config...
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 12:10:18]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Loaded: /root/go/src/github.com/future-architect/vuls/results/2019-09-18T12:10:07Z
...

One Line Summary
&lt;span class="o"&gt;================&lt;/span&gt;
localhost   Total: 72 &lt;span class="o"&gt;(&lt;/span&gt;High:14 Medium:48 Low:10 ?:0&lt;span class="o"&gt;)&lt;/span&gt;    32/72 Fixed 200 installed, 74 updatable 0 exploits      en: 4, ja: 2 alerts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. TUI
&lt;/h3&gt;

&lt;p&gt;TUI(Terminal-Based User Interface) enables us to see the scan result in more detail.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[root@c385c6f70094 /]# vuls tui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/c9fff155bc67c62c7fc5f9642f2a9066066d8c6d/68747470733a2f2f76756c732e696f2f696d672f646f63732f68656c6c6f2d76756c732d7475692e706e67" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/c9fff155bc67c62c7fc5f9642f2a9066066d8c6d/68747470733a2f2f76756c732e696f2f696d672f646f63732f68656c6c6f2d76756c732d7475692e706e67" alt="Vuls-TUI" width="1913" height="1035"&gt;&lt;/a&gt;&lt;br&gt;
Leave TUI mode by typing Ctrl+C.  &lt;/p&gt;
&lt;h2&gt;
  
  
  Remote Scan
&lt;/h2&gt;

&lt;p&gt;Scan Ubuntu&lt;/p&gt;
&lt;h3&gt;
  
  
  Set up Ubuntu container
&lt;/h3&gt;

&lt;p&gt;Pull Ubuntu image and run an interactive terminal session.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker pull ubuntu:18.04
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; myubuntu &lt;span class="nt"&gt;-p&lt;/span&gt; 22 ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check IP address.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker inspect &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'&lt;/span&gt; CONTAINER ID
172.17.0.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use container ID of your ubuntu container instead of &lt;code&gt;CONTAINER ID&lt;/code&gt;. (You can check it by executing &lt;code&gt;docker ps&lt;/code&gt; command.)&lt;br&gt;
Then, get into docker container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; myubuntu /bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Start sshd on Ubuntu
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@b4d4062be0a8:/# apt-get update
root@b4d4062be0a8:/# apt &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;openssh-server
root@b4d4062be0a8:/# &lt;span class="nb"&gt;rm&lt;/span&gt; /etc/ssh/ssh_host_&lt;span class="k"&gt;*&lt;/span&gt;key&lt;span class="k"&gt;*&lt;/span&gt;
root@b4d4062be0a8:/# dpkg-reconfigure openssh-server
root@b4d4062be0a8:/# /etc/init.d/ssh start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a keypair on CentOS. Then, copy public key to clipboard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; rsa
&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# &lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@b4d4062be0a8:/# &lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/.ssh
root@b4d4062be0a8:/# &lt;span class="nb"&gt;chmod &lt;/span&gt;700 ~/.ssh
root@b4d4062be0a8:/# &lt;span class="nb"&gt;touch&lt;/span&gt; ~/.ssh/authorized_keys
root@b4d4062be0a8:/# &lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.ssh/authorized_keys
root@b4d4062be0a8:/# vim ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste the content of the clipboard to &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 /]# ssh 172.17.0.3
Welcome to Ubuntu 18.04.3 LTS &lt;span class="o"&gt;(&lt;/span&gt;GNU/Linux 4.9.184-linuxkit x86_64&lt;span class="o"&gt;)&lt;/span&gt;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remote host's Host Key is added to &lt;code&gt;$HOME/.ssh/known_hosts&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Create &lt;code&gt;config.toml&lt;/code&gt; under &lt;code&gt;vuls&lt;/code&gt; directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[servers]&lt;/span&gt;

&lt;span class="nn"&gt;[servers.ubuntu]&lt;/span&gt;
&lt;span class="py"&gt;host&lt;/span&gt;         &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"172.17.0.3"&lt;/span&gt;
&lt;span class="py"&gt;port&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"22"&lt;/span&gt;
&lt;span class="py"&gt;user&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"root"&lt;/span&gt;
&lt;span class="py"&gt;keyPath&lt;/span&gt;     &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/path/to/.ssh/id_rsa"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, make sure that configuration is correct.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 vuls]# vuls configtest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should now be able to scan remote host(Ubuntu) form CentOS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@c385c6f70094 vuls]# vuls scan 
&lt;span class="o"&gt;[&lt;/span&gt;Sep 19 04:56:51]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Start scanning
...

One Line Summary
&lt;span class="o"&gt;================&lt;/span&gt;
ubuntu  ubuntu18.04 154 installed


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Scan remote host from macOS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Deploy Vuls
&lt;/h3&gt;

&lt;p&gt;Deploy Vuls in the same way as shown above on your local machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enable ssh
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy public key to clipboard.&lt;/p&gt;

&lt;p&gt;Ubuntu&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@b4d4062be0a8:/# vi ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the copied text to &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
b4d4062be0a8        ubuntu              &lt;span class="s2"&gt;"/bin/bash"&lt;/span&gt;         2 days ago          Up 2 days           0.0.0.0:32768-&amp;gt;22/tcp   myubuntu
c385c6f70094        centos              &lt;span class="s2"&gt;"/bin/bash"&lt;/span&gt;         2 days ago          Up 2 days                                   mycentos
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ssh root@localhost &lt;span class="nt"&gt;-p&lt;/span&gt; 32768
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remote host's Host Key is added to &lt;code&gt;$HOME/.ssh/known_hosts&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vi config.toml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Touch &lt;code&gt;config.toml&lt;/code&gt; as shown below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[servers]&lt;/span&gt;

&lt;span class="nn"&gt;[servers.ubuntu]&lt;/span&gt;
&lt;span class="py"&gt;host&lt;/span&gt;         &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"localhost"&lt;/span&gt;
&lt;span class="py"&gt;port&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"32768"&lt;/span&gt;
&lt;span class="py"&gt;user&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"root"&lt;/span&gt;
&lt;span class="py"&gt;keyPath&lt;/span&gt;     &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/path/to/id_rsa"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can scan remote host from local machine!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vuls configtest ubuntu
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 22:14:42]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Validating config...
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 22:14:42]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Detecting Server/Container OS...
...
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 22:14:42]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Scannable servers are below...
ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vuls scan
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 22:15:25]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Start scanning
...


One Line Summary
&lt;span class="o"&gt;================&lt;/span&gt;
ubuntu  ubuntu18.04 154 installed

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vuls report &lt;span class="nt"&gt;-format-one-line-text&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Sep 18 22:16:03]  INFO &lt;span class="o"&gt;[&lt;/span&gt;localhost] Validating config...
...

One Line Summary
&lt;span class="o"&gt;================&lt;/span&gt;
ubuntu  Total: 46 &lt;span class="o"&gt;(&lt;/span&gt;High:8 Medium:31 Low:7 ?:0&lt;span class="o"&gt;)&lt;/span&gt;  0/46 Fixed  177 installed   1 exploits  en: 0, ja: 0 alerts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>vuls</category>
      <category>security</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
