Hi Leute,
über dieses Script bin gestern gestolpert. Und möchte es mit euch teilen, da ich denke, dass es, so simpel das Programm auch ist, gerade deswegen, nützlicher ist, als der Autor vielleicht dachte. Um gleich zum Thema zu kommen um was es mir eigentlich geht ein Zitat von bitmuncher zur Einleitung:
"Was wir viel eher brauchen sind Taktiken, die die Signaturen verschleiern. Und dabei müssen wir uns auf den verursachten Traffic konzentrieren, denn das ist es, was das Ziel für die Analyse und Identifizierung des Angriffs zur Verfügung hat. Im weiteren Verlauf dann evtl. auch eingeschleuste Programme, Shellcodes usw, aber erstmal konzentrieren wir uns auf den Traffic, weil es dort am schwierigsten ist." (Low Profile Hacking - Bitmunchers TechBlog)
Traffic ist das Stichwort. Ich beschäftige mich schon länger mit diesem Thema und war begeistert als ich gestern zum ersten Mal den oben verlinkten Beitrag von bitmuncher gelesen habe. Das war der beste deutschsprachige Artikel den ich zu diesem Thema gelesen habe. Big up an dieser Stelle nochmal an bitmuncher. Auch Robert David Graham und sein Team, die Entwickler von masscan, haben sich über das Thema Traffic Gedanken gemacht. Bei dem Programm, dass Sie entwickelt haben, war das auch unumgänglich. (https://www.youtube.com/watch?v=nX9JXI4l3-E) An dieser Stelle möchte ich ausdrücklich darauf hinweisen, dass bevor jetzt die ersten Übermotivierten anfangen wie wild geworden das komplette 0.0.0.0/8 abzuscannen, dass das bereits getan wird und sie sich die Mühe sparen können (zumindestens einen betrachtlichen Teil..). Die University of Michigan hat dazu ein Projekt ins Leben gerufen: https://scans.io/ Das sollte vorerst Viele davon abhalten unnötig Traffic zu erzeugen (und im schlimmsten Fall Ärger mit seinem ISP zu bekommen. Wie schnell das geht erwähnt das Team von masscan in ihrer Presentation).
Alles wesentliche zum Thema Traffic und Angriffsignaturen im www zu hinterlassen ist im entsprechenden Artikel von Bitmuncher erklärt, also spare ich mir dazu weitere Worte. Lest selbst.
Jetzt zu dem Portscanner Script. Der erzeugte Traffic scheint unauffälliger, als der von Nmap. An der Stelle sei auf das sehr schöne Projekt Portspoof - About hingewiesen (was Portspoof alles kann wurde in einem sehr empfehlenswerten Artikel in der Zeitschrift linuxuser spezial 01/2014 September - November erläutert.) Gegen Nmap ist also schon einiges digitales Kraut gewachsen. Zeit für neue Methoden. Womit wir dann doch endlich beim Script wären. Das Script ist wie ihr sehen könnt in Python geschrieben und ich hoffe, dass jetzt nicht die meisten von euch die Arme verzweifelt über den Kopf zusammenschlagen. Ich verstehe von Python ehrlich gesagt nicht wirklich viel, daher bin auf eure Hilfe angewiesen (und, dass das sehr gut funktioniert habt ihr hier https://www.hackerboard.de/code-kitchen/49729-hilfe-bei-shellscript-findet-den-fehler-bitte.html bewiesen
Wie ihr seht macht das Script nichts anderes als mit Syn (ist das richtig?) abfragen die Ports abzuklopfen, ob sie offen sind oder nicht. Es gibt auch ein Nmapmodul für Python was mittels ACK die Ports abklopft, das dauert allerding unnötig lange und hat bei mir nicht funktioniert, also lassen wir das Nmapmodul (erstmal) außen vor (http://www.youtube.com/watch?v=7SrN4OPg_pM). Es reicht für einen ersten Überblick eines Netzwerkes auch erstmal vollkommen aus zu wissen ob und welche Ports offen sind. Jeder (der sich mit der Materie auskennt) weiß, dass (höchstwahrscheinlich) auf Port 21 FTP, auf Port 22 SSH, auf Port 23 Telnet und so weiter warten. Und wir sprechen eh erstmal nur von den öffentlichen Ports. Was auf den privaten Ports (49151-60000) alles läuft sei erstmal dahingestellt, denn wie gesagt auch Nmap wird das nicht immer herrausfinden. Warum die Pferde schon im Vorraus unnötig scheu machen und Gefahr laufen, dass entsprechende Gegenmaßnahmen getroffen werden?
Das Script ist allerding noch recht umständlich. Man muss jeden einzelnen Port per Hand eingeben und es lässt sich immer nur ein Host auf einmal abscannen. Ein bisschen Automatisierung wäre schon angebracht. Ich denke da an eine Top Ports Option und vielleicht einen verbose mode/debug mode(wenn das geht?) um auch sehen zu können was genau passiert. Nützlich wäre auch zwischen unterschiedlichen Scanmethoden SYN/Connect/ACK/Window/Maimon wechseln zu können, sowie eine packet fragmentation Funktion (die bei mir in 4 Jahren Nmap Erfahrung bisher noch nie andere Ergebnisse erzielt hat als die unfragmentierten Scans). Und da kommt ihr ins Spiel.
Allen Skeptikern und Unüberzeugten die jetzt argumentieren werden, dass es das doch alles schon gibt (Nmap, masscan, Zmap, usw.) sei gesagt: Ihr habt vollkommen recht! Und genau da liegt das Problem. Die einschlägigen Programme und somit auch die entsprechenden Angriffsignaturen sind bereits bekannt. Jeder Systemadministrator der sich mit IDS auskennt könnte bei diesen Scans wutschnaubend Gegenmaßnahmen ergreifen. Und wenn dann Portspoof zum Einsatz kommt, kann das durchaus böse enden (wer es jetzt noch nicht weiß: man kann mit Portspoof, wenn man abgescannt wird gleich mit entsprechenden Exploits antworten...).
Ich bin sehr gespannt was sich daraus entwickelt...
über dieses Script bin gestern gestolpert. Und möchte es mit euch teilen, da ich denke, dass es, so simpel das Programm auch ist, gerade deswegen, nützlicher ist, als der Autor vielleicht dachte. Um gleich zum Thema zu kommen um was es mir eigentlich geht ein Zitat von bitmuncher zur Einleitung:
"Was wir viel eher brauchen sind Taktiken, die die Signaturen verschleiern. Und dabei müssen wir uns auf den verursachten Traffic konzentrieren, denn das ist es, was das Ziel für die Analyse und Identifizierung des Angriffs zur Verfügung hat. Im weiteren Verlauf dann evtl. auch eingeschleuste Programme, Shellcodes usw, aber erstmal konzentrieren wir uns auf den Traffic, weil es dort am schwierigsten ist." (Low Profile Hacking - Bitmunchers TechBlog)
Traffic ist das Stichwort. Ich beschäftige mich schon länger mit diesem Thema und war begeistert als ich gestern zum ersten Mal den oben verlinkten Beitrag von bitmuncher gelesen habe. Das war der beste deutschsprachige Artikel den ich zu diesem Thema gelesen habe. Big up an dieser Stelle nochmal an bitmuncher. Auch Robert David Graham und sein Team, die Entwickler von masscan, haben sich über das Thema Traffic Gedanken gemacht. Bei dem Programm, dass Sie entwickelt haben, war das auch unumgänglich. (https://www.youtube.com/watch?v=nX9JXI4l3-E) An dieser Stelle möchte ich ausdrücklich darauf hinweisen, dass bevor jetzt die ersten Übermotivierten anfangen wie wild geworden das komplette 0.0.0.0/8 abzuscannen, dass das bereits getan wird und sie sich die Mühe sparen können (zumindestens einen betrachtlichen Teil..). Die University of Michigan hat dazu ein Projekt ins Leben gerufen: https://scans.io/ Das sollte vorerst Viele davon abhalten unnötig Traffic zu erzeugen (und im schlimmsten Fall Ärger mit seinem ISP zu bekommen. Wie schnell das geht erwähnt das Team von masscan in ihrer Presentation).
Alles wesentliche zum Thema Traffic und Angriffsignaturen im www zu hinterlassen ist im entsprechenden Artikel von Bitmuncher erklärt, also spare ich mir dazu weitere Worte. Lest selbst.
Jetzt zu dem Portscanner Script. Der erzeugte Traffic scheint unauffälliger, als der von Nmap. An der Stelle sei auf das sehr schöne Projekt Portspoof - About hingewiesen (was Portspoof alles kann wurde in einem sehr empfehlenswerten Artikel in der Zeitschrift linuxuser spezial 01/2014 September - November erläutert.) Gegen Nmap ist also schon einiges digitales Kraut gewachsen. Zeit für neue Methoden. Womit wir dann doch endlich beim Script wären. Das Script ist wie ihr sehen könnt in Python geschrieben und ich hoffe, dass jetzt nicht die meisten von euch die Arme verzweifelt über den Kopf zusammenschlagen. Ich verstehe von Python ehrlich gesagt nicht wirklich viel, daher bin auf eure Hilfe angewiesen (und, dass das sehr gut funktioniert habt ihr hier https://www.hackerboard.de/code-kitchen/49729-hilfe-bei-shellscript-findet-den-fehler-bitte.html bewiesen

Wie ihr seht macht das Script nichts anderes als mit Syn (ist das richtig?) abfragen die Ports abzuklopfen, ob sie offen sind oder nicht. Es gibt auch ein Nmapmodul für Python was mittels ACK die Ports abklopft, das dauert allerding unnötig lange und hat bei mir nicht funktioniert, also lassen wir das Nmapmodul (erstmal) außen vor (http://www.youtube.com/watch?v=7SrN4OPg_pM). Es reicht für einen ersten Überblick eines Netzwerkes auch erstmal vollkommen aus zu wissen ob und welche Ports offen sind. Jeder (der sich mit der Materie auskennt) weiß, dass (höchstwahrscheinlich) auf Port 21 FTP, auf Port 22 SSH, auf Port 23 Telnet und so weiter warten. Und wir sprechen eh erstmal nur von den öffentlichen Ports. Was auf den privaten Ports (49151-60000) alles läuft sei erstmal dahingestellt, denn wie gesagt auch Nmap wird das nicht immer herrausfinden. Warum die Pferde schon im Vorraus unnötig scheu machen und Gefahr laufen, dass entsprechende Gegenmaßnahmen getroffen werden?
Das Script ist allerding noch recht umständlich. Man muss jeden einzelnen Port per Hand eingeben und es lässt sich immer nur ein Host auf einmal abscannen. Ein bisschen Automatisierung wäre schon angebracht. Ich denke da an eine Top Ports Option und vielleicht einen verbose mode/debug mode(wenn das geht?) um auch sehen zu können was genau passiert. Nützlich wäre auch zwischen unterschiedlichen Scanmethoden SYN/Connect/ACK/Window/Maimon wechseln zu können, sowie eine packet fragmentation Funktion (die bei mir in 4 Jahren Nmap Erfahrung bisher noch nie andere Ergebnisse erzielt hat als die unfragmentierten Scans). Und da kommt ihr ins Spiel.
Allen Skeptikern und Unüberzeugten die jetzt argumentieren werden, dass es das doch alles schon gibt (Nmap, masscan, Zmap, usw.) sei gesagt: Ihr habt vollkommen recht! Und genau da liegt das Problem. Die einschlägigen Programme und somit auch die entsprechenden Angriffsignaturen sind bereits bekannt. Jeder Systemadministrator der sich mit IDS auskennt könnte bei diesen Scans wutschnaubend Gegenmaßnahmen ergreifen. Und wenn dann Portspoof zum Einsatz kommt, kann das durchaus böse enden (wer es jetzt noch nicht weiß: man kann mit Portspoof, wenn man abgescannt wird gleich mit entsprechenden Exploits antworten...).
Code:
#Basic Port Scanner
#by Draps Tv (https://www.youtube.com/watch?v=IOvvjNi8OdU)
import optparse
from socket import *
from threading import *
import os
os.system('clear')
print "--------------------------------------------------------------------------------------------"
print
print "Simple Portscanner based on script by Draps Tv"
print "Take a look: https://www.youtube.com/watch?v=IOvvjNi8OdU"
print
print "Just simple but faster then Nmap"
print
print
print
print "--------------------------------------------------------------------------------------------"
print
screenLock = Semaphore(value=1)
def connScan(tgtHost, tgtPort):
try:
connSkt = socket(AF_INET, SOCK_STREAM)
connSkt.connect((tgtHost, tgtPort))
connSkt.send('hello\r\n')
results = connSkt.recv(100)
screenLock.acquire()
print "[+] " + str(tgtPort) + "/tcp open"
except:
screenLock.acquire()
print "[-] " + str(tgtPort) + "/tcp closed"
finally:
screenLock.release()
connSkt.close()
def portScan(tgtHost, tgtPorts):
try:
tgtIP = gethostbyname(tgtHost)
except:
print "[-] Cannot resolve " + tgtHost + ": Unknown host"
return
try:
tgtName = gethostbyaddr(tgtIP)
print "\n[+] Scan Results for: " + tgtName[0]
except:
print "\n[+] Scan results for: " + tgtIP
setdefaulttimeout(1)
for tgtPort in tgtPorts:
t = Thread(target=connScan, args=(tgtHost, int(tgtPort)))
t.start()
def Main():
parser = optparse.OptionParser('usage %prog '+\
'-H <target host> -p <target port>')
parser.add_option('-H', dest='tgtHost', type='string', \
help='specify target host')
parser.add_option('-p', dest='tgtPort', type='string', \
help='specify target port[s] seperated by comma')
(options, args) = parser.parse_args()
if (options.tgtHost == None) | (options.tgtPort == None):
print parser.usage
exit(0)
else:
tgtHost = options.tgtHost
tgtPorts = str(options.tgtPort).split(',')
portScan(tgtHost, tgtPorts)
if __name__ == '__main__':
Main()
Zuletzt bearbeitet: