Portscanning Fun

Portscanning Fun
(A HowDoI*-document)

*I prefer HowDoI instead of Tutorial, because it isn’t a tutorial 😛

When I’m totaly bored (which is often) I go take a walk in the park….

but in this case the park is the internet 🙂
Tired of google or sql injecting/xss sites, etc etc.
I go searching for fun stuff on the not-crawled/indexed ip’s.
A lot to see, test, exploit, browse or just irritate people.

So, what do I use

– Linux (or cygwin – linux-in-windows, great program, a must for windows users)
– GeoIPGen (http://code.google.com/p/geoipgen/) from
Download geolite database (wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz)
unpack it in same directory as GeoIPGen
– AngryIP Scanner (wget http://sourceforge.net/projects/ipscan/files/ipscan3-binary/3.0-beta6/ipscan_3.0-beta6_i386.deb)
(or windows/other version at http://www.angryip.org/w/Download)
– any scan/pentest program you need.

ok then, let’s go hunting..
I want to find ip adresses only from the netherlands..
can be any country you want (database is nog 100% correct,
Lite version.. but good enough!)

Let’s get a list of ip adresses (-n num of ips)
$ ./geoipgen -n 10000 NL > iplist_10000_NL.lst

(it will keep track of already found IP adresses in ~/.geoipgen/ so when you search again
it won’t show the same ones again).

now start AngryIP Scanner;
$ sudo java -jar ipscan-linux-3.0-git.jar

I change the options a little bit, to save some time scanning.
Preferences:
Scanning
Delay 0
Max num threads 200
Pinging Method ICMP Echo (that why I use sudo – ICMP uses RAW tcp/ip, you can also add CAP’s to the jarfile
sudo setcap cap_new_raw,cap_net_admin=eip ipscan-linux-3.0-git.jar)
Scan dead hosts Checked
Skip likely broadcast IP unchecked

Ports
Adapt timeout 100
Port selection: 21,23,80,8080
*can choose more or others, but these are the most often open ports.
because the size of my scans I limited to these 4,
adding 110,137,139,443,3306,etc can give more valuable info
but takes much much more time.
Yesterday I scanned 100.000 ip adresses within a few hours.

Display
Host with open ports only
then “Select fetchers” option I use only Ports,Web detect,Filtered Ports (in this order)

Now I import the IP list
Press Start… and wait wait wait ;P
after scan export all..

and see a nice fun list to explore:
example (a actual list from my scans, don’t misuse :P)
82.73.18.101 80 23 Boa/0.93.15 (with Intersil Extensions)
82.73.170.156 23,80 21,8080 Unknown/0.0 UPnP/1.0 GlobespanVirata-EmWeb/R6_1_0
82.73.178.248 21,80 23,8080 Apache/2.2.21 (Win32) PHP/5.3.6
130.161.36.25 80 [n a] Apache/1.3.33 (Unix) PHP/4.0.6 mod_ssl/2.8.24 OpenSSL/0.9.7g
130.89.136.11 21,80 [n a] thttpd
130.89.150.65 80 [n a] Oracle-Application-Server-10g/10.1.3.4.0 Oracle-HTTP-Server
130.89.152.195 80 [n a] Virata-EmWeb/R6_2_1
130.89.161.245 21 [n a] [n a]
130.89.1.98 80 21,23,8080 Microsoft-IIS/6.0
130.89.162.203 80 21,23,8080 Apache/2.2.16 (Unix) PHP/5.3.3
131.155.111.71 21,80 [n a] Apache/2.2.20 (Ubuntu)
131.155.112.29 80 [n a] Virata-EmWeb/R6_2_1
131.155.151.103 80 21,23,8080 Microsoft-IIS/6.0
131.174.37.150 23,80 [n a] [n a]
131.174.61.212 80 21,23,8080 Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
131.211.85.13 80 21,23,8080 Apache/2.0.46 (CentOS)
132.229.83.17 80 [n a] Apache/2.0.63 (NETWARE) mod_jk/1.2.23
134.146.113.193 80 21,23,8080 Microsoft-IIS/6.0
134.146.64.111 80 21,23,8080 Citrix Web PN Server
134.146.81.39 80 21,23,8080 Microsoft-IIS/6.0
134.221.194.154 80 21,23,8080 Apache/2.2.14 (Ubuntu)
137.56.169.221 80 21,23,8080 Microsoft-IIS/7.5
139.122.202.162 80 21,23,8080 Microsoft-IIS/6.0
141.138.204.64 21,80 [n a] Apache/2
141.0.174.208 21 23,80 nginx
141.138.203.106 21,80 23,8080 Apache
141.93.35.152 80 21,23,8080 Lotus-Domino
145.3.1.201 21,80 23,8080 Microsoft-IIS/6.0
145.36.247.12 80 21,23,8080 Microsoft-IIS/5.0
145.36.42.43 80 21,23,8080 IBM_HTTP_Server
145.36.40.127 80 21,23,8080 Apache/2.0.55 (Unix) DAV/2 mod_jk/1.2.6
145.43.216.70 80 21,23,8080 Microsoft-IIS/6.0
145.58.35.29 80 21,23,8080 [n a]
145.64.132.127 21 23,80,8080 [n a]
145.7.91.179 80 21,23,8080 Microsoft-IIS/6.0
145.74.103.21 80 21,23,8080 Roxen
145.94.95.82 80 21,23,8080 [n a]
145.97.222.37 80 21,23,8080 [n a]
145.97.223.209 80 21,23,8080 [n a]
145.99.120.189 80 [n a] [n a]
145.99.115.185 23,80 [n a] ISOS/9.0 UPnP/1.0 Conexant-EmWeb/R6_1_0
145.99.237.2 23,80 [n a] ISOS/9.0 UPnP/1.0 Conexant-EmWeb/R6_1_0
145.99.104.5 21 8080 [n a]
145.99.112.97 80 23,8080 ISOS/9.0 UPnP/1.0 Conexant-EmWeb/R6_1_0

so you see, a lot of neat things to explore
routers,printers,old http servers,naz’s,etc.
today I even found a climate control system webbased without password. grinnn..
routers are mostly unsecured, standard passwords, simple exploits by bypassing security,
or resetting to standard-factory-defaults, etc. (I’m actualy busy at the moment to
make a router tool which has all the vulns,advisories,poc’s,exploits listed per router
and some scanning and exploit abilities)
explore the ftp for anonymous logins with metasploit or other scanners,
irritate people by nuking there printers (sending pages, DoS them or whatever)
Watch there security camera’s, or try to root them..
Unlimited possibilties..

for a closer look at the systems use nmap or metasploit, nessus, nexpose or windows
users eEye Retina, N-stalker or Acunetix (Acunetix is handy for exploring routers etc.)

Portscanning Fun – IP listings

Portscanning Fun – IP listings
(A HowDoI*-document)

*I prefer HowDoI instead of Tutorial, because it isn’t a tutorial.. just how I do it.. 😛

Needed:
– linux/cygwin
– geoipgen 0.4 (see [Tutorial] Portscanning Fun for installation guide)
– nmap – try to install newest svn co https://svn.nmap.org/nmap
windows version can be used, but mind the lack of RAW package use,
so scan options can’t be SYN. use Connect -sC)

I explained earlier how to get some country specific ip’s from geoipgen.
./geoipgen -n 5000 NL > 5000_ip_nl.txt
.. will result in a ip list of 5000 dutch ip’s.

note: to get random ip’s you can use NMap’s command -iR <num random ports>,

sudo nmap -iR 5000 -sC -p 21 –script=ftp-anon,banner -PN -n -oN output.txt

will scan for anon ftp acces without resolve dns (faster), no port open scan (just try)
on 5000 random ip’s. (choose -iL <iplist> for specific ip’s – gathered from geoipgen)

My Workingdir is getting messy with al those lists, scans, ect.
let’s get it clean and thight..

I want to target dutch ip’s in this example.
You can ofcourse change everything for your own needs.

first create a main working dir
mkdir ip_fun

go to dir

and make a data dir for your ip-lists
mkdir ips

ok, because of the size of our possibilities I’m gonna make a list of ip’s-list files.
I’m gonna make ip lists of 50000 ip’s and 50 of them.
(Or less.. choose what you need.. I want a big list, so I go for 50 files of 50000 ip’s (2.500.000 ip’s))

make a bash script:

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 50 ]; do
let COUNTER=COUNTER+1
./geoipgen -n 50000 nl > nl_50000_”$COUNTER”.txt
done

this will make me a list of 50 files named nl_50000_<num>.txt

move these to your new-made dir
/ip_fun/ips

now you can scan a little more specific and faster.

let’s try…..
nmap scan for anonymous ftp acces and juicy files. (one of my favorite :P)

sudo nmap -iL /ip_fun/ips/nl_50000_1.txt -v -n -sS –open -p 21 -PN –script=ftp-anon,banner -oN /ip_fun/nmap_p21_scan.txt

or port 80 scan

sudo nmap -iL /ip_fun/ips/nl_50000_1.txt -v -n -sS –open -p 80,8080 -PN –script=banner,http-headers,http-favicon,http-malware-host,http-enum,http-robots.txt,http-php-version,http-usedir-enum,http-trace,http-auth,address-info -oN /ip_fun/nl_50000_1.scan_port80.txt

note: if you use nmap for windows, it’s an older version and not all the scripts are added.
http-robots,http-php-version,http-usedir-enum are recently.

To get some automated scans ordely I suggest the following structure
(This is how I do it)

First I scan some of my ip lists.
I make another dir in ip_fun.
mkdir scans
I’m in to the port 21 for looking around in other peoples stuff.. 😀
I made a small automating script for this *mind that I use .txt extension for this use.

#!/bin/bash
# $1 : ipfile list WITHOUT extension (cause output file uses same name)
sudo nmap -v -iL ips/”$1″.txt -Pn -n -p 21 -oN scans/”$1″.scan_port21.txt –script=ftp-anon,banner,ftp-proftpd-backdoor,ftp-vsftpd-backdoor –open -sC

safe this in: /ip_fun/scan_p21.sh
now hit off with
(filename can be different ofcourse)
./scan_p21 nl_50000_01
./scan_p21 nl_50000_02
./scan_p21 nl_50000_03
./scan_p21 nl_50000_04
./scan_p21 nl_50000_05

that will give me 5*50000 scanned ip’s for port 21
listed at /ip_fun/scans/*.scan_port21.txt

You can manualy read them or grep for nice things.
(nmap’s output is Normal (you can use -oG for easier grepping) but I choose this method for my manualy reading)
camera’s

cat *.txt | grep -B 5 -i “camera” | grep -o ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’ | grep -v “192.168” | sort -g | uniq > searches/cameras.txt

you see I made a different dir for the output (else the further searches will have those outputs also.
this will result in a sorted IP list of the gives search.

or NAS (harddrives)

cat *.txt | grep -B 5 -i “nas” | grep -o ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’ | grep -v “192.168” | sort -g | uniq > searches/nas.txt

or just search for a ftp server you know how to exploit
there a lot of exploitable ftp servers.
eg. ProFTPD 1.3.0 (in some cases vurnerable to sql injection by password and name input )
(http://www.hackerscenter.com/index.php?/Feeds/Exploits/ProFTPD-mod_sql-Username-SQL-Injection-Vulnerability.html)

cat *.txt | grep -B 5 -i “proftpd 1.3.0” | grep -o ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’ | grep -v “192.168” | sort -g | uniq > searches/proftpd_1.3.1.txt

short code explanation:
first grep is the search keyword (-B 5 is for 5 lines before finding, need to have the ip ;-))
second grep is the IP grep, third grep is to check if ip starts with 192.168. if so, don’t output.. don’t need
them..

ofcourse I script this.. 😀

#!/bin/bash
# $1: keyword search
cat *.txt | grep -B 5 -i “$1” | grep -o ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’ | grep -v “192.168” | sort -g | uniq > searches/”$1″.txt

try dreambox, disk, ect.

I just finished 50 ip-lists of 50000 ip’s on port 21.
and I truly did find some juicy files ..
rofl.. I even found a usb-drive backup from a head of the police in amsterdam/rijnland.
EPIC fun.. 😀
(no I will not share it :P)

notes:
– a lot of nas/harddrives has password web protected authentication, but FTP anonymous login possibilities. (enough exploits on the web to jump out of the anony-box and run free on their servers/drives.
– dreamboxes are fun to watch. television. (you can change their actualy viewing channels remote, (and send them on-screen messages. fun!)
– a lot of music, movies, iso’s are shared.
– people don’t like updates. so a lot of old software is in use.
– port 21 info can say a lot about the running server, if it looks interesting scan some more
(port 80,8080,443,110,etc)
a short overview:
after this I have a path structure of
/ip_fun/
/ips
/scans
/searches

with a lof of ip files in ips, scan info in ‘scans’ and my search results in searches.

I’m just a beginner at this.. I just share my experiences..
feel free to critisize or add to my ideas..