# fake source address



## jdsalchow (4. Feb 2005)

hi

ich bin auf der suche nach einer möglichkeit tcp packete mit falscher source address zu senden und die flags selbiger zu ändern.

kennt da jemand ne möglichkeit? (ich hab mich etwas durch den java quälcode gequält, und bin bei einem java native interface aufruf hängen geblieben)

auch toll wäre es beliebiege ip packete zu senden zu können (in etwa so wie bei dem unix tool nemesis)

mfg jdsalchow


----------



## niemand (4. Feb 2005)

Schreib doch bitte noch kurz, was du damit vorhast. Sowas lässt sich meiner Meinung nach eigentlich nur sinnvoll für DoS und um andere zu ärgern/belästigen einsetzen, sowas mag ich dann doch nicht unterstützen.
Bei vernünftigem Anwendungszweck mache ich mich auf die Suche 

cu


----------



## Bleiglanz (4. Feb 2005)

gibts doch einen haufen bibliotheken/tools dafür (aber nur unter linux), fang man unter nmap.org an zu suchen


----------



## Grizzly (4. Feb 2005)

niemand hat gesagt.:
			
		

> Sowas lässt sich meiner Meinung nach eigentlich nur sinnvoll für DoS und um andere zu ärgern/belästigen einsetzen, sowas mag ich dann doch nicht unterstützen.


Das denke ich auch. :noe:


----------



## jdsalchow (7. Feb 2005)

ich bin dabei, anzufangen, ein p2p programm zu schreiben, dass dem sendenden anonymität ermöglicht, ich hab nicht vor irgend welche ddos geschichten zu betreiben (das machen genug leute, die davon mehr ahnung haben als ich).

mfg jdsalchow


----------



## Grizzly (7. Feb 2005)

Okay, aber wie willst Du auf eine TCP/IP Paket mit gefälschter Source Adresse antworten? Die Antwort würde doch ins Nirvana gehen. ???:L


----------



## jdsalchow (7. Feb 2005)

das ist der trick: im kreis.
für eine tcp verbindung (falls man das noch so nennen kann) braucht man dann drei personen(A B und C). Wenn Person A Daten an Person B senden möchte tut sie das direkt, gibt als absender addresse aber die addresse von person C an, sodass B nicht A, sondern C antwortet, wieder mit fake addresse ( diesmal eine id nummer ). anhand dieser nummer erkennt C, dass das Packet an A gesendet werden muss und leitet es weiter. so kann A B daten senden ohne seine anonymität zu verlieren.
ich hoffe ich habe mich verständlich machen können.

mfg jdsalchow


----------



## Bleiglanz (8. Feb 2005)

du weisst schon wie ein Socket funktioniert SYN ACK usw.? was du willst geht IMHO nur mit UDP

A will ein Paket von B

* A schickt ein UDP an B mit der IP von C als Absender UND X

B schickt das Paket + X an C

** C kann aus X ermitteln dass A das Paket haben will

usw.

Wie du vielleicht merkst, muss A beim ersten Senden (*) eine ID oder was auch immer (=X) im Payload mitschicken, und diese Info kann dann von C verwertet werden (**)

Was daran anonym sein soll ist mir schleierhaft, X muss ja in irgendeinerform die IP von A kodieren...und A muss sie an B mitschicken...


----------



## niemand (8. Feb 2005)

Ich denke auch, dass das nur via UDP geht. Aber wenn du nur ein anonymes p2p-Netz suchst, schau dich mal nach freenet um, sollte auf sourceforge zu finden sein.

cu


----------



## jdsalchow (8. Feb 2005)

Bleiglanz hat gesagt.:
			
		

> du weisst schon wie ein Socket funktioniert SYN ACK usw.? was du willst geht IMHO nur mit UDP


Ich weiß wie ein Socket funktioniert. Mit geschickt gesendeten tcp packages mit den entsprechenden flags dürfte das kein prob sein.



			
				Bleiglanz hat gesagt.:
			
		

> Was daran anonym sein soll ist mir schleierhaft, X muss ja in irgendeinerform die IP von A kodieren...und A muss sie an B mitschicken...


Die IP muss nicht an B mitgeschickt werden, wenn C im voraus informiert wurde und eine verbindung erwartet.



			
				niemand hat gesagt.:
			
		

> Ich denke auch, dass das nur via UDP geht. Aber wenn du nur ein anonymes p2p-Netz suchst, schau dich mal nach freenet um, sollte auf sourceforge zu finden sein.


freenet ist zu langsam, und in 2 richtungen anonym, was völlig unnötig ist. wenn nur der sender anonym ist reicht das


zurück zur eigentlichen frage: gibts in java (im plattformunabhängigen teil) eine eigene socket implementierung, oder sitzt die hinter nem java native interface?

ich bin dabei die idee für das p2p netz aufzuschreiben, kann sich noch ein, zwei tage hinziehen. dann könnte ich das bei interesse aber hier posten.

mfg jdsalchow


----------



## niemand (8. Feb 2005)

Soweit ich das auf die Schnelle in der Doku gesehen habe, sind dafür Klassen zuständig (java.net.Socket unzo). Allerdings solltest du ernsthaft überlegen, ein eigenes Protokoll zu implementieren, anstatt TCP so zu verbiegen, dass es kein TCP mehr ist. Ich sehe da noch einige weitere Probleme bei deinem Vorhaben in seiner jetzigen Form, bei Bedarf kann ich die gerne formulieren und posten.

Oder ich hab das falsch verstanden, und du möchtest einen simplen Proxy bauen. Auch das kann man in deine Beschreibung hineininterpretieren.

cu


----------



## Bleiglanz (8. Feb 2005)

> Ich weiß wie ein Socket funktioniert. Mit geschickt gesendeten tcp packages mit den entsprechenden flags dürfte das kein prob sein.


Dann schreib mal auf, wie du den Handshake mit einer gefälschten Absenderadresse regeln willst -> es geht nur UDP?


> Die IP muss nicht an B mitgeschickt werden, wenn C im voraus informiert wurde und eine verbindung erwartet.


Dann muss A auch an C seine IP schicken (wie sonst soll C denn wissen, wer ein Paket will) - und was heisst vorher informiert (von wem?)


Zurück zur Frage: vergiss das mit Java, du musst mit native Bibliotheken arbeiten.


----------

