SlideShare a Scribd company logo
Headless Host Scanning
    Jan Schaumann <jschauma@netmeister.org>
99CE 1DC7 770A C5A8 09A6 0DCD 66CE 4FE9 6F6B D3D7




                                @jschauma
Headless Host Scanning -- @jschauma   2   11/19/12
Life Lessons: Pen testing can't solve everything.




Headless Host Scanning -- @jschauma   3             11/19/12
Inside-Out




Headless Host Scanning -- @jschauma   4   11/19/12
Distance to Yahoo! ad in feet: 404
          Construction cost: $357 million                                  Capacity: 41,915




Headless Host Scanning -- @jschauma              5                                11/19/12
Ballpark numbers



                                        Distance to Yahoo! ad in feet: 30927

  Construction cost: $1.5 billion                                              Capacity: 52,325




  Headless Host Scanning -- @jschauma                 6                               11/19/12
Life Lessons: Size matters




Headless Host Scanning -- @jschauma   7   11/19/12
It all began some time in January of 2007...




Yahoo! Presentation; Confidential              11/19/12
Initial Problem Statement




“Hey, we need to know which hosts can’t deal with the
             new Daylight Saving Time.”




 Headless Host Scanning -- @jschauma   9      11/19/12
A Systems Administrator's Toolbox




Headless Host Scanning -- @jschauma   10   11/19/12
A simple tool


                                           perl
                                                   python
       /bin/sh

Headless Host Scanning -- @jschauma   11               11/19/12
Initial "Solution"

#!/bin/sh
while read host; do
    ssh $host "env TZ=PST8PDT 
      perl -e ’@t=localtime 1173682800; exit 1 - pop @t’"
done




Headless Host Scanning -- @jschauma   12          11/19/12
Problem Statement




                     “Please run this script on these hosts.”




Headless Host Scanning -- @jschauma     13                      11/19/12
2nd Pass

#!/bin/sh
while read host; do
    scp script.sh $host:/tmp/
    ssh $host "/tmp/script.sh"
done




Headless Host Scanning -- @jschauma   14   11/19/12
Mensch, nutz' doch ein
                                           Konfigurationsmanagementtool!




Headless Host Scanning -- @jschauma   15                                   11/19/12
Configuration Management




Headless Host Scanning -- @jschauma   16   11/19/12
Configuration Management

Good at:
§  keeping state
§  ensuring flat text file properties


Not so good at:
§  deploying applications
§  executing (one-time) scripts

Terrible at:
§  reporting output of individual commands or scripts


Headless Host Scanning -- @jschauma      17              11/19/12
Life Lessons: Sturgeon's Law (1st adage)




"Nothing is always absolutely so."



Headless Host Scanning -- @jschauma   18   11/19/12
Mensch, nutz' doch Deine
                                           Logaggregationsinfrastruktur!




Headless Host Scanning -- @jschauma   19                                   11/19/12
Log Aggregation

§  makes assumptions about message format
§  frequently unreliable and/or asynchronous
§  adds additional complexity




Headless Host Scanning -- @jschauma   20        11/19/12
3rd Pass

#!/bin/sh
while read host; do
    cat script.sh | ssh $host "bash –s"
done




Headless Host Scanning -- @jschauma   21   11/19/12
3rd Pass

#!/bin/sh
while read host; do
    ssh $host "bash –s" < script.sh
done




Headless Host Scanning -- @jschauma   22   11/19/12
Problem Refinement




 “Run this set of arbitrary commands on our hosts.
                Yes, on all of them.”




Headless Host Scanning -- @jschauma   23     11/19/12
Wait a second – all hosts?

$ wtf host
wtf: I don't know what host means!
$

§  a computer connected to a network
§  a virtual machine
§  a container
      §  jails, zones, ...
      §  chroot



Headless Host Scanning -- @jschauma   24   11/19/12
Sturgeon's Law (1st adage)

                   "Hosts" on the network




"Hosts" in asset database                   "Hosts" in DNS

  Yahoo! Presentation; Confidential             11/19/12
3rd Pass

#!/bin/sh
while read host; do
    ssh $host "bash –s" < script.sh
done




Headless Host Scanning -- @jschauma   26   11/19/12
4th Pass




Headless Host Scanning -- @jschauma   27   11/19/12
Headless Host Scanning -- @jschauma   28   11/19/12
Life Lessons: Causality (Duh!)




$ w
10:45AM up 51 days, 22:19, 11 users, load averages: 976.23, 618.17, 1020.25
$ time ls
      13.354 real                          0.001 user   0.002 sys
$





     Headless Host Scanning -- @jschauma                29           11/19/12
Horizontal Scalability


                                                                 Scanmaster




                                      Scanslaves                 Scanslaves




                                                   Targethosts
Headless Host Scanning -- @jschauma                    30                     11/19/12
SSH Complications: assword prompts



                      Interactive connections?
        Password:

        $USER@hostname's password:




Headless Host Scanning -- @jschauma   31         11/19/12
SSH Complications: assword prompts




                      Interactive connections
                     begat password injectors.



Headless Host Scanning -- @jschauma   32     11/19/12
SSH Complications: assword prompts
 proc respond { pw } {
   global pws
   if {![info exists pws($pw)]} {
     send_user " (autopw) "
     stty -echo
     expect_user -re "(.+)n"
     stty echo
     set pws($pw) 
       [exec perl -ne "print pack(q{u}, $_)" << $expect_out(1,string)]
   } else {
     send_user " (autopw'ed)"
   }
   log_user 0
   send -- "[exec perl -ne "print unpack(q{u}, $_)" << $pws($pw)]n";
   log_user 1
 }
 eval spawn -noecho $argv
 expect {
  "assword:" {
    respond system
    exp_continue
  }

Yahoo! Presentation; Confidential                                         11/19/12
SSH Complications: assword prompts


                                    Key Authentication
                                      to the rescue!




Yahoo! Presentation; Confidential                        11/19/12
Horizontal Scalability


                                                               Scanmaster




                                    Scanslaves                 Scanslaves




                                                 Targethosts
Yahoo! Presentation; Confidential                                           11/19/12
SSH Complications: assword prompts


                                    Key Authentication
                                      to the rescue?
§  private keys need to be present on all hosts connecting to targets
§  you need to provide passphrase for private keys at scan start


Enter passphrase for /home/${USER}/.ssh/id_rsa:
Enter passphrase for /home/${USER}/.ssh/id_dsa:
Enter passphrase for /home/${USER}/.ssh/scankey:

Yahoo! Presentation; Confidential                                 11/19/12
SSH Complications: assword prompts




                       Key Authentication also
                       uses password injectors.



Headless Host Scanning -- @jschauma   37      11/19/12
SSH Complications: assword prompts


                          SSH Agent Forwarding
                             to the rescue!
§  private keys stored in agent on single "safe" machine
§  agent forwarding enabled to scan slaves
§  everything's peachy!





Headless Host Scanning -- @jschauma   38                    11/19/12
SSH Agent Forwarding




                                              proxy
                                              agent




                                      Slave           Targethosts
        Master


Headless Host Scanning -- @jschauma      39                    11/19/12
SSH Agent Forwarding




                                              proxy
                                              agent




                                      Slave           Targethosts
        Master


Headless Host Scanning -- @jschauma      40                    11/19/12
SSH Agent Forwarding




        Master


Headless Host Scanning -- @jschauma   41   11/19/12
SSH Agent Forwarding




Headless Host Scanning -- @jschauma   42   11/19/12
Scalability issues


                                                                 Scanmaster




                                      Scanslaves                 Scanslaves




                                                   Targethosts
Headless Host Scanning -- @jschauma                    43                     11/19/12
Miscellaneous Scalability Issues

§  doing hostname lookups for each connection is expensive
       §  use IP addresses
§  parsing known_hosts with several 100K entries is expensive
       §  use UserKnownHostsFile=/dev/null
       §  use GlobalKnownHostsFile=/dev/null
§  hosts change ssh keys "frequently"
       §  we need StrictHostKeyChecking=no :-(
§  collecting even only a few lines from every single host can fill up your
    disk quickly
§  ssh connections can hang "indefinitely" (=> tkill(1) cron scheduled
    killing of processes)


Headless Host Scanning -- @jschauma   44                            11/19/12
Yay, Open Source!




Headless Host Scanning -- @jschauma   45   11/19/12
Scanmaster Scripts
§  checkhosts(1)
      §  run given script on all hosts in input via ssh(1) (in background)
§  scanhosts(1)
      §  invoke checkhosts(1) against split input (again in background)
        §  defaults to 150 invocations of checkhosts(1) in parallel
§  scanslave(1)
      §  starts ssh-agent(1) and adds keys
        §  adds tkill(1) crontab
        §  invoke scanhosts(1) against split input
§  scanmaster(1)
        §  splits input into number of scanslaves chunks
        §  ssh to each scanslave and kicks off scanslave(1) in screen session
        §  aggregates and post-processes results
Headless Host Scanning -- @jschauma         46                                11/19/12
Scanmaster Scripts
$ wc -l *
  330 checkhosts
        259 scanhosts
        325 scanmaster
          179 scanslave
 1093 total
$ file *
checkhosts: Bourne shell script text executable
scanhosts: Bourne shell script text executable
scanmaster: Bourne shell script text executable
scanslave: Bourne shell script text executable
$

    Headless Host Scanning -- @jschauma   47       11/19/12
"Every item on the menu at Taco Bell is just
a different configuration of roughly eight
ingredients. With this simple periodic table
of meat and produce, the company pulled
down $1.9 billion last year."

http://teddziuba.com/2010/10/taco-bell-programming.html
Headless Host Scanning -- @jschauma            48          11/19/12
Miscellaneous Security Issues
§  ssh-agent exposes our keys to target hosts
      §  use ForwardAgent=no, ClearAllForwardings=yes


§  ssh-agent on scanslaves exposes our privkeys to anybody with
    super-user privileges on the scanslaves
        §  use a scan-only key with from= and various no- restrictions

§  password injector will respond to anything asking for your assword
      §  uhm... don't use password auth?


§  use of a "real" user is stupid

Headless Host Scanning -- @jschauma     49                           11/19/12
Going topless. T.O.P.L.E.S.S.
Headless User Requirement #1:
   §  selective access (via ssh keys)

Headless User Requirement #2:
   §  a restricted shell


Headless User Requirement #3:
   §  an un-restricted shell

Headless User Requirement #2 and #3:
        §  allow arbitrary commands, provided they
            were sanctioned by somebody we trust
Headless Host Scanning -- @jschauma     50            11/19/12
Windows PowerShell




Headless Host Scanning -- @jschauma   51   11/19/12
Windows PowerShell ExecutionPolicy
§  Restricted
     §  No scripts can be run. Windows PowerShell
         can be used only in interactive mode.
§  Unrestricted
     §  No restrictions; all Windows PowerShell scripts
         can be run.

§  RemoteSigned
      §  Downloaded scripts must be signed by a trusted publisher before
          they can be run.
§  AllSigned
      §  Only scripts signed by a trusted publisher can be run.


Headless Host Scanning -- @jschauma   52                         11/19/12
The (TacoBell) Sigsh
NAME
  sigsh -- a signature verifying shell

SYNOPSIS
      sigsh [-c certs] [-x] [-p prog]

DESCRIPTION
      sigsh is a non-interactive, signature requiring and verifying
      command interpreter. More accurately, it is a signature 
      verification wrapper around a given shell. It reads input in 
      PKCS#7 format from standard in, verifies the signature and, if 
      the signature matches, pipes the decoded input into the command 
      interpreter.

Headless Host Scanning -- @jschauma      53                            11/19/12
Yay, Open Source!




Headless Host Scanning -- @jschauma   54   11/19/12
The (TacoBell) Sigsh
$ find . ( -type f -a ! -path '*.svn/*' ) | xargs wc -l
   50 ./test/sigsh.test.pl
      36 ./certs/Makefile
       5 ./certs/README
   121 ./doc/sigsh.1
    17 ./doc/Makefile
   176 ./src/sigsh.sh
      12 ./README
      29 ./LICENSE
   446 total
$



Headless Host Scanning -- @jschauma      55                 11/19/12
Yay, Open Source!




Headless Host Scanning -- @jschauma   56   11/19/12
The (TacoBell) Sigsh
$ egrep -v "^[ ]*#" sigsh.sh | wc -l
   93
$




Headless Host Scanning -- @jschauma     57   11/19/12
The (TacoBell) Sigsh
EXAMPLES
  The following examples illustrate possible usage of this tool.
        To execute the commands in the file 'script.bash':

                openssl smime -sign -nodetach -signer mycert.pem 
                     -inkey mykey.pem -in script.bash -outform pem | sigsh

        To execute the perl code contained in the signed PKCS#7 file 'code.pem':

                sigsh -p /usr/bin/perl <code.pem




    Headless Host Scanning -- @jschauma          58                           11/19/12
The Good, the Bad and the Ugly
The Good

§    private cert need not be present on scanslave hosts
§    signing party need not be executing party
§    if you grant passwordless sudo to the headless user, you can do *
§    certs can expire => we have builtin time-bomb powers!
§    multiple people can have signing-power independent of each other


§  we can scan over XXXK "hosts" in approximately 15 minutes
§  we have the flexibility to collect all sorts of interesting data




Headless Host Scanning -- @jschauma   60                               11/19/12
Scanning over 400 hosts/second

[...]
16:09:14: 0 / 30 done - waiting...
16:10:16: 0 / 30 done - waiting...
16:11:18: 1 / 30 done - waiting...
16:12:20: 6 / 30 done - waiting...
16:13:22: 20 / 30 done - waiting...
16:14:24: 27 / 30 done - waiting...
16:15:25: 29 / 30 done - waiting...
16:16:27: 29 / 30 done - waiting...
16:17:30: 30 / 30 done
16:17:30: Scanned XXXXXX hosts in XX minutes and 32 seconds.
Aggregating data...

Yahoo! Presentation; Confidential                          11/19/12
The Bad

§  this is still a TacoBell sigsh, not a powershell


§  we have not solved the ssh-key access problem
     (though a leaked ssh-key cannot allow arbitrary command
      execution, only execution of previously approved commands)


§  multiple people can have signing-power independent of each other




Headless Host Scanning -- @jschauma    62                     11/19/12
Life Lessons: Pareto's Principle




The "trivial many"




 The "vital few"

 Headless Host Scanning -- @jschauma   63   11/19/12
Life Lessons: Milton Friedman was right.




There's nothing so permanent as
a temporary government program
            solution.


Yahoo! Presentation; Confidential          11/19/12
The Ugly


§  Only ~80% of our hosts have sigsh => we need to combine headless
    with "headful" scans. Thus, we currently:
      §  scan headlessly (80%, in <15 minutes)
      §  scan with regular user and dedicated scankey (11%)
      §  scan with regular user and password, twice (7%)
          §  scan with regular user and old password
          §  scan with regular user and older password
          §  scan with regular user and even older password


§  We still (have to) trust the binaries on the remote host.
     §  no veriexec, TPE, ...
Headless Host Scanning -- @jschauma      65                     11/19/12
Life Lessons

§  Pen testing can't solve everything.
§  Size matters.
§  "Nothing is always absolutely so." (Sturgeon's Law)
      ›    "90% of everything is crud." (2nd adage; freebie)
§    Causality (Duh!)
§    Mmm, mmm TacoBell!
§    80% of the effects come from 20% of the causes. (Pareto Principle)
§    There's nothing so permanent as a temporary solution.


§  The worst form of on-demand data collection except all the others that
    have been tried.


Headless Host Scanning -- @jschauma               66              11/19/12
Information

§  http://www.netmeister.org/apps/scanmaster/
§  http://www.netmeister.org/apps/sigsh/


§  jschauma@netmeister.org

§  @jschauma



This talk in 140 chars or less:
Scanning 100s of K hosts headlessly using a signature verifying
shell is awful. Still better than most alternatives. That is all.
Headless Host Scanning -- @jschauma    67                           11/19/12

More Related Content

What's hot

Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh
 
Version Control for Mere Mortals
Version Control for Mere MortalsVersion Control for Mere Mortals
Version Control for Mere Mortals
Emma Jane Hogbin Westby
 
Manage and Deploy your sites with Drush
Manage and Deploy your sites with DrushManage and Deploy your sites with Drush
Manage and Deploy your sites with Drush
Amazee Labs
 
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Larry Cashdollar
 
Sprockets
SprocketsSprockets
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
Alexandre Salomé
 
Fun with exploits old and new
Fun with exploits old and newFun with exploits old and new
Fun with exploits old and new
Larry Cashdollar
 
How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)
Larry Cashdollar
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
Positive Hack Days
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
George Shuklin
 
Efficient DBA: Gain Time by Reducing Command-Line Keystrokes
Efficient DBA: Gain Time by Reducing Command-Line KeystrokesEfficient DBA: Gain Time by Reducing Command-Line Keystrokes
Efficient DBA: Gain Time by Reducing Command-Line Keystrokes
Seth Miller
 
Embedded software development using BDD
Embedded software development using BDDEmbedded software development using BDD
Embedded software development using BDD
Itamar Hassin
 
Vincent Ruijter - ~Securing~ Attacking Kubernetes
Vincent Ruijter - ~Securing~ Attacking KubernetesVincent Ruijter - ~Securing~ Attacking Kubernetes
Vincent Ruijter - ~Securing~ Attacking Kubernetes
hacktivity
 
Puppet Conf 2012 - Managing Network Devices with Puppet
Puppet Conf 2012 - Managing Network Devices with PuppetPuppet Conf 2012 - Managing Network Devices with Puppet
Puppet Conf 2012 - Managing Network Devices with Puppet
Nan Liu
 
Ansible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / QuickstartAnsible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / Quickstart
Henry Stamerjohann
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
Bram Vogelaar
 
Rush, a shell that will yield to you
Rush, a shell that will yield to youRush, a shell that will yield to you
Rush, a shell that will yield to you
guestdd9d06
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
Ivan Serdyuk
 
Automation and Ansible
Automation and AnsibleAutomation and Ansible
Automation and Ansible
jtyr
 
Ansible - Crash course
Ansible - Crash courseAnsible - Crash course
Ansible - Crash course
Simone Soldateschi
 

What's hot (20)

Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Version Control for Mere Mortals
Version Control for Mere MortalsVersion Control for Mere Mortals
Version Control for Mere Mortals
 
Manage and Deploy your sites with Drush
Manage and Deploy your sites with DrushManage and Deploy your sites with Drush
Manage and Deploy your sites with Drush
 
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.
 
Sprockets
SprocketsSprockets
Sprockets
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
 
Fun with exploits old and new
Fun with exploits old and newFun with exploits old and new
Fun with exploits old and new
 
How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)How to discover 1352 Wordpress plugin 0days in one hour (not really)
How to discover 1352 Wordpress plugin 0days in one hour (not really)
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 
Efficient DBA: Gain Time by Reducing Command-Line Keystrokes
Efficient DBA: Gain Time by Reducing Command-Line KeystrokesEfficient DBA: Gain Time by Reducing Command-Line Keystrokes
Efficient DBA: Gain Time by Reducing Command-Line Keystrokes
 
Embedded software development using BDD
Embedded software development using BDDEmbedded software development using BDD
Embedded software development using BDD
 
Vincent Ruijter - ~Securing~ Attacking Kubernetes
Vincent Ruijter - ~Securing~ Attacking KubernetesVincent Ruijter - ~Securing~ Attacking Kubernetes
Vincent Ruijter - ~Securing~ Attacking Kubernetes
 
Puppet Conf 2012 - Managing Network Devices with Puppet
Puppet Conf 2012 - Managing Network Devices with PuppetPuppet Conf 2012 - Managing Network Devices with Puppet
Puppet Conf 2012 - Managing Network Devices with Puppet
 
Ansible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / QuickstartAnsible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / Quickstart
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
Rush, a shell that will yield to you
Rush, a shell that will yield to youRush, a shell that will yield to you
Rush, a shell that will yield to you
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
 
Automation and Ansible
Automation and AnsibleAutomation and Ansible
Automation and Ansible
 
Ansible - Crash course
Ansible - Crash courseAnsible - Crash course
Ansible - Crash course
 

Viewers also liked

Building better tools
Building better toolsBuilding better tools
Building better tools
Jan Schaumann
 
Protecting Data in Untrusted Locations
Protecting Data in Untrusted LocationsProtecting Data in Untrusted Locations
Protecting Data in Untrusted Locations
Jan Schaumann
 
Defense at Scale
Defense at ScaleDefense at Scale
Defense at Scale
Jan Schaumann
 
Fancy pants
Fancy pantsFancy pants
Fancy pants
Jan Schaumann
 
Safely Drinking from the Data Waterhose
Safely Drinking from the Data WaterhoseSafely Drinking from the Data Waterhose
Safely Drinking from the Data Waterhose
Jan Schaumann
 
OpSec101
OpSec101OpSec101
OpSec101
Jan Schaumann
 
Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)
Jan Schaumann
 
Know Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat ModelingKnow Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat Modeling
Jan Schaumann
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large Codebases
Angad Singh
 
Startup DNA: Speed Wins
Startup DNA: Speed WinsStartup DNA: Speed Wins
Startup DNA: Speed Wins
Yevgeniy Brikman
 
Semper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In SchoolSemper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In School
Jan Schaumann
 
A Guide to Hiring for your Startup
A Guide to Hiring for your StartupA Guide to Hiring for your Startup
A Guide to Hiring for your Startup
Yevgeniy Brikman
 
Agility Requires Safety
Agility Requires SafetyAgility Requires Safety
Agility Requires Safety
Yevgeniy Brikman
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
Yevgeniy Brikman
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
Yevgeniy Brikman
 
Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...
Yevgeniy Brikman
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Yevgeniy Brikman
 
Startup Ideas and Validation
Startup Ideas and ValidationStartup Ideas and Validation
Startup Ideas and Validation
Yevgeniy Brikman
 

Viewers also liked (18)

Building better tools
Building better toolsBuilding better tools
Building better tools
 
Protecting Data in Untrusted Locations
Protecting Data in Untrusted LocationsProtecting Data in Untrusted Locations
Protecting Data in Untrusted Locations
 
Defense at Scale
Defense at ScaleDefense at Scale
Defense at Scale
 
Fancy pants
Fancy pantsFancy pants
Fancy pants
 
Safely Drinking from the Data Waterhose
Safely Drinking from the Data WaterhoseSafely Drinking from the Data Waterhose
Safely Drinking from the Data Waterhose
 
OpSec101
OpSec101OpSec101
OpSec101
 
Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)
 
Know Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat ModelingKnow Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat Modeling
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large Codebases
 
Startup DNA: Speed Wins
Startup DNA: Speed WinsStartup DNA: Speed Wins
Startup DNA: Speed Wins
 
Semper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In SchoolSemper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In School
 
A Guide to Hiring for your Startup
A Guide to Hiring for your StartupA Guide to Hiring for your Startup
A Guide to Hiring for your Startup
 
Agility Requires Safety
Agility Requires SafetyAgility Requires Safety
Agility Requires Safety
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Startup Ideas and Validation
Startup Ideas and ValidationStartup Ideas and Validation
Startup Ideas and Validation
 

Similar to Headless Host Scanning

Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
Javier Arturo Rodríguez
 
Webinar: Automate IBM Connections Installations and more
Webinar: Automate IBM Connections Installations and moreWebinar: Automate IBM Connections Installations and more
Webinar: Automate IBM Connections Installations and more
panagenda
 
nginxをソースからインストールしてみたよ
nginxをソースからインストールしてみたよnginxをソースからインストールしてみたよ
nginxをソースからインストールしてみたよ
mamoru tateoka
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - Routers
Logicaltrust pl
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
Yury Chemerkin
 
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchaginstackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
NETWAYS
 
NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin
Davide Cioccia
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
Apcera
 
Love The Terminal
Love The TerminalLove The Terminal
Love The Terminal
Mike West
 
Copying files between linux machines using scp and ssh without linux user pas...
Copying files between linux machines using scp and ssh without linux user pas...Copying files between linux machines using scp and ssh without linux user pas...
Copying files between linux machines using scp and ssh without linux user pas...
Ravi Kumar Lanke
 
Da APK al Golden Ticket
Da APK al Golden TicketDa APK al Golden Ticket
Da APK al Golden Ticket
Giuseppe Trotta
 
Approach to find critical vulnerabilities
Approach to find critical vulnerabilitiesApproach to find critical vulnerabilities
Approach to find critical vulnerabilities
Ashish Kunwar
 
Basic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsBasic presentation of cryptography mechanisms
Basic presentation of cryptography mechanisms
Marian Marinov
 
Really useful linux commands
Really useful linux commandsReally useful linux commands
Really useful linux commands
Michael J Geiser
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
Andreas Bovens
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARM
Team Hypriot
 

Similar to Headless Host Scanning (16)

Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 
Webinar: Automate IBM Connections Installations and more
Webinar: Automate IBM Connections Installations and moreWebinar: Automate IBM Connections Installations and more
Webinar: Automate IBM Connections Installations and more
 
nginxをソースからインストールしてみたよ
nginxをソースからインストールしてみたよnginxをソースからインストールしてみたよ
nginxをソースからインストールしてみたよ
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - Routers
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
 
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchaginstackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
 
NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
 
Love The Terminal
Love The TerminalLove The Terminal
Love The Terminal
 
Copying files between linux machines using scp and ssh without linux user pas...
Copying files between linux machines using scp and ssh without linux user pas...Copying files between linux machines using scp and ssh without linux user pas...
Copying files between linux machines using scp and ssh without linux user pas...
 
Da APK al Golden Ticket
Da APK al Golden TicketDa APK al Golden Ticket
Da APK al Golden Ticket
 
Approach to find critical vulnerabilities
Approach to find critical vulnerabilitiesApproach to find critical vulnerabilities
Approach to find critical vulnerabilities
 
Basic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsBasic presentation of cryptography mechanisms
Basic presentation of cryptography mechanisms
 
Really useful linux commands
Really useful linux commandsReally useful linux commands
Really useful linux commands
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
 
Building a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARMBuilding a Docker v1.12 Swarm cluster on ARM
Building a Docker v1.12 Swarm cluster on ARM
 

More from Jan Schaumann

The Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS BaggageThe Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS Baggage
Jan Schaumann
 
Crazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might WorkCrazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might Work
Jan Schaumann
 
It's the people, stupid.
It's the people, stupid.It's the people, stupid.
It's the people, stupid.
Jan Schaumann
 
Primum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet OperationsPrimum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet Operations
Jan Schaumann
 
PGP for Smarties
PGP for SmartiesPGP for Smarties
PGP for Smarties
Jan Schaumann
 
Ipv6 basics
Ipv6 basicsIpv6 basics
Ipv6 basics
Jan Schaumann
 
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load BalancingL3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
Jan Schaumann
 
Useless use of *
Useless use of *Useless use of *
Useless use of *
Jan Schaumann
 
DST @ Yahoo!
DST @ Yahoo!DST @ Yahoo!
DST @ Yahoo!
Jan Schaumann
 

More from Jan Schaumann (9)

The Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS BaggageThe Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS Baggage
 
Crazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might WorkCrazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might Work
 
It's the people, stupid.
It's the people, stupid.It's the people, stupid.
It's the people, stupid.
 
Primum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet OperationsPrimum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet Operations
 
PGP for Smarties
PGP for SmartiesPGP for Smarties
PGP for Smarties
 
Ipv6 basics
Ipv6 basicsIpv6 basics
Ipv6 basics
 
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load BalancingL3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
 
Useless use of *
Useless use of *Useless use of *
Useless use of *
 
DST @ Yahoo!
DST @ Yahoo!DST @ Yahoo!
DST @ Yahoo!
 

Recently uploaded

Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 

Recently uploaded (20)

Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 

Headless Host Scanning

  • 1. Headless Host Scanning Jan Schaumann <jschauma@netmeister.org> 99CE 1DC7 770A C5A8 09A6 0DCD 66CE 4FE9 6F6B D3D7 @jschauma
  • 2. Headless Host Scanning -- @jschauma 2 11/19/12
  • 3. Life Lessons: Pen testing can't solve everything. Headless Host Scanning -- @jschauma 3 11/19/12
  • 4. Inside-Out Headless Host Scanning -- @jschauma 4 11/19/12
  • 5. Distance to Yahoo! ad in feet: 404 Construction cost: $357 million Capacity: 41,915 Headless Host Scanning -- @jschauma 5 11/19/12
  • 6. Ballpark numbers Distance to Yahoo! ad in feet: 30927 Construction cost: $1.5 billion Capacity: 52,325 Headless Host Scanning -- @jschauma 6 11/19/12
  • 7. Life Lessons: Size matters Headless Host Scanning -- @jschauma 7 11/19/12
  • 8. It all began some time in January of 2007... Yahoo! Presentation; Confidential 11/19/12
  • 9. Initial Problem Statement “Hey, we need to know which hosts can’t deal with the new Daylight Saving Time.” Headless Host Scanning -- @jschauma 9 11/19/12
  • 10. A Systems Administrator's Toolbox Headless Host Scanning -- @jschauma 10 11/19/12
  • 11. A simple tool perl python /bin/sh Headless Host Scanning -- @jschauma 11 11/19/12
  • 12. Initial "Solution" #!/bin/sh while read host; do ssh $host "env TZ=PST8PDT perl -e ’@t=localtime 1173682800; exit 1 - pop @t’" done Headless Host Scanning -- @jschauma 12 11/19/12
  • 13. Problem Statement “Please run this script on these hosts.” Headless Host Scanning -- @jschauma 13 11/19/12
  • 14. 2nd Pass #!/bin/sh while read host; do scp script.sh $host:/tmp/ ssh $host "/tmp/script.sh" done Headless Host Scanning -- @jschauma 14 11/19/12
  • 15. Mensch, nutz' doch ein Konfigurationsmanagementtool! Headless Host Scanning -- @jschauma 15 11/19/12
  • 16. Configuration Management Headless Host Scanning -- @jschauma 16 11/19/12
  • 17. Configuration Management Good at: §  keeping state §  ensuring flat text file properties Not so good at: §  deploying applications §  executing (one-time) scripts Terrible at: §  reporting output of individual commands or scripts Headless Host Scanning -- @jschauma 17 11/19/12
  • 18. Life Lessons: Sturgeon's Law (1st adage) "Nothing is always absolutely so." Headless Host Scanning -- @jschauma 18 11/19/12
  • 19. Mensch, nutz' doch Deine Logaggregationsinfrastruktur! Headless Host Scanning -- @jschauma 19 11/19/12
  • 20. Log Aggregation §  makes assumptions about message format §  frequently unreliable and/or asynchronous §  adds additional complexity Headless Host Scanning -- @jschauma 20 11/19/12
  • 21. 3rd Pass #!/bin/sh while read host; do cat script.sh | ssh $host "bash –s" done Headless Host Scanning -- @jschauma 21 11/19/12
  • 22. 3rd Pass #!/bin/sh while read host; do ssh $host "bash –s" < script.sh done Headless Host Scanning -- @jschauma 22 11/19/12
  • 23. Problem Refinement “Run this set of arbitrary commands on our hosts. Yes, on all of them.” Headless Host Scanning -- @jschauma 23 11/19/12
  • 24. Wait a second – all hosts? $ wtf host wtf: I don't know what host means! $ §  a computer connected to a network §  a virtual machine §  a container §  jails, zones, ... §  chroot Headless Host Scanning -- @jschauma 24 11/19/12
  • 25. Sturgeon's Law (1st adage) "Hosts" on the network "Hosts" in asset database "Hosts" in DNS Yahoo! Presentation; Confidential 11/19/12
  • 26. 3rd Pass #!/bin/sh while read host; do ssh $host "bash –s" < script.sh done Headless Host Scanning -- @jschauma 26 11/19/12
  • 27. 4th Pass Headless Host Scanning -- @jschauma 27 11/19/12
  • 28. Headless Host Scanning -- @jschauma 28 11/19/12
  • 29. Life Lessons: Causality (Duh!) $ w 10:45AM up 51 days, 22:19, 11 users, load averages: 976.23, 618.17, 1020.25 $ time ls 13.354 real 0.001 user 0.002 sys $ Headless Host Scanning -- @jschauma 29 11/19/12
  • 30. Horizontal Scalability Scanmaster Scanslaves Scanslaves Targethosts Headless Host Scanning -- @jschauma 30 11/19/12
  • 31. SSH Complications: assword prompts Interactive connections? Password: $USER@hostname's password: Headless Host Scanning -- @jschauma 31 11/19/12
  • 32. SSH Complications: assword prompts Interactive connections begat password injectors. Headless Host Scanning -- @jschauma 32 11/19/12
  • 33. SSH Complications: assword prompts proc respond { pw } { global pws if {![info exists pws($pw)]} { send_user " (autopw) " stty -echo expect_user -re "(.+)n" stty echo set pws($pw) [exec perl -ne "print pack(q{u}, $_)" << $expect_out(1,string)] } else { send_user " (autopw'ed)" } log_user 0 send -- "[exec perl -ne "print unpack(q{u}, $_)" << $pws($pw)]n"; log_user 1 } eval spawn -noecho $argv expect { "assword:" { respond system exp_continue } Yahoo! Presentation; Confidential 11/19/12
  • 34. SSH Complications: assword prompts Key Authentication to the rescue! Yahoo! Presentation; Confidential 11/19/12
  • 35. Horizontal Scalability Scanmaster Scanslaves Scanslaves Targethosts Yahoo! Presentation; Confidential 11/19/12
  • 36. SSH Complications: assword prompts Key Authentication to the rescue? §  private keys need to be present on all hosts connecting to targets §  you need to provide passphrase for private keys at scan start Enter passphrase for /home/${USER}/.ssh/id_rsa: Enter passphrase for /home/${USER}/.ssh/id_dsa: Enter passphrase for /home/${USER}/.ssh/scankey: Yahoo! Presentation; Confidential 11/19/12
  • 37. SSH Complications: assword prompts Key Authentication also uses password injectors. Headless Host Scanning -- @jschauma 37 11/19/12
  • 38. SSH Complications: assword prompts SSH Agent Forwarding to the rescue! §  private keys stored in agent on single "safe" machine §  agent forwarding enabled to scan slaves §  everything's peachy! Headless Host Scanning -- @jschauma 38 11/19/12
  • 39. SSH Agent Forwarding proxy agent Slave Targethosts Master Headless Host Scanning -- @jschauma 39 11/19/12
  • 40. SSH Agent Forwarding proxy agent Slave Targethosts Master Headless Host Scanning -- @jschauma 40 11/19/12
  • 41. SSH Agent Forwarding Master Headless Host Scanning -- @jschauma 41 11/19/12
  • 42. SSH Agent Forwarding Headless Host Scanning -- @jschauma 42 11/19/12
  • 43. Scalability issues Scanmaster Scanslaves Scanslaves Targethosts Headless Host Scanning -- @jschauma 43 11/19/12
  • 44. Miscellaneous Scalability Issues §  doing hostname lookups for each connection is expensive §  use IP addresses §  parsing known_hosts with several 100K entries is expensive §  use UserKnownHostsFile=/dev/null §  use GlobalKnownHostsFile=/dev/null §  hosts change ssh keys "frequently" §  we need StrictHostKeyChecking=no :-( §  collecting even only a few lines from every single host can fill up your disk quickly §  ssh connections can hang "indefinitely" (=> tkill(1) cron scheduled killing of processes) Headless Host Scanning -- @jschauma 44 11/19/12
  • 45. Yay, Open Source! Headless Host Scanning -- @jschauma 45 11/19/12
  • 46. Scanmaster Scripts §  checkhosts(1) §  run given script on all hosts in input via ssh(1) (in background) §  scanhosts(1) §  invoke checkhosts(1) against split input (again in background) §  defaults to 150 invocations of checkhosts(1) in parallel §  scanslave(1) §  starts ssh-agent(1) and adds keys §  adds tkill(1) crontab §  invoke scanhosts(1) against split input §  scanmaster(1) §  splits input into number of scanslaves chunks §  ssh to each scanslave and kicks off scanslave(1) in screen session §  aggregates and post-processes results Headless Host Scanning -- @jschauma 46 11/19/12
  • 47. Scanmaster Scripts $ wc -l * 330 checkhosts 259 scanhosts 325 scanmaster 179 scanslave 1093 total $ file * checkhosts: Bourne shell script text executable scanhosts: Bourne shell script text executable scanmaster: Bourne shell script text executable scanslave: Bourne shell script text executable $ Headless Host Scanning -- @jschauma 47 11/19/12
  • 48. "Every item on the menu at Taco Bell is just a different configuration of roughly eight ingredients. With this simple periodic table of meat and produce, the company pulled down $1.9 billion last year." http://teddziuba.com/2010/10/taco-bell-programming.html Headless Host Scanning -- @jschauma 48 11/19/12
  • 49. Miscellaneous Security Issues §  ssh-agent exposes our keys to target hosts §  use ForwardAgent=no, ClearAllForwardings=yes §  ssh-agent on scanslaves exposes our privkeys to anybody with super-user privileges on the scanslaves §  use a scan-only key with from= and various no- restrictions §  password injector will respond to anything asking for your assword §  uhm... don't use password auth? §  use of a "real" user is stupid Headless Host Scanning -- @jschauma 49 11/19/12
  • 50. Going topless. T.O.P.L.E.S.S. Headless User Requirement #1: §  selective access (via ssh keys) Headless User Requirement #2: §  a restricted shell Headless User Requirement #3: §  an un-restricted shell Headless User Requirement #2 and #3: §  allow arbitrary commands, provided they were sanctioned by somebody we trust Headless Host Scanning -- @jschauma 50 11/19/12
  • 51. Windows PowerShell Headless Host Scanning -- @jschauma 51 11/19/12
  • 52. Windows PowerShell ExecutionPolicy §  Restricted §  No scripts can be run. Windows PowerShell can be used only in interactive mode. §  Unrestricted §  No restrictions; all Windows PowerShell scripts can be run. §  RemoteSigned §  Downloaded scripts must be signed by a trusted publisher before they can be run. §  AllSigned §  Only scripts signed by a trusted publisher can be run. Headless Host Scanning -- @jschauma 52 11/19/12
  • 53. The (TacoBell) Sigsh NAME sigsh -- a signature verifying shell SYNOPSIS sigsh [-c certs] [-x] [-p prog] DESCRIPTION sigsh is a non-interactive, signature requiring and verifying command interpreter. More accurately, it is a signature verification wrapper around a given shell. It reads input in PKCS#7 format from standard in, verifies the signature and, if the signature matches, pipes the decoded input into the command interpreter. Headless Host Scanning -- @jschauma 53 11/19/12
  • 54. Yay, Open Source! Headless Host Scanning -- @jschauma 54 11/19/12
  • 55. The (TacoBell) Sigsh $ find . ( -type f -a ! -path '*.svn/*' ) | xargs wc -l 50 ./test/sigsh.test.pl 36 ./certs/Makefile 5 ./certs/README 121 ./doc/sigsh.1 17 ./doc/Makefile 176 ./src/sigsh.sh 12 ./README 29 ./LICENSE 446 total $ Headless Host Scanning -- @jschauma 55 11/19/12
  • 56. Yay, Open Source! Headless Host Scanning -- @jschauma 56 11/19/12
  • 57. The (TacoBell) Sigsh $ egrep -v "^[ ]*#" sigsh.sh | wc -l 93 $ Headless Host Scanning -- @jschauma 57 11/19/12
  • 58. The (TacoBell) Sigsh EXAMPLES The following examples illustrate possible usage of this tool. To execute the commands in the file 'script.bash': openssl smime -sign -nodetach -signer mycert.pem -inkey mykey.pem -in script.bash -outform pem | sigsh To execute the perl code contained in the signed PKCS#7 file 'code.pem': sigsh -p /usr/bin/perl <code.pem Headless Host Scanning -- @jschauma 58 11/19/12
  • 59. The Good, the Bad and the Ugly
  • 60. The Good §  private cert need not be present on scanslave hosts §  signing party need not be executing party §  if you grant passwordless sudo to the headless user, you can do * §  certs can expire => we have builtin time-bomb powers! §  multiple people can have signing-power independent of each other §  we can scan over XXXK "hosts" in approximately 15 minutes §  we have the flexibility to collect all sorts of interesting data Headless Host Scanning -- @jschauma 60 11/19/12
  • 61. Scanning over 400 hosts/second [...] 16:09:14: 0 / 30 done - waiting... 16:10:16: 0 / 30 done - waiting... 16:11:18: 1 / 30 done - waiting... 16:12:20: 6 / 30 done - waiting... 16:13:22: 20 / 30 done - waiting... 16:14:24: 27 / 30 done - waiting... 16:15:25: 29 / 30 done - waiting... 16:16:27: 29 / 30 done - waiting... 16:17:30: 30 / 30 done 16:17:30: Scanned XXXXXX hosts in XX minutes and 32 seconds. Aggregating data... Yahoo! Presentation; Confidential 11/19/12
  • 62. The Bad §  this is still a TacoBell sigsh, not a powershell §  we have not solved the ssh-key access problem (though a leaked ssh-key cannot allow arbitrary command execution, only execution of previously approved commands) §  multiple people can have signing-power independent of each other Headless Host Scanning -- @jschauma 62 11/19/12
  • 63. Life Lessons: Pareto's Principle The "trivial many" The "vital few" Headless Host Scanning -- @jschauma 63 11/19/12
  • 64. Life Lessons: Milton Friedman was right. There's nothing so permanent as a temporary government program solution. Yahoo! Presentation; Confidential 11/19/12
  • 65. The Ugly §  Only ~80% of our hosts have sigsh => we need to combine headless with "headful" scans. Thus, we currently: §  scan headlessly (80%, in <15 minutes) §  scan with regular user and dedicated scankey (11%) §  scan with regular user and password, twice (7%) §  scan with regular user and old password §  scan with regular user and older password §  scan with regular user and even older password §  We still (have to) trust the binaries on the remote host. §  no veriexec, TPE, ... Headless Host Scanning -- @jschauma 65 11/19/12
  • 66. Life Lessons §  Pen testing can't solve everything. §  Size matters. §  "Nothing is always absolutely so." (Sturgeon's Law) ›  "90% of everything is crud." (2nd adage; freebie) §  Causality (Duh!) §  Mmm, mmm TacoBell! §  80% of the effects come from 20% of the causes. (Pareto Principle) §  There's nothing so permanent as a temporary solution. §  The worst form of on-demand data collection except all the others that have been tried. Headless Host Scanning -- @jschauma 66 11/19/12
  • 67. Information §  http://www.netmeister.org/apps/scanmaster/ §  http://www.netmeister.org/apps/sigsh/ §  jschauma@netmeister.org §  @jschauma This talk in 140 chars or less: Scanning 100s of K hosts headlessly using a signature verifying shell is awful. Still better than most alternatives. That is all. Headless Host Scanning -- @jschauma 67 11/19/12