Flags

Aus Labor für Echtzeitsysteme

Wechseln zu: Navigation, Suche

[bearbeiten] Submitten

Python-Skript zum Submitten:

#!/usr/bin/env python
 
import telnetlib
import sys
 
c = telnetlib.Telnet("10.0.0.100", 31337)
print c.read_until("\r\n")
c.write("16\r\n")
print c.read_until("\r\n")
 
for i in range (1, len(sys.argv)):
c.write("%s\r\n" % sys.argv[i])
print c.read_until("\r\n")
 
c.close()

Screwdriver automatisiert abgrasen:

while true; do for i in /home/5kr3wdr1v3r/profiles/*; do /etc/cron.conf `cat $i | grep "SSN" | awk '{print $2}'`; echo `cat $i`; done; sleep 10; done

Perl-Skript zum Submitten von Flags:

  1. #!/usr/bin/perl -w
  2.  
  3. # Small and funny script for submitting flags to the CTF-Gameserver written by Lexi Pimenidis.
  4. # The source of the gameserver is available at http://nets.rwth-aachen.de/~lexi/gameserver.php
  5. #
  6. # (C) 2006-2007 Lars Weiler <lars@weiler-online.name>, Released under the terms of the GPLv2
  7.  
  8. use strict;
  9. use Net::Telnet ();
  10.  
  11. my $host = "10.0.0.37";
  12. my $port = "31337";
  13. my $team = "16";
  14.  
  15. my $commentator = "* Chuck Norris sagt:";
  16.  
  17. if ( @ARGV < 1 ) {
  18. print "Flag muss als Argument angegeben werden!\n";
  19. }
  20. print "Flag: $ARGV[0]\n";
  21.  
  22. my $t = new Net::Telnet (-timeout => 10, -host => $host, -port => $port, -telnetmode => 0, -ors => "\r\n", -rs => "\r\n" );
  23.  
  24. #my $fhi = $t->input_log("submit-flag-in.log"); #DEBUG
  25. #my $fho = $t->output_log("submit-flag-out.log"); #DEBUG
  26.  
  27. $t->open();
  28. my $message = $t->getline( Input_record_separator => "\x0a" );
  29.  
  30. #print "1: $message\n"; #DEBUG
  31.  
  32. $message =~ /^Please identify your team/ ? $t->print("$team") : die "Team nicht identifizierbar.";
  33. $message = $t->getline( Input_record_separator => "\x0a" );
  34.  
  35. #print "2: $message\n"; #DEBUG
  36.  
  37. if ( $message =~ /^(Sorry, don't recognize your team|Please identify your team with its numerical team-number)/ ) {
  38. print "$commentator Checke dieses Script und stelle das Team richtig ein.\n";
  39. exit;
  40. }
  41. elsif ( $message =~ /^Welcome/ ) {
  42.  
  43. foreach (@ARGV) {
  44. $t->print("$_");
  45. $message = $t->getline( Input_record_separator => "\x0a" );
  46. #print "3: $message\n"; #DEBUG
  47.  
  48. print "Der gameserver sagt: $message";
  49.  
  50. if ( $message =~ /^Congratulations, you captured a flag/ ) {
  51. system( "aplay ~/Cipher3/redteam-scores.wav" );
  52. print "$commentator Prima! Weiter so!\n";
  53. }
  54. elsif ( $message =~ /^(Sorry, is this a flag|Sorry, flag not in database)/ ) {
  55. print "$commentator Lamer!\n";
  56. }
  57. elsif ( $message =~ /^(Sorry, don't recognize your team|Please identify your team with its numerical team-number)/ ) {
  58. print "$commentator Checke dieses Script und stelle das Team richtig ein.\n";
  59. }
  60. elsif ( $message =~ /^(Sorry, timeout|Sorry, flag expired)/ ) {
  61. print "$commentator Hopphopp! Du musst schneller sein!\n";
  62. }
  63. elsif ( $message =~ /^Sorry, flag is your own/ ) {
  64. print "$commentator Bist wohl ein kleiner Scherzkeks?\n";
  65. }
  66. elsif ( $message =~ /^Sorry, you already submitted this flag/ ) {
  67. print "$commentator Nicht schlecht, aber schaff mal ein neues Flag an.\n";
  68. }
  69. elsif ( $message =~ /^Sorry, internal error/ ) {
  70. print "$commentator An dem Fehler kann selbst ich nichts machen\n";
  71. }
  72. elsif ( $message =~ /^Sorry, game not started/ ) {
  73. print "$commentator Ruhig, Brauner...\n";
  74. }
  75. elsif ( $message =~ /^Sorry, game over/ ) {
  76. print "$commentator Rien ne va plus!\n";
  77. }
  78. else {
  79. print "$commentator Mit dieser Fehlermeldung kann ich nichts anfangen!\n";
  80. }
  81. }
  82. }
  83. $t->print("QUIT\n");
  84. $t->close;
  85.  

[bearbeiten] Zusätzlich nötig!!!!

perl -MCPAN -e 'CPAN::Shell->install("Net::Telnet")'
oder unter Kubunut:
$ sudo apt-get install libnet-telnet-perl
Persönliche Werkzeuge