ORBIT SPACE

普通科に通う凡人学生のサーバー管理に関する外部記憶装置

  • 11月
    20

    先日からの不正アクセスからの状況から色々セキュリティー関連を調べていたら
    恐ろしい物を見つけました。

    Slowloris HTTP DoS
    WS000031

    一般的にサーバをダウンさせるには大量のマシンから大量のリクエストを送信する必要がありますが、今回紹介したツールはApacheのセキュリティーホールを突き、少数のマシンから少数のリクエストでサーバをダウンさせてしまいます。

    非常に危険で恐ろしいツールですね。
    当サーバでも対策を急がないといけないです(汗

    cpanでIO::Socket::SSLがインストールできない場合は下記が入ってない可能性がありますので追加します。
    # apt-get install openssl libssl-dev

    No Comments
  • 11月
    19

    原本に一部間違いや遠回りをしていると思われる点がありましたので修正してあります。

    #!/usr/bin/perl
    #-------------------------------------------------#
    # Name: Port Scan Program
    # 原作: Perl scan port
    # (URL: http://www.perlmonks.org/?node_id=806461)
    # 解説: ORBIT SPACE
    # 目的: ポートスキャンプログラムの構造の
    #       理解とモジュール利用方法等の理解
    #       を行う為に今回構造の解説とプログ
    #       ラムの変更を行いました。
    #-------------------------------------------------#
    
    #モジュール使用宣言
    use IO::Socket;
    
    # Very Simple Scan Port Write in Perl
    
    # MAIN PROG
    
    print "Perl Scan Port V1.0\n\n";
    
    # User Var
    
    # perl port.pl 127.0.0.1のように入力されたIPアドレスを取得
    my $iptarget =  $ARGV[0];
    unless($ARGV[0]){die "MISSING IP ADRESS\n\n";}
    
    print "Interesting ports on $iptarget\n\n";
    
    print "PORT // STATE // SERVICE\n";
    
    # Scanning fonction
    # ポート番号をインクリメントして作成する。
    for(my $iport = 0; $iport != 65537; $iport++){
    # 指定されたIPアドレスのポートへ接続
    if (my $remote = IO::Socket::INET->new(
       	Proto => "tcp",
       	PeerAddr => $iptarget,
       	PeerPort => $iport,
       	Timeout => "5")){
    
    	# サービス内容(http,ftp,ssh等)の表示し格変数へ格納
    	(my $name, my $aliases, my $port_number, my $protocol_name) =+
    	getservbyport($iport , "tcp");
    
    	# サービス名が不明な場合NAを格納
    	unless($name){$name = "NA";}
    	# 出力
    	print "$iport     open      $name\n";
    	# 切断
    	close($remote);
    	}
    }
    
    print "Scan Finish\n";
    
    No Comments
  • 11月
    7

    このごろ鯖をファイル置き場として利用する方々の為にせっせと毎回コマンド叩くのが
    面倒なのでスクリプトを作成しました。
    珍しくBash(SH)で書きました^^
    やっぱ慣れていないのでPerlのようにすらすら書けないですね~
    効率悪すぎ!!とか言わないで~(汗

    #!/bin/sh
    # 初期設定(メール送信宛先、件名、コマンド)
    address="メール送信宛先@"
    subject="容量の大きいファイル"
    
    exe="find /home -name "*.exe" -size +100000k"
    iso="find /home -name "*.iso" -size +100000k"
    cso="find /home -name "*.cso" -size +100000k"
    zip="find /home -name "*.zip" -size +100000k"
    rar="find /home -name "*.rar" -size +100000k"
    cab="find /home -name "*.cab" -size +100000k"
    lzh="find /home -name "*.lzh" -size +100000k"
    avi="find /home -name "*.avi" -size +100000k"
    wmv="find /home -name "*.wmv" -size +100000k"
    wma="find /home -name "*.wma" -size +100000k"
    
    df="df";
    
    # 件名の文字コードをJISに変換
    subject=`echo $subject | nkf -j`
    # メール送信(コマンド結果はSJISに変換)
    mail -s "$subject" $address << HONBUN
    ====================[ exe ]====================
    `$exe | nkf -s`
    ====================[ iso ]====================
    `$iso | nkf -s`
    ====================[ cso ]====================
    `$cso | nkf -s`
    ====================[ zip ]====================
    `$zip | nkf -s`
    ====================[ rar ]====================
    `$rar | nkf -s`
    ====================[ cab ]====================
    `$cab | nkf -s`
    ====================[ lzh ]====================
    `$lzh | nkf -s`
    ====================[ avi ]====================
    `$avi | nkf -s`
    ====================[ wmv ]====================
    `$wmv | nkf -s`
    ====================[ wma ]====================
    `$wma | nkf -s`
    ===============================================
    HONBUN
    
    # 終了
    exit
    
    No Comments
  • 11月
    7

    どうしてもカウンターがリセットされる現象を回避できなくて頭を悩ましていました^^;
    どうもflock関数(ファイルロック)が理解できていなかったと言うのが結論。
    にしても酷いな・・・・勉強の大切さを理解しました。

    カウンターでこのざまなら掲示板はどうなるんだ?
    最初から作り直したほうが早いかもな・・・・・インストーラも効率悪かったし^^;

    すばらしく分かりやすく解説していただいたサイト
    CGIやDBのロックと同時実行制御

    #!/usr/bin/perl
    #######################################################
    #スクリプト名:ROS カウンター Ver.1.03
    #作者:ORBIT
    #著作権:ORBIT SPACEに帰属します。
    #著作権表示は一切行いません。自由にお使いください。
    #######################################################
    
    #各種設定
    #------------------------------------------------------
    #イメージの保存ディレクトリ
    $imgs = './img/';
    #ログの保存場所
    $ip_log = 'ip.log';
    $counts_log = 'counts.log';
    #------------------------------------------------------
    
    #IPを取得
    $ip = $ENV{'REMOTE_ADDR'};
    
    #GETのデータから位を取得
    $buf = $ENV{'QUERY_STRING'};
    --$buf; 
    
    #過去ログの取得
    open (IN_OUT,"+<$counts_log");
    flock IN_OUT, 2;
    $counts_data = <IN_OUT>;
    
    open (IP_IN_OUT,"+<$ip_log");
    flock(IP_IN_OUT, 1);
    @ip_data = <IP_IN_OUT>;
    chomp($ip_data[0]);
    if($ip eq $ip_data[0]){&img;}
    $ip_data[0] = "$ip_data[0]\n";
    
    #インクリメントして保存
    if($counts_data eq ""){$counts_data = "00000000"};
    ++$counts_data;
    seek IN_OUT, 0, 0;
    print IN_OUT $counts_data;
    close(IN_OUT);
    
    #IPを記録
    unshift @ip_data, "$ip\n";
    seek IP_IN_OUT, 0, 0;
    print IP_IN_OUT @ip_data;
    close(IP_IN_OUT);
    
    &img;
    
    # 画像表示
    sub img{
    #過去ログを取得し逆順に並べ替える
    @list = split(//,$counts_data);
    @img_list = reverse (@list);
    $nu = $img_list[$buf];
    
    open(IG,"$imgs$nu.gif");
    print "Content-type: image/gif\n\n";
    binmode(IG);
    binmode(STDOUT);
    print <IG>;
    close(IG);
    exit;
    }
    
    No Comments
  • 11月
    5

    基礎となるプログラムです。
    先日紹介したダウンロードの方法をPerlにて最小限に表現してみました。

    #!/usr/bin/perl
    #########################################
    #ソフト名:YoutubeダウンロードURL生成β
    #作成日:2009/11/5
    #作者:ORBIT
    #著作権:ORBIT SPACEへ帰属します。
    #########################################
    
    #LWPモジュールを使用する
    use LWP;
    
    print"Youtube\tURL\n>";
    $Target = <STDIN>;
    
    #正規表現にてURLの情報を取得
    $Target =~ /http:\/\/(.*)\/watch\?v=(\w*)/;
    my $host = $1;
    my $id = $2;
    
    #取得した情報からURLを生成
    $URL = 'http://www.youtube.com/get_video_info?&video_id='."$id";
    
    #HTMLの取得
    my $soce = LWP::UserAgent->new->request(
    		HTTP::Request->new(GET => "$URL"))->content;
    
    		#TOKENの取得を行う
    		$soce =~ /.*token=(.*)\&thumbnail_url=.*/;
    		my $t = $1;
    
    #TOKENを出力
    print"$t\n";
    #Downlad可能なURLを出力
    print'http://youtube.com/get_video?video_id='."$id".'&t='."$t\n";
    
    No Comments

ORBIT



注)このブログは
普通科に通っている
ゆとり教育万歳で
日々平凡な、
とりえも特技も何も無い
もはやどうしようもない
学生のオタクが更新しています。

もしも気が向いたりしたら
話かけてやってください。

(To the access from foreign countries Please comment in English or Japanese to the comment. )
Translation site

TUG

Skype

気軽に話しかけてください^^

ログイン状態
RealPlayer
動画プレーヤー

MUTUAL LINK


相互リンク依頼

パソコン関係
電子工作関係

喜んでリンク受け付けます。

BANNER

Link時にお使いください
ORBIT SPACE

利用中サービス

株式会社シーマン サーバー監視サービス
24時間サーバーのネットワーク接続を監視し
異常発生時には緊急連絡してくれる無料サービスです。
その他にもポート開放チェックや
接続状態の確認が行えます。

お勧めのソフト

私は快適なブラウザとして
FireFoxを推薦します。
Mozilla Firefox ブラウザ無料ダウンロード

記事の利用について

※記事への直リンクはほぼ全面的に
許可しますが、参考元の紹介無し等、
無断での記事もしくは画像の利用は
禁止させていただきます。
(私の書いた記事の内容に間違いが
あった場合訂正が出来ないので)

見つけしだい、それ相応の対処を
求める場合があります。
ご理解とご協力をお願いします。