Shodan query i terminalen

Posted in Linux, Programering, Säkerhet on January 6th, 2010 by admin

Under julledigheten fick jag lite tid över att leka lite mer med python vilket resulterade i att jag skrev ett litet program som kan utföra sökningar mot Shodan och sedan parsar ut ip nummerna och sparar dessa i en log vilken senare kan användas i till exempel metasploit.
Problem uppstog dock när jag skulle hitta på ett sätt att avsluta programet.
I version 1.0 så har jag löst det genom att page räknas upp med 1 varje för var sida och avslutas då page är mindre än 10, då Shodan bara har info på de 5-6 första sidorna i dagsläget trots att det finns flera sidor att blädra till. Inge vacker lösning så tips mottages.


#!/usr/bin/python
import urllib2, sys, re
from BeautifulSoup import BeautifulSoup

def info():
  help = '''
    ShodanScanner v.1.0 h-kan@h-kan.com

    USAGE: ./shodanscanner -q  -f
    Ex: ./shodanscanner -q apache+2.2.1 -f scan.log
    This scan for apache servers and save the IP's into scan.log.
    More advanced query's could be used like
    - apache+2.2.11 Search for apache servers running version 2.2.11
    - +country:SE Search for servers located in sweden
    - +hostname:.se Search for servers with ".se" in hostname
    - +port:22 Search for servers with service running on port 22
  	'''
  print help

def crawler(page):
  try:
    sock = urllib2.urlopen("http://shodan.surtri.com/?q=%s&page=%i"%(args1,page))
    homepage = sock.read()
    htmlDom = BeautifulSoup(homepage)
    links = htmlDom.findAll('a', {'href': True})
    return links
  except:
    print "[-] Connection Failed"
    sys.exit(0)

if __name__ == "__main__":
  page = 1
    if len(sys.argv) != 5:
      info()
      print "usage: %s -q  -f "%sys.argv[0]
      sys.exit(0)
    else:
      if sys.argv[1].lower() == "-q":
        args1 = sys.argv[2]
      if sys.argv[3].lower() == "-f":
        args2 = sys.argv[4]
    log = open(args2,"a")
    print "[+] Searching query: %s"%args1
    log.write("[+] Searching query: %s"%args1)
    log.close()
    print "[+] please wait ..."
    while page <=10:
      data = crawler(page)
      for link in data:
        log = open(args2,"a")
        if re.search("http://",link['href']):
          link = link['href'].replace("http://","")
          print "%s"%link
          log.write("%s\n"%link)
        log.close()
      page += 1

SHODAN – Indexering al a’ google-nmap

Posted in Linux on December 1st, 2009 by admin

För någon dag sedan såg en ny söktjänst dagens ljus. John Matherly aka achillean gav oss SHODAN som är en söktjänst för att hitta servrar, routerar och allt annat med ett WAN interface. I dagsläget är det mest webservrar som är indexerade men så småning om kommer även FTP, Telnet och SSH tjänster att dyka upp.

Sökmotorn har startat en hel del högljuda samtal om hurvida detta är rätt/fel då det i många länder anses olagligt att utföra portscanningar.

Man kan i nuläget söka på vilket land man vill utföra sökningen i, hostnamn, portar och till och med efter specifik version av mjukvaran som lyssnar på porten. Se det som en grovt nerbantad version av nmap som görs från en remote maskin.

Klicka här för att komma till SHODAN

Ribadeohacklab har redan släppt en beta av ett firefox addon för Shodan vilket kan hämtas här Computer Search Engine

Beyond MAC spoofing

Posted in Linux on December 1st, 2009 by admin

Ibland har man behovet av att spoofa sin MAC adress vid t.ex Wardriving eller om vid avlyssning i switchade nät.
Ändra den dynamiska Mac adressen i ett linux system går på 2 röda sekunder.

ifconfig eth0 hw ether 00:01:02:03:04:05

Dock läser kärnan in mac adressen ur eeprom vid varje uppstart så spoofen är bara tillfällig.
Vill man gå ett steg längre kan man skriva till eeprom dirket och ändra mac adressen permanent.
Detta fungerar dock inte på alla kort och man behöver “magic value key” för sitt NIC som kan fås av tillverkaren eller google.

Info om eeprom:
EEPROM

Innan vi börjar modifiera något så tar vi en dump av hela eeprom

# ethtool -e eth0 > eth0.eepromdump

Nu tar vi reda på vår MAC adress

# ifconfig | grep eth0

När vi hittat vår mac letar vi upp den i eeprom med hjälp av ethtool

ethtool -e eth0
Offset		Values
------		        ------
0x0000		xx xx xx xx xx xx 03 1a 00 00 01 02 01 47 00 00
0x0010		00 00 00 00 b0 49 6c 33 62 14 dc 27 86 80 00 00
0x0020		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0030		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0040		00 00 00 00 00 00 dc 27 00 00 00 00 00 00 00 00
0x0050		00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0060		20 01 00 40 13 41 00 00 00 00 00 00 00 00 00 00
0x0070		00 00 00 00 00 00 30 40 00 00 00 00 00 00 55 46

Ändra sedan värdet så här

ethtool -E eth0 magic 0x10d38086 offset 0 value 0xaa
ethtool -E eth0 magic 0x10d38086 offset 1 value 0xbb
ethtool -E eth0 magic 0x10d38086 offset 2 value 0xcc
ethtool -E eth0 magic 0x10d38086 offset 3 value 0xdd
ethtool -E eth0 magic 0x10d38086 offset 4 value 0xee
ethtool -E eth0 magic 0x10d38086 offset 5 value 0xff

eller scripta det om du kommer ändra ofta

#!/bin/bash
#
# Script for changing the mac in eeprom
#

numbers=(`echo $1 | tr ':' ' '`)

ethtool -E eth0 magic 0x10d38086 offset 0 value 0x${numbers[0]}
ethtool -E eth0 magic 0x10d38086 offset 1 value 0x${numbers[1]}
ethtool -E eth0 magic 0x10d38086 offset 2 value 0x${numbers[2]}
ethtool -E eth0 magic 0x10d38086 offset 3 value 0x${numbers[3]}
ethtool -E eth0 magic 0x10d38086 offset 4 value 0x${numbers[4]}
ethtool -E eth0 magic 0x10d38086 offset 5 value 0x${numbers[5]}

Sedan kör bara #./macscript.sh aa:bb:cc:dd:ee:ff eller liknande för att byta.

Random Generator

Posted in Linux on March 15th, 2009 by admin

Efter att mer eller  mindre dagligen behöva skapa ny lösenord till användare så kommer denna lilla oneliner väl tillhands. -c8 kan ändras till den policy som gäller för dig.

# </dev/urandom tr -dc A-Za-z0-9 | head -c8

Lägg till följande i ~/.bashrc så kan du kalla på randpass när det beövs

function randpass
{
echo `</dev/urandom tr -dc A-Za-z0-9 | head -c8`
}

Ping Sweeper

Posted in Linux on March 15th, 2009 by admin

Här kommer en oneliner för att scanna av det lokala nätet efter klienter. Det finns naturligtvis bättre program för detta så som nmap, men nu ska det göras i bash utan extra program.

ping -b -c 3 255.255.255.255 >/dev/null 2>&1; arp | awk '{print $1 "\t" $3}'

Onelinern skickar 3 packet till broadcast adressen och sammlar ihop resultatet från din arptabel och formaterar det till läsbarhet.

Address	HWaddress
192.168.0.107	00:16:ea:42:67:d2
192.168.0.1	00:1b:11:4a:5b:07
192.168.0.108	00:18:2a:47:34:e5

Det verkar inte som Windows maskiner svarar på broadcast ping så detta fungerar bara för *nix

Kräm i maskineriet

Posted in Linux on February 26th, 2009 by admin

Iptraf time’at i 5 minuter (nästan 2,5Gb) och iftop -n -i eth1

screenshot-roothulk screenshot-roothulk-usr-src-redhat-rpms-x86_64

My Desk

Posted in Linux on February 25th, 2009 by admin

Awesome 3

Tänkte visa upp mitt skrivbord  och tipsa om lite applikationer… Kom gärna med förslag och synpunkter om andra program och tweekningar….

Dump Serie

desktop1 desktop2 desktop3

desktop4 desktop5 desktop6

gtk tema = http://www.gnome-look.org/content/show.php/Shinobi?content=96684

lxappearance = För att sätta gtk och icon tema.

cplay = consolebaserad musikspelare. Tips på hur den används finns här : http://kmandla.wordpress.com/2007/05/01/howto-use-cplay-like-a-pro/

newsbeuter = RSS feed läsare med stöd för podcasts

irssi = irc klient… Med splitat fönster där mina highlights vissas i fönstret ovan

eclipse = utvecklingsmiljö, i mitt fall för java

mc = filbrowser men även så mycket mer… kör med transparant tema för att slippa den tråkiga blå orginal backgrunden. dock använder jag inte transparant terminal(urxvt-unicode) då jag bara tycker det är störigt för ögonen.

För att få transparant Midnigt Comander så ersätt  ~/.mc/ini med min –>  ini

Pidgin = chatklient med stöd för flertal protokol. I mitt fall msn och facebook plugin.