自动注入脚本aspcms利用
本来是个师傅共享在ichunqiu的,结果因为编码转码问题用的是py3写的。原文链接:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=41269

我的设备从树莓派到deepin都是默认py2,很不方便的说,所以就修改了下,把编码解决了。

这是url采集:https://github.com/knickersgod/python-tools/blob/master/aspcms-url.py
这是exp:https://github.com/knickersgod/python-tools/blob/master/aspects-exp.py

图片5.png
图片6.png
图片7.png

不使用useradd添加用户
Linux中不止通过useradd添加用户,在万物皆为文件的系统中,可以通过添加字段的方式来添加用户。
需要修改的文件list:
o/etc/passwd #用来添加用户信息,声明是否可以登录,用户id:用户组id:用户声明,家目录位置,是否可登录。
图片1.png
o/etc/shadow #账号名称,!!是无密码用户密码,最近更新密码日期
图片2.png
o/etc/group #组名:口令:组标识号:组内用户列表|root:x:0:root,linuxsir
图片3.png
o/etc/gshadow #同上
暂时组密码不需要修改
o/var/spool/mail/xxx 邮件文件
o还有家目录下的一对隐藏文件
图片4.png

Awd脚本说明记录
1、Monitor
封装好的直接运行,作用目录是/var/www/html

/usr/local/lib/python2.7/site-packages/

monitor使用
创建文件删除,修改文件有提示。
图片13.png
图片14.png

2、waf生成日志被删除。
图片15.png
修改日志生成路径。
图片16.png
图片17.png
图片18.png
3、weblogger
将weblogger上传到网站目录下,可以改名,随意。
图片20.png
访问/weblogger/install.php
图片21.png
图片22.png
图片23.png
图片24.png
图片25.png
有黑白名单设置,有wef,可以自己构造出poc,在kali下可以直接运行。
如果需要放行对方或者自己ip
图片26.png
执行

echo  ‘’ > /tmp/xxxxxxx/hhhhblacklist就可以放行了
find /var/www/html/ -type f -path "*.php" | xargs sed -i "s/<?php/<?php\nrequire_once('\/tmp\/98366ed74d36da9dd6c07cc3aacc0c80\/weblogpro.php');\n/g"

将网站目录下所有php文件挂上waf

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