PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Netcat Daemon für Remote Shell



D4rKN3zZ
20.01.06, 21:16
huhu,
bin relativ neu in Linux....
hab Debian 3.1 Sarge auf meinem Rechner und muss für die Schule ein Referat über Netcat + Daemon halten...
Dazu soll ich auch einen Daemon schreiben, mit dem man von Rechner A auf Rechner B zugreifen kann... mit Netcat...
bis jetz hab ich folgendes script



export PW port
if [ $1 ] ; then
port=$1
echo -n pass:
read PW
fi

# Port?
if [ ! $port ]; then
echo USAGE: $0 port ;
exit;
fi


echo "-l -p $port -e $0" | nc 2>/dev/null &
[ $1 ] && exit; # first invocation exit here

# Nach Passwort fragen
unset p
until [ "$p" = "$PW" ]; do
echo -n pass:
read p
done

# wenn Passwort korrekt -> shell angezeigt
bash --noediting -i


wenn ich jetz von Rechner A aus den Daemon start und von Rechner B folgendes versuche:



nc <<IP>> <<PORT>>


dann geht das nich....
entweder kommt
- Permission Denied
- oder Port nicht gefunden oder sonstige Fehlermeldungen

pls help... brauch mit mittwoch das referat...
danke im vorraus!!!

Greets
D4rKN3zZ

Sidolin
20.01.06, 21:53
Wieso so kompliziert? Per "nc -e /bin/sh -l -p 1337" kannst du ne shell aufmachen, auf die du per "nc host 1337" drauf zugreifen. Jetzt kannst da noch irgendwie nen login einbauen (irgendwie gehts nicht mit /bin/login, frag mich nicht warum), aber brauchst du das überhaupt?

spööl
21.01.06, 09:28
Aber dazu am besten noch ein kleines C Proggi mit PW Abfrage oder so schreiben, sonst kann jeder der Zugriff auf deinen PC hat (iptables aktiviert?) ne nette Shell bekommen ;)

D4rKN3zZ
21.01.06, 11:21
@ Sidolin:
es muss ja unbedingt ein fertiges Daemon-Script sein...

@spööl:
in meinem Script is doch die Passwortabfrage mit drin O.o

Greets
D4rKN3zZ

spööl
21.01.06, 18:49
~/downloads$ ./incoming.sh
USAGE: ./incoming.sh port
~/downloads$ ./incoming.sh 3333
pass:****er
~/downloads$ telnet 127.0.0.1 3333
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
pass:****er
pass:****er
pass:****er
pass:wtf
pass:asshole!
pass:

Also das mit dem "Keine Berechtigung" ist einfach, mach die Datei ausführbar (chmod +x) und trage am besten noch
#!/bin/sh
in die erste Zeile ein.
Warum das PW aber hier nicht genommen wird, weiß ich auch (noch) nicht

spööl
21.01.06, 18:54
Ahm ...
befolge mal lieber Sidolins Rat und mach ne Shell per "-e /bin/sh" auf. Denn du rufst anstelle einer Shell nur dein Skript auf, welches so weit ich glaube eine Rekursion auslöst.

D4rKN3zZ
22.01.06, 13:28
1.

Zitat:
~/downloads$ ./incoming.sh
USAGE: ./incoming.sh port
~/downloads$ ./incoming.sh 3333
pass:****er
~/downloads$ telnet 127.0.0.1 3333
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
pass:****er
pass:****er
pass:****er
pass:wtf
pass:asshole!
pass:


das kommt bei mir gar nich...
bei mir kommt jetz, wenn ich das ausprobiere...


HEAVEN:~# ./netcatd.sh
bash: ./netcatd.sh: Datei oder Verzeichnis nicht gefunden
HEAVEN:~# sh netcatd
USAGE: netcatd port
HEAVEN:~# sh netcatd 3333
pass:lol
HEAVEN:~# telnet 127.0.0.1
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
HEAVEN:~# telnet 127.0.0.1 3333
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
exec netcatd failed : Permission denied
Connection closed by foreign host.
HEAVEN:~#



2.
wie gesagt,
bin ziehmlich neu unter Linux =)
wie meintest du das jetz genau mit "-e /bin/sh"!?

lg
D4rKN3zZ

D4rKN3zZ
22.01.06, 16:04
ahhh... inzwischen hab ich das auch hinbekommen...
hab die datei nicht ausführbar gemacht :/
naja... jetz läufts, aber ich hab das gleich problem wie du....
pass:
pass:
pass:

wie lösen?
stimmt was im quelltext nicht???

lg
D4rKN3zZ

D4rKN3zZ
23.01.06, 05:54
hallo??? stimmt da was nich???
könnt echt hilfe gebrauchen...

lg
D4rKN3zZ

spööl
27.01.06, 16:03
du rufst das gleiche script jedes mal von neuem auf.
das ist eine rekursion und somit eine endlosschleife, sprich: das programm/skript startet sich selbst jedes mal neu und kommt so niemals zum ende/zu einem ende
empfehlung: in 2 dateien aufteilen. eins ist fungiert als loader das andere als dämon

p.s. ich sehe gerade der termin war ja mittwoch, heute ist freitag ....
wie ist es gelaufen? ;)

D4rKN3zZ
04.02.06, 00:45
hab noch bis diesen mittwoch zeit ...

bin jetzt so weit, das er nur noch sagt:

bash: no job control in this shell

der quelltext sieht inzwischen ein wenig anders aus:



#!/bin/bash
#Referat Schuster
#Netcat Daemon für Remote Zugriff

export Passwort Port
# Serverkonfiguration
if [ $1 ] ; then # Eingabe = Variable '$1'
Port=$1 # '$1' = Variable 'Port'
echo -n Passwort: # Ausgabe "Passwort:"
read Passwort # 'Passwort' wird gelesen
fi

#Port?
if [ ! $Port ]; then # wenn Variable 'Port' fehlt
echo Benutzung: $0 port ; # Ausgabe "Benutzung: 'Daemon Name' port"
exit; # Programm wird geschlossen
fi

# Auf weitere Verbindungen warten
echo "-l -p $Port -e $0" | nc 2> /dev/null &
[ $1 ] && exit;

# nach Passwort fragen
unset p # 'p' rücksetzen
while [ "$p" != "$Passwort" ]; do # Solang 'p' != 'Passwort' ist
echo -n Passwort: # Ausgabe "Passwort:"
read p # 'p' wird gelesen
done


# PW korrekt -> Shell
bash --noediting -i # Shell wird angezeigt