BND-IP-Ranges geleakt überprüfe deine access_log | 14. November 2008 um 01:11 Uhr / Programmierung
Ich habe ein kleines Ruby-Script geschrieben, mit Hilfe dessen man seine access_logs nach IPs die das BND benutzt durchsuchen kann.
Bei mir in den Logs habe ich aber keine der IP-Adressen auftauchen sehen, aber vielleicht sieht das bei einem von euch anders aus?
Aufrufen tut man das Script folgenderweise: ruby bnd.rb acces_log wenn man es unter dem Namen bnd.rb abgespeichert hat.
#!/usr/bin/ruby
# Das Script geht eine default access_log-Datei durch,
# die mit der IP-Adresse anfaengt und schaut ob es darin
# eine der IPs aus den BND IP Ranges findet.
# Die Ranges habe ich von:
# https://secure.wikileaks.org/wiki/T-Systems_BND_network_assignments%2C_13_Nov_2008
#
# Jeena Paradies <spam@jeenaparadies.net>
if ARGV.length < 1
puts "usage: ruby #{__FILE__} file1 [file2 file3 ...]"
else
r =<<BNDIPRANGES
193.159.228.32 - 193.159.228.39
193.159.238.168 - 193.159.238.175
194.25.184.16 - 194.25.184.23
194.25.42.232 - 194.25.42.239
195.145.128.56 - 195.145.128.63
195.145.163.64 - 195.145.163.127
195.145.182.96 - 195.145.182.111
195.145.31.252 - 195.145.31.255
195.145.57.176 - 195.145.57.191
195.243.157.184 - 195.243.157.191
195.243.248.224 - 195.243.248.231
212.185.184.224 - 212.185.184.231
212.185.191.128 - 212.185.191.135
217.7.155.168 - 217.7.155.175
217.89.74.208 - 217.89.74.223
62.153.59.192 - 62.153.59.223
62.153.65.32 - 62.153.65.39
62.153.80.208 - 62.153.80.215
62.153.87.0 - 62.153.87.15
62.154.211.152 - 62.154.211.159
62.154.226.64 - 62.154.226.127
62.156.187.232 - 62.156.187.239
62.157.136.64 - 62.157.136.95
62.157.144.0 - 62.157.144.63
62.157.193.128 - 62.157.193.223
62.157.194.32 - 62.157.194.39
62.159.19.208 - 62.159.19.215
62.159.104.160 - 62.159.104.175
62.159.209.144 - 62.159.209.151
62.159.209.152 - 62.159.209.159
62.159.21.152 - 62.159.21.159
62.159.60.144 - 62.159.60.151
62.159.63.72 - 62.159.63.79
62.225.139.248 - 62.225.139.255
62.225.74.128 - 62.225.74.135
80.146.198.88 - 80.146.198.95
62.159.104.160 - 62.159.104.175
BNDIPRANGES
def ip2int(ip)
ip.split(/\./).map { |i|
"0" * (3 - i.length) << i
}.join("").to_i
end
ranges = []
found = []
r.each do |line|
ip1, ip2 = line.split(/-/)
ranges << { :min => ip2int(ip1.strip), :max => ip2int(ip2.strip) }
end
ARGV.each do |log_path|
IO.foreach(log_path) do |line|
ips = line.split(/ /)[0].strip
ip = ip2int ips
ranges.each do |range|
if ip >= range[:min] and ip <= range[:max]
unless found.include? ips
found << ips
break
end
end
end
end
end
unless found.length == 0
puts "Folgende BND IPs wurden gefunden:"
found.sort!.each do |ip|
puts ip
end
else
puts "Es wurden keine BND IPs gefunden."
end
end 



abonnieren.
Bernd schrieb am 15.11.2008
Hmm bekomme diese Fehlermeldung .( kenne mich mit Ruby aber auch nicht aus ...
bnd.rb:57:in `*': negative argument (ArgumentError)
from bnd.rb:57:in `ip2int'
from bnd.rb:56:in `map'
from bnd.rb:56:in `ip2int'
from bnd.rb:72
from bnd.rb:70:in `foreach'
from bnd.rb:70
from bnd.rb:69:in `each'
from bnd.rb:69
Jeena Paradies aus Varberg / Schweden schrieb am 16.11.2008
Höchstwarscheinlich fangen die Zeilen in deinem access_log nicht mit einer IP-Adresse an. Wenn du mal eine solche Zeile postest, kann ich für dich das Script so anpassen dass es funktioniert.
Bernd schrieb am 16.11.2008
hmm ich sehe gerade, das ich da gar keine ips drin habe, müsste also erst ne host abfrage machen ... hmmm ...
anon-65-214-44-89.ip.invalid - - [04/Oct/2008:00:03:43 +0200] "GET /bernd/blog/?feed=rss2 HTTP/1.1" 304 0 "-" "Bloglines/3.1 (http://www.bloglines.com; 1 subscriber)"
xwolf aus Erlangen schrieb am 19.11.2008
Hmm...
und was hab ich von dem Wissen, daß jemand aus dem BND zugriff?
Sind auch nur Menschen.
Ich würde lieber Adressen von bekannten Abmahnanwälten/-kanzleien haben >;)
anfalas aus Erlangen schrieb am 19.11.2008
Tool, jetzt weisst Du, dass Du wichtig/nicht wichtig genug bist, damit der BND Dich besucht.
Super toll, das ist ein Feature auf das ich immer schon gewartet habe: zu wissen, ob 0815 Besucher meine Webseite besuchen.
Such Dir'n Hobby!
Gäääähn...
Jeena Paradies aus Varberg / Schweden schrieb am 20.11.2008
Das ist doch mein Hobby sich mit solchen Sachen zu beschäftigen und mir Wissen anzueignen wie ich eventuell die Gefahr verringern kann auf irgend einer "Liste" zu landen.
at schrieb am 23.11.2008
Du stehst auf meiner Liste, weißt das auch, und kannst nichts dagegen tun, harhar.
Jeena Paradies aus Varberg / Schweden schrieb am 23.11.2008
Verdammt at!
Optimum aus Niedersachsen schrieb am 20.12.2008
Ich finde es echt schon komisch, dass man sich in der heutigen zeit Gedanken machen muss, ob der BND auf die Internetseite schaut. Oder ob man durch den Bundestrojaner oder ähnliches ausspioniert wird.
Da darf man sich wirklich die Frage stellen wie wichtig es wirklich ist einen gläsernen Bürger zu erschaffen, wo die aktuellen Beispiele (Pakistan/Indien) ja durchaus zeigen, dass trotz vielfältiger Überwachung nie ein rundum Schutz möglich ist.
Onkel Heinz schrieb am 21.09.2009
Danke für das tolle Script :-)
Ich habe es für mein Verhältnisse angepasst.
Quell-IP steht nicht an erster sondern an zweiter Stelle im Logfile.
Alt: ips = line.split(/ /)[0].strip
Neu: ips = line.split(/ /)[1].strip
...und es geht.