Archiv verlassen und diese Seite im Standarddesign anzeigen : Netcat Daemon für Remote Shell
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
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?
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 ;)
@ 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
~/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
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.
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
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
hallo??? stimmt da was nich???
könnt echt hilfe gebrauchen...
lg
D4rKN3zZ
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? ;)
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.