<![CDATA[Latest posts for the topic "BkitSec Wargame"]]> /hvaonline/posts/list/21.html JForum - http://www.jforum.net BkitSec Wargame /hvaonline/posts/list/38052.html), hẳn các bạn đã từng đọc qua loạt bài dịch này của mod Ky0. Và các bạn cũng hình dung được trong đầu mình rằng : " à, khai thác lỗi phần mềm là thế đấy, thế đấy ...." . Nhưng vấn đề gặp phải ở hầu hết mọi người là môi trường thực nghiệm và chỗ trao đổi những vấn đề cụ thể trong quá trình các bạn tìm hiểu . Với mục đích hỗ trợ, và tạo môi trường cho các bạn cũng chia sẻ, nghiên cứu và thực hành. Tụi mình, nhóm BkitSec http://bkitsec.vn), đã quyết định tạo một diễn đàn nhỏ http://bkitsec.vn/?post_type=forum). Ở diễn đàn này, hằng tuần sẽ có các "thử thách" ra lò dưới dạng wargame để các bạn có thể luyện tập. Trong khi đó vẫn có thể trao đổi và học hỏi kinh nghiệm qua diễn đàn. Các "thử thách" sẽ đủ các chủng loại :
  • Tận dụng lỗi phần mềm (thường thấy nhất, là các ứng dụng chạy trên các hệ điều hành dòng *nix, windows ) Khai thác lỗi từ ứng dụng web Mã hóa Malware analysis ...
Và với sự hỗ trợ từ các đàn anh từ nhóm VNsecurity http://vnsecurity.net), tụi mình hi vọng sẽ tạo ra một sân chơi bổ ích cho các bạn hackers. P/S : Các kiến thức cơ bản và nền tảng về KHMT , các bạn vẫn có thể trao đổi ở diễn đàn, tụi mình rất vui khi được chia sẽ cùng các bạn. Cảm ơn mọi người.]]>
/hvaonline/posts/list/41215.html#253896 /hvaonline/posts/list/41215.html#253896 GMT
BkitSec Wargame http://bkitsec.vn/?topic=dang-ky
Để tham gia thảo luận trên diễn đàn, các bạn cần phải đăng ký cho mình một tên tham dự. Việc đăng ký hết sức đơn giản, các bạn cần gửi thông tin theo mẫu sau về hộp thư admin at bkitsec dot vn : Tên tham dự : Họ : Tên : Giới thiệu sơ về bản thân : Chúng tôi sẽ tạo tài khoản cho các bạn và gửi thông tin về hộp thư bạn dùng để gửi thông tin trên. Thân chào ! 
Có lẽ đây là lí do: Topic: Nội dung diễn đàn | BKITSEC http://bkitsec.vn/?topic=n%e1%bb%99i-dung-di%e1%bb%85n-dan
Cũng chính vì những nguyên nhân trên mà nhóm quyết định chỉ cho đăng kí thông qua email, sẽ giúp cho tụi mình nắm được số liệu về các bạn, và tránh tình trạng đăng kí tràn lan mà không có chất lượng, tuy nhiên nếu như trong một thời gian dài các bạn không hoạt động ( không thảo luận, không đưa ra chủ đề..) thì tụi mình cũng sẽ có biện pháp xử lí hiệu quả, tất cả nhằm nâng cao chất lượng diễn đàn, tạo ra sân chơi hữu ích cho mọi người. 
Topic: [1st Chal] Targeted Attack level 1 | BKITSEC http://bkitsec.vn/?topic=1st-chal-targeted-attack-level-1
Chi tiết và challenges có trong mục Private cho members…. 
Có vẻ diễn đàn này sẽ là một diễn đàn đóng.]]>
/hvaonline/posts/list/41215.html#253903 /hvaonline/posts/list/41215.html#253903 GMT
BkitSec Wargame /hvaonline/posts/list/41215.html#253905 /hvaonline/posts/list/41215.html#253905 GMT BkitSec Wargame

bolzano_1989 wrote:
Mình thấy việc các bạn không mở quá trình đăng ký thành viên diễn đàn không hay lắm (phải cung cấp họ tên, thông tin về bản thân): Topic: Đăng ký | BKITSEC http://bkitsec.vn/?topic=dang-ky
Để tham gia thảo luận trên diễn đàn, các bạn cần phải đăng ký cho mình một tên tham dự. Việc đăng ký hết sức đơn giản, các bạn cần gửi thông tin theo mẫu sau về hộp thư admin at bkitsec dot vn : Tên tham dự : Họ : Tên : Giới thiệu sơ về bản thân : Chúng tôi sẽ tạo tài khoản cho các bạn và gửi thông tin về hộp thư bạn dùng để gửi thông tin trên. Thân chào ! 
Có lẽ đây là lí do: Topic: Nội dung diễn đàn | BKITSEC http://bkitsec.vn/?topic=n%e1%bb%99i-dung-di%e1%bb%85n-dan
Cũng chính vì những nguyên nhân trên mà nhóm quyết định chỉ cho đăng kí thông qua email, sẽ giúp cho tụi mình nắm được số liệu về các bạn, và tránh tình trạng đăng kí tràn lan mà không có chất lượng, tuy nhiên nếu như trong một thời gian dài các bạn không hoạt động ( không thảo luận, không đưa ra chủ đề..) thì tụi mình cũng sẽ có biện pháp xử lí hiệu quả, tất cả nhằm nâng cao chất lượng diễn đàn, tạo ra sân chơi hữu ích cho mọi người. 
Topic: [1st Chal] Targeted Attack level 1 | BKITSEC http://bkitsec.vn/?topic=1st-chal-targeted-attack-level-1
Chi tiết và challenges có trong mục Private cho members…. 
Có vẻ diễn đàn này sẽ là một diễn đàn đóng. 
Mình lại thấy vì không public việc reg nick là hợp lý vì nếu làm vậy thì hoá ra ... cũng như các diễn đàn khác, mà số lượng diễn đàn kiểu vậy trên NET thì quá nhiều rồi (nếu thích kiểu vậy thì HVA đã chẳng phải là 1 trong những nơi tốt nhất rồi sao?). Với hình thức này thì sẽ hạn chế được 1 số lớn những người chỉ tham gia diễn đàn với mục đích xem, thích "ăn sẵn", ... dẫn đến gây loãng và chất lượng đi xuống. Thực ra trên TG vẫn tồn tại song song 2 hình thức này, cả forum public và các nhóm hoạt động riêng biệt, mỗi hình thức đều có ưu & nhược điểm riêng. -rickb]]>
/hvaonline/posts/list/41215.html#253956 /hvaonline/posts/list/41215.html#253956 GMT
BkitSec Wargame http://bkitsec.vn/?topic=1st-chal-targeted-attack-level-1 [Web 1st]Let's Hack http://bkitsec.vn/?topic=web-1stlets-hack]]> /hvaonline/posts/list/41215.html#254418 /hvaonline/posts/list/41215.html#254418 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#254434 /hvaonline/posts/list/41215.html#254434 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#254693 /hvaonline/posts/list/41215.html#254693 GMT BkitSec Wargame http://bkitsec.vn/keygen1 Hard Level2 Exploit Source: Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>

// gcc -o level2 level2.c -fno-stack-protector -z execstack -mpreferred-stack-boundary=2

unsigned int secret;
int sockfd;
int newsockfd;

void getFlag(int sock)
{
  char tmp[64];

  int fd = open("flag.txt", O_RDONLY);
  if (fd < 0)
    exit(EXIT_FAILURE);
  
  bzero(tmp, sizeof(tmp));
  read(fd, tmp, sizeof(tmp));
  
  write(sock, "Flag: ", 7);
  write(sock, tmp, strlen(tmp));

  close(fd);
}

int vuln(int sock)
{
  int ret = 0xdeadbeef;
  unsigned int cookie = secret;
  char tmp[32] = {'\0'};
  
  bzero(tmp, sizeof(tmp));
  read(sock, tmp, sizeof(tmp)+20);

  if(cookie!=secret)
  {
    write(sock, "It's not my cookie :(\n", 22);
    exit(EXIT_FAILURE);
  }

  return ret;
}

void sigintHandler(int sig)
{
  if (sig == SIGINT)
  {
    while (close(sockfd));

    printf("Closed server socket\n");
    exit(EXIT_FAILURE);
  }
}

void sigsegvHandler(int sig)
{
  if (sig == SIGSEGV)
  {
    write(newsockfd, "Server error\n", 13);
    close(newsockfd);
    
    exit(EXIT_FAILURE);
  }
}

void ERROR(char* err)
{
  perror(err);
  exit(EXIT_FAILURE);
}

int main(int argc, char *argv[])
{
  if(argc != 2) {
    printf("%s portno \n", argv[0]);
    exit(EXIT_FAILURE);
  }

  srand(time(NULL));
  secret = rand();
  
  int portno, clilen, n;
  int pid;
  char *clientIP;
  struct sockaddr_in serv_addr, cli_addr;

  sockfd = socket(AF_INET, SOCK_STREAM, 0);
  if (sockfd < 0)
    ERROR("socket");

  
  // server's listening port
  portno = atoi(argv[1]);  

  bzero((char *) &serv_addr, sizeof(serv_addr));
  serv_addr.sin_family = AF_INET;
  serv_addr.sin_port = htons(portno);
  serv_addr.sin_addr.s_addr = INADDR_ANY;

  if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
    ERROR("bind");

  listen(sockfd, 5);


  // kill all child processes that terminated
  signal(SIGCHLD, SIG_IGN);
  signal(SIGINT, (void*)sigintHandler);
  signal(SIGSEGV, (void*)sigsegvHandler);


  while (1)
  {
    clilen = sizeof(cli_addr);
    if ( (newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen)) > 0 )
    {
      pid = fork();

      if (pid == 0)
      {
        while(close(sockfd));

        void (*foo)(int);

        foo = vuln(newsockfd);
        
        // mistake here?
        foo(argc);

        close(newsockfd);
        exit(1);
      }
      else if ( pid > 0)
      {
        close(newsockfd);
      }
    }
  }
  return 0;
}
]]>
/hvaonline/posts/list/41215.html#257033 /hvaonline/posts/list/41215.html#257033 GMT
BkitSec Wargame /hvaonline/posts/list/41215.html#257144 /hvaonline/posts/list/41215.html#257144 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#258538 /hvaonline/posts/list/41215.html#258538 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#259019 /hvaonline/posts/list/41215.html#259019 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#259026 /hvaonline/posts/list/41215.html#259026 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#259027 /hvaonline/posts/list/41215.html#259027 GMT BkitSec Wargame Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>

// gcc -z execstack -o level3.hard level3.hard.c -fno-stack-protector

int sockfd;
int newsockfd;

char getFlag[] ="\xeb\x0a\x5b\x83\xc3\x0a\x31\xc9\xb1\x15\xeb\x05\xe8\xf1\xff
\xff\xff\x31\x3b\x49\x83\xc3\x04\x85\xc9\x75\xf6\x69\xe5\xa9\x7e\xd9\x94\x6b\xe0
\xdd\x46\x9c\xcb\x5a\x18\x9c\xc2\x27\x9d\x3e\x3a\x23\x2c\x6d\x88\x06\x3d\x24\x0
f\x66\x5c\x2e\xf2\xe2\x68\x5a\xbb\xe9\x94\x4c\x3a\x38\xaf\x82\xc6\x6a\x9e\x69\x2b
\x63\xee\x9c\xcb\x5a\x19\x60\x8b\xdb\xdd\x1d\x0a\xdb\xc6\x60\x8b\x02\xd9\x52\xf4
\x15\x7b\xc1\x6a\x8d\x30\xc5\x6a\x98\x79\x83\x7f\x92\x69\xad";

int sendFlag(int sock)
{
  char tmp[16];
  
  bzero(tmp, sizeof(tmp));
  read(sock, tmp, sizeof(tmp)+16);

  write(sock, tmp, strlen(tmp));

}

void sigintHandler(int sig)
{
  if (sig == SIGINT)
  {
    while (close(sockfd));

    printf("Closed server socket\n");
    exit(EXIT_FAILURE);
  }
}

void sigsegvHandler(int sig)
{
  if (sig == SIGSEGV)
  {
    write(newsockfd, "Server error\n", 13);
    close(newsockfd);
    
    exit(EXIT_FAILURE);
  }
}

void ERROR(char* err)
{
  perror(err);
  exit(EXIT_FAILURE);
}

int main(int argc, char *argv[])
{
  if(argc != 2) {
    printf("%s portno \n", argv[0]);
    exit(EXIT_FAILURE);
  }

  int portno, clilen, n;
  int pid;
  char *clientIP;
  struct sockaddr_in serv_addr, cli_addr;

  sockfd = socket(AF_INET, SOCK_STREAM, 0);
  if (sockfd < 0)
    ERROR("socket");

  
  // server's listening port
  portno = atoi(argv[1]);  

  bzero((char *) &serv_addr, sizeof(serv_addr));
  serv_addr.sin_family = AF_INET;
  serv_addr.sin_port = htons(portno);
  serv_addr.sin_addr.s_addr = INADDR_ANY;

  if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
    ERROR("bind");

  listen(sockfd, 5);


  // kill all child processes that terminated
  signal(SIGCHLD, SIG_IGN);
  signal(SIGINT, (void*)sigintHandler);
  signal(SIGSEGV, (void*)sigsegvHandler);


  while (1)
  {
    clilen = sizeof(cli_addr);
    if ( (newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen)) > 0 )
    {
      pid = fork();

      if (pid == 0)
      {
        while(close(sockfd));

        sendFlag(newsockfd);
        

        close(newsockfd);
        exit(1);
      }
      else if ( pid > 0)
      {
        close(newsockfd);
      }
    }
  }
  return 0;
}
]]>
/hvaonline/posts/list/41215.html#259248 /hvaonline/posts/list/41215.html#259248 GMT
BkitSec Wargame /hvaonline/posts/list/41215.html#260079 /hvaonline/posts/list/41215.html#260079 GMT BkitSec Wargame http://wargame.bkitsec.vn/~caocao/level1/index.php Và phiên đã được vá lỗi ở http://wargame.bkitsec.vn/~caocao/level2/index.php #Bkitsec at NDH2K12 CTF : http://prequals.nuitduhack.com/ranking.html ]]> /hvaonline/posts/list/41215.html#260113 /hvaonline/posts/list/41215.html#260113 GMT BkitSec Wargame /hvaonline/posts/list/41215.html#261048 /hvaonline/posts/list/41215.html#261048 GMT