红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)

目录

 写在开头

 第一步:主机发现与端口扫描

 第二步:web渗透分析

 第三步:SQL注入

 第四步:SSH登录获得初始立足点

 第五步:提权

 总结与思考

写在开头

 本篇博客还是根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。打靶过程涉及到关于sqlmap工具的使用、ssh参数补写等。完整打靶思路详见:

「红队笔记」靶机精讲:LampSecurityCTF4 - SQL注入原理,手动注入和SQLmap自动化注入一起呈现。_哔哩哔哩_bilibili 这个靶机比较老旧了,因此打靶相对容易,但整个过程的思路还是值得思考。本文的核心步骤就是发现数据库查询参数->使用sqlmap进行注入->拿到用户名和密码->ssh登录即可。

本文针对的靶机源于vulnhub,详情见:

LAMPSecurity: CTF4 ~ VulnHub

靶机下载链接见:

https://download.vulnhub.com/lampsecurity/ctf4.zip 

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第1张图片

 靶机下载后解压,用vmware打开,设置网络连接为NAT模式,开启靶机即可(界面如下):

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第2张图片

 第一步:主机发现与端口扫描

 常规思路,ip a查看网段和网卡信息,我的kali的ip为192.168.200.131,网段为192.168.200.0/24。然后使用以下几个命令进行扫描。所有的靶机都开局都相似,这里就不详解参数了,具体思路可看

W1R3S详细打靶思路

主机发现

nmap -sn 192.168.200.0/24

 发现靶机ip是192.168.200.143,接着进行全端口扫描:

nmap --min-rate -p- 192.168.200.143

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第3张图片

 探测到了22,25,80,631四个端口,其中631端口已关闭。进行操作系统和服务版本探测:

nmap -sT -sV -O -p22,25,80,631 192.168.200.143

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第4张图片

 确定是linux系统,然后udp扫描

nmap -sU -p22,25,80,631 192.168.200.143

没发现什么结果,udp端口基本都被过滤,接下来使用nmap自带的漏洞脚本扫描,时间可能较长,我们稍作等待:

nmap --script=vuln -p22,25,80,631 192.168.200.143

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第5张图片 红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第6张图片

 没想到仅仅用nmap扫描,尽然能扫描出来这么多漏洞,包括跨站请求伪造csrf、文件遍历、sql注入等 。那web的攻击面还是非常大的

第二步:web渗透分析

 分析端口22,25,80,631的入手点,最可能的还是80,其次我们再看邮件服务25,22应该是最后考虑的地方。631端口已关闭,利用的可能性很低。于是我们从80端口web入手,首先浏览器访问靶机192.168.200.143

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第7张图片

 可以观察到上图的界面,可以看到网站的上部有几个栏目(Home/Blog/Research/Contact),同时还有个搜索框。Home界面的文字貌似不是英语,读不懂。随便在网站上点一点,看看有啥发现。

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第8张图片

 点击Blog模块后,有几条博文可供选择。随便选择一个打开,界面如上图,观察url,可发现有id=2的字样,这有可能是数据库查询语句,我们在url中手动修改url的值试试:

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第9张图片

 当id=5时,成功看到了另外一篇博文,可能id参数的值就是数据库查询的部分。那么是否存在sql注入呢?结合nmap脚本漏洞扫描的结果判断,这是很可能的。

第三步:SQL注入

我们在url中的id参数后添加一个单引号' 试试,如果出现了报错信息,那么就可以判断此处确实存在sql注入漏洞。

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第10张图片 如上图,果然报错了。那么我们可以使用这个url,用sqlmap进行注入测试。

sqlmap -u 'http://192.168.200.143/index.html?page=blog&title=Blog&id=5' --dbs --dump --batch

 其中-u表示后接url,当url中有多个参数时(page、title、id),应当使用引号。--dbs表示枚举所有数据库系统, --dump参数是当发现有数据时自动转储 ,--batch是批处理命令,自动执行整个注入过程,若有交互,使用默认命令即可。使用这样的参数可以高度自动化的进行注入。

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第11张图片

 结果有很多,在数据库ehks的表user中,成功发现了几个用户名和密码,并对密码的md5进行了自动破解。

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第12张图片

第四步:SSH登录获得初始立足点

 这些用户名和密码是登录哪里的呢?直接的想法是ssh登录的账号。那我们就ssh登录靶机试试,使用数据库中的第一个用户名dstevens和密码ilike2surf ,命令如下

ssh [email protected]

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第13张图片

 结果进入登录不了,这是由于靶机太老了,ssh的版本有问题。不过我们可以指定修改一些参数实现登录。报错提示没有匹配的key exchange方法,靶机的方法是diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1。因此我们可以添加一个参数,把Their offer作为参数的值。问题是参数名是啥呢,我们先输入-o查找额外的参数,然后输入key的首字母k,按下tab键,有许多提示的参数,我们要设置的参数是与key exchange相关的,在这些参数中最有可能的就是KeyAlgorithms(密钥算法),如下图:

因此根据第一次的报错提示,我们添加参数-oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 命令如下:

ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [email protected]

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第14张图片

 很遗憾,再度报错。提示没有匹配的key type,并给出了靶机的参数为ssh-rsa,ssh-dss 。我们故技重施,添加参数-oHostKeyAlgorithms=ssh-rsa,ssh-dss即可。完整命令:

ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss [email protected] 

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第15张图片

输入密码ilike2surf之后成功登录了!拿到了dstevens的shell。

第五步:提权

 拿到shell之后常规思路,whoami查看当前账户,uname -a查看操作系统版本,ip a或ifconfig查看ip信息,结果网卡信息都无法看到。pwd可以看到当前目录是dstevens的家目录/home/dstevens。

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第16张图片

进行提权之前先看看自己是啥权限,使用sudo -l查看,输入密码ilike2surf

 nice,已经是ALL了,sudo运行bash即可

sudo /bin/bash

红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_第17张图片

 这样就拿到了root权限,打靶完成。

总结与思考

 由于靶机是2009年“生产”的,当时的网络安全防护意识还是不足,同时像sqlmap这样的工具还没有诞生,因此在今天看来,这个靶机相对容易(相当于用现代武器打原始人),但整个过程的思路还是值得思考。本文的核心步骤就是发现数据库查询参数->使用sqlmap进行注入->拿到用户名和密码->ssh登录即可。其中ssh登录涉及到一些参数的匹配问题,本文也做了解释。

 同时红队笔记大佬还提到,进行渗透测试的过程中,我们不能单纯依赖nmap和sqlmap这种自动化工具,还是要了解漏洞的原理与代码的编写,使用工具表面上方便,但会有很多缺点。比如容易暴露流量特征、难以进行精确的操作、工具有可能被ban等。归根结底,工具只是在我们了解漏洞原理和代码的基础上,加快我们的渗透进程,而不是渗透测试的核心所在。今天的我还不如脚本小子,前路慢慢,任重而道远。

这篇打靶就完成了,以后会继续坚持打靶,学习网安知识并分享。希望读者多多点赞支持!

 

你可能感兴趣的:(红队打靶,网络安全,linux,sql,ssh)