Awd线下赛总结
Part I:
注意事项:
1.比赛的时候web守护机为Linux系统,权限非常低,你就认为是只能操作html目录就可以了。
2.据了解,他们判定宕机的情况是网页功能不能正常访问就行,如:删除页面,页面功能不正常(登陆验证码没了都算宕机)
3.不可以使用DDOS攻击
4.不能使用外网环境。
Part II:
问题
1.PHP的代码审计技巧和审计工具推荐
seay
链接: https://pan.baidu.com/s/1n6IbF10DToZ6XqWPjBBz0Q 密码: ubc9
提前准备好各种cms的poc exp (因为你们不允许联网)phpwin phpcms dz
everything find
2.Python脚本的编写:文件监控、预留后门批量利用、flag批量提交、审计出来的漏洞的利用。

linux文件监控脚本.py(十分钟内新生成的文件删除)
D盾扫描完 服务器上传seayfindshell脚本,将生成列表保存在1.txt,隔一段时间对比下1.txt
flag批量提交(让防守队员进行脚本修改,批量获取flag/批量提交flag)
审计出来的漏洞比较耗时间,我更倾向于如果本机发现别人的shell,那就利用它进行手动/自动攻击别人的机器,善于怼别人的后门。

不死马清理:

`ps aux www|grep shell.php` 找到pid后杀掉进程就可以,你删掉脚本是起不了作用的,因为php执行的时候已经把脚本读进去解释成opcode运行了

重启php等web服务

用一个`ignore_user_abort(true)`脚本,一直竞争写入(断断续续)。usleep要低于对方不死马设置的值。
    创建一个和不死马生成的马一样名字的文件夹。

3.不死马、waf、抓流量的waf

    不死马使用原理就是不断将的自己写入,造成进程占用,被删除后一秒就已经生成新的了,还有就是.XXX文件建立隐藏文件不死马。
    waf,脚本waf可以防止一般情况下的危险字符,但是不能报太大希望,
        

require_once('waf.php');
    抓流量waf,挂载后可以让防守队员_实时关注日志,一旦发现被getflag了,就通过日志相应的手法攻击别人

4.审计出漏洞后的利用办法。
分析和利用,骚操作,不管你多厉害,只要你能利用。我也就能利用(md5马不想说话)。

流程:一、防御
1、cat /var/log/apache2/access.log | cut -f4 -d   | sort | uniq -c | sort -k  -r | head -  查看当前访问量前十的链接

2、文件监控增删改查的文件使用脚本Monitor(一个简单的文件监控示例脚本,可以监控创建、删除、移动、属性修改操作,自动删除新增文件或目录。已使用pyinstaller打包成了linux可执行程序)

3、chattr +i 命令锁死网站目录和文件,防止其他队伍删除网站宕机。注:添加后不取消特殊权限 即使是root用户也无法删除/修改文件(

chattr -R +i /var/www/html  
chattr -R +i /var/www/html/*   
(取消命令将+号改成-   chattr -R -i /var/www/html)

4、weblogger监控所有访问连接 配合第一条命令使用判断别人的poc

5、通过iptables/firewall 禁止非相关端口开放(蓝帽杯不建议)

6、 漏洞修复简单粗暴
CTF比赛中修复漏洞主要就是为了防止其他队伍的入侵了。

  1. 删站:如果赛组没有明确禁止,这是最粗暴的姿势,只留自己的webshell,参加过几场比赛确实遇到了这种尴尬的事情,web攻防最后都演变成了拼手速的“GetShell+留后门+删站”。

  2. 破坏正常功能:无法修复但是发现被功能攻击那就删除相关函数,或者将页面新建一个空白的PHP文件(慎用)。rce,sql
    7、使用waf全局包含waf,注意waf的日志和weblogger日志与第二项文件监控冲突,建议建立文件夹将日志和weblogger日志放到指定文件夹中,避开文件监控,

find /var/www/html/ -type f -path "*.php" | xargs sed -i "s/<?php/<?php\nrequire_once('\/tmp\/98366ed74d36da9dd6c07cc3aacc0c80\/weblogpro.php');\n/g"命令的意思就是查找/var/www/html目录下所有php文件,在头部添加一句,用require函数引入/tmp/waf.php文件。

sudo -i 输入你用户密码

8、后台一定要登陆后台,有没有弱口令,修改成强口令。

9、不只是后台,phpmyadmin、测试页面容易出现sql注入,rce之类的这些。(看我下午发的那个视频,那个视频里面操作内容。)

Linux VPN 客户端
以下步骤是基于 Peter Sanford 的工作。这些命令必须在你的 VPN 客户端上使用 root 账户运行。
要配置 VPN 客户端,首先安装以下软件包:

# Ubuntu & Debian
apt-get update
apt-get -y install strongswan xl2tpd

# CentOS & RHEL
yum -y install epel-release
yum --enablerepo=epel -y install strongswan xl2tpd

# Fedora
yum -y install strongswan xl2tpd

创建 VPN 变量 (替换为你自己的值):

VPN_SERVER_IP='你的VPN服务器IP'
VPN_IPSEC_PSK='你的IPsec预共享密钥'
VPN_USER='你的VPN用户名'
VPN_PASSWORD='你的VPN密码'

配置 strongSwan:

cat > /etc/ipsec.conf <<EOF
# ipsec.conf - strongSwan IPsec configuration file

# basic configuration

config setup
  # strictcrlpolicy=yes
  # uniqueids = no

# Add connections here.

# Sample VPN connections

conn %default
  ikelifetime=60m
  keylife=20m
  rekeymargin=3m
  keyingtries=1
  keyexchange=ikev1
  authby=secret
  ike=aes128-sha1-modp1024,3des-sha1-modp1024!
  esp=aes128-sha1-modp1024,3des-sha1-modp1024!

conn myvpn
  keyexchange=ikev1
  left=%defaultroute
  auto=add
  authby=secret
  type=transport
  leftprotoport=17/1701
  rightprotoport=17/1701
  right=$VPN_SERVER_IP
EOF

cat > /etc/ipsec.secrets <<EOF
: PSK "$VPN_IPSEC_PSK"
EOF

chmod 600 /etc/ipsec.secrets

# For CentOS/RHEL & Fedora ONLY
mv /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.old 2>/dev/null
mv /etc/strongswan/ipsec.secrets /etc/strongswan/ipsec.secrets.old 2>/dev/null
ln -s /etc/ipsec.conf /etc/strongswan/ipsec.conf
ln -s /etc/ipsec.secrets /etc/strongswan/ipsec.secrets

配置 xl2tpd:

cat > /etc/xl2tpd/xl2tpd.conf <<EOF
[lac myvpn]
lns = $VPN_SERVER_IP
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
EOF

cat > /etc/ppp/options.l2tpd.client <<EOF
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000
name $VPN_USER
password $VPN_PASSWORD
EOF

chmod 600 /etc/ppp/options.l2tpd.client

至此 VPN 客户端配置已完成。按照下面的步骤进行连接。
注: 当你每次尝试连接到 VPN 时,必须重复下面的所有步骤。
创建 xl2tpd 控制文件:

mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control

重启服务:

service strongswan restart
service xl2tpd restart

开始 IPsec 连接:

# Ubuntu & Debian
ipsec up myvpn

# CentOS/RHEL & Fedora
strongswan up myvpn

开始 L2TP 连接:

echo "c myvpn" > /var/run/xl2tpd/l2tp-control

运行 ifconfig 并且检查输出。现在你应该看到一个新的网络接口 ppp0。
检查你现有的默认路由:

ip route

在输出中查找以下行: default via X.X.X.X ...。记下这个网关 IP,并且在下面的两个命令中使用。
从新的默认路由中排除你的 VPN 服务器 IP (替换为你自己的值):

route add 你的VPN服务器IP gw X.X.X.X

如果你的 VPN 客户端是一个远程服务器,则必须从新的默认路由中排除你的本地电脑的公有 IP,以避免 SSH 会话被断开 (替换为实际值):

route add 你的本地电脑的公有IP gw X.X.X.X

添加一个新的默认路由,并且开始通过 VPN 服务器发送数据:

route add default dev ppp0

至此 VPN 连接已成功完成。检查 VPN 是否正常工作:

wget -qO- http://ipv4.icanhazip.com; echo

以上命令应该返回 你的 VPN 服务器 IP。
要停止通过 VPN 服务器发送数据:
route del default dev ppp0
要断开连接:

# Ubuntu & Debian
echo "d myvpn" > /var/run/xl2tpd/l2tp-control
ipsec down myvpn

# CentOS/RHEL & Fedora
echo "d myvpn" > /var/run/xl2tpd/l2tp-control
strongswan down myvpn

企业安全建设笔记

业务网纵深防御体系建设
甲方安全的主要职责是保护公司互联网业务的安全,比如业务持续性、业务数据的私密性,所以需要优先解决以下问题:
抗 DDoS,保障业务的持续性。
防拖库,保护业务数据的私密性,防止用户数据、交易数据等核心数据被窃取。
防后门,防止黑客非法获取服务器权限。

常见防御体系
1、边界防御体系
防火墙,waf之类的边界防护设备/软件,在网络边界进行部署,类似城堡/木桶。
2、纵深防御体系
多层防护措施,提高入侵成本和难度,
常见分层结构如下图。

对应的安全产品为:
·数据库 端:数据库 审计、 数据库 防火墙。
·服务器 端:主机IDS、 服务器 杀毒、 内核 加固 类 产品、 主机 WAF。
·网络 层: IDS、Web 威胁 感知、 Web 审计。
·网络 边界: 防火墙、UTM、 WAF、 IPS、 本地 流量 清洗 设备。
刘焱. 企业安全建设入门:基于开源软件打造企业网络安全 (网络空间安全技术丛书) (Kindle 位置 322-324). 北京华章图文信息有限公司. Kindle 版本.
3、河防体系
在严格的控制范围内将被攻击/未被攻击的主机提前进行隔离,降低攻击造成的影响,使其在可控的范围内进行攻击。(银行,金融等行业)
4、塔防体系
纵深防御+终端防御+云
5、下一代纵深防御体系
从传统的边界防护过渡到新一代的基于预测、检测、协同、防御、响应、溯源理念的Web纵深防御。威胁情报好比是积累的知识,大数据和人工智能好比是聪明的大脑,WAF、SIEM、服务器安全等好比是有效的武器,大家互相配合,实现了下一代的纵深防御,在对已知威胁有较好的防御能力外,对于未知威胁也具有一定防御能力。阿里、腾讯、百度、金山、UCLOUD等都在自己的云上不同程度实现了下一代纵深防御的理念,比如阿里云的防御产品集合云盾(包括高防IP、WAF和安骑士)+检测产品集合态势感知方案,腾讯云的主机防护产品集+大禹网络安全产品集,金山的海陆空防御体系等。图2-3是下一代Web纵深防御的一种实现。
刘焱.企业安全建设入门:基于开源软件打造企业网络安全(网络空间安全技术丛书)(Kindle位置338-344).北京华章图文信息有限公司.Kindle版本.

将防护和威胁情报信息等服务联动,进行实时/提前预知的方式来进行防御。

WAF的缺陷
1、防护能力不足:
waf依赖规则和正则,灵活性较大的语言很容易就可以绕过waf的防护。
2、缺少业务安全的防护能力:
比如说短信接口的短信轰炸,薅羊毛,撞库。
3、审计能力不足:
多数waf智能保存url,和请求头,并没有记录详细信息的内容,对于事后的应急响应审计日志造成了影响。对于https更无法记录内容。

企业安全建设笔记-2
自建waf将基于nginx+lua的架构(openresty)
https://github.com/loveshell/ngx_lua_waf
效果
图片10.png
检测过程及原理
图片11.png

OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项,用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。OpenResty通过汇聚各种设计精良的Nginx模块,从而将Nginx有效地变成一个强大的通用Web应用平台。这样,Web开发人员和系统工程师可以使用Lua脚本语言调动Nginx支持的各种C以及Lua模块,快速构造出足以胜任10K乃至1000K以上单机并发连接的高性能Web应用系统。OpenResty的目标是让你的Web服务直接运行在Nginx服务内部,充分利用Nginx的非阻塞I/O模型,不仅仅对HTTP客户端请求,甚至于对诸如MySQL、PostgreSQL、Memcached以及Redis等的远程后端都进行一致的高性能响应。

https://www.owasp.org/index.php/OWASP_VFW_Project
或者使用Varnish FireWall这个项目。
分布式waf系统
单机版本的WAF还难以承载大规模的业务,并发高和可用性容易出现问题
1、分布式WAF集群主要包括:四层负载均衡、WAF服务、WAF日志处理、WAF配置管理,每个部分均支持集群部署,快速横向扩展。
2、四层负载均衡从基础网络安全的角度讲,应该严格限制直接使用公网IP对外提供服务的形式,因为直接使用公网IP提供服务,攻击面会非常大且不可控。应该把只有经过测试的服务才使用负载均衡的方式对外发布Web服务,其他服务除非必要,都不直接对外发布,这样可以严格控制黑客的攻击面。
四层负载的主要作用是:·将用户请求转发给后端WAF服务;·将后端的WAF服务以公网IP的形式发布出去;·最好具备一定的抗攻击的能力。
图片12.png
通过开源解决方案LVS解决集群系统的问题,而且lvs已经集成在大多数linux系统中,只需要安装一个管理软件就可以使用,使用VS-NAT来完成流量转发。
由于使用了VS-NAT的方式使得可以很好的隐藏后端服务器,对前端服务器只开放单独端口,减小了被攻击面。

Social-Engineer Toolkit克隆制作钓鱼网站
社会工程师工具包(SET)由TrustedSec的创始人创建和编写。它是一个开源的Python驱动工具,旨在围绕社交工程进行渗透测试。
 
已经在包括Blackhat,DerbyCon,Defcon和ShmooCon在内的大型会议上提出过。拥有超过两百万的下载量,这是社交工程渗透测试的标准,并在安全社区内得到很大的支持。
 
它拥有超过200万的下载量,旨在利用社会工程类型环境下的高级技术攻击。TrustedSec认为,社交工程是最难防备的攻击之一,现在是最流行的攻击之一。该工具包已被包括在自从发行后12个月的安全书籍的头号畅销书,包括由TrustedSec的创始人,Devon Kearns,Jim O'Gorman编写的“Metasploit:渗透测试者指南” Mati Aharoni。
 
官方网站:https://www.trustedsec.com/social-engineer-toolkit-set/
使用手册完整文档:https://github.com/trustedsec/social-engineer-toolkit/

安装:

git clone https://github.com/trustedsec/social-engineer-toolkit.git
cd 
python setup.py install

运行:
kali中已经安装了可以省略刚刚的安装步骤。
直接运行setoolkit
或者从菜单栏打开工具
图片1.png
克隆网站:
图片2.png
1、社会工程学攻击
2、快速追踪测试
3、第三方模块
4、升级软件
5、升级配置
6、帮助
99、退出
这里我选择1,
图片3.png
1、鱼叉式网络钓鱼攻击
2、网页攻击
3、传染媒介式(俗称木马)
4、建立payloaad和listener
5、邮件群发攻击(夹杂木马啊payload的玩意发给你)
6、Arduino基础攻击
7、无线接入点攻击
8、二维码攻击(我喜欢)
9、Powershell攻击
10、第三反模块
99、返回上级
既然已经钓鱼那就选2,网页攻击
图片4.png
1、java applet攻击(网页弹窗那种)
2、Metasploit 浏览器漏洞攻击
3、钓鱼网站攻击
4、标签钓鱼攻击
5、网站jacking攻击(这个真心不明白,好像也和java的攻击方式有些相同)
6、多种网站攻击方式
7、全屏幕攻击(不明所以的玩意,只能够对谷歌邮箱和脸书用)
99、返回上级
选3
图片5.png
1网站模版
2克隆网站
3自己写
这里我博客的的登陆页面,wordpress
图片6.png
第一个让输入的是你post返回服务器的ip
图片7.png
图片8.png

可以看到抓到了密码。

图片9.png