Steam - Die dunkle Seite der Macht
Hoi, ich bins S3RB31,
kennt ihr mich noch? Nach so langer Zeit schreibe ich auch mal wieder ein Artikel, und zwar, wie bereits angekündigt, wieder über Injections, Hooks und alles was dazu gehört.
Aber was hat das mit Steam zu tun?
Kennt ihr Steam? Für alle die nicht wissen was Steam ist: Wiki
Die schlauen Füchse unter euch werden sich sicher schon gedacht haben, dass wir Steam einfach mal als Opfer unserer Injection-Orgien missbrauchen. Was uns das bringt?
Winlogon loggen? - Part 2 - Der Loader
Tag auch,
ich bins mal wieder. Es hat doch ein wenig länger gedauert als gedacht, aber jetzt ist der Artikel endlich fertig.
Dann mal los!
Nachdem wir uns unsere DLL, mit der wir die Login-Daten loggen, also gebastelt haben müssen wir die DLL ja noch irgendwie in den winlogon-Prozess injecten. Das problem ist, das der Autostart nichts nützen würde, da man den Loader ja vor dem Login starten muss. Was bleibt einem also übrig? Richtig! Treiber oder Services.
Da sich ein Treiber wohl vom Aufwand her nicht lohnen würde, ausser ihr schreibt grad ein Rootkit, habe ich mich für ein Service entschieden. Da ich in diesem Artikel nicht erläutern möchte, wie genau so ein Service funktionert, verweise ich an dieser Stelle einfach mal auf folgenden Artikel von Jarmo Muukka.
http://www.muukka.net/programming/service/
Ich habe auch seinen Beispiel-Service als Grundgerüst benutzt. Den Code des Beispiel-Services findet ihr hier:
http://www.muukka.net/programming/service/Beeper Service.cpp
How to sort a wordlist
Um euch den code anzuschauen, klickt einfach auf "Show"
#!/bin/bash # Titel: List # Author: CCiTT#5 # Author-Website (German): http://www.hack-fleisch.net f_forwardsort () { ##Nach Alphabet sortieren echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read fsortin echo while [ ! -f $fsortin ] do echo echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read fsortin done echo echo -en "nLege eine Zieldatei fest: " read fsortout echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo /bin/cat $fsortin |sort > $fsortout cat $fsortout | while read line do count=$[ $count + 1 ] done } echo -e "n$fsortout wurde im aktuellen Verzeichniss abgelegt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo #Alphabetetisch, rueckwaerts #f_reversesort () { #echo #echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " #read rsortin #echo #while [ ! -f $rsortin ] #do # echo # echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" # echo # echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " # read rsortin # #done #echo #echo -en "nLege eine Zieldatei fest: " #read rsortout #echo #read -p "Druecke eine beliebiege Taste um fortzufahren... " #echo #echo #/bin/cat $rsortin |sort -r > $rsortout #cat $rsortout | while read line #do # count=$[ $count + 1 ] #done #echo -e "n$rsortout wurde im aktuellen Verzeichniss abgelegt" #echo #echo "Kehre zum Hauptmenu zurueck ......" #sleep 2 #echo #} f_removedups () { ##Alle doppelten Zeilen loeschen echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read indups echo while [ ! -f $indups ] do echo echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read indups done echo echo -en "nLege eine Zieldatei fest: " read outdups echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo echo sed -n 'G; s/n/&&/; /^([ -~]*n).*n1/d; s/n//; h; P' $indups > $outdups echo cat $outdups | while read line do count=$[ $count + 1 ] done echo -e "n$outdups wurde im aktuellen Verzeichniss abgelegt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo } f_beginwhite () { ##Leerzeichen aus Angang der Zeilen löschen echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read inbeginwhite echo while [ ! -f $inbeginwhite ] do echo echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read inbeginwhite done echo echo -en "nLege eine Zieldatei fest: " read outbeginwhite echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo echo sed -e 's/^[ t]*//' $inbeginwhite > $outbeginwhite echo cat $outbeginwhite | while read line do count=$[ $count + 1 ] done echo -e "n$outbeginwhite wurde im aktuellen Verzeichniss abgelegt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo } f_removenonascii () { ##alle Zeiche != loeschen echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read innonascii echo while [ ! -f $incontrolm ] do echo echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read innonascii done echo echo -en "nLege eine Zieldatei fest: " read outnonascii echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo echo /usr/bin/tr -cd '111240-176' < $innonascii > $outnonascii echo cat $outnonascii | while read line do count=$[ $count + 1 ] done echo -e "n$outnonascii wurde im aktuellen Verzeichniss abgelegt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo } f_combine () { #Dateien verheiraten echo echo -en "nKompletter Pfad des Verzeichnisses : (z.B:. /home/user/): " read path echo while [ ! -d $path ] do echo echo "Verzeichnis kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad des Verzeichnisses : (z.B:. /home/user/): " read path done echo echo -en "nLege eine Zieldatei fest: " read dictout echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo echo cat $path/*.* > $dictout cat $dictout | while read line do count=$[ $count + 1 ] done echo -e "n$dictout wurde im aktuellen Verzeichniss abgelegt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo } f_split () { # Dateien Splitten echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read insplit echo while [ ! -f $insplit ] do echo echo "Datei kann nicht geoeffnet werden oder ist nicht vorhanden" echo echo -en "nKompletter Pfad zur Datei (z.B.:/home/user/passwords.txt): " read insplit done echo echo -en "nWieviel Zeilen sollen pro Datei geschrieben werden: " read lines echo echo -en "nGebe den Namen des Zielverzeichnisses an: " read outdir echo read -p "Druecke eine beliebiege Taste um fortzufahren... " echo echo mkdir $outdir echo echo "Erstelle $outdir..." echo split -l $lines $insplit $outdir/part echo cat $outdir/part* | while read line do count=$[ $count + 1 ] done echo -e "nDie Dateien wurden im Verzeichniss $outdir abgelgt" echo echo "Kehre zum Hauptmenu zurueck ......" sleep 2 echo } #Menu while : do cat << ! 1. Sortiere eine Liste nach dem Alphabet 2. Loesche alle doppelten Zeilen 3. Loesche alle Leerzeichen am Anfang der Zeilen 4. Loesche alle nicht ASCI Elemente 5. Fasse mehrer Dateien zu einer zusammen 6. Splitte eine Datei in mehrere auf 7. Quit ! echo echo echo -n " Was nun? " read choice case $choice in 1) f_forwardsort ;; 2) f_removedups ;; 3) f_beginwhite ;; 4) f_removenonascii ;; 5) f_combine ;; 6) f_split ;; 7) exit ;; *) echo ""$choice" ist eine falsche Eingabe "; sleep 2 ;; esac done
Winlogon loggen? - Part 1 - Die DLL
Moin Leute,
dieser Artikel wird der erste einer Reihe von Artikeln, welche sich rund um das Thema DLL-Injection drehen, allerdings setzt der Artikel trotzdem einige Vorkenntnisse in diesem Bereich vorraus. Nun denn, auf gehts!
Ich hatte gestern ein wenig langweile, und bin auf folgenden Artikel gestoßen:
http://vxheavens.com/lib/vra07.html
Ich fand es nicht unintressant, dass man das PW bei WindowsXP (und Win7 und/oder Vista?) so einfach mitloggen kann, allerdings bin ich dann auf eine Idee gekommen, die das ganze noch VIEL einfacher, und stabiler, machen sollte.
Bevor ihr weiterlest, solltet ihr aber trotzdem sicherstellen dass ihr gute Kenntnisse in C/C++ besitzt und verstanden habt was DLL-Injection ist. Falls nicht, seid unbesorgt, es gibt viele Tutorials und Code-Snippets zu diesem Thema.