|
ru.nethack- RU.NETHACK ------------------------------------------------------------------- From : 3APA3A 2:5020/400 02 Sep 2004 20:54:29 To : Olli Artemjev Subject : Re: logs on printer. ;-) -------------------------------------------------------------------------------- Hello, Olli! You wrote to 3APA3A on Thu, 2 Sep 2004 15:49:58 +0000 (UTC): OA> 3> И откуда нам, бедным, знать такие приемы... OA> 3> http://www.security.nnov.ru/soft/3proxy/howtor.asp#CHAIN это к OA> чему url? К тому где прокси брать? Или к тому, что спамеры таки логи А ты бы посмотрел вместо того, чтобы предположения делать. Троянцев там не ставят. OA> 3> Вот только какая досада - во-первых в логах ценен не только IP OA> адрес, OA> Hу и что ты считаешь ценным в логах от открытой из vmware сессии, факт атаки, сведения о том как проводится атака, время начала атаки, время конца атаки. OA> причем из только что поставленной в вмвари винды зарегистрированной OA> на имя user компании company и на которой никто никогда больше OA> работать не будет, а образ диска винды от vmware отправится в OA> /dev/null сразу после удачного взлома? /dev/null? Глупо. Hамекаю. #include <stdio.h> #include <windows.h> #include <string.h> #define PAGESIZE 4194304 void normalize(char *str){ int i=0, j=0; char * hex = "0123456789ABCDEF", *s1, *s2; fprintf(stderr, "original: %s\n", str); do { if(str[i] == '%' && str[i+1] && str[i+2] && (s1 = strchr(hex, str[i+1])) && (s2 = strchr(hex, str[i+2]))){ str[j++] = (s1-hex)*16 + (s2 - hex); i+=3; } else if(str[i] == '%' && str[i+1] == '%') { str[j++] = '%'; i+=2; } else str[j++] = str[i++]; } while(str[i]); str[j] = str[i]; fprintf(stderr, "decoded: %s\n", str); } int main(int argc, char *argv[]){ HANDLE file; char *string; DWORD n=0; unsigned long long pos; unsigned long gb=0; int i,j; char * rr; register int index=0; char bb[256]; char * Drive = bb; char * pages[2]; register char c; register char *buffer; register int page=0; register int print_c=0; int preread; int postread; int count=0; unsigned indexes[256]; rr = malloc(PAGESIZE*2); if(argc<5){ fprintf(stderr, "Windows NT/2K/XP Hard Drive sting search\n" "Usage: %s # <preread> <postread> <string> [...]\n" " # - Disk number (0 means first hard drive) of path\n" " <string> - string to search\n\n" "(c) 2001-2003 by 3APA3A\n" , argv[0]); return 1; } if(*argv[1]>='0' && *argv[1]<='9')sprintf(Drive, "\\\\.\\PhysicalDrive%d", atoi(argv[1])); else Drive = argv[1]; preread=atoi(argv[2]); postread=atoi(argv[3]); string = argv[4]; pages[0]=rr; pages[1]=rr+PAGESIZE; buffer=pages[0]; printf("Looking for:\n"); for(i=4; i<argc; i++){ normalize(argv[i]); printf(" %s\n", argv[i]); } printf("In: %s\n", Drive); fflush(stdout); file=CreateFile(Drive, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING|FILE_FLAG_SEQUENTIAL_SCAN, NULL); if(!file){ fprintf(stderr, "Unable to access device\n"); } memset(indexes, 0, sizeof(indexes)); if(!ReadFile(file, pages[page], PAGESIZE, &n, NULL)){ fprintf(stderr, "Unable to read device\n"); return 3; } for( pos=0, index=0; ; index++){ if(index==PAGESIZE) { pos+=PAGESIZE; page=!page; index=0; if(!ReadFile(file, pages[page], PAGESIZE, &n, NULL))break; buffer=pages[page]; if(!(pos&0x0000000000FFFFFF)){ if(!(pos&0x00000000FFFFFFFF))gb++; fputc('.', stderr); fflush(stderr); } } c=buffer[index]; if(print_c){ fputc(c, stdout); print_c--; if(!print_c) fprintf(stdout, "\n----End Dump----\n"); fflush(stdout); } for(i = 4; i < argc; i++){ string=argv[i]; if(c==string[indexes[i-4]]){ indexes[i-4]++; if(!string[indexes[i-4]]){ if(print_c){ print_c=postread; } else{ fputc('!', stderr); fflush(stderr); fprintf(stdout, "%d. %s: found, relative offset: %08X:%08X\n----Begin dump----\n", ++count, string, gb, (((unsigned)pos)-indexes[i-4])+index); print_c=postread; for(j=(page*PAGESIZE)+(index-(preread+indexes[i-4])); j!=(page*PAGESIZE)+(index+1); j++){ if(j<0||j>=(PAGESIZE*2)){ if(j>=(PAGESIZE*2))j-=PAGESIZE*2; else j=PAGESIZE*2+j; } fputc(rr[j], stdout); } } indexes[i-4]=0; } } else indexes[i-4]=0; } } fprintf(stdout, "\nEOF at %08X:%08X, %d items found\n", pos, count); CloseHandle(file); } OA> vmware пиратская с ближайщего рынка или, что еще лучше, скарженная в OA> пользу фермера дяди Боба из штата висконсин. :) Глупо. Объяснить почему или сам догадаешься? OA> 3> во-вторых если атака продолжается достаточно длительное время, OA> 3> у некоторых государственных структур, особенно не наших (хотя у OA> 3> наших такие возможности тоже все больше и больше), есть шанс 3> OA> проследить источник не прослеживая всю цепочку. OA> Механизм работы в студию пожалуйста. И чем подробнее тем интереснее. OA> ;) СОРМ в точке твоего непосредственного подключения. P.S. Кстати, мне вообще не понятно, откуда взялось предположение, что сеть организации ведущей логи на принтер подключена к Internet. With best regards, 3APA3A@security.nnov.ru --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.nethack/65775258278e.html, оценка из 5, голосов 10
|